43158296104187350373325316852539588494799497664399339331394342735432235865122909870494794161515913804488563381469995679701362396517015598764439206265421330358635672139971021675351149886512761313216815695113092670216243959482383147757902514102818866080850748287168871662976444394121568209640249948679284468943920958619335300281056011787289982128971112873257374598545208469275649474043588935906937257445273919641436768203219251195982276858604746285697620055401681644984396259443931323542084198851067164665885162113485616338946974947949917238939870642701951627540073451132581175369642123368828898146860503630265966784379971968053129859927876858502662133703216646888963153723931967824582192970356668355786709120101750738620811465538712664705845941681926510170642559919698693232718400399509851409561131506388687947436591293886311565266227313696797117708487547912876819199454604659700685034285335010398616132787018680601293711525585315372091607142869984826802183451271644540599644730227174377118168417618394715362113364898289526417050626888433204889645298533961305495242518765211977541400238531321692641252604852350206865239363617337339389869196435848775746132037009369896196233199723555806465626439278076479622023044125296646285523803743301985758278196495224825750074031176339875691734267326619996040770140239486345537723673692786978498303448364451077036558226257326513209813504074886866450051276155595139845709994665567656483779929934506751598135056265496834155541631682795621311141996338587350236131259224481196664112384291670774414871302849674006269824847718602869275195293549933605818527877472578845303558415367734430517639404258127843956289699108596207150186423669646806399162031249214827763757804967271534538462532758928110407724315530878785264191791185664096421424778841772963729624491923805712344925055459830527237403947431329391438885124803805723096917916554971565777928180128697217557955826431872245908171492433593253037220671616689634779055418140482952558634414667975708909954588327132246642738597997269546594503366992033449206531372066489383677093158144751545618219799386157920419629665995432641934158609899637122804219314291881767147609683099593494203745493221058398998725914629826782528056500468878014138295844308666246684463565081480345138651151909318082536732959986917052149252584224885576526746350163266153640556328497355513502394704060775679118084197720843442679463805828315572640732268317910242188142930762706037481289361527705238749851949833217380533852154642736724897695690947986269117945709312657108526434453973331636307617516159747320317802094164178215979623844535390364321839597358416229451373994072734682225538932623558158521687666390472635416899243158633743562162663436096199670932160858255826971867790211207857049107392858470478706254422176947688533364923762791799838777941294338464287742003994114859510433117800632697781154043499206415323329777256963958877529848663564529635511842677807583729670979377424258503102508989566324769894766125434335246334740894468177900849422602158347494411689137662347241449228726976696446504934993386148523486717606818866568911529358364543860899983938723538321227372171959850481980239635507342628522301687695256159138481429035413722347171949215732731142923909878123949513677716362943861399835863808597637279354446591885026835947375985547764781750469392562866594275699983262282658283836597655484293179164387787481844840642725896848071653479135664852935720224940832550404810036321741354729584364646995066293312526513412704368328736356779732714996097830326375683130827567471822129059451086525160944067360424686288256410271345335154713825422044265736528290948938730540651832221388168552177223986903933618089297648587587905662452326586508917782833498944920527705976781315719423844019387717846456875251824192586039784064363016421122342263936589814914089836632925412009800828784694371849585624113734332445857614098379572782732764982878041607030371466716515819529318736366216932508087211913071228081216166601512273165423712446884858231184163585243312426875761325775865943065439281876593911514778387725604336575664799901031831936916455950222809424277386764490542786634350110229303490857449299242862767592802714585217047596289463183794694717190517221124661731935362692428471571998994980622121339346797471991708228779808161222171503373749622373261887708072720592824359378350576963849153082004608590116254983377659940097458947290072783220235173219257540625620548929407467391039166668171597117568336171927432198587272809735035480517712827255087591126895336060427115403837311806907347211189044538817386323296481045737128535703331842092369142418017022979430876847853704154372337802204196197026613059654360395587323762777699623624124457667677474684894425115866043896571139564085116657994106704263289592088653374982218525474644165609664333222701251213636727336492650579544326312488051712712934318703871983851569844571836455685432192724241348958271184521507643913497430914186149217438928548176267456546666935536667855563428443712486380790164356871596139721567571681379164008231000353214163399180052722101669201855316128855813366261961774079506853351692802646939467344641099799224899175674178269589495655468289415752579713685875379278840914405687676141312461797909002186660182429431596355272383268466272408658130037408636133780119377554718065764292927882652686441159883592103770281976691542610855469084643555146466846118540184056213514838015687235568087934843536341503765153411803271043431253319779218151340399752432538601321675633664459323643649917554980024707504112195555448643581984387401291792356118032709160351778746838091192095918870226816370160657146980227032312172663756563315492246334494686066725534372511192495806857068061545300985133948104307516361228800510212026190880113438067147056342436945048226522334549349009949421915865907338684926319683863545333327604852572288996183882298356