342077265254828519483424550864031077631212127491697433556865143971022428207532507300136771647765187037861562946542264381566192643839706912366964451130489931044437130724449245542084935639571514499795562982878756528686828077242564288529833177602878757720105017148499175464075320493831509149537465990151395231206714367093962934571657223836626333678189302678927172648954458932108160436534483966437938900757572411428891238361051487122738513561676961927726916965741722262442118599036561427407169325714131329604325350366623985669282370860924380851064229559211874821268588804143081834543144725315403859823213273774024402708491069986771656681265475979647043067461171459179312224589948788420477415733303331807976311418985591579157949415201250672064086744162776167175089812148823344569514293857226000367469835255945256706927232772715658628215511340897854555865378135553369756447546823454781474584874043708604175196171845537935493666960837549425178511195212336986691138177079224590532145508885148948561239697114175275285382168118686686824451188864979803562477628145122941223987763933359852875552347518255324791172827874213869381927073475496655269972635382218105842433444968672178685830314002643870774826348255274959442384536019446616419089968208175443722281896565087601467531046389574759740943090963179181190851674630284227639071516978111833393332374235913615432554369612874979853943616841721219279758410708763864554451325592880139575564538126037907575782250796893031985744623805881594934156576719196616261752136686468039011768464294352209172965070895624569829635651439739427037547678195603033483276305883355289862884749928099453787693437986290477138738256610994147403811851965522747565746966509453734558800919674373457465046685709297212092990088509960240537505210660504848955940140989108499266642395754323646118942172163774998096467324158531337140347332850157403656462845564700713353954908511738645622141637318329285574371761998443716735172134541032440695994507724425808934726860747694533484267315287174144185206884395773594434380787622673092281199983129222265793603835186062684590711448136765309619081777787324419783403473411554349141464344206910759844993799253125944290190541849514411948794609083923217764657398396023228379509417807321121080403945184546279385429268467274436951692939536220493612175691224461015702932311836292881925878190648864628171412739469411803720045136617762753147716253994055278408167534368364454961412905913719696553227629754719934848632566426035601353636425223645753301360078894285947729042668364528815709868317062218515336511277590612284377009385390254655562922011682526232069857636859913355106825284055687488225919206384510778958941203711976248100471318839823433646723896306389244884620396653075461390093872111859369103077192614544246006232152997521012551365671891006129165429512808633764943995304063494514230817557503279133429129580126921857264336296809600431351697322737037443968797344580456626382013437143997963556283525912338446219178957821806507512630086001653490577783359793137162054329879564942896037511128735582877534672373204821459605063465253518750387940268619633180567585798732119731844194047812806675822986454551061404400058689078709541440817163727809169416635823590813374694291253517295770575511754768625984749783646095943220200663532212859908788997169523083402456373777758548209632295342651386525236936249855681085178747146567388135535196466991972950219016887364915353881843185419862134171188728836558725244272521498882028019579919591340643257428353433715551873192983906532355344187314878033562853638368218058186750820415208170933023325215603452466179857740802871986021559946766484246028243676047151720446430066814358434791239504859445478398743018938164162309061395944773120095151233999478059402199345302505220077494538004524018773558577178491868703070082507284368971378250627774882824346274756796626459113485872662734685473373170599598912014302139421311494701412075687379236835369906721233779624717566931865670658203578713090983392646119569836662257942236767352771830453817653800433023627961217451140567454961623416827704572752807149221076059976793358719580162389171655101388243520939136447366836100259037456674558172904423913944759250317011517660119879644292773802925913774147020174782813794762911359687920680461598458079746486242338518875666134878142811359889129271856188215866147772994318466898154232314904178127707825485778541401279739706103861681354760534452083525123853811742176374434270037387333453096659607555177954469649444898228161831783621665280789271526426905495939375315561527755487851430462901265229275265995260986584350163468675691625254418286126667741405286656054171123678592277084663264107535687381143080848542998777596150613015464737382668437498715717372315404605770858538719857814776592465874259322849228457389683589792737817994032100217757652766354357428366127128506604169115145613700580240986388329730284356931495955785189367885704487329144947140275798304768571048081422282136766109928584763746730747347316141906230329093589869476116677588495985232780901436166877081026429139919747395797602170815522748559332260744751875716129269316198268528502395975277151213644701700134485173281597139224758869941789134108174846954963192513322733154581813019928058167497394223671610212694928224555879591347790613249328909678284437418399124121495619812143922393761717974368742668375054556013961831349797631516152579762425328391461165323581784860772036757823156335641054088040945451398884689653921253523705868906746147785817496912093205274964170471273033852235227917451966658352032084872922628628530324613439945032155413968945840890099562523317624273056792896295158815628058658677494351628240803575943749352427181514582827192662903197646994707617720395775398504653860631658243870781838947337019638307326074543818385253951434495247285479357670485603300565973571773530242654644640442384875469328208481460246453734139