Message Boards Message Boards

How to calculate the digits of the MKB constant

Feb 22, 2009

It appears that the absolute value, minus 1/2, of the limit(integral of (-1)^xx^(1/x) from 1 to 2N as N->infinity) would equal the partial sum of (-1)^xx^(1/x) from 1 to where the upper summation is even and growing without bound. Is anyone interested in improving or disproving this conjecture?

enter image description here

March 12, 2015

What about records of computing the integral analog of the MRB constant? (I call it the MKB constant.) See Google Scholar MKB constant.

Richard Mathar did a lot of work on it here , where M is the MRB constant and M1 is MKB:

enter image description here

M1 (MKB) can be written as and integral of a power of e:

enter image description here

I've gotten Mathematica to compute 125 digits. However, they are not proven to be correct yet! They are

0.68765236892769436980931240936544016493963738490362254179507101010743\
366253478493706862729824049846818873192933433546612328629

. First, we compute the real part as far as Mathematica will allow.

a1 = NIntegrate[Cos[x Pi] x^(1/x), {x, 1, Infinity}, 
  WorkingPrecision -> 100]

0.07077603931152880353952802183028200136575469620336299759658471973672\
987938741600037745028756981434374

a2 = NIntegrate[Cos[x Pi] x^(1/x), {x, 1, Infinity}, 
  WorkingPrecision -> 120]
a2 - a1

0.07077603931152880353952802183028200136575469620336302758317278266053\
31986618615110244568060496758380620699811570793175408

2.998658806292380331927444551064700651847986149432*10^-53

a3 = NIntegrate[Cos[x Pi] x^(1/x), {x, 1, Infinity}, 
  WorkingPrecision -> 150]
a3 - a2

0.07077603931152880353952802183028200136575469620336302758317278816361\
8457264385970709799491401005081151056924116255307801983594127144525095\
5653544005192

5.5030852586025244596853426853513292430889869429591759902612*10^-63

a4 = NIntegrate[Cos[x Pi] x^(1/x), {x, 1, Infinity}, 
  WorkingPrecision -> 200]
a4 - a3

0.07077603931152880353952802183028200136575469620336302758317278816361\
8457264382036580831881266177238210031756216795402920795214039271485948\
634659563768084109747493815003439875479076850383786911941519465

-3.9341289676101348278429410251678994599048811883800878730391469306948\
367511*10^-78

a5 = NIntegrate[Cos[x Pi] x^(1/x), {x, 1, Infinity}, 
  WorkingPrecision -> 250]
a5 - a4

0.07077603931152880353952802183028200136575469620336302758317278816361\
8457264382036580831881266177238209440733969109717926999044694539086929\
3857095687266500964737783523859835124762555195276023702167529617039725\
7261177753806842756198742365511173334813888

-5.9102224768568499379616934473239901924894999504143401327371546261745\
6363002821330856184541724766503*10^-103

Next, we compute the imaginary part to the same precision.

b1 = NIntegrate[I Sin[x Pi] x^(1/x), {x, 1, Infinity}, 
   WorkingPrecision -> 100] - I/Pi

0.*10^-117 - 
 0.6840003894379321291827444599926611267109914826550016181302726087470\
544306934833279937664708191960468 I

b2 = NIntegrate[I Sin[x Pi] x^(1/x), {x, 1, Infinity}, 
   WorkingPrecision -> 120] - I/Pi
b2 - b1

0.*10^-137 - 
 0.6840003894379321291827444599926611267109914826549994343226304054256\
46767722886537984405858512438464223325361496951820797 I

0.*10^-117 + 
 2.1838076422033214076629705967900093606123067575826*10^-51 I

b3 = NIntegrate[I Sin[x Pi] x^(1/x), {x, 1, Infinity}, 
   WorkingPrecision -> 150] - I/Pi
b3 - b2

0.*10^-167 - 
 0.6840003894379321291827444599926611267109914826549994343226303771381\
5305812568206208637713014270949108628424796532117557865488349026349505\
4352728287677 I

0.*10^-137 + 
 2.8287493709597204475898028728369728973137041113531630645218*10^-62 I

b4 = NIntegrate[I Sin[x Pi] x^(1/x), {x, 1, Infinity}, 
   WorkingPrecision -> 200] - I/Pi
b4 - b3

0.*10^-218 - 
 0.6840003894379321291827444599926611267109914826549994343226303771381\
5305812497663815095983421272147867735031056071869477552727290571462108\
208123698276619850397331432861469605963724235550107655309644965 I

0.*10^-167 + 
 7.0542393541729592998801240893393740460248080312761058454887397227149\
1304910*10^-76 I

b5 = NIntegrate[I Sin[x Pi] x^(1/x), {x, 1, Infinity}, 
   WorkingPrecision -> 250] - I/Pi
b5 - b4

0.*10^-268 - 
 0.6840003894379321291827444599926611267109914826549994343226303771381\
5305812497663815095983421272147867223796451609148860995867828496814126\
9810848570299802270095261060286697622600207986034863822997401942304753\
4951409792726050072747412751162199808963072 I

0.*10^-218 + 
 5.1123460446272061655685946207464798122703884124663962338780532683279\
9843703703436946621273009904771*10^-102 I

b6 = NIntegrate[I Sin[x Pi] x^(1/x), {x, 1, Infinity}, 
   WorkingPrecision -> 300] - I/Pi
b6 - b5

0.*10^-318 - 
 0.6840003894379321291827444599926611267109914826549994343226303771381\
5305812497663815095983421272147867223796451609148860995867804988314557\
9408739051911924508290758754789975176921766748245229306743723292030351\
1357229649514450909272015113199881208930542548540913212596310791355732\
04151474091653439098975 I

0.*10^-268 + 
 2.3508499569040210951838787776180450230549672244567844123778963451625\
36786502744023594180143211599163475397637962318600032530*10^-127 I

Notice that WorkingPrecision->100 gave 51 consistent (correct) digits, WorkingPrecision->120 gave 62 correct digits, WorkingPrecision->150 gave 76 correct digits, WorkingPrecision->200 gave 102 correct digits, so it is not too much of a stretch to believe WorkingPrecision->250 gave 125 correct digits.

In[78]:= c = N[Abs[a5 + b5], 125]

Out[78]= 0.\
6876523689276943698093124093654401649396373849036225417950710101074336\
6253478493706862729824049846818873192933433546612328629

April 18, 2015

Going back to integral analog of the MRB constant'

enter image description here:

Using formula 5 on page 3 of http://arxiv.org/pdf/0912.3844v3.pdf

.enter image description here

We can compute plenty of digits of the integral analog of the MRB constant' (I once called it the MKB constant, named after Marsha Kell-Burns my, now ex, wife.) In the paper, Mathar simply calls it M1.

Until further notice in this post when we compute the imaginary part of M1, we will be concerned with the imaginary part's absolute value only,

This time we will compute the Imaginary part first to at least 500 digits:

  a[1] = 0; For[n = 1, n < 11, 
    a[n] = N[2/Pi - 
       1/Pi*NIntegrate[
         Cos[Pi*x]*x^(1/x)*(1 - Log[x])/x^2, {x, 1, Infinity}, 
         WorkingPrecision -> 100*n], 50 n]; Print[a[n] - a[n - 1]], 
    n++]; Print[a[11]]
\

giving

0.6840003894379321291827444599926611267109914826549994343226303771381530581249766381509598342127214787

0.*10^-101

0.*10^-151

0.*10^-201

0.*10^-251

0.*10^-301

0.*10^-351

0.*10^-401

0.*10^-451

0.*10^-501

0.6840003894379321291827444599926611267109914826549994343226303771381530581249766381509598342127214786722379645160914886099586780498831455794087390519118879988351918366211827085883779918191195794251385436100844782462528597869421390620796113023053439642582325892202911183326091512210367124716901047132601108752764946385830438156754378694878046808312868541961166205744280461776232345922905313658259576212809654022016030244583148587352474339130505540080799774619683572540292971258866450201101870835703060314349396491402064932644813564545345219868887520120

. Likewise the real part:

b[1] = 0; For[n = 1, n < 11, 
 b[n] = N[-1/Pi*
    NIntegrate[Sin[Pi*x]*x^(1/x)*(1 - Log[x])/x^2, {x, 1, Infinity}, 
     WorkingPrecision -> 100*n], 50 n]; Print[b[n] - b[n - 1]], 
 n++]; Print[b[11]]

giving

0.07077603931152880353952802183028200136575469620336302758317278816361845726438203658083188126617723821

0.*10^-102

0.*10^-152

0.*10^-202

0.*10^-252

0.*10^-302

0.*10^-352

0.*10^-402

0.*10^-452

0.*10^-502

0.07077603931152880353952802183028200136575469620336302758317278816361845726438203658083188126617723820944073396910971792699904464538475364292258443860652193330471222906120205483985764336623434898438270710499897053952312269178485299032185072743545220051257328105422174249313177670295863771714489658779291185716175115405623656039914848817528200250723061535734571065031458992196831648681239079549382556509741967588147362548743205919028695774572411439927516593391029992733107982746794845130889328251307263102570083031527430861023428334369104098217022622689

. Then the magnitude:

N[Sqrt[a[11]^2 + b[11]^2], 500]

giving

0.68765236892769436980931240936544016493963738490362254179507101010743\
3662534784937068627298240498468188731929334335466123286287665409457565\
9577211580255650416284625143925097120589697986500952590195706813170472\
5387265069668971286335322245474865156721299946377659227025219748069576\
0895993932096027520027641920489863095279507385793449828250341732295653\
3809181101532087948181335825805498812728097520936901677028741356923292\
2644964771090329726483682930417491673753430878118054062296678424687465\
624513174205

. That checks with the 200 digits computed by the quadosc command in mpmath by FelisPhasma at https://github.com/FelisPhasma/MKB-Constant .The function is defined here: http://mpmath.googlecode.com/svn/trunk/doc/build/calculus/integration.html#oscillatory-quadrature-quadosc

enter image description here

P.S.

I just now finished 750 digits, (about the max with formula 5 from the paper, as far as Mathematica is concerned).

Here is the work:

a[1] = 0; For[n = 1, n < 16, 
 a[n] = N[2/Pi - 
    1/Pi*NIntegrate[
      Cos[Pi*x]*x^(1/x)*(1 - Log[x])/x^2, {x, 1, Infinity}, 
      WorkingPrecision -> 100*n], 50 n]; Print[a[n] - a[n - 1]], 
 n++]; Print[a[16]]; 
b[1] = 0; For[n = 1, n < 16, 
 b[n] = N[-1/Pi*
    NIntegrate[Sin[Pi*x]*x^(1/x)*(1 - Log[x])/x^2, {x, 1, Infinity}, 
     WorkingPrecision -> 100*n], 50 n]; Print[b[n] - b[n - 1]], 
 n++]; Print[b[16]]; Print[N[Sqrt[a[16]^2 + b[16]^2], 750]]

0.6840003894379321291827444599926611267109914826549994343226303771381530581249766381509598342127214787

0.*10^-101

0.*10^-151

0.*10^-201

0.*10^-251

0.*10^-301

0.*10^-351

0.*10^-401

0.*10^-451

0.*10^-501

0.*10^-551

0.*10^-601

3.*10^-650

-4.*10^-700

-2.6*10^-749

0.68400038943793212918274445999266112671099148265499943432263037713815\
3058124976638150959834212721478672237964516091488609958678049883145579\
4087390519118879988351918366211827085883779918191195794251385436100844\
7824625285978694213906207961130230534396425823258922029111833260915122\
1036712471690104713260110875276494638583043815675437869487804680831286\
8541961166205744280461776232345922905313658259576212809654022016030244\
5831485873524743391305055400807997746196835725402929712588664502011018\
7083570306031434939649140206493264481356454534521986888752011950353818\
1776359577265099302389566135475579468144849763261779452665955246258699\
8679271659049208654746533234375478909962633090080006358213908728990850\
5026759549928935029206442637425786005036048098598304092996753145589012\
64547453361707037686708654522699


0.07077603931152880353952802183028200136575469620336302758317278816361845726438203658083188126617723821

0.*10^-102

0.*10^-152

0.*10^-202

0.*10^-252

0.*10^-302

0.*10^-352

0.*10^-402

0.*10^-452

0.*10^-502

2.*10^-551

-1.*10^-600

1.8*10^-650

1.27*10^-699

4.34*10^-749

0.07077603931152880353952802183028200136575469620336302758317278816361\
8457264382036580831881266177238209440733969109717926999044645384753642\
9225844386065219333047122290612020548398576433662343489843827071049989\
7053952312269178485299032185072743545220051257328105422174249313177670\
2958637717144896587792911857161751154056236560399148488175282002507230\
6153573457106503145899219683164868123907954938255650974196758814736254\
8743205919028695774572411439927516593391029992733107982746794845130889\
3282513072631025700830315274308610234283343691040982170226226904594029\
7055093272952022662549075225941956559080574835998923469310063614655255\
0629713179601483134045038416878054929072981851045829413286377842843667\
5378730394247519728064887287780998671021887797977772522419765594172569\
277490031071938177749184834961300

0.687652368927694369809312409365440164939637384903622541795071010107433662534784937068627298240498468188731929334335466123286287665409457565957721158025565041628462514392509712058969798650095259019570681317047253872650696689712863353222454748651567212999463776592270252197480695760895993932096027520027641920489863095279507385793449828250341732295653380918110153208794818133582580549881272809752093690167702874135692329226449647710903297264836829304174916737534308781180540622966784246874656245131742049004832216427665542900559350289936114782223424261285828326467186036500189315374147638489679365569122714398706519530651330568884655048857998738535162606116788633540389660052822237449082894798620397228331715198160243676576563833057235963591510865254600

Using formula 7 from http://arxiv.org/pdf/0912.3844v3.pdf,

enter image description here .

(Treating it as we did formula 5), First, the imaginary part to at least 1000 digits::

a[1] = 0; For[n = 1, n < 21, 
 a[n] = N[2/Pi + 
    1/Pi^2 NIntegrate[
      Sin[x Pi] x^(1/x) (1 - 3 x + 2 (x - 1) Log[x] + Log[x]^2)/
        x^4, {x, 1, Infinity}, WorkingPrecision -> 100 n], 50 n];
 Print[a[n] - a[n - 1]], n++]; Print[a[21]]

0.6840003894379321291827444599926611267109914826549994343226303771381530581249766381509598342127214787

0.*10^-101

0.*10^-151

0.*10^-201

0.*10^-251

0.*10^-301

0.*10^-351

0.*10^-401

0.*10^-451

0.*10^-501

0.*10^-551

0.*10^-601

0.*10^-651

0.*10^-701

0.*10^-751

0.*10^-801

0.*10^-851

0.*10^-901

-2.*10^-950

5.*10^-1000

0.684000389437932129182744459992661126710991482654999434322630377138153058124976638150959834212721478672237964516091488609958678049883145579408739051911887998835191836621182708588377991819119579425138543610084478246252859786942139062079611302305343964258232589220291118332609151221036712471690104713260110875276494638583043815675437869487804680831286854196116620574428046177623234592290531365825957621280965402201603024458314858735247433913050554008079977461968357254029297125886645020110187083570306031434939649140206493264481356454534521986888752011950353818177635957726509930238956613547557946814484976326177945266595524625869986792716590492086547465332343754789099626330900800063582139087289908505026759549928935029206442637425786005036048098598304092996753145589012645474533617070376867086545228223060940434935219252885333298390272342234952870883304116640409421452765284609364941205344122569781634782508368641126766528707019957340895061936246645065753101916781254557006989818409283317145837167345971516970849116096077030635788389165381066055992688

Then the real part to at least 1000 digits:

b[1] = 0; For[n = 1, n < 21, 
 b[n] = N[1/Pi^2 - 
    1/Pi^2 NIntegrate[
      Cos[Pi x] x^(1/x) (1 - 3 x + 2 (x - 1) Log[x] + Log[x]^2)/
        x^4, {x, 1, Infinity}, WorkingPrecision -> 100 n], 50 n];
 Print[b[n] - b[n - 1]], n++]; Print[b[21]]

0.07077603931152880353952802183028200136575469620336302758317278816361845726438203658083188126617723821

0.*10^-102

0.*10^-152

0.*10^-202

0.*10^-252

0.*10^-302

0.*10^-352

0.*10^-402

0.*10^-452

0.*10^-502

0.*10^-552

0.*10^-602

0.*10^-652

0.*10^-702

0.*10^-752

0.*10^-802

0.*10^-852

-3.*10^-901

8.*10^-951

-4.6*10^-1000

0.0707760393115288035395280218302820013657546962033630275831727881636184572643820365808318812661772382094407339691097179269990446453847536429225844386065219333047122290612020548398576433662343489843827071049989705395231226917848529903218507274354522005125732810542217424931317767029586377171448965877929118571617511540562365603991484881752820025072306153573457106503145899219683164868123907954938255650974196758814736254874320591902869577457241143992751659339102999273310798274679484513088932825130726310257008303152743086102342833436910409821702262269045940297055093272952022662549075225941956559080574835998923469310063614655255062971317960148313404503841687805492907298185104582941328637784284366753787303942475197280648872877809986710218877979777725224197655941725692774900310719381777491848349627938468198411955193898347075098152638657614980900350262780319142430252921925131515239611841070722530473939496294305264627977744876814858325335947117076721493110160508928494597906728688873533031986215124467678736429981544321187124269147141804397293341613

Then the magnitude:

In[97]:= N[Sqrt[a[21]^2 + b[21]^2], 1000]

Out[97]= 0.\
6876523689276943698093124093654401649396373849036225417950710101074336\
6253478493706862729824049846818873192933433546612328628766540945756595\
7721158025565041628462514392509712058969798650095259019570681317047253\
8726506966897128633532224547486515672129994637765922702521974806957608\
9599393209602752002764192048986309527950738579344982825034173229565338\
0918110153208794818133582580549881272809752093690167702874135692329226\
4496477109032972648368293041749167375343087811805406229667842468746562\
4513174204900483221642766554290055935028993611478222342426128582832646\
7186036500189315374147638489679365569122714398706519530651330568884655\
0488579987385351626061167886335403896600528222374490828947986203972283\
3171519816024367657656383305723596359151086525460036387486837632622334\
2987257095524637683005910353149353985736118868884201748241906260834981\
7303422370398413326428269921074045506558966667483453656748906071577744\
4147548424388220133662816274116986724576330176058912438027319979840883\
05950589130911719199

PPS. I just now finished a 1500 digit computation of the integral analog of the MRB constant, but I don't have any way of checking it other than to see that it confirms smaller computations. Which thing it does.

In[99]:= aa = 
 N[2/Pi + 1/Pi^2 NIntegrate[
     Sin[x Pi] x^(1/x) (1 - 3 x + 2 (x - 1) Log[x] + Log[x]^2)/
       x^4, {x, 1, Infinity}, WorkingPrecision -> 3000], 1500]

Out[99]= 0.\
6840003894379321291827444599926611267109914826549994343226303771381530\
5812497663815095983421272147867223796451609148860995867804988314557940\
8739051911887998835191836621182708588377991819119579425138543610084478\
2462528597869421390620796113023053439642582325892202911183326091512210\
3671247169010471326011087527649463858304381567543786948780468083128685\
4196116620574428046177623234592290531365825957621280965402201603024458\
3148587352474339130505540080799774619683572540292971258866450201101870\
8357030603143493964914020649326448135645453452198688875201195035381817\
7635957726509930238956613547557946814484976326177945266595524625869986\
7927165904920865474653323437547890996263309008000635821390872899085050\
2675954992893502920644263742578600503604809859830409299675314558901264\
5474533617070376867086545228223060940434935219252885333298390272342234\
9528708833041166404094214527652846093649412053441225697816347825083686\
4112676652870701995734089506193624664506575310191678125455700698981840\
9283317145837167345971516970849116096077030635788389165381066055992708\
4284702473154303800276803908560080204997803241058414188902018357202062\
9532415382916822796942734253441520784640814155687968986766443021927163\
6249354786973717955004441549085673392105556692081075647388204227896978\
1483978754685921758294318270385312597177598977912650715548994562461701\
1553879109152932039370312241134127950112036269188660519350584627066913\
4925878278209048717316088629321353274101519307401594635990058104175474\
300641475776727955287474213040

In[98]:= bb = 
 N[1/Pi^2 - 
   1/Pi^2 NIntegrate[
     Cos[Pi x] x^(1/x) (1 - 3 x + 2 (x - 1) Log[x] + Log[x]^2)/
       x^4, {x, 1, Infinity}, WorkingPrecision -> 3000], 1500]

Out[98]= 0.\
0707760393115288035395280218302820013657546962033630275831727881636184\
5726438203658083188126617723820944073396910971792699904464538475364292\
2584438606521933304712229061202054839857643366234348984382707104998970\
5395231226917848529903218507274354522005125732810542217424931317767029\
5863771714489658779291185716175115405623656039914848817528200250723061\
5357345710650314589921968316486812390795493825565097419675881473625487\
4320591902869577457241143992751659339102999273310798274679484513088932\
8251307263102570083031527430861023428334369104098217022622690459402970\
5509327295202266254907522594195655908057483599892346931006361465525506\
2971317960148313404503841687805492907298185104582941328637784284366753\
7873039424751972806488728778099867102188779797777252241976559417256927\
7490031071938177749184834962793846819841195519389834707509815263865761\
4980900350262780319142430252921925131515239611841070722530473939496294\
3052646279777448768148583253359471170767214931101605089284945979067286\
8887353303198621512446767873642998154432118712426914714180439729334146\
8345902382977472975053271988386946291215512340931334841526712825988330\
6521193975174379922254198045615178994412133135553490942451521573377205\
4086429300485891441696490339106907723915822537813700713422515725943626\
7756749980892097547020923938358076198570370106085596863039832425037481\
4946826330552459256977035009973219582010379262683780372730214991685800\
3676611833579648850161974289307066295385292264148146789532534018500663\
1153014589399140567464592864024

In[109]:= c1500 = Sqrt[aa^2 + bb^2]

Out[109]= \
0.68765236892769436980931240936544016493963738490362254179507101010743\
3662534784937068627298240498468188731929334335466123286287665409457565\
9577211580255650416284625143925097120589697986500952590195706813170472\
5387265069668971286335322245474865156721299946377659227025219748069576\
0895993932096027520027641920489863095279507385793449828250341732295653\
3809181101532087948181335825805498812728097520936901677028741356923292\
2644964771090329726483682930417491673753430878118054062296678424687465\
6245131742049004832216427665542900559350289936114782223424261285828326\
4671860365001893153741476384896793655691227143987065195306513305688846\
5504885799873853516260611678863354038966005282223744908289479862039722\
8331715198160243676576563833057235963591510865254600363874868376326223\
3429872570955246376830059103531493539857361188688842017482419062608349\
8173034223703984133264282699210740455065589666674834536567489060715777\
4441475484243882201336628162741169867245763301760589124380273199798408\
8305950589130911719198776146941477264898934365742508503405073273852990\
3546587114217499635584514475429656959327732862489935076490012861232249\
2446704232200904844779690044774489466704342791971033325818579375177198\
9865742583276770011926585495711579480114327818546199372349313180236079\
1389248808154759564302727311223193005229640892474022665093207969297797\
9723087954832182561714039165214592519432072341006090867558444590500046\
6707963346545638317950978935794173691635274461184852166407791838662429\
40408834876470623546535579027725

Mathar gives a simple scheme to find better formulas at http://arxiv.org/pdf/0912.3844v3.pdf . I could use some help in programming it: (I keep getting erroneous results!) Does anyone get the right results here?

enter image description here

Below, where the upper limit of the following integrals shows Infinity, it is meant to be the (Ultraviolet limit of the sequence) as mentioned by Mathar here:

enter image description here

Until further notice in this post when we compute the imaginary part of M1, we will be concerned with the imaginary part's absolute value only,

I derived a new formula for computing the integral analog of the MRB constant':

f[x_]:=x^(1/x);-((2 I)/\[Pi]^3) + 1/\[Pi]^2 - (
 2 I)/\[Pi] + (I/Pi)^3*
  Integrate[(-1)^x*D[f[x], {x, 3}], {x, 1, Infinity}]

In the traditional form that is M1=

enter image description here

Using it I computed 2000 digits in only 10.8 minutes:

In[131]:= Timing[f[x_] = x^(1/x); 
 a = N[1/\[Pi]^2 + (1/Pi)^3*
     NIntegrate[Sin[Pi*x]*D[f[x], {x, 3}], {x, 1, Infinity}, 
      WorkingPrecision -> 4000], 2000]; 
 b = N[2/\[Pi]^3 + 
    2/\[Pi] + (1/Pi)^3*
     NIntegrate[Cos[Pi x]*D[f[x], {x, 3}], {x, 1, Infinity}, 
      WorkingPrecision -> 4000], 2000]; 
 Print[N[Sqrt[a^2 + b^2], 2000]]]

During evaluation of In[131]:= 0.68765236892769436980931240936544016493963738490362254179507101010743366253478493706862729824049846818873192933433546612328628766540945756595772115802556504162846251439250971205896979865009525901957068131704725387265069668971286335322245474865156721299946377659227025219748069576089599393209602752002764192048986309527950738579344982825034173229565338091811015320879481813358258054988127280975209369016770287413569232922644964771090329726483682930417491673753430878118054062296678424687465624513174204900483221642766554290055935028993611478222342426128582832646718603650018931537414763848967936556912271439870651953065133056888465504885799873853516260611678863354038966005282223744908289479862039722833171519816024367657656383305723596359151086525460036387486837632622334298725709552463768300591035314935398573611886888420174824190626083498173034223703984133264282699210740455065589666674834536567489060715777444147548424388220133662816274116986724576330176058912438027319979840883059505891309117191987761469414772648989343657425085034050732738529903546587114217499635584514475429656959327732862489935076490012861232249244670423220090484477969004477448946670434279197103332581857937517719898657425832767700119265854957115794801143278185461993723493131802360791389248808154759564302727311223193005229640892474022665093207969297797972308795483218256171403916521459251943207234100609086755844459050004667079633465456383179509789357941736916352744611848521664077918386624294040883487647062354653558109265769644276994369741555722263494599492834558291937955573706480722982389806312472239746286527176248883116124285469947303667188075506826507811479428582807366599407544908560990699866167233307144245764835741501174979679166078765231145175411199825822532170091858833628202128777966026600647843068442894310401343003939117236867245656732686719139206716028255819141802331701942027248337771633882445225049334329008827371320849006472846226868011129149192754883153995560921671208059671732704499253517327447921147157

Out[131]= {653.145, Null}

I am presently computing 10,000 digits using that formula. Come back here for results!

That formula didn't work out; I will try one of the following formulas.

Here are 2 more, more advanced formulas; remember f(x) is x^(1/x):

enter image description here

I did finish a 5,000 digit computation using M1=

enter image description here

in 48.11 minutes.

Here are the 5000 digits:of the magnitude:

0.68765236892769436980931240936544016493963738490362254179507101010743366253478493706862729824049846818873192933433546612328628766540945756595772115802556504162846251439250971205896979865009525901957068131704725387265069668971286335322245474865156721299946377659227025219748069576089599393209602752002764192048986309527950738579344982825034173229565338091811015320879481813358258054988127280975209369016770287413569232922644964771090329726483682930417491673753430878118054062296678424687465624513174204900483221642766554290055935028993611478222342426128582832646718603650018931537414763848967936556912271439870651953065133056888465504885799873853516260611678863354038966005282223744908289479862039722833171519816024367657656383305723596359151086525460036387486837632622334298725709552463768300591035314935398573611886888420174824190626083498173034223703984133264282699210740455065589666674834536567489060715777444147548424388220133662816274116986724576330176058912438027319979840883059505891309117191987761469414772648989343657425085034050732738529903546587114217499635584514475429656959327732862489935076490012861232249244670423220090484477969004477448946670434279197103332581857937517719898657425832767700119265854957115794801143278185461993723493131802360791389248808154759564302727311223193005229640892474022665093207969297797972308795483218256171403916521459251943207234100609086755844459050004667079633465456383179509789357941736916352744611848521664077918386624294040883487647062354653558109265769644276994369741555722263494599492834558291937955573706480722982389806312472239746286527176248883116124285469947303667188075506826507811479428582807366599407544908560990699866167233307144245764835741501174979679166078765231145175411199825822532170091858833628202128777966026600647843068442894310401343003939117236867245656732686719139206716028255819141802331701942027248337771633882445225049334329008827371320849006472846226868011129149192754883153995560921671208059671732704499253517327447529208297180672654123457301218758892278525894167935930983363218877512533994251978272092700003994136520699813263053327399132641690231179063314931546906927612775633995348209911166678724589467821767106592498663827057034363632241807121831546175498178011687284590439293322231263406301066863589072717290630291441982684113819198880100231182613587798104863611185433976009254862585527222843445901958943153561148829083242874018226480554274231391324767376148485531787767908124831873688579979114662856184612164534836370699371440464263768724668291617743681719766849740663590277737977490693183461320266666793472116774276618408124767965369796362732668987556797338128876129264558867657737417548617146808592137056879602982206609613881069490166381528825180204703315896719667069923077454352649723496033985893188309150391579573916059639453655188856334980355047281560296288150836680499821806918067869468571687709518088408966653716009356556714281694904914038988996962213833530636987279769672200413448893419914190954063100962251649102614676944333201213024711868954772741991675045198246947499574872027800654821823797116399297131866662866832215332914761325880983081211272181775518951539503852063119472301382766303820851467743266039356123495461914463960644386394228342211998370152351720235034997434035743513051754761571835043769475528640144621307760159481496713401409374957729200400650100318226988524015127382509490642900236553851499823658269458873976032051355393161653806016080446394196719312454167915154602448638624354575153334932298393406734174580316934939632892851077461038399470015366439910136971186909599331204517462262508377673477745789645309425145559198802530351403897927622891172233239135167420567162398873965477371498335087310395422796362380227536212159184529243644094285328763286873653399867593200891823468738537356817916009007206857590792983184556882143118383332812491747733056313117179696094921120670802012310012864110800437831852620698327457619035904268498030693438632685623213366864129523404256345542376567721287706234359125016588483777876970236084456277023948551334490591022594253744077631232660869593809453087749830900393202787736482133628148979992109544954840067942735030391105496026321872468122542495017023785810605820545392820104069279893067324597299043883381251767370331206913429284614563732308018369972360638019778425246546329838131639355043236388708044857300408692365733932897876809202025693305332974091411983635619038514442263783801745983300121464879550146672827072002317686396598587702487509572349422593441184802476344187280014450860069307120621758277552124841158659386176036703247124389223327008210072318671884895179305778728051888524412158486781863155034447221379906386062559915129172725833420555901857729690605950941678587057025641848365090809750870051863842805803189784976076099574956436664131457150096711473033060684065060747340764998195621425524824611657787212347497307297184843276100338110267863618974154272345482369968216663233417338501929114697679974461999040589290327155974468087040862022522065912789

I'm getting closer to 10K digits of M1: Using enter image description here , where f(x)=x^(1/x).

I got approx. 10K digits of the imaginary part, but the real part was a little garbled.

Finally using

enter image description here , where f(x) = x^(1/x) ,

.I got about 10000 digits of M1 in about 12 hours. (It showed that the 5000 digit computation was only correct to 4979 digits, though.) Here is a rough program to get it:

   f[x_]:=x^(1/x);  Print[DateString[]]; Print[T0 = SessionTime[]]; prec = 10000; 
  Timing[Print[
  a = N[Re[-(136584/Pi^10) - (34784*I)/Pi^9 + 
       5670/Pi^8 + (786*I)/Pi^7 - 90/Pi^6 - 
                 (4*I)/Pi^5 - 3/Pi^4 - (2*I)/Pi^3 + 
       1/Pi^2 - (2*I)/Pi] - 
             (1/Pi)^10*
      NIntegrate[Cos[Pi*x]*D[f[x], {x, 10}], {x, 1, Infinity}, 
       WorkingPrecision -> prec, 
                 PrecisionGoal -> prec], prec]]; 
 Print[SessionTime[] - T0, " seconds"]; 
     Print[
  N[b = -Im[-(136584/Pi^10) - (34784*I)/Pi^9 + 
        5670/Pi^8 + (786*I)/Pi^7 - 90/Pi^6 - 
                   (4*I)/Pi^5 - 3/Pi^4 - (2*I)/Pi^3 + 
        1/Pi^2 - (2*I)/Pi] + 
             (1/Pi)^10*
      NIntegrate[Sin[Pi*x]*D[f[x], {x, 10}], {x, 1, Infinity}, 
       WorkingPrecision -> prec, 
                 PrecisionGoal -> prec], prec]]]; Print[
 SessionTime[] - T0, " seconds"]; 
  Print[N[Sqrt[a^2 + b^2], prec]]; Print[DateString[]]; 

See attached 10000MKB.pdf and 10KMKB.nb for work and digits.

On May 5, I computed another 10,000 digits in 9.55 hours see attached faster10KMKB.

On May 6, I computed another 10,000 digits in a blistering fast 5.1 hours see attached fastest10KMKB.nb.

On May 9, I improved that timing to 4.8 hours (17355 seconds). Here is the code I used:

d = 15; f[x_] = x^(1/x); ClearAll[a, b, h];
h[n_] := Sum[
  StirlingS1[n, k]*Sum[(-j)^(k - j)*Binomial[k, j], {j, 0, k}], {k, 1,
    n}]; h[0] = 1; g = 
 2 I/Pi - Sum[-I^(n + 1) h[n]/Pi^(n + 1), {n, 1, d}]; Print[
 DateString[]];
Print[T0 = SessionTime[]]; prec = 10000;
Print[N[a = -Re[g] + (1/Pi)^(d + 1)*
      NIntegrate[
       Simplify[Cos[Pi*x]*D[f[x], {x, d + 1}]], {x, 1, Infinity}, 
       WorkingPrecision -> prec*(105/100), 
       PrecisionGoal -> prec*(105/100)], prec]];
Print[SessionTime[] - T0, " seconds"];
Print[N[b = 
    Im[g] - (1/Pi)^(d + 1)*
      NIntegrate[
       Simplify[Sin[Pi*x]*D[f[x], {x, d + 1}]], {x, 1, Infinity}, 
       WorkingPrecision -> prec*(105/100), 
       PrecisionGoal -> prec*(105/100)], prec]];
Print[SessionTime[] - T0, " seconds"]; Print[
 N[Sqrt[a^2 + b^2], prec]]; Print[DateString[]];

April 20, 2015

FelisPhasma has been helpful in providing me with a little competition in computing the integral analog of the MRB constant. See https://github.com/FelisPhasma/MKB-Constant.

I've never done this before. But I so much would like to see others breaking these records that I'm going to give away a program that is practically guaranteed to break my record of 10,000 digits, for the integral analog of the MRB constant in a day or so. The program could use some "clean up" if you care to go that far. (The imaginary part is given as a positive, real constant: it actually starts with a negative sign and of course ends with I.)

Here it is:

f[x_] = x^(1/x); Print[DateString[]]; Print[
 T0 = SessionTime[]]; prec = 11000; Timing[
 Print[a = 
   N[Re[(633666648 I)/\[Pi]^13 - 
       33137280/\[Pi]^12 - ((824760 I)/\[Pi]^11) - 
       136584/\[Pi]^10 - (34784 I)/\[Pi]^9 + 
       5670/\[Pi]^8 + (786 I)/\[Pi]^7 - 90/\[Pi]^6 - (4 I)/\[Pi]^5 - 
       3/\[Pi]^4 - (2 I)/\[Pi]^3 + 
       1/\[Pi]^2 - (2 I)/\[Pi]] + (1/Pi)^12*
      NIntegrate[Cos[Pi x]*D[f[x], {x, 12}], {x, 1, Infinity}, 
       WorkingPrecision -> prec, PrecisionGoal -> prec], prec]];
 Print[SessionTime[] - T0, " seconds"];
 Print[N[b = -Im[(633666648 I)/\[Pi]^13 - 
        33137280/\[Pi]^12 - ((824760 I)/\[Pi]^11) - 
        136584/\[Pi]^10 - (34784 I)/\[Pi]^9 + 
        5670/\[Pi]^8 + (786 I)/\[Pi]^7 + 90/\[Pi]^6 - (4 I)/\[Pi]^5 - 
        3/\[Pi]^4 - (2 I)/\[Pi]^3 + 
        1/\[Pi]^2 - (2 I)/\[Pi]] - (1/Pi)^13*
      NIntegrate[Cos[Pi x]*D[f[x], {x, 13}], {x, 1, Infinity}, 
       WorkingPrecision -> prec, PrecisionGoal -> prec], 
   prec]]]; Print[SessionTime[] - T0, " seconds"]; Print[
 N[Sqrt[a^2 + b^2], prec]]; Print[DateString[]];

Will anyone let me know you are running this program to break my record?

Edit: On Sat 2 May 2015 19:03:45 I started a 15,000 digit, new record computation of the real and imaginary parts and magnitude of the integral analog of the MRB constant, (where the imaginary part is given as a positive, real constant), using the following code.

 f[x_] = x^(1/x); ClearAll[a];
   h[n_] := Sum[
     StirlingS1[n, k]*Sum[(-j)^(k - j)*Binomial[k, j], {j, 0, k}], {k, 1,
       n}]; h[0] = 1; g = -2 I/Pi + 
     Sum[-I^(n + 1) h[n]/Pi^(n + 1), {n, 1, 18}]; Print[DateString[]];
   Print[T0 = SessionTime[]]; prec = 15000;
   Print[N[a = 
       Re[g] + (1/Pi)^19*
         NIntegrate[
          Simplify[Sin[Pi*x]*D[f[x], {x, 19}]], {x, 1, Infinity}, 
          WorkingPrecision -> prec*(105/100), 
          PrecisionGoal -> prec*(105/100)], prec]];
   Print[SessionTime[] - T0, " seconds"];
   Print[N[b = -Im[g] + (1/Pi)^19*
         NIntegrate[
          Simplify[Cos[Pi*x]*D[f[x], {x, 19}]], {x, 1, Infinity}, 
          WorkingPrecision -> prec*(105/100), 
          PrecisionGoal -> prec*(105/100)], prec]];
   Print[SessionTime[] - T0, " seconds"]; Print[
    N[Sqrt[a^2 + b^2], prec]]; Print[DateString[]];

The formula behind this computation is enter image description here

Edit: The program took 33.75 hours, The full run is attached in 15KMKB3.nb.

Edit May 9, 2015: I better than halved my time! I computed 15000 digits in 14.83 hours. See fastestMKB15K.nb/. The faster formula is

enter image description here

If you still want me to write out a code for more digits, for you to break that record, let me know.

May 11, 2015

Still talking about the integral analog of the MRB constant:enter image description here

Here are my speed records -- can you beat any of them?

enter image description here

Here is a graph of those speed records with a trendline:

enter image description here

The 20,000 digit run is attached as MKB20K.nb, and MKB20K.pdf,

Here is the algorithm used:

enter image description here

Here is the code:

d = 30; f[x_] = x^(1/x); ClearAll[a, b, h];
a[n_] := Sum[
  StirlingS1[n, k]*Sum[(-j)^(k - j)*Binomial[k, j], {j, 0, k}], {k, 1,
    n}]; a[0] = 1; g = 
 2 I/Pi - Sum[-I^(n + 1) a[n]/Pi^(n + 1), {n, 1, d}]; Print[
 DateString[]];
Print[T0 = SessionTime[]]; prec = 20000;
Print[N[a = -Re[g] - (1/Pi)^(d)*
      NIntegrate[
       Simplify[Cos[Pi*x]*D[f[x], {x, d}]], {x, 1, Infinity}, 
       WorkingPrecision -> prec*(105/100), 
       PrecisionGoal -> prec*(105/100)], prec]];
Print[SessionTime[] - T0, " seconds"];
Print[N[b = 
    Im[g] + (1/Pi)^(d + 1)*
      NIntegrate[
       Simplify[Cos[Pi*x]*D[f[x], {x, d + 1}]], {x, 1, Infinity}, 
       WorkingPrecision -> prec*(105/100), 
       PrecisionGoal -> prec*(105/100)], prec]];
Print[SessionTime[] - T0, " seconds"]; Print[
 N[Sqrt[a^2 + b^2], prec]]; Print[DateString[]];

I just now completed a 25,000 digit computation. It took 63.7 hours and confirmed the 20,000 digits. I updated MKB20K.nb and MKB20K.pdf. Here is the algorithm and the code I used:

enter image description here

d = 35; f[x_] = x^(1/x); ClearAll[a, b, h];
h[n_] := Sum[
  StirlingS1[n, k]*Sum[(-j)^(k - j)*Binomial[k, j], {j, 0, k}], {k, 1,
    n}]; h[0] = 1; g = 
 2 I/Pi - Sum[-I^(n + 1) h[n]/Pi^(n + 1), {n, 1, d}]; Print[
 DateString[]];
Print[T0 = SessionTime[]]; prec = 25000;
Print[N[a = -Re[g] + (1/Pi)^(d + 1)*
      NIntegrate[
       Simplify[Cos[Pi*x]*D[f[x], {x, d + 1}]], {x, 1, Infinity}, 
       WorkingPrecision -> prec*(105/100), 
       PrecisionGoal -> prec*(105/100)], prec]];
Print[SessionTime[] - T0, " seconds"];
Print[N[b = 
    Im[g] - (1/Pi)^(d + 1)*
      NIntegrate[
       Simplify[Sin[Pi*x]*D[f[x], {x, d + 1}]], {x, 1, Infinity}, 
       WorkingPrecision -> prec*(105/100), 
       PrecisionGoal -> prec*(105/100)], prec]];
Print[SessionTime[] - T0, " seconds"]; Print[
 N[Sqrt[a^2 + b^2], prec]]; Print[DateString[]];

Here is new a graph of those speed records with a trendline: enter image description here

Edit:

On Tue 26 May 2015 06:21:00, I started a 30,000 digit computation using the following code.

Does anyone else want to try to break the record?

 $MaxExtraPrecision = 100; d = 43; f[x_] = x^(1/x); ClearAll[a, b, h];
h[n_] := Sum[
  StirlingS1[n, k]*Sum[(-j)^(k - j)*Binomial[k, j], {j, 0, k}], {k, 1,
    n}]; h[0] = 1; g = 
 2 I/Pi - Sum[-I^(n + 1) h[n]/Pi^(n + 1), {n, 1, d}]; Print[
 DateString[]];
Print[T0 = SessionTime[]]; prec = 30000;
Print[N[a = -Re[g] + (1/Pi)^(d + 1)*
      NIntegrate[
       Simplify[Cos[Pi*x]*D[f[x], {x, d + 1}]], {x, 1, Infinity}, 
       WorkingPrecision -> prec*(105/100), 
       PrecisionGoal -> prec*(105/100)], prec]];
Print[SessionTime[] - T0, " seconds"];
Print[N[b = 
    Im[g] - (1/Pi)^(d + 1)*
      NIntegrate[
       Simplify[Sin[Pi*x]*D[f[x], {x, d + 1}]], {x, 1, Infinity}, 
       WorkingPrecision -> prec*(105/100), 
       PrecisionGoal -> prec*(105/100)], prec]];
Print[SessionTime[] - T0, " seconds"]; Print[
 N[Sqrt[a^2 + b^2], prec]]; Print[DateString[]];

Edit: My first full 30,0000 run finished on Sun 31 May 2015 00:45:09.

Time span: {"4.767 days", "114.4 hours", "6864 minutes", "411849 seconds"} See attached MKB30K2.nb worksheet.

Here is an updated speed record plot, with a trendline. (I think the 30,000 digit run can be done faster.)

enter image description here

Here is an extensive record of records of computing the integral analog of the MRB constant:

enter image description here

![enter image description here][62]

Here is a graph of those records. (The progression of computed digits is so extreme, it is almost unbelievable!) enter image description here

6

June 5, 2015

I think I came up with a rough program that computes any "prec" digits of the integral analog of the MRB constant. It chooses, d, the best (or close to the best) order of derivative to use in Mathar's algorithm mentioned in a previous post (formula (12) at http://arxiv.org/pdf/0912.3844v3.pdf ), Then uses the appropriate code that integrates the integral analog of the constant. It shows the real and imaginary parts as positive real constants and the value the integral and gives some timings. It could use a lot of cleanups! I hope someone can help me test it with varying values of prec. Please reply with your intentions to use it and the results. If no one else can clean it up I will after I tested it more.

prec = 2000; d = Ceiling[0.264086 + 0.00143657 prec]; If[
 Mod[d, 4] == 0, f[x_] = x^(1/x); ClearAll[a, b, h];
 a[n_] := 
  Sum[StirlingS1[n, k]*
    Sum[(-j)^(k - j)*Binomial[k, j], {j, 0, k}], {k, 1, n}]; a[0] = 1;
 g = 2 I/Pi - Sum[-I^(n + 1) a[n]/Pi^(n + 1), {n, 1, d}];
 Print[DateString[]];
 Print[T0 = SessionTime[]];
 Print[N[a = -Re[g] - (1/Pi)^(d + 1)*
      NIntegrate[
       Simplify[Sin[Pi*x]*D[f[x], {x, d + 1}]], {x, 1, Infinity}, 
       WorkingPrecision -> prec*(105/100), 
       PrecisionGoal -> prec*(105/100)], prec]];
 Print[SessionTime[] - T0, " seconds"];
 Print[N[b = 
    Im[g] - (1/Pi)^(d + 1)*
      NIntegrate[
       Simplify[Cos[Pi*x]*D[f[x], {x, d + 1}]], {x, 1, Infinity}, 
       WorkingPrecision -> prec*(105/100), 
       PrecisionGoal -> prec*(105/100)], prec]];
 Print[SessionTime[] - T0, " seconds"];
 Print[N[Sqrt[a^2 + b^2], prec]]; Print[DateString[]];, 
 If[Mod[d, 4] == 1, f[x_] = x^(1/x); ClearAll[a, b, h];
  h[n_] := 
   Sum[StirlingS1[n, k]*
     Sum[(-j)^(k - j)*Binomial[k, j], {j, 0, k}], {k, 1, n}];
  h[0] = 1; g = 2 I/Pi - Sum[-I^(n + 1) h[n]/Pi^(n + 1), {n, 1, d}];
  Print[DateString[]];
  Print[T0 = SessionTime[]];
  Print[N[
    a = -Re[g] - (1/Pi)^(d + 1)*
       NIntegrate[
        Simplify[Cos[Pi*x]*D[f[x], {x, d + 1}]], {x, 1, Infinity}, 
        WorkingPrecision -> prec*(105/100), 
        PrecisionGoal -> prec*(105/100)], prec]];
  Print[SessionTime[] - T0, " seconds"];
  Print[N[
    b = Im[g] + (1/Pi)^(d + 1)*
       NIntegrate[
        Simplify[Sin[Pi*x]*D[f[x], {x, d + 1}]], {x, 1, Infinity}, 
        WorkingPrecision -> prec*(105/100), 
        PrecisionGoal -> prec*(105/100)], prec]];
  Print[SessionTime[] - T0, " seconds"];
  Print[N[Sqrt[a^2 + b^2], prec]]; Print[DateString[]];, 
  If[Mod[d, 4] == 2, f[x_] = x^(1/x); ClearAll[a, b, h];
   a[n_] := 
    Sum[StirlingS1[n, k]*
      Sum[(-j)^(k - j)*Binomial[k, j], {j, 0, k}], {k, 1, n}];
   a[0] = 1; g = 2 I/Pi - Sum[-I^(n + 1) a[n]/Pi^(n + 1), {n, 1, d}];
   Print[DateString[]];
   Print[T0 = SessionTime[]];
   Print[N[
     a = -Re[g] - (1/Pi)^(d)*
        NIntegrate[
         Simplify[Cos[Pi*x]*D[f[x], {x, d}]], {x, 1, Infinity}, 
         WorkingPrecision -> prec*(105/100), 
         PrecisionGoal -> prec*(105/100)], prec]];
   Print[SessionTime[] - T0, " seconds"];
   Print[N[
     b = Im[g] + (1/Pi)^(d + 1)*
        NIntegrate[
         Simplify[Cos[Pi*x]*D[f[x], {x, d + 1}]], {x, 1, Infinity}, 
         WorkingPrecision -> prec*(105/100), 
         PrecisionGoal -> prec*(105/100)], prec]];
   Print[SessionTime[] - T0, " seconds"];
   Print[N[Sqrt[a^2 + b^2], prec]]; Print[DateString[]];, 
   If[Mod[d, 4] == 3, f[x_] = x^(1/x); ClearAll[a, b, h];
    h[n_] := 
     Sum[StirlingS1[n, k]*
       Sum[(-j)^(k - j)*Binomial[k, j], {j, 0, k}], {k, 1, n}];
    h[0] = 1; g = 2 I/Pi - Sum[-I^(n + 1) h[n]/Pi^(n + 1), {n, 1, d}];
    Print[DateString[]];
    Print[T0 = SessionTime[]];
    Print[
     N[a = -Re[g] + (1/Pi)^(d + 1)*
         NIntegrate[
          Simplify[Cos[Pi*x]*D[f[x], {x, d + 1}]], {x, 1, Infinity}, 
          WorkingPrecision -> prec*(105/100), 
          PrecisionGoal -> prec*(105/100)], prec]];
    Print[SessionTime[] - T0, " seconds"];
    Print[
     N[b = Im[g] - (1/Pi)^(d + 1)*
         NIntegrate[
          Simplify[Sin[Pi*x]*D[f[x], {x, d + 1}]], {x, 1, Infinity}, 
          WorkingPrecision -> prec*(105/100), 
          PrecisionGoal -> prec*(105/100)], prec]];
    Print[SessionTime[] - T0, " seconds"];
    Print[N[Sqrt[a^2 + b^2], prec]]; Print[DateString[]];]]]]

Here are some of my best timings to compare with the program's results:

digits  seconds
1000    38.8650545
2000    437.4906125
3000    889.473875
4000    1586.000714
5000    2802.591704
6000    4569.41586
7000    6891.057587
8000    9659.318566
9000    13491.43967
10000   17355
11000   
12000   
13000   
14000   
15000   53385.02323
16000   
17000   
18000   
19000   
20000   123876.4331
21000   
22000   
23000   
24000   
25000   229130.3088
26000   
27000   
28000   
29000   
30000   411848.6322

Edit: On Fri 5 Jun 2015 20:41:45 I started a 35,000 digit computation with the above "automated" program.

Edit: The 35,000 digit computation should be done by 10:24:38 am EDT | Sunday, June 14, 2015. In the above "automated" program I forgot to adjust the MaxExtraPrecision, but that shouldn't affect the accuracy in that program. It already computed the real part of the integral to 35,000 digits and the first 30,000 of those are the same as the real part of my previously mentioned 30,000 digit calculation. I will keep you posted.

Edit: The 35,000 digit computation finished on Sun 14 Jun 2015 06:52:29, taking 727844 seconds. It is attached as 35KMKB.nb. The first 30,000 digits of those are the same as the ones of my previously mentioned 30,000 digit calculation. (That shows the computation didn't take any "wild" turns because of the lack of MaxExtraPrecision.) Further, it is a good check of the 30,000 digit run, as all of the bigger computations are of the smaller because they all are calculated with distinct formulas using different orders of the derivative of x^(1/x).

Feb 28, 2016

For 2000 digits Mathematica 10. 2.0 shows some remarkable improvement over 10.1.2 with the above "automated program" for computing the digits of the integral analog of the MRB constant.

I will post some speed records that are strictly what the program produces in V 10.2.0, below, no picking and choosing of the methods by a human being. Some results will naturally be slower than my previously mentioned speed records, because I tried so very many methods and recorded only the fastest results.

digits          seconds

2000    256.3853590 
3000    794.4361122
4000       1633.5822870
5000        2858.9390025
10000      17678.7446323 
20000      121431.1895170
40000       I got error msg

to be continued

I have to change the program for 40,000 digits! I'll post the new program when I get 40,000 to work.

As of Wed 29 Jul 2015 11:40:10, one of my computers was happily and busily churning away at 40,000 digits of the integral analog of the MRB constant, using the following formula.

Edit: Mathematica crashed at 11:07 PM 8/4/2016

(I used MKB as a symbol for the integral analog because it is called the MKB constant. You can find the name MKB constant at http://www.ebyte.it/library/educards/constants/MathConstants.html .) If you can weed through my code, at the bottom of this reply, you might want to check the formula for the placement of pluses, minuses, and imaginary units!!! A little hint when checking if the formula matches the code, d is 80 so Mod[d,4] =0.

f[x_] = x^(1/x) : a[n_] := 
  Sum[StirlingS1[n, k]*
    Sum[(-j)^(k - j)*Binomial[k, j], {j, 0, k}], {k, 1, n}]; a[0] = 1;
g = 2 I/Pi - Sum[-I^(n + 1) a[n]/Pi^(n + 1), {n, 1, 80}]
MKB = -g + (I/Pi)^81*
   Integrate[f[x]*D[f[x], {x, 81}], {x, 1, Infinity}]

Here is the code,cleaned up a little: This is the version from Aug 6, 2015 452 pm; for the first time the imaginary part is signed and shown to be multiplied by the imaginary unit!

Block[{$MaxExtraPrecision = 200}, prec = 4000; f[x_] = x^(1/x);
 ClearAll[a, b, h];
 Print[DateString[]];
 Print[T0 = SessionTime[]];

 If[prec > 35000, d = Ceiling[0.002 prec], 
  d = Ceiling[0.264086 + 0.00143657 prec]];

 h[n_] := 
  Sum[StirlingS1[n, k]*
    Sum[(-j)^(k - j)*Binomial[k, j], {j, 0, k}], {k, 1, n}];

 h[0] = 1;
 g = 2 I/Pi - Sum[-I^(n + 1) h[n]/Pi^(n + 1), {n, 1, d}];

 sinplus1 := 
  NIntegrate[
   Simplify[Sin[Pi*x]*D[f[x], {x, d + 1}]], {x, 1, Infinity}, 
   WorkingPrecision -> prec*(105/100), 
   PrecisionGoal -> prec*(105/100)];

 cosplus1 := 
  NIntegrate[
   Simplify[Cos[Pi*x]*D[f[x], {x, d + 1}]], {x, 1, Infinity}, 
   WorkingPrecision -> prec*(105/100), 
   PrecisionGoal -> prec*(105/100)];

 middle := Print[SessionTime[] - T0, " seconds"];

 end := Module[{}, Print[SessionTime[] - T0, " seconds"];
   Print[c = Abs[a + b]]; Print[DateString[]]];


 If[Mod[d, 4] == 0, 
  Print[N[a = -Re[g] - (1/Pi)^(d + 1)*sinplus1, prec]];
  middle;
  Print[N[b = -I (Im[g] - (1/Pi)^(d + 1)*cosplus1), prec]];
  end];


 If[Mod[d, 4] == 1, 
  Print[N[a = -Re[g] - (1/Pi)^(d + 1)*cosplus1, prec]];
  middle;
  Print[N[b = -I (Im[g] + (1/Pi)^(d + 1)*sinplus1), prec]]; end];

 If[Mod[d, 4] == 2, 
  Print[N[a = -Re[g] + (1/Pi)^(d + 1)*sinplus1, prec]];
  middle;
  Print[N[b = -I (Im[g] + (1/Pi)^(d + 1)*cosplus1), prec]];
  end];

 If[Mod[d, 4] == 3, 
  Print[N[a = -Re[g] + (1/Pi)^(d + 1)*cosplus1, prec]];
  middle;
  Print[N[b = -I (Im[g] - (1/Pi)^(d + 1)*sinplus1), prec]];
  end];]

Come back to see if I decided whether to try the 40K run again.

EDIT: It looks like I've only got one more test for the program (if it passes) before I retry the 40,000 digit calculation!

EDIT: On Thu 6 Aug 2015 17:23:18, I restarted the 40K run with Windows 10.

EDIT: My first thought was the program took up too much RAM, apparently over 115 GB! ( I have 64GB installed and a 51 GB paging file; nevertheless, Windows 10 closed the Mathematica kernel to keep the computer from losing data. Can someone else try the 40K run on their computer? It should take 2 weeks on a fast one. Please let me know if you try it and let me know the results, so I will know I don't have a problem with my computer., If two weeks is too great of a commitment, can you try taking note on the RAM used for two progressively larger runs, like 20K and 30 K? I will do the same, and we can compare notes. Thank You!

EDIT: I've been monitoring memory usage for smaller runs and found the program only uses minimal memory! This makes the action of Windows 10 (closing Mathematica kernel to avoid data loss) all the more a mystery! Could the 40K run really use up all of that RAM?

I know there are quite a few of you viewing this post; however, is anyone out there working on these calculations?.

Aug 10, 2016

V. 11 is about 1.25 times faster than my newest program for calculating MKB, (the integral analog of the MRB sum). V 10. 4 calculated 20,000 digits in 121431.1895170 seconds and V 11 did it in 96979.6545388 seconds. I've got a little more testing to do, (about 1 day's worth), then I'll try 40,000 digits again, which should take about 12 days. I will post all my updates here, so you might want to save this message as a favorite so you won't lose it.

Update 1

The 40 K automatically started against my wishes on Thu 11 Aug 2016 15:42:08, (due to my pasting two codes at once). I'll keep you informed, how it goes.

Update 2

Windows 10 is pushing an update. Wednesday is the latest it will let me restart. I will restart now with all the updates I can get, Then deffer further ones and hopefully get 12 restart free days to do my 40K.

Update 3

I ran all the updates I could find, differed further ones and restarted 40K on Sun 14 Aug 2016 10:32:40.

Update 4

Widows 10 stopped the calculation! AGAIN! Can anyone else try it and see if you get anywhere? Here is my latest code:

(*Other program:For large calculations.Tested for 1000-35000 digits-- \
see post at \
http://community.wolfram.com/groups/-/m/t/366628?p_p_auth=KA7y1gD4 \
and search for "analog" to find pertinent replies.Designed to include \
40000 digits.A157852 is saved as c,the real part as a and the \
imaginary part as b.*)Block[{$MaxExtraPrecision = 200}, 
 prec = 40000(*Replace 40000 with number of desired digits.40000 \
digits should take two weeks on a 3.5 GH Pentium processor.*); 
 f[x_] = x^(1/x);
 ClearAll[a, b, h];
 Print[DateString[]];
 Print[T0 = SessionTime[]];
 If[prec > 35000, d = Ceiling[0.002 prec], 
  d = Ceiling[0.264086 + 0.00143657 prec]];
 h[n_] := 
  Sum[StirlingS1[n, k]*
    Sum[(-j)^(k - j)*Binomial[k, j], {j, 0, k}], {k, 1, n}];
 h[0] = 1;
 g = 2 I/Pi - Sum[-I^(n + 1) h[n]/Pi^(n + 1), {n, 1, d}];
 sinplus1 := 
  NIntegrate[
   Simplify[Sin[Pi*x]*D[f[x], {x, d + 1}]], {x, 1, Infinity}, 
   WorkingPrecision -> prec*(105/100), 
   PrecisionGoal -> prec*(105/100)];
 cosplus1 := 
  NIntegrate[
   Simplify[Cos[Pi*x]*D[f[x], {x, d + 1}]], {x, 1, Infinity}, 
   WorkingPrecision -> prec*(105/100), 
   PrecisionGoal -> prec*(105/100)];
 middle := Print[SessionTime[] - T0, " seconds"];
 end := Module[{}, Print[SessionTime[] - T0, " seconds"];
   Print[c = Abs[a + b]]; Print[DateString[]]];
 If[Mod[d, 4] == 0, 
  Print[N[a = -Re[g] - (1/Pi)^(d + 1)*sinplus1, prec]];
  middle;
  Print[N[b = -I (Im[g] - (1/Pi)^(d + 1)*cosplus1), prec]];
  end];
 If[Mod[d, 4] == 1, 
  Print[N[a = -Re[g] - (1/Pi)^(d + 1)*cosplus1, prec]];
  middle;
  Print[N[b = -I (Im[g] + (1/Pi)^(d + 1)*sinplus1), prec]]; end];
 If[Mod[d, 4] == 2, 
  Print[N[a = -Re[g] + (1/Pi)^(d + 1)*sinplus1, prec]];
  middle;
  Print[N[b = -I (Im[g] + (1/Pi)^(d + 1)*cosplus1), prec]];
  end];
 If[Mod[d, 4] == 3, 
  Print[N[a = -Re[g] + (1/Pi)^(d + 1)*cosplus1, prec]];
  middle;
  Print[N[b = -I (Im[g] - (1/Pi)^(d + 1)*sinplus1), prec]];
  end];] (*Marvin Ray Burns,Aug 06 2015*)

Sometime in 2017,

To try to get windows 10 from closing Mathematica during the computation I tried the instructions found at https://www.autoitscript.com/forum/topic/177749-stopping-windows-10-from-auto-closing-programs-to-free-up-ram/ . I will record progress in this spot as I did before.

UPDATE I followed the memory usage on my computer and it did use around 64 GB of RAM. And then Windows closed down the Mathematica kernel. I assume that If I can ever afford to maximize my RAM to its 128GB limit the computation will be successful!

Anyone have better luck?

Nov 2017

Concentrating on integral analog of the MRB constant:

Search "integral analog" in the above messages for the understanding of the integral analog of the MRB constant. And search "For 2000 digits Mathematica 10. 2.0" for my history of calculating 40,000 digits of it.

. The basic program I wrote to calculate the Integral analog of the MRB constant is

(*Other program:For large calculations.Tested for 1000-35000 digits-- \
see post at \
http://community.wolfram.com/groups/-/m/t/366628?p_p_auth=KA7y1gD4 \
and search for "analog" to find pertinent replies.Designed to include \
40000 digits.A157852 is saved as c,the real part as a and the \
imaginary part as b.*)Block[{$MaxExtraPrecision = 200}, 
 prec = 40000(*Replace 40000 with number of desired digits.40000 \
digits should take two weeks on a 3.5 GH Pentium processor.*);
 f[x_] = x^(1/x);
 ClearAll[a, b, h];
 Print[DateString[]];
 Print[T0 = SessionTime[]];
 If[prec > 35000, d = Ceiling[0.264086 + 0.0017 prec], 
  d = Ceiling[0.264086 + 0.00143657 prec]];
 h[n_] := 
  Sum[StirlingS1[n, k]*
    Sum[(-j)^(k - j)*Binomial[k, j], {j, 0, k}], {k, 1, n}];
 h[0] = 1;
 g = 2 I/Pi - Sum[-I^(n + 1) h[n]/Pi^(n + 1), {n, 1, d}];
 sinplus1 := 
  NIntegrate[
   Simplify[Sin[Pi*x]*D[f[x], {x, d + 1}]], {x, 1, Infinity}, 
   WorkingPrecision -> prec*(105/100), 
   PrecisionGoal -> prec*(105/100)];
 cosplus1 := 
  NIntegrate[
   Simplify[Cos[Pi*x]*D[f[x], {x, d + 1}]], {x, 1, Infinity}, 
   WorkingPrecision -> prec*(105/100), 
   PrecisionGoal -> prec*(105/100)];
 middle := Print[SessionTime[] - T0, " seconds"];
 end := Module[{}, Print[SessionTime[] - T0, " seconds"];
   Print[c = Abs[a + b]]; Print[DateString[]]];
 If[Mod[d, 4] == 0, 
  Print[N[a = -Re[g] - (1/Pi)^(d + 1)*sinplus1, prec]];
  middle;
  Print[N[b = -I (Im[g] - (1/Pi)^(d + 1)*cosplus1), prec]];
  end];
 If[Mod[d, 4] == 1, 
  Print[N[a = -Re[g] - (1/Pi)^(d + 1)*cosplus1, prec]];
  middle;
  Print[N[b = -I (Im[g] + (1/Pi)^(d + 1)*sinplus1), prec]]; end];
 If[Mod[d, 4] == 2, 
  Print[N[a = -Re[g] + (1/Pi)^(d + 1)*sinplus1, prec]];
  middle;
  Print[N[b = -I (Im[g] + (1/Pi)^(d + 1)*cosplus1), prec]];
  end];
 If[Mod[d, 4] == 3, 
  Print[N[a = -Re[g] + (1/Pi)^(d + 1)*cosplus1, prec]];
  middle;
  Print[N[b = -I (Im[g] - (1/Pi)^(d + 1)*sinplus1), prec]];
  end];] (*Marvin Ray Burns,

I think I found out why the integral analog of the MRB constant is so hard to calculate to prec=40000 digits! I've been using too high of an order of the derivative of x^(1/x). I've been running out of memory because of using the 80th derivative from d = Ceiling[0.002 prec], because the 58th derivative from Ceiling[0.264086 + 0.00143657 prec] was apparently too small leaving an error statement. I just now asked myself, why make such a big jump? When my big computer gets back from its tuneup I think I will try Ceiling[0.00146 prec] = 59th derivative.

EDIT

I tried Ceiling[0.00146 prec] and Ceiling[0.00145 prec] in Mathematica 11.0 and lost the kernel both times after 6 - 12 hours!

I'm now trying Ceiling[0.0017 prec] with v 10.4. It's been over 12 hours and I've not lost the kernel yet. Wish me luck!

EDIT

I got the following error message and a real part that does not agree with previous computations.

"NIntegrate failed to converge to prescribed accuracy after 9 recursive bisections in x near {x} = {<<42008>>}. NIntegrate obtained -<<42012>> and <<42014>> for the integral and error estimates."

I'm now trying Ceiling[0.0018 prec] with v 10.4....

Ceiling[0.0018 prec] with v 10.4 gave the same error.

I'm working on a new program that uses less memory; stay tuned!

March 13, 2018

I'm now trying Ceiling[0.0019 prec] with v 11.2...., on Mon 12 Mar 2018 05:40:13 Here is a record of the memory used by the program. At times the computer may use significantly more.

"Mon 12 Mar 2018 10:30:00" 14 GB DDR3 RAM

"Mon 12 Mar 2018 13:00:00" 15 GB DDR3 RAM

"Mon 12 Mar 2018 14:00:00" 16 GB DDR3 RAM

"Mon 12 Mar 2018 14:30:00" 17 GB DDR3 RAM

"Mon 12 Mar 2018 15:00:00" 18 GB DDR3 RAM

"Mon 12 Mar 2018 22:30:00" 24 GB DDR3 RAM

"Mon 12 Mar 2018 24:00:00" 26 GB DDR3 RAM

"Tue 13 Mar 2018 06:30:00" 33 GB DDR3 RAM

"Tue 13 Mar 2018 07:30:00" 14 GB DDR3 RAM

"Tue 13 Mar 2018 08:00:00" 15 GB DDR3 RAM

"Tue 13 Mar 2018 08:30:00" 16 GB DDR3 RAM

"Tue 13 Mar 2018 11:30:00" 19 GB DDR3 RAM

"Tue 13 Mar 2018 12:00:00" 20 GB DDR3 RAM

"Tue 13 Mar 2018 14:00:00" 22 GB DDR3 RAM

"Tue 13 Mar 2018 14:30:00" 5 GB DDR3 RAM

"Tue 13 Mar 2018 15:00:00" 6 GB DDR3 RAM

"Tue 13 Mar 2018 16:30:00" 8 GB DDR3 RAM

"Tue 13 Mar 2018 18:30:00" 11 GB DDR3 RAM

"Tue 13 Mar 2018 19:30:00" 13 GB DDR3 RAM

"Tue 13 Mar 2018 20:30:00" 14 GB DDR3 RAM

"Tue 13 Mar 2018 21:00:00" 8 GB DDR3 RAM

"Tue 13 Mar 2018 21:30:00" 11 GB DDR3 RAM

"Wed 14 Mar 2018 07:30:00" 26 GB DDR3 RAM

"Wed 14 Mar 2018 07:30:00" 26 GB DDR3 RAM

"Wed 14 Mar 2018 08:00:00" 25 GB DDR3 RAM.Total used by programs 44.54 GB DDR3 RAM.

"Wed 14 Mar 2018 20:00:00" 37 GB DDR3 RAM.Total used by programs 40.32 GB DDR3 RAM.

"Thu 15 Mar 2018 08:00:00" 0 GB DDR3 RAM.Total used by programs 3.84 GB DDR3 RAM.

Update:

V 11.2 cut off its kernel sometime between "Mon 14 Mar 2018 20:00:00" and "Mon 15 Mar 2018 08:00:00."

It seems to me that V11 under Windows 10 cuts off my RAM-intensive operations.

The last success I had was using V10.2 under Windows 7. I am trying that combination again, this time for the 40 k digits. Below is the code I used then and am using now. At first, I just changed only "prec=35000" to "prac=40000" and got an errant answer for the real part. And I got memory use starting out at

"Thu 15 Mar 2018 08:53:47" 0.3 GB, total computer use 3.84 GB

"Thu 15 Mar 2018 11:48:47" 04.3 GB, total computer use 7.68 GB

"Thu 15 Mar 2018 13:00:00" 01.3 GB, total computer use 5.12 GB

"Thu 15 Mar 2018 14:00:00" 01.3 GB, total computer use 5.12 GB

So now I also changed the coefficient of prec from "d = Ceiling[0.264086 + 0.00143657 prec]" to "d = Ceiling[ 0.002 prec]." I think I can get by with .002 because 10.3 in Windows 7 seems to use less memory that the V 11's in Windows 10.

prec = 40000; d = Ceiling[0.002 prec]; If[Mod[d, 4] == 0, 
 f[x_] = x^(1/x); ClearAll[a, b, h];
 a[n_] := 
  Sum[StirlingS1[n, k]*
    Sum[(-j)^(k - j)*Binomial[k, j], {j, 0, k}], {k, 1, n}]; a[0] = 1;
 g = 2 I/Pi - Sum[-I^(n + 1) a[n]/Pi^(n + 1), {n, 1, d}];
 Print[DateString[]];
 Print[T0 = SessionTime[]];
 Print[N[a = -Re[g] - (1/Pi)^(d + 1)*
      NIntegrate[
       Simplify[Sin[Pi*x]*D[f[x], {x, d + 1}]], {x, 1, Infinity}, 
       WorkingPrecision -> prec*(105/100), 
       PrecisionGoal -> prec*(105/100)], prec]];
 Print[SessionTime[] - T0, " seconds"];
 Print[N[b = 
    Im[g] - (1/Pi)^(d + 1)*
      NIntegrate[
       Simplify[Cos[Pi*x]*D[f[x], {x, d + 1}]], {x, 1, Infinity}, 
       WorkingPrecision -> prec*(105/100), 
       PrecisionGoal -> prec*(105/100)], prec]];
 Print[SessionTime[] - T0, " seconds"];
 Print[N[Sqrt[a^2 + b^2], prec]]; Print[DateString[]];, 
 If[Mod[d, 4] == 1, f[x_] = x^(1/x); ClearAll[a, b, h];
  h[n_] := 
   Sum[StirlingS1[n, k]*
     Sum[(-j)^(k - j)*Binomial[k, j], {j, 0, k}], {k, 1, n}];
  h[0] = 1; g = 2 I/Pi - Sum[-I^(n + 1) h[n]/Pi^(n + 1), {n, 1, d}];
  Print[DateString[]];
  Print[T0 = SessionTime[]];
  Print[N[
    a = -Re[g] - (1/Pi)^(d + 1)*
       NIntegrate[
        Simplify[Cos[Pi*x]*D[f[x], {x, d + 1}]], {x, 1, Infinity}, 
        WorkingPrecision -> prec*(105/100), 
        PrecisionGoal -> prec*(105/100)], prec]];
  Print[SessionTime[] - T0, " seconds"];
  Print[N[
    b = Im[g] + (1/Pi)^(d + 1)*
       NIntegrate[
        Simplify[Sin[Pi*x]*D[f[x], {x, d + 1}]], {x, 1, Infinity}, 
        WorkingPrecision -> prec*(105/100), 
        PrecisionGoal -> prec*(105/100)], prec]];
  Print[SessionTime[] - T0, " seconds"];
  Print[N[Sqrt[a^2 + b^2], prec]]; Print[DateString[]];, 
  If[Mod[d, 4] == 2, f[x_] = x^(1/x); ClearAll[a, b, h];
   a[n_] := 
    Sum[StirlingS1[n, k]*
      Sum[(-j)^(k - j)*Binomial[k, j], {j, 0, k}], {k, 1, n}];
   a[0] = 1; g = 2 I/Pi - Sum[-I^(n + 1) a[n]/Pi^(n + 1), {n, 1, d}];
   Print[DateString[]];
   Print[T0 = SessionTime[]];
   Print[N[
     a = -Re[g] - (1/Pi)^(d)*
        NIntegrate[
         Simplify[Cos[Pi*x]*D[f[x], {x, d}]], {x, 1, Infinity}, 
         WorkingPrecision -> prec*(105/100), 
         PrecisionGoal -> prec*(105/100)], prec]];
   Print[SessionTime[] - T0, " seconds"];
   Print[N[
     b = Im[g] + (1/Pi)^(d + 1)*
        NIntegrate[
         Simplify[Cos[Pi*x]*D[f[x], {x, d + 1}]], {x, 1, Infinity}, 
         WorkingPrecision -> prec*(105/100), 
         PrecisionGoal -> prec*(105/100)], prec]];
   Print[SessionTime[] - T0, " seconds"];
   Print[N[Sqrt[a^2 + b^2], prec]]; Print[DateString[]];, 
   If[Mod[d, 4] == 3, f[x_] = x^(1/x); ClearAll[a, b, h];
    h[n_] := 
     Sum[StirlingS1[n, k]*
       Sum[(-j)^(k - j)*Binomial[k, j], {j, 0, k}], {k, 1, n}];
    h[0] = 1; g = 2 I/Pi - Sum[-I^(n + 1) h[n]/Pi^(n + 1), {n, 1, d}];
    Print[DateString[]];
    Print[T0 = SessionTime[]];
    Print[
     N[a = -Re[g] + (1/Pi)^(d + 1)*
         NIntegrate[
          Simplify[Cos[Pi*x]*D[f[x], {x, d + 1}]], {x, 1, Infinity}, 
          WorkingPrecision -> prec*(105/100), 
          PrecisionGoal -> prec*(105/100)], prec]];
    Print[SessionTime[] - T0, " seconds"];
    Print[
     N[b = Im[g] - (1/Pi)^(d + 1)*
         NIntegrate[
          Simplify[Sin[Pi*x]*D[f[x], {x, d + 1}]], {x, 1, Infinity}, 
          WorkingPrecision -> prec*(105/100), 
          PrecisionGoal -> prec*(105/100)], prec]];
    Print[SessionTime[] - T0, " seconds"];
    Print[N[Sqrt[a^2 + b^2], prec]]; Print[DateString[]];]]]]

Memory use:

"Thu 15 Mar 2018 16:30:46" .3 GB. Total used by programs 3.8 GB.

Here is a break down of the memory use as of 16:45 March 17, 2018

enter image description here

Mar 18, 2018, 8:10 AM

Just in case I run out of memory, I increased the size of my paging file!

enter image description here

"Sun 17 Mar 2018 16:00:00" 15 GB. Total used by programs 49.92 GB.

enter image description here

enter image description here

I no longer believe the V 11's use a lot more memory. If I hadn't increased my paging file Windows would have closed Mathematica already!

enter image description here

I might be slowing the computation down a little, but I don't want to take any chances of running out of memory, so I increased the paging file 1 more time. enter image description here enter image description here The computer has been committing up to 160 GB of total RAM for a while now. enter image description here Finally, the committed memory is going down. enter image description here

My computer is acting real sluggish right now. Mathematica is using a minimum amount of DDR3 RAM, but the computer is still committing a near-record of virtual RAM. enter image description here My computer is acting too funny, so I aborted the evaluation. The kernel remained running and overall memory remained maxed out. I tried to retrieve a and b (the variables with the real and imaginary parts of the solution), but the computer wouldn't recall them for me. The computer won't evaluate any Mathematica operations. I am restarting my computer and inspecting the damage!

Update:

Windows said it found no errors on my hard drive; that's great!

I'm going to replace my Intel 6 core processor with a faster 8 -core Intel Xeon E5-2687W v2 CPU, and add an additional hard drive. The new processor and my motherboard both take 128 GB RAM, but ECC is the only 16G DDR3 mims I can find. I'm not sure if my MSI Big Bang-XPower II will take ECC. 40,000 digits of the integral analog might have to wait for me to get a new system. I am working on a new program to compute the MRB constant in little steps and will use it on my new processor.

POSTED BY: Marvin Ray Burns
34 Replies

Since the original formula for the MKB constant is an integral, its domain is continuous. So, we have the following comparison of it to the original formula of the MRB constant which is a sum. (MKB has many more pairs of terms that are equal to each other.)

The MRB constant = Limit[Sum[(-1)^n n^(1/n),{n,1,2N}],N->Infinity]

In the domain of terms of the MRB constant ask, when are the pairs of terms equal?

•   Limit[x^(1/x) - (x + h)^(1/(x + h)) ,h->Infinity]  == 0 when x=1 because Limit[x^(1/x),x->Infinity]=1.
•   x^(1/x) - (x + 2)^(1/(x + 2)) == 0 when x=2 because 2^(1/2)=4^(1/4).
•   I think there are no more.

The MKB constant = Limit[Integrate[(-1)^x x^(1/x),{x,1,2N}],N->Infinity].

Compare the previous list to one using the domain of terms of the MKB constant, and ask when pairs of terms are equal?

•   For x != 0, x^(1/x) - (x + 0)^(1/(x + 0)) == 0 because, for example, Limit[x^(1/x) - (x + 10^-h)^(1/(x + 10^-h)), h -> Infinity]=0; see last line a special such x.
•   x^(1/x) - (x + 1)^(1/(x + 1)) == 0 when x= 2.2931662874… (By definition Foias’ second constant. See second constant at http://mathworld.wolfram.com/FoiasConstant.html).
•   x^(1/x) - (x + 2)^(1/(x + 2)) == 0 when x=2.
•   x^(1/x) - (x + 3)^(1/(x + 3)) == 0 when x= 1.801627661…
•   x^(1/x) - (x + 4)^(1/(x + 4)) == 0 when x= 1.6647142806…
•   x^(1/x) - (x + 10)^(1/(x + 10)) == 0 when x= 1.3295905071…
•   …
•   x^(1/x) - (x + 100)^(1/(x + 100)) == 0 when x= 1.00697415301373…
•   …
•   Limit[x^(1/x) - (x + h)^(1/(x + h)) ,h->Infinity]  == 0 when x=1 because Limit[x^(1/x),x->Infinity]=1, and that is where the sequence very slowly goes to.
•   Many more.
•   x^(1/x) - (x + 10^-1)^(1/(x +10^- 1)) == 0 when x 2.669048059942…
•   x^(1/x) - (x + 10^-2)^(1/(x + 10^-2)) == 0 when x= 2.713289492595…
•   x^(1/x) - (x + 10^-3)^(1/(x + 10^-3)) == 0 when x= 2.71778190…
•   x^(1/x) - (x + 4)^(1/(x + 4)) == 0 when x= 2.71823182922…
•   …
•   x^(1/x) - (x + 10^-10)^(1/(x + 10^-10)) == 0, when x= 2.718281828…
•   …
•   Many more.
•   Limit[x^(1/x) - (x +10^- h)^(1/(x + 10^-h)) ,h->Infinity]  == 0 when x=E, because that is where the sequence very rapidly goes to!
POSTED BY: Marvin Ray Burns

With

enter image description here

and

enter image description here

Latest:

ClearSystemCache[]; Timing[
  Quiet[NIntegrate[
      Exp[Pi I x] Sum[(Log[x]/x)^n/n!, {n, 1, Infinity}], {x, 1, 
        Infinity I}, WorkingPrecision -> 4453, 
   Method -> "Trapezoidal", 
      MaxRecursion -> 11]]]

gives {134.516,...

More details and results to come.

POSTED BY: Marvin Ray Burns

Latest speed records for the MKB constant

(digits and seconds)

                                                                     [ 2021  Method ]       
           V 10.1.2   V10.3       v11.3   V12.0         V12.1         V12.3       V13.0
1000                                                                    3.3        3.1
 2000        437      256            67      67           58            21          20                
 3000        889      794           217     211          186           84            ?                
4000                   1633         514     492          447           253*          259 (248*)        
 5000                  2858         1005    925          854           386          378                
10000                 17678         8327    7748        7470          2800         2748                
20000                 121,431       71000   66177
40000                                      362,945                   148,817      134,440

* means from a fresh kernel.

V13.0 computations are worked with the 2021 method in this Cloud notebook.

(So, for example, my 10,000 digit computations went from 17,678 seconds to 2,748 seconds.)

They all have been checked to give accurate results.

2022 verification Method is as follows, where prec is the number of digits to be verified by "quenching" Integral] with 1,5,...,4n+1 iterations of the partial integration.

Cloud notebook here. It doesn't work too well in the "Add Notebook" button: enter image description here

Instructions\[IndentingNewLine] with the following hyperlink, go down to "ReMBK200k=" and shift+enter

prec=2000;Quiet[Print["integrating without parts took ",(Timing[(cc=NIntegrate[(Exp[Log[t]/t-Pi t/I]),{t,1,Infinity I},WorkingPrecision->prec,Method->"Trapezoidal",MaxRecursion->Floor[Log[prec]/Log[2]]]-I/Pi)])[[1]], "sec. ","check with 200K ",N[ReMBK200k-Re[cc],20]]];Table[Quiet[Print["integrating by parts for ",4n+1," iteration(s) took ",Timing[Block[{d,h,g,$MaxExtraPrecision=200},f[x_]=x^(1/x);\[IndentingNewLine]d=n*4+1;\[IndentingNewLine]h[n_]:=Sum[StirlingS1[n,k]*Sum[(-j)^(k-j)*Binomial[k,j],{j,0,k}],{k,1,n}];\[IndentingNewLine]h[0]=1;\[IndentingNewLine]g=2 I/Pi-Sum[-I^(n+1) h[n]/Pi^(n+1),{n,1,d}];\[IndentingNewLine]expplus1:=NIntegrate[Simplify[Exp[I Pi*x]*D[f[x],{x,d+1}]],{x,1,Infinity I},WorkingPrecision->prec,PrecisionGoal->prec,Method->"Trapezoidal",MaxRecursion->Floor[Log[prec]/Log[2]]];\[IndentingNewLine]c[n_]=(-g-(1/Pi)^(d+1)*expplus1)]][[1]]," sec.","check with 200K ",N[ReMBK200k-Re[c[n]],20]]],{n,0,1}];\[IndentingNewLine]Print[]

POSTED BY: Marvin Ray Burns

I finally found a sum for the MKB constant! enter image description here enter image description here

See this cloud notebook. In there we see the sixth partial sum:

In[16]:= N[
 MeijerG[{{}, {1, 1}}, {{0, 0, 0}, {}}, -I \[Pi]] - 
  I \[Pi] MeijerG[{{}, {1, 1, 1}}, {{-1, 0, 0, 
      0}, {}}, -I \[Pi]] - \[Pi]^2 MeijerG[{{}, {1, 1, 1, 1}}, {{-2, 
      0, 0, 0, 0}, {}}, -I \[Pi]] + 
  I \[Pi]^3 MeijerG[{{}, {1, 1, 1, 1, 1}}, {{-3, 0, 0, 0, 0, 
      0}, {}}, -I \[Pi]] + \[Pi]^4 MeijerG[{{}, {1, 1, 1, 1, 1, 
      1}}, {{-4, 0, 0, 0, 0, 0, 0}, {}}, -I \[Pi]] - 
  I \[Pi]^5 MeijerG[{{}, {1, 1, 1, 1, 1, 1, 1}}, {{-5, 0, 0, 0, 0, 0, 
      0, 0}, {}}, -I \[Pi]]]

Out[16]= 0.070776 - 0.0473807 I

So now we have sum and integral notation for both the MRB and MKB constants.

enter image description here

In[135]:= 
f[n_] := MeijerG[{{}, 
   Table[1, {n + 1}]}, {Prepend[
    Table[0, n + 1], -n + 1], {}}, -I \[Pi]];

In[144]:= N[Sum[(I/\[Pi])^(1 - n) f[n], {n, 1, 16}]]

Out[144]= 0.070776 - 0.0473806 I

More code and how well it works is at the bottom of this cloud notebook.

Here is the Notebook I used to discover it.

POSTED BY: Marvin Ray Burns

I finally computed 200,000 digits of the MKB constant (0.070776 - 0.684 I...) Started ‎Saturday, ‎May ‎15, ‎2021, ‏‎10 : 54 : 17 AM, and finished 9:23:50 am EDT | Friday, August 20, 2021, for a total of 8.37539*10^6 seconds or 96 days 22 hours 29 minutes 50 seconds.

The full computation, verification to 100,000 digits, and hyperlinks to various digits are found below at 200k MKB A.nb. The code was

g[x_] = x^(1/x); u := (t/(1 - t)); Timing[
 MKB1 = (-I Quiet[
      NIntegrate[(g[(1 + u I)])/(Exp[Pi u] (1 - t)^2), {t, 0, 1}, 
       WorkingPrecision -> 200000, Method -> "DoubleExponential", 
       MaxRecursion -> 17]] - I/Pi)]

I have 2 other codes running to verify all 200,000 digits.

Attachments:
POSTED BY: Marvin Ray Burns

I presented M1 and M2 in the above messages. Some of the formulae mentioned below are new ones for M2 (part 1) as mentioned in the immediately previous message and M1 (part2-i/Pi). enter image description here

POSTED BY: Marvin Ray Burns

we look at formulas previously used for the MKB constant.

POSTED BY: Marvin Ray Burns

The following subtle changes transform M2 to M1.

POSTED BY: Marvin Ray Burns

Here is a summary of my speed records.

First a full quote from a message summarizing the Burns-Mathar method I derived from the work in this paper.

I made a quicker program for calculating the digits of the MKB constant (also called M1, I{2N} or MKB) in V12.1.0 enter image description here

Module[{$MaxExtraPrecision = 200, sinplus1, cosplus1, middle, end, a, 
  b, c, d, g, h}, prec = 5000; f[x_] = x^(1/x);
  Print[DateString[]];
  Print[T0 = SessionTime[]];

   d = Ceiling[0.264086 + 0.00143657 prec];
  h[n_] := 
    Sum[StirlingS1[n, k]*
        Sum[(-j)^(k - j)*Binomial[k, j], {j, 0, k}], {k, 1, n}];
  h[0] = 1;
  g = 2 I/Pi - Sum[-I^(n + 1) h[n]/Pi^(n + 1), {n, 1, d}];
  sinplus1 := Module[{},
     NIntegrate[
       Simplify[Sin[Pi*x]*D[f[x], {x, d + 1}]], {x, 1, Infinity}, 
       WorkingPrecision -> prec*(105/100), 
       PrecisionGoal -> prec*(105/100)]];
  cosplus1 := Module[{},
     NIntegrate[
       Simplify[Cos[Pi*x]*D[f[x], {x, d + 1}]], {x, 1, Infinity}, 
       WorkingPrecision -> prec*(105/100), 
       PrecisionGoal -> prec*(105/100)]];
  middle := Module[{}, Print[SessionTime[] - T0, " seconds"]];
  end := Module[{}, Print[SessionTime[] - T0, " seconds"];
      Print[N[Sqrt[a^2 - b^2], prec]]; Print[DateString[]]];
  If[Mod[d, 4] == 0, 
    Print[N[a = -Re[g] - (1/Pi)^(d + 1)*sinplus1, prec]];
    middle;
    Print[N[b = -I (Im[g] - (1/Pi)^(d + 1)*cosplus1), prec]];
    end];
  If[Mod[d, 4] == 1, 
    Print[N[a = -Re[g] - (1/Pi)^(d + 1)*cosplus1, prec]];
    middle;
    Print[N[b = -I (Im[g] + (1/Pi)^(d + 1)*sinplus1), prec]]; end];
  If[Mod[d, 4] == 2, 
    Print[N[a = -Re[g] + (1/Pi)^(d + 1)*sinplus1, prec]];
    middle;
    Print[N[b = -I (Im[g] + (1/Pi)^(d + 1)*cosplus1), prec]];
    end];
  If[Mod[d, 4] == 3, 
    Print[N[a = -Re[g] + (1/Pi)^(d + 1)*cosplus1, prec]];
    middle;
    Print[N[b = -I (Im[g] - (1/Pi)^(d + 1)*sinplus1), prec]];
    end];]

Whether it will allow me to calculate more digits is a question that will be answered in a week or two.

Here is a comparison of timings on similar computers.

 digits    seconds

                                              (Impoved code)
            V 10.1.2   V10.3       v11.3   V12.0         V12.1 
 2000        437      256            67      67           58
 3000        889      794           217     211          186
 4000                1633          514     492          447
 5000                2858          1005    925          854
 10000               17678         8327    7748        7470
 20000               121431       71000   66177
 30000               411848      ?        229560
  Seethe following cloud notebook for the results from my improved code.

https://www.wolframcloud.com/obj/bmmmburns/Published/2nd%2040k%20mkb%20prep.nb

Then there are my recent programs from the Abel-Plana formula on V12.0 that computes M2 which is (the MKB constant also called M1, I{2N} or MKB)+C, specifically,

enter image description here

                  Method ( A, B or C)
                      in seconds
digits    A              B                 C
2000 -> 23 ->           20 ->             18
3000 -> 96 ->           80 ->             36
4000 -> 165 ->          141 ->            64
5000 -> 442 ->          418 ->           386
6000 -> 623 ->          591 ->           544
10000 -> 3250 ->       3070 ->           2800
40000 -> 175, 551 ->   164, 005 ->       148,817

(So, for example, my 10,000 digit computations went from 17,678 seconds to 2,800 seconds.)

II predicted the 40000 digit run in method C would finish in (164005/1.09=150463) seconds, about 2 days. It took only 148817 seconds. Here is the work and results with a check against 100,000 computed digits from Method A:

In[32]:= N[(Timing[
   M2 = Quiet[(NIntegrate[(Exp[Log[t]/t - Pi t/I]), {t, 1, 
         Infinity I}, WorkingPrecision -> 40000, 
        Method -> "Trapezoidal", MaxRecursion -> 15] + I/Pi)]]), 20]

Out[32]= {148817., 0.070776039311528803540 - 0.047380617070350786107 I}

In[33]:= M2100k - M2

Out[33]= 0.*10^-40001 + 0.*10^-40001 I

On 9.22.2021 I improved my timing for a 40,000 digit computation of M2 of the MKB constant using Method C by 1/2 an hour:

In[20]:= N[(Timing[(NIntegrate[(Exp[Log[t]/t - Pi t/I]), {t, 1, 
       Infinity I}, WorkingPrecision -> 40000, 
      Method -> "Trapezoidal", MaxRecursion -> 15] + I/Pi)])]

Out[20]= {147079., 0.070776 - 0.0473806 I}

200,000 digits of M2 are being computed using the MRB constant supercomputer in Methods A, B, and C.

Method A

  g[x_] = 
x^(1/x); t = (Timing[
test3 = -(I NIntegrate[(g[(1 + t I)])/(Exp[Pi t]), {t, 0, 
Infinity}, WorkingPrecision -> 40000, 
Method -> "Trapezoidal", MaxRecursion -> 15] + I/Pi)])[[1]];

Method B :

f[x_] = E^(I \[Pi] x) (1 - (1 + x)^(1/(1 + x))); Timing[NIntegrate[I (f[I t]), {t, 0, Infinity}, 
WorkingPrecision -> 40000, Method -> "Trapezoidal", 
MaxRecursion -> 15]]

Method C :

N[(Timing[(NIntegrate[(Exp[Log[t]/t - Pi t/I]), {t, 1, Infinity I}, 
WorkingPrecision -> 40000, Method -> "Trapezoidal", 
MaxRecursion -> 15] + I/Pi)])]

Where the MaxRecursion (M.R.) was no less than shown in this table. enter image description here

Some of the AbelPlana records are shown here.

POSTED BY: Marvin Ray Burns

POSTED BY: Marvin Ray Burns

POSTED BY: Marvin Ray Burns

Wolfram Notebook updated with the new version of the miraculous algorithm on 6/16/2021.

Here is the improvement we get from using i f(i t) as an integrand from 0 to infinity vs the Exp[I Pi t] g[t].

New speed records up to 40k digits.

enter image description here

test3 is M1. M1 +2i/pi = M2 (the result from method 2). This is a great proof of the accuracy of those digits!

All worked out at

https://www.wolframcloud.com/obj/bmmmburns/Published/MKB%20fI.nb

That includes a check of 100K digits, its time computed by the new version of the miraculous algorithm. See "I computed and confirmed 100,000 digits of the MKB constant" above for where the 100K digits were first computed and confirmed the first time.

POSTED BY: Marvin Ray Burns

Since the MKB constant comes from an oscillating integral, I thought about naming the convergent M2.

POSTED BY: Marvin Ray Burns

Although the MKB constant is slow to converge, I did discover the following fast integral formula for it.

POSTED BY: Marvin Ray Burns

According to Wikipedia, improper integrals like that of the MKB constant can be transformed into proper ones by enter image description here.

So we have the following.

enter image description here

   g[x_] = x^(1/x); Timing[
   MKB = NIntegrate[Exp[I Pi t] (g[t]), {t, 1, Infinity}, 
      WorkingPrecision -> 100]
     - I/Pi];



    Timing[
   MKB - (-I NIntegrate[(g[(1 + t I)])/( Exp[Pi t]), {t, 0, Infinity}, 
        WorkingPrecision -> 51] - I/Pi)]

{0.078125, 0.10^-52 - 2.10^-51 I}

    u := (t/(1 - t));Timing[
   MKB - (-I NIntegrate[(g[(1 + u I)])/( Exp[Pi u] (1 - t)^2), {t, 0, 
         1}, WorkingPrecision -> 51] - I/Pi)]

{0.140625, 0.10^-52 - 2.10^-51 I}

Here is what the region of the proper integral's function looks like.

g[x_]=x^(1/x);u:=(t/(1-t));Plot[{Re[-I(g[(1+u I)])/( Exp[Pi u](1-t)^2)-I/Pi],Im[-I(g[(1+u I)])/( Exp[Pi u](1-t)^2)-I/Pi]},{t,0,1},TicksStyle->Directive[FontSize->6],Ticks->{0,1/4,1/2,3/4,1},PlotLabels->"Expressions",PlotStyle->{Red,Blue},PlotRange->{-2,.3}]

enter image description here

In[24]:= N[{Re[MKB],Im[MKB]}]

Out[24]= {0.070776,-0.684}

This gives some improvement on timings, as shown below.

Timing[MKB = (-I NIntegrate[(g[(1 + t I)])/( Exp[Pi t]), {t, 0, 
        Infinity}, WorkingPrecision -> 1000, MaxRecursion -> 11] - 
     I/Pi)][[1]]

82.296875

u := (t/(1 - t)); Timing[
 MKB - (-I NIntegrate[(g[(1 + u I)])/( Exp[Pi u] (1 - t)^2), {t, 0, 
       1}, WorkingPrecision -> 1250, Method -> "DoubleExponential"] - 
    I/Pi)]

{8.046875, 0.10^-1001 + 0.10^-1001 I}

I will follow up on this soon.

EDIT

The following notebook was completed in V 12.1 to show the precise differences in the computed integrals. V12.2 doesn't show that detail.

I tried to make sure Mathematica did not use the same formula for any of the last 3 integrals, so that any 2 of them combined may be sufficient to prove the accuracy of a calculation of the MKB constant digits.

MaxRecursion guide

     max digits M.R.   

       1309  default
       2410      10
       4453      11   
       8275      12
       15442     13
       28932     14
    54286          15
   102600          16
   193914          17

I am presently computing 200,000 digits from the following 2 different codes from the cyan (light blue)-colored methods mentioned above. They should agree to, and prove to be accurate 193,914 digits.

g[x_] = x^(1/x); t = (Timing[
    test = -(I NIntegrate[(g[(1 + t I)]) (Exp[-Pi t]), {t, 0, 
           Infinity}, WorkingPrecision -> 200000, 
          Method -> "Trapezoidal", MaxRecursion -> 17] + 
        I/Pi)])[[1]]; Print["Timing for calculation=", t]

and

g[x_] = x^(1/x); u := (t/(1 - t)); Timing[
 MKB1 = (-I Quiet[
      NIntegrate[(g[(1 + u I)])/(Exp[Pi u] (1 - t)^2), {t, 0, 1}, 
       WorkingPrecision -> 200000, Method -> "DoubleExponential", 
       MaxRecursion -> 17]] - I/Pi)]
POSTED BY: Marvin Ray Burns

I computed and confirmed 100,000 digits of the MKB constant.

The original computation took 417.327 hours, or 17 and 1/3 days. The confirmation took 529.92, or 22 days. See attached "verify MKB by derivative.nb" for work and digits.

100, 000 digits of CMKB

calculated here are saved as "test."

Compute 100,000--- 16

In[84]:=
g[x_]=x^(1/x);t=(Timing[test=-(I NIntegrate[(g[(1+t I)]) (Exp[-Pi t]),{t,0,Infinity},WorkingPrecision->100000,Method->"Trapezoidal",MaxRecursion->16]+I/Pi)])[[1]];Print["Timing for calculation=",t]

Timing for calculation=", 1502377.625`

Finished  sometime between May 6, 2021 10:00 pm and  May 7, 2021 8:21 am EST



In[95]:=1502377.625/3600

Out[95]=417.327

In[96]:=test

Out[96]=0.0707760393115288035395280218302820013657546962033630275831727881636184572643820365808318812661772382094407339691097179269990446453847536429225844386065219333047122290612020548398576433662343489843827071049989705395231226917848529903218507274354522005125732810542217424931317767029586377171448965877929118571617511540562365603991484881752820025072306153573457106503145899219683164868123907954938255650974196758814736254874320591902869577457241143992751659339102999273310798274679484513088932825130726310257008303152743086102342833436910409821702262269045940297055093272952022662549075225941956559080574835998923469310063614655255062971317960148313404503841687805492907298185104582941328637784284366753787303942475197280648872877809986710218877979777725224197655941725692774900310719381777491848349627938468198411955193898347075098152638657614980900350262780319142430252921925131515239611841070722530473939496294305264627977744876814858325335947117076721493110160508928494597906728688873533031986215124467678736429981544321187124269147141804397293341468345902382977472975053271988386946291215512340931334841526712825988330652119397517437992225419804561517899441213313555349094245152157337720540864293004858914416964903391069077239158225378137007134225157259436267756749980892097547020923938358076198570370106085596863039832425037481494682633055245925697703500997321958201037926268378037273021499168580036766118335796488501619742893070662953852922641481467895325340185006631153014589399140567464642817322554124276739871343784769014864816430102142673821103099429482190262551342893689261414565078351300454655173124597023403312281112674354963160553141145567801875089895942712157634242627126275368184624967147795406349712434902034403655110657336828783643528206451755699785097293845034301399072335418076018544901955694165639769553876705231326512333366413569309147544153147040751278651787331897291338831573491539276810505393193420241588397347561526288661290728125579362948181618288086569973506768636781006386650904534717662131801845803474823423298157834525912125581020582196401078634352065556973647371001379876626633998647899439636865809171008260727796700323541873379525993158697583430323304307895358482051309957606629650194455591037743888293996355687016945561468756667810137028618261442580752084968748790834555683286810992293714710797655441238658361507793595620533974776960070520467919307350751324617559160904358483933727879354374654770015405315934911669904273679391713646599364840768394803265618888420669169340277261914455191828151652360399692719061991655729677744654356588953602124646688591824365597199025929668876773171577235647694709665048098037194956104125531479498893907745459337858730796977515966494235608105257022978810125350663109530591734669918469930734550933587377397856349258234049411471938885385086011030918278312344618497246818765182307767075040597982052236224255617202772645301508653393621700356912690450255099693218917315607411892180967322579047180170212691588040910818933109805057252902227931659575733486175457651130811956867582907068883066723837899816837670787899360869933819422195746218699516733809670530135357903631293882837719370519875606291578527801296043186418096608100829755823649276027221806346169998542692832027777478286102979116280990177760284464151299277101106571545737336647958718244776566375647148433054675834244246049240504686922677421785867393122980814858147770340450055348706971250452311783103291070960442874005786179693433856757309587531165347866491655486207901573141523303786002863792972865839185688715489251955650764768156301356832542206804033891636152122872196025946652394388825789606358890573428609585537496268723416265793405419332522961262899388287613272932643580198488578410174917159464026574904398378971234285839661098451230709606672960619995390673778745129567435608627407535165639492342814598465513325229158297855621032058214589809423668291556295887639710813223944274544167064098025396411543916290237014533917149169483476622031228574697692918713580737506511407117582506728840988888074054055934499302628227680333113686549406661239659616820976280517875331534322694779737254088486125685747595241916484864002361545611943780570928984411850636638301876692911986568788899781245790836746487815578571823069378238812926865586054135110536907550731839669350369536726293157768346744826914689888536348280593839639957976255287167025109445684566374844266250483803708843748086884823875989693565118278311572584575298761592829286644326132928050305343153340295009519351250276941240999102097108172247762101699561990672658392475126406421957642149794708906768699521141796843009144561558991084217593388165600461619443309023081233134177200242449067379025519367627993751891259848132865170792298023534989757166091846307971735507935649237134095369073515522625004852361881197688473136967266486011415928178699739867900043295539132809209633250700991770019123867928787809549244848085823552628380482647071957029239246989790013207813481779922878178396640604845035638202002586563349657265372363599780267257915041051575161407978839505560254219847148069951828787186533312689134010191662281340947732136723324387995948506833756789695438322203233884906388395104930821094347570237214580936005238696478587956025976750521023655292583857934793367423766525642816539810981192629489311571647849060257913405281316012620317553415572682453356531036427669480828397622886673731817148406580692630280449926479081640764398060553993021462714495586831001757448073992464252544990083972011061126548589539795389516683888692889907424919942413696472044430689449440391865796253024651225593279414996717676061896565639181765662049174634030311211328441501618190528085618342551577790892808875775854364653359770206669355724552538891795737952132990434787982448737923176015481240298619918553231506835247995681218652445725395471889427753101305108339632778004366646947427598193933019005784671835879850755484042713695783539424225561077404010324081704039268675417114259323173543110142490918498216082315451914137797120154130884753638706879885591439745584277332912093051406179451641999408869841135689269669609339087680556571421902378820542407663415630160468324122352580785112066391476210129701445039509679589915643310628327728123026088023116406090213509321278001452316527462085975773823888536874897619228525034814563116540403768328732192274154248578282064124285324789478523813763093973403110544403402453787864257817912098994778446441559012136751169183629261969526859819945595113917622705475596793845766557337633262265645045339829809112542944936499532923996167659691918973101236786124706269720495357388623103422132252732518662755438604016044437344972664178584934544285525755031995909065728974532761447112988859970833372887954468495518694867483388315026244090110303989684510951839277846918586919520528951273123270073188090309392103813856677623068745622994950942058430463291643078806353073584689242372756834308639074025179059689616917279466651189025660011107870901066138130145827783895617962308392942664545030639107767320606865412029988067447703913450290833043769890335516013253427030670075031164262884393881143239828889738048569822510927881672881780775538054671929430215556239138697686309061067171077053421689101056536091111356658502837152328050606309945902430933356979768816802057754319268551613037148605946193719637740225998501954409585958851855225386163472479236013509692155285388982889006632567295085190178940805131103108863640493719060655426162180587185527431814942395297449020512165492921258737552491097589621077373622782792342078851623177849907069275061845073370789375491125928995069891535416826926116166869934464235851948595479483492719502868555187692193376849014659498705430190732535232117171594482094177789419576077855728376349389918105781609846088918839223542121053038738404028736475412986088647994642009930217412706119316947955306942344154042358246624860953262619029971865472777072860440972709470367679651890392608196054890981834956498867023776309399761560867380487193166580793617327316017863536528614014311431271932912574126672417812203768820779172414391384908760523110822917239546688390435722030056556953869422212171097601275518895370417124841925479662884809229389017176034003863112045601619831541316810399502475853575830921415190672319107078529612989486509361382347561809863736681678413503354536826958814683396916590423612609502001954196665231336193563298825000155241508148755036577891174745570894360122772580180263572959365891979644432146922063642911694695838159198321596868994360570132073078367191871117993413903078935886565641039125182447642391172755265687639879457104216262353224945186028498050595039126015511075188382253783248630851701388181161449925998226676441301733080038061311699232280176860277853818547211685138254939261280811416716689951169565755588378641287597366948984280249201410502383632880592061725969420219646745514172173293524540660514928104522684370426731471405682206678020815485623026954350073952252469465573881868012013532623137257216801858429288306621360409724294736107880670725953271116589106444902479198621852948487494820483822887126596935777703969331746482669822660347031512384622797271616082117494443897311713204460643650277069950285954148414567979166253754842199676715539266850345229857016416518684384021773883460331951344069189357549216491543019002670145662441709767228932087875236286885357050425072109480434937449855443188324141594255788000063529036599677376497564428399884089474648457227079255730799430486708960980163839348019169128363994662227930172283427279895597085760582891286558356399797897974518257254415621682800754079541003609014337630012783339214677464059264767074447404171328152740204166148870349797849692045301711672025460878822809132235598339062023279766094626636385532993394839666137519130965654247785398197550841089173176570190880507196311805955719700925143021349306185906520884629597449555580769655603705205006636887238895655901638441098069446369635275833193836223856028398223629613605335919846218022953977916766927635269322560676216862358842492768236522445749273035712229800612339417690420871023962509460364213382893282577764006589552742590213449758310518602930033026713756336457722819485464273284864753678004724650583195638524507724307223460028947060915305863605426212466590129585542189668557291479472018391034646651543496187808126857571449432773463422311345292858141417330259251800222088072036886199341389548816919946250152831679398532229866157207646473251695328229906459192025938465583715672571752669781635805433450026788084771427477994464569052409168362876194980831146654720520865971893598522127849983611314609486926483822968159396157903018148065408298795596677493270006936640365923282499999454773679781993105873598482047400909222317226170217140324996974455908150167051005623440623920526135283751558512569012675073271220304975482574815268861063732637451534562313392283664739356343767134383093613140923728796867527675341272849619117840023188876588042219034775659277282318766661989032775874156776735528315771744557611801004717469692280151230154319909283812138926516522380128993123663224092667225163417301424329377690964586958415994098736643541098333353256853288614279032501189991098825069715712814572397994064307423781448154515668780705883213173559016153568382015629222016930957301956779197218581619061741947554029394031689849342881366047546865242088621447937082706254836986182993570863655005816984995964351534947163992139614462133094871815882395081885565649964548171855472338011530700698909595241002706634848337645389598290829260124609588662419599098638041479082952636154523854077728686714898231062827203717953030954682267833955618229455221519508570955241961189085667060117810517316481747010790081598309906390372193615318862021654696418464371093292756436700775161736755945584662711843683378854081568605566678991722054276580149985212589696080958158667010619439839742766853413359135280792743618058112711560085552151305284539817495332432340744871155359544433784596559432956161298163059166902699905568584245278708511340227475755637309180488226442185332226559300179237100081253800801881772093750005823622041472947732472974689890276578465656599939879834425555291610674920079214040358791095379336438402674613937042697477577494623113498960865019594918737790140501875660476300136466238498508125858343844705301421827225712059313266350736017877577841749601746139159502818546059644791463454081679842711209080323828142403847885914483127154981586081148965753120914740786016443919688172555293174437455966794266298050398873342953372285042221998330943246789348175873213227758269965134433997145916494644106960865817330886927127196418583349881312206782013459917569651083966025900941880296411999543705226118732693548319885751490452227603122218641978563237171943713503837551311583481106820583749237564036526890408987060453490909377878578965747675521959241822072655459977270635652724433333465891715508203013614691837351550384578876536370275571704170657550990488678043334247804072699238822312233465872806376822049429820539845554258892148295448813684566314468597031781947399104728601832451514242656649540028866242859520728829066147139225006921099963863599236632293763914511727828723554554714488404290285551607456774248222166366695854535378564682279803522417846458919329595028341756775029091737958100869039699562164747044175456053128801411476518870228804701657326791908811407678043042858019512270222180756278668191421811563889669509156968300428709059687510959042090623878734972017305175016566295386485451318844575863610148086145535187732660713852146003993467019901332628398652669734078866219650212463649351017125932279847077948810108752565016145453993827556494454814195840260998160172908882284352769537861159789514440577750415353747392520990106858306343758429671924587937373124756549056352214790391900722282047479563528639254444527179942383999987138701574229416511069999145846557061769603166862600802631956988256811944322816612641902716204028341417765129495450591135503734419089547227051185480360077069375792569540917254150775201036365788989629048168067342817180406705262359927608419713445284176271994613406803300665982959855228529704733438417736916632896677351720981064591494757701931690566652126747895602914542673480715565942537894514014359899311046125486783625121599069177985609509813892985268940317862428017983462681969370951657232503302506070000875208094870700447838168053610786444859082568429253543995162689618054935605300285409425731523390315452619086455609571507589567322350854494245792905143487855166322644684126269814845310879849268632140463841783031338119287205493792345745172872735850072735404275068743305473550545733553910763754023806508304047600634859380186793259775552285920859632713380572001384356432814146120245376964556387164838982648660170259096891982813739375556176560106830103872981598794989199139474291703397194995802618675367678460219372802069762894799387405342033611549915051101132512709606444316369124462525167278788920205962912348661682425969306961073289318949458810611024023274969469631467503482200292654618883080666393586371068565868564206486236276830153347482915715351778664323771367526484083315257156051186379386235576873617787022396929153211192422997605227224041455386282784730729263753821538578928303642656060352021409019241503918952917075110872539591987131459764120252446432582159786497906315689260898398052226899306873989409190664470516350284564432665530102696725806910572412014029103674180391618532797861956462091644514109404418624535682160861353548274643525684330853872776414321487557090042442757007776717295482575349941124591899108834335910049654733789644181480461159984372968483155635250005270672187417175009374711074250912823778978158597063616254567619877765645124842958094467854241403981376863809925488951273103707496145289427394926999163958231842525325986222921756836366729771510117365129660301045943789568591443574430993933986721672705090319929860549309115907430786948864464379524384758113782713112271242388910311169935723208417045344498744729546925388856890380703635929941693496361917285828722206607288683394150734698776152344193002090654785829124830518916989290458479417144738058356648956718823909880297446960251656031118218026772961888046951646478644990015538099684004984412230182058745870557383439139756611021997416405544860765351419032373775904189811577741549887427353139347885470293584055958502948527536355874056956347350920466707983640702176419296107899640309645835897207708272668753312367136368662291007761493038210964223099159863665320159136554151254740650074319186794471549484111111755183214313402723134808109721777326077338784039623384867384275588013828665468381702376424713517259776474397889555122643768653958292786046743263033318964736256210941361157435048106158819579506274990789240494430020027419806148062597946078215347339598498205152835894006905557649335896911210634120803595690482345573591102292005856404939089420672260185129913665955210813827605004998715975326617612682495829698729833522518264620729712326651425342777608192235647536673799924298465526762569850155652096970657820529018208517274691742132702856892763649139366272237549508227572480532863600085926804138466924005317086540236320680368826189669299525050792369553973256927455121527281943021579209692487235389673750428360036425156759340214670382961555740761190431813755872804001886339342429096888283406066379481895236268626099227777385791716709837412427023439714245950512588324975080635332064237479556838376816703035189359020908118212096367248427439260331146092363454280322688168715542331341713364741344879195991024127597597876276218216425050526834849648784588233939945284713143748360939496834003873561739447737830347034215659833128994393394260292937930936064023250478209452416781879355751590049153977289310321160693915764394945844016255422858980228374225839456099072498330737810155136240880014039862439369103153178743188064496317909607467559431630287006617530356830500397682082547455831600646077329676538432792646647299822078144446580704521529417603985138667394708613628525530267031763659938118701722683716140195003058405220417652800063011024682218918176735371117406414557475448511722089751611559367278363165616337263532217549628505514343073244732297279864879022753120921943282456556690150616425078061225391036829884323519354219076999685187512960092922320696776312293483308356950635307077781603487013570327922793331202172073276374229289791460637228783274941334939430869013542492579265201816295047590789887617788632568706082377729224179676391875623827254386155597744454364892170029725981267570029414156192493623112071107786515809279831489235245366977731779878716553037678088278827857861820094059256018659833973203364295634715933631331650878569647604425079100643815222941241006584128263595964197885525440508032469962135076865730659381922372367293580295257153603109736746187432634299887326566312372581353754704790341993168939482796157212693267859854872303671594831696104485082952608533407884936256621705452365148910188857228452281690636849359478819802431126763554000256611659783228577898740156497984532706992509808708335632842642585176813289636042343090689426493461314139506400048358815664613689565838461896925236720745578410876397904112223709936522894095751172248687198628151120779828421076542973731102007338688297635666058086283552309669325340730066698392896991927812203896075395740241764560054403441972517038614447845372638644445687186704125078091202216181674235036681364462391233412593399340544910400700928870939810501138575422420790851298226940235731228558510040023376698840034523619010874636735470188070422188572872436618495553806948806462923150857469349869147312561736199531902086703932528045949414695083865394895035357249015652670349543226517476913070291419659084564710050638364769491130559550467560279742193940030629056586404376396534567871277983670432899723015153432904436483185985112411992903130598284171620269843601583816100222661496464660961287550582937642702016389011284533561920769957684798846252556926818374077547827416987253362642706218580459826170299460445463933799699973081508078707894923951707312147900808329350868600693821492630864682037071505659816269140954173426599630934048437660807509166302669191041762154632370647800988412225791592407476078046878560889001379049131442567555181715343270250950322056910063086927550317452446261972439660368392034990998237591085006763079460428931159916023527113567357931861857593994025084837530155752376016953707393305806850932586662239482552535920127437518429547047557501549410966917604459831256837439120229841888122933127258706995672883805396902300343996522273852681283958911462963604651663707110613827885510407291642274867527712619467305584051289675225661320367548476681889200113878036888071699854202831282296416722608290048850099467494764775463889825553661917840063543250990254841311661687151900152892149351448917283879658136881663800373743189177802472146736584375122988594395343109831943963095796747192390507433100128321240101377017628946672352355513588559431830763812152196008642923156906967509004358426966471255566588999720701109671384359725938916328968989643588519367107373436798235662423956234981099535661312337764347045464138124786246737199581448412000797769791202628994652636979018953539077775750664843830978333113857273628602683659410337476702532718825644269889790205471737656137870724355466920969476185450107521285651173936897199181921539137606636263537710488798655082196923888039515047550034581801005586558106945877194276133823160380585834275481657941954077971394693661706119106972658580392225782243171381693331482650093216333709113407254543122085321332971942158830312647766906022335063165067948113729890904801096215868955779434431872761564721249053507550762344707014741847353003760745223463617248867119655285575226106314675935967906594415943563805763082505598087374022202984492922868079438507724228355295113478485394125744399750811004177630605723658961574357815328899541651995764709123453251946014693829644532819639218414260472198716270033553058032322126265884198765275732136241792745673547074508211702161888128863860594678665917835148038673803052610882694714277484289575750901203778651888745604456853330318095862707786489215255019411454045598818962392608988051251692901677821547987577104570693956583705881522173641286906815128947777178523510059648021353669062529400718243355080383374585907455798627082728648996856381806472986390409716619926685207856453770868386365655518624909086431529689879276906828039607770602324168466623659286227382603980889273363438031930069430361566007792031148803098086076075135819034403814729076456062519254111701387777441032407471877792026075073882791104270736440893179752022054528644050155117677721995190546912403421432438870928968117483344809220819848870474899797007582656900077414935992156795708559074850997014407073733828208602289786287900146781630944499705724046205714128613452151610353450201470183387081614114071874733575389657743567560244582077009533792855030443219432883153165189829971144403684293841247964825040119332939149043923790003927190863738161128072147825737297291592592348579142171519749821836325910055606534421633267072359791173596434266760436952536906957732504296059102429633528013201323954885775476136410452720104328312173896124071872086648956593069428622678925548434460239367046566078485279211147519222467300739401738284845449724443189594150173278709350851285521700244405381855680762608495906363451506255180613819884607562502106203406297002380584121893489622938090870674781456471340450940188735037973180787699452476967591361046865384433732286798854635828134593344638591088106063164622403308932369382612025711299677840213623022267074720140379751201641690041728121629216136485691004064163608065276094655380075293625331266558970918558856353504204039947617049161896678312702971298795167292819385246680975262689201459342299128289523510879145628296425633177697019652057173234633575686261502574432339772787646762599844307595718434761737271018632122113948633661919114100647721642170775600912305823965330343708851914726898327224180667708765636995939505229202497292437999012091179179333361941197172962468859282902707270296941193696556775801874485647168576323495854993702523728438945338292029831638009289288229116302740980249298316431621182825270823112428975433853616434308875850337916242050505363124808263531855090605396610009377751603479975448649678309505293621842878598610609444073112117296243693743555162390640280837974253055470421803178395427928793757355720769675832638150808869750986476473099913495611007347526586820080841001346503252977063405801955976722089870021814646074839474534012705540908188672248726877545492313721350004176457421840543535917061126007561743408871178390261245721868991654371593183071149630159068170128132146018567402559761907547308758917554419950110697643048965097078646934375727576342224712211892607321092767967830498825367847833008106061288946512947052400826020867618491646868393937681075403978767585334653737779178507354269862841258439560527951371674921847190255362433875046005119775225360427160256253612869539085334231830943601837919900551654564669753933323756209676513736333626126518145433924591588369761914801052023737715494137151143346532514715329105648570443527211374465268123472978449573449927513248401260766561971581789105880047714056224330010476705599238722318707532288656905724884136198032201361598992948536839327643153315989381325037619353247482132174337321203817503704249300218026208457113124399941288876185091058816963556806744185830176623238914552024779887976337875720942226395336727037852163021931871293726236869489461021821630547374383564951427394853018970638838022914966194917290762290176305719356459124713133951801454855803295229870862860825707797202273948634187235938997452180540405070411682617168809432412853957233041098062694922456702905010154077769789748994239012834805511951274429591865402525457550403259863510394167449590994552088696239703215889907685979635465894512116614637650935738579209542910006443112016514434055442213575347990607602564424117977599861195993484349775345571746872364810707090775147023525926213062361437064426059893747631811037996357032428143470399452205679684377155506559213673228280739752417173372365169776596640835862447903738086947064723349489603950029422173049969283683388117654962780330964111006076896137163086519562904447816996326177592874384295416416927963482163626751442719135791021614164860805804978715466942789995991745723994150013656553274303236273687936937452099179557902041862715617578373767746454266341067217786455954543513955122615877469938615340577938596224151723842336115682893695717757265537167494013489228898000286140841697310904920076873652464364207970733273761901563542920152132549813140873463304503374221517174107177954954976816184370006674214388866552697441462330889785691122534788602973625513504838163654806453771934903041253917070810513888101638024283466308982685893495784906085914606669227108136319912115330047949494058083793698572597520239535099473253905697325558116358870271507141330043360574791249975670978430519215124331336825561495646922382122794191272078543436884275649106325092208288532512937303898325260482078195836636038445048276315832053592618516669724434666100334041425958353507345963347184927567614711288683278104920488384877274404446705046481376687513842063027664008906699698008520847503922370502473859366692841285594287533314404709744355636736662623903742099161569751928424120590427922547575824505752388352995848717114294309155109799465835117527730406552178795220550549144418544339726451212713722468957543595614536474726694779419030209598478743301586715120366208572261148419327420923752134250583651261704148494787274771817865374860695918539811889003142669861253675862366866088527046763477522811718772296035770606799007002341201424651174089408862996803346658248853151112304993106410211232755336886136479210072967702762697029054158742628625529881120596452472367184249798573189539101319533836611248099538997375634260727798655675012798695070970754590623195020814996090190058617195333584825755084600655372018853637121437609815143586001825840043951046854571455712132486681244449882249509572951720782919672741341814086084305913375684550722026266064039790192186701423631513760195524366485772174207822757847374170464110208510265122781595803629030401101462723314376199450401965763774951448349255476975609291623610929449291677457838024612536746571836909522522615102951296385956850030777247949276745705180842811920949629620114142535032219008221076498570546886266871410417983824975749014017694598834143226996062245383865394646764488727309846185293848368040601671380135057336885733430604851638242912936639069640810447212362682719987838894655189341945895413819443607814185954361853431478322144946311620942448322108576144309130187715039937205614651460665730293121912841896527562267697346915584126401519805671489089034232788374897935294224579950801298486273567691150550896785099846544543619893419952594472784250722270516519131468545214146761603478460831439665269396890428499148107883276877749204187077656077143356720296061990548994528849463551022577454655611932869238857198751150303398587494915301259824990769212501383201630202583357854423174385542588832502992862830188921992419413326576465649612437706322967381700800974352533395300134751481106179110192601701097964145527254724500067082757782075689118518701423148859462393424539697063988788849936238578812356793921912986447744407099059421619478008523785728723933713616762987673344145094426090057080690006413333483984262536029740981576955135914587645912883981857211084146577194975452574751233404192230154742920028027870087575537754432254347838262339080520034949459210073877684802405577973570418152257526270534300193049368459765283551427603567019944304865373965025096184842369631607780224195151749568462657581139103549109911688587766341990805693312828208754947367908384230665189161784078309915493785697348154060638807822933697653222259980762447612776386404517436904552594904064222913752649275672463882293344094800972402324407395269905818047999537415562868701155339663378762506111235260728088467452510234623115837746568111463274426209780082325252846354609441972731123464895739092321947249664731279268093095282896934253907067030032863376706140515725659349196715440474050639791883086280570896272370212968496984174083709927099134382030964732637447095314606862979224301241097542593264339096890134797448286089981773081607421076237256785710563135533906947366837032184010946003118911763019020485076017073144280225562710809851538183076232619266952700258723482832902258356562102241104558948641626384804837681967867113899396938594988621081973873985649204975932178609758825046011063482100303955913677582587394537928989557498936763937574744657669318605540991572174386567087590697534380447489951801928232985225319731670375017897348637067471823654700030303049257370753098382152975518768426729704904023777096045025473609708377036997119156504428205365177777399474431133059960975029557375466629588313548959878582752455080636500643307908324771518639070726523401815061429194613839439209134227289909757908230690031148152557465006880650600131807977626671615136780162600249727336578488709787935453442875794545304133849654057755074724668895541453026338493039889047338096050678223946336010276642347254745826867054741713295489214242659123937776243717944038541156658664886722097656411159287809239349730394112999226821380755371674370405864011922989068730699575419261641278705073314092873709532928281244678416573833991454122356404443427329993309919009164373116889747541824231681691584535717324815635762707874625192208017146289884739706337191903495899746900925886277914810305152943952912787806619544980690786963958101624729724999092604579282573013894950071764048216235459793031703111267235504174145199574168711969866208954411412505135736407123177624816739843463728017335601068750251918347831293111601410507632957854654839869792227516523103663636310751675068841169774271934122046489377350144708657597021751690014609001881085157341602264084928059897084130631600956236342775012543070521919557014790610488184360474565206646828487707131642572217561736135955383135944824151780434790489376277355544017556493645707736126738145554036555616463583778005023446691372774954080971802282642956794424390567922853663605459043392333375960818232785280527313941309688775932229352852253234638964074365418906948525860626516115354684451551388811088978792874381470938037656589737337593851521923712996761152838482722278355237718062029260395208117616183433093664442587874015135045438607866127603918916050053273459576367069510553126944918109815863863214218447266154897988801982045909880468626445664159574238138428395067677520157325888768671673225987510192381880021634081136558696003456167324955150242335421053627002874757991699212748542941266711270519599381705207807221410910633600024745242861536765200714552531314153727366516654076674283704654858444161825740212015310189663942184837873570494500390220423411648293568225145393521838658337072932898833825494377888661134698032134011939967201175222364509978870083935139649988024721359719924013799502369386041568300002161862955666708123081186878231029980251814162553138377681065061486333055326418291661522769595613227485547766102764711007845032363170047855590840589141804256006008006392314230187481501295101445523313444528560942751638997275568516523418144427622367379155116375982048448565608202811486987957912199386040212417735683184288605480877132154710235064379913738742984663597156351199028159943094789499931949761476996890299060597119728247764833511013972311584962016832987184264900593908602973032946998974197181206784781305645961693534542735741382342449689947413062739677069914846183700019736295586244625434616493480588010458393270033530892290763776949393849005657837925874990620134649923847405142574199504660061643481720366717880639983572725750300289487637386530641425397834127246696434725732428222136186998302836537279874229715096467288798950859410191338709062273762250727166260488810952650858261032230916019039234384498588643430534530684933840478047184593859819905418646765118424056633889080118505372264116967052635950275952390446743086159344335565954932887871476092904359028875572543455778601438171485058777696065528786015388383383849367369624138128456308016171586649241134224039715384346969903205485229917096722389415965394877746326650766198105726598479203174208396162577956603065863725372677065695115406118363367199679733080653257302325366181352801304635191813385833302965155598305612648242283877574467818216040207331817221864536819300736520992460830658646957235658201261537937035206774565413223004215421127211155746912066127139555312552887798775046394896014961550668933517419072519127221150540189431988802780388147724500275641849277600008783619590408923946640451527864820000342637550120939648994118544511845290204256443191500337971451931953651860437972599324350785429343940680086323877481386551676727553107615183069018111874326772176051258687856891104208647008172082667824719383168071825717757874501483831956527389162605403510594894559596288106449930690514060335442631524875051903633078014556248164264647233673219026466185192433460360727273184229221624696247352757984946315072248527938058641834249101971494553812516922479101534841973992492458849575952772518045718933265849130224758984368087288667671380992774697432632649191207937965915496646549910020813130305208895352255661762933735434186482127455045647401354530947722850674797122775862999382256695325524484225008939717137918483034994123710125898877515266385452664284131444404390783476990677381958497629307644233148473922886730553845472185011783402424301697259808974822201330607945619711577254142775444244619718139807355411672733010344554681900773049939440643894785854382849029163801917913647744210019980290481607229255511143247132015813860138819941301053257406949234137720393081050733061195344840889776249772479073778099347816627048300578460338695192068956957342722062786883295105611366439786083615081228923834919332067237405946193289201183198635426289638723021130398329096222172056588882424434465093935287817976039929946028601108573580713098052228003421290644125850212365724701889600105741852887061761328517869887640349479362988503916884668471194389555567799357578156744578946929190571223174898621256795180500714148131906080806889297042227476017073056217379376718826729331745754214420164209662357155844656533217372378276562926007109562311008158661877470587613898166912779041955560644129496416097241822349316875818968190657878295086529111194109420427584073381890312096681967454334116153969366888806234884746724484158729512627860379826611015258839497494656509700061784571387440062272631732780439104355841988460191306736795995065366093391773836217311609639715199367278507437484085763081165185657399867360585661865723784985476414036821977151534063933106047012089758384588317159763618532806247171888819322483721756665029932234547444105193386589584055151954980872966938956134346313250945815711559214867826689314921712053341492181966250078014283319005690455701227725469836858409145360165730851557418582567142892882602241563133110350687504365290210770723867291046339744485907739428946167552534586782935562729824883637677235253041911318203222374940042559586451256133714480398301104779790557569405423683947675951429692169699325626106990245957395081336875589496720333345352069764537127200406796865694238440411054964087031919439183170498842180826369598747767842229045791127992948877924640773239876082033661310502591905024012605344791207060126861366087050690106821440186416890798502708805971160774711382800633684699037653782772326857707345395993805386946342426080372069312327269084763013141354052104457632993001286491987987486292703765660970330549469982286582941288156938096043164766104426447737176843079136739054517750890039352319983556205368027388787940452822671185429167183431705900590586338676711129122736091233150713423120583054622723964961669904362378247195762619744712297444988245647141043979273179103621554924775972805459314410694227454942191282378504988477943628319635744590704474600061785561502596486194535533227118746188691293466799837696023110304067163270211905906799664743440166446011158439920225371118022077044304762822851121397156376669281816451971676747678812722658199328316029406256952921683283889280929585898217755257236197073666701446176396318167827478942030822833313536173305509849241238531719584384361670158112933951186335656052873912758595032413311966860865209241167105432598378085858805972824195866799305159268320341491112177973253512094463015791852364643070334531938597928953776486193958654202116997280443889409438383714104464555266854972167992058979217654090307829608593428470205836731322176684493233105086018652041809172164013394347074938624127188646262140079469581469017538013911759965518608770531125919330171089737981108739174093463946449121251370357883669392366861287639593109679174853954794811541848983318168433444219014965520634009230534276771178435600630204637769403012243948619073917953545899149124706667669950204978603846223233980793118702183500369965731426467346590354137696086010536638626554735095944339201043986614042389537591734170966291535981501904283433208052170990603809163986615583383683470805908606874149807731803316684544954462496970088085576989862006896335025275441384030933367863146060369721274271043367220940194134612345186992770415873398312281191122770608524401543491799418530483994285821024566750257541504079538244683493157316862151164217197204862923147917467167709315964986325993611874951573118491492638255854340558493706444035055881342827000081531795003468729557022278830373853719500136078604514877047221394208049821498156273265561290380604086327888986671051518908452935760754699689832543821478137043887921339107000947778022600611841021115901446894079606543201886067048077025373398062398697048427414863306777259729257242224560048281197684122385541785305940244237066184073520140106178724057893897126023027500721057670326234577176967031959146521589155900916384996743085023530120508143032420758721687494306848734017745458432973519793307363574751071797433137361717434046695539895834013136071882340493438577345390653511341109503738952943922969122793206672544869052587644892747845229822129452180570324164978667821255955145763239600929532602062608001751152115828027135497330775065062853856016530229788140940140841842865358693012701091963329846455706998488672771737476843212694897679161411870233629252985833190269474251936571154299489176424882725024466618133175639074954197977748655757721801612832709445430275794249375789027816682077463241986048585551919662345354648101244487266399354599660738860095238239861831150178698680137969627206600403115956921091017587765279365801065363723799934001191592689340726236364948784285443639427123719168173428206843912387982559527895916403393382589538613181022478587620257448921949142654746204527428633286059572268288034549370443650696304988517584386374535900507495011884140622614722871291558808527481396329517368902312164584043366061950889035771818930781931217123203391449959725846295520938145278807978305462510127447151906410061504243762813560176185842177287605438139095433218925722805604490446441269479603656075697051743441021949033978383100379560888170752820289733349753277443622312502905512590133706713820881336164460723280728921441801021638948860473163608175239744896088083976303094145527905775894382737628943321432288341453316301678094058157386450706489077964404606171610311029499652664220117874219144631777372149610499992269982038971302572973783552326512904178867164259825440610220273346324201446838992105298437922367852282808783241668160290438132577534671253390846251813322556227680806203400834188890381386879070322449522758086605843634923583687223534565252340075341801341243340389048672250343560775162027506860719475046827927952653793460900225494412558113688903389020145632331216781949096838861543665257215190612356918433253471238755619926284864759619713602998001652301724073472044198232755092596901871696291471132892071766678123395387223167902567082952622863367353824414997781261994981698944417906075094521991828549782148542007819278896306298049991656306624930647226138016158960776198999306213781316211302579611178906520494296378036979620409004571567889056786173669483829328207497832094147092427567733654028279526316293461713480682851501252682619086140171919387121189529066273110252001840932818548903994053838537817195338258186326603839058838304827238478796331435428197403209877122114479964852632170271430805519680106119289602899695387275538377748051088668045808404402649263432189225312657311878728337518440080343039669326181388402160923336733362236873565205673296354392127579347930268749046841366374349847092857884748077654481746256779840554051916228402231334195073669017148537515424129503801127677672926855577681143122239653639897849228696683019472199053675732654821183373236018681274593357324614315558830708866157340673393727930941172268210140625304191845645590193276501466806936456318011799776905040664491484252018413163320335837534206564398348074760971274983765470608771945362714046156782407272987487765364859328080448766311796019039043610773854909723621395327002072528820508822438715843332754961072788390956865546737471674013272168040327997651753230088124406642696918186616005699757381068628455237306871708375414415615142769978086969206828918627940273805176775060906266535600313916307945220307644183234680924519569978070190166199446776493125947485350483499227834927420114053962499355814668610245117889564046552810179324927308957205380039061107112768256988873214424611226434934376122905930708894142032321315543172232697090896774040246166370130385952331120318356520370339999294890019146156183455537721321798655543244968786573909013364059246873091648391570596383839661209609766002590132347097640428377628939310140800324803722279935422284574570835268737846921839785440079880855239267658062866247398891480163636398478089990121309747160127426973619633183300235679737548006772540884062932911571940670790003739311224183211872463265491875626645252116091625711812010109122501566470933997126944866709580570905183000215563352202240897117996710276240528272170920571380729530675812143806633868905982143456802933213925350896297588277304793774883185364302489630186448808125037450274914261827324756371305204826046627161806015766935146212720190705467769062690614787926641282448308431652833342177148827419320782571082056937292142774734079170953599634779629153424149403065962357916034895675309655279192879636735352240486942092227188549801566340475322975857976471619705006230676007564182129503969984143566879680323686664111850913767765415171103481921386125576393970415202652231397946892793492212512097537706215054601938508467702149760040680680370630454731240506620978423622246759050316006875773410333039888970763774134672156921878129771749304121464097339887786048175154167664104094008661145586989390442794771671986608408036317956030116095798665112301646931793889147870133783280468279537599952891420875388461531209903653580580589152847947584101429132449159625768953636144529264157267707800392151223791108365617087664055187554980018970059739566845415677594059232292871592696748437513387155801104179363877681608238129471533486919114937592581414607647272351415417597475652375930017737851310130658078083302187853170897539998607766539826080238862702485656340414980938644094032532218391685589123834507189035339163420835567060911284616706375423722866837112434996635344496277833794160435059865228161971904814907352025701682522589815446159871132694038433920849938406669020975565695261335044387097594728197658612420071363253319172974320582738841524170410592929604558637316098961530948076499870437014862842629241305470339776017081269212337305823827220461093261249188566526411456341055510592006418800216093296675618770051156325943519658159502228399106770910983437887084261405171688901079186901276542343518945877971591588083871751067519347036430720528978418295854895093381872699989660507640719516478589195083100779110107453508541749363429000343844424497316160899269927070825657117333684758748651567227187092942787247264530158741717036145073765810689721010235216500430676728307475988663755475038960913049247974053400042751071455465091510161102407028972251354228752760264938081467286964875899167720387202980112819741193742334090210412589600466777342867588601461472970251559291234804139986517635245911802453123697508460476515919028762613259896689189042556929180368249234946465666224923553352866118667898348274132048543997132785774220819733895402877700446742368413675982879193148371502186439247518622121832095077412276452153181025333655238004169469807335778765132060482594204504932308409189408063335431452930721440662546992733632907709651500388338603942024385592244882812556114599054038178301714690772068199979209078027706234396250689964476554856621562802123930142944238258418842227234980980673048372518951947627763643746805389640541407036126876544115173066781903571583252976764572975676681239634316455970871115157670164278135805066898065371039866220174909709657409610687564793896401226107223880613791502107211952531626332659044730500927450638523098312618337871923712185788755964055926346769319673507910834432004952163514829178032996833974678606492678317404779414213669629129623433198076360733326336787868540012252502439084065501473084146390408161010760133318257298733635334819071951527663616982512415618127388373377450685697707965456137612033400310011009113910008924870744808152225420273410857926159516046458820155155639436169197634722048216528725745076562404874984985158818582738264537504397773796547279158422754470624660322609310775198394890739399843078339626458442527071348870573809173920908433964700100557910729047533110484254194471368161341461861315899566375659407905593655291512719433346079874606854648086607603770035511988184971263147522649434893086398781182302474733471089194109635114216903775664961564950834240395213166335563959536775061261414721033361877881157931048431060525415314804381990570957943085835237786357381341369624872926989712860894289622550454441085320895363640559374808995245413402144430608366905970970515662437174424721783152313455022806504066913253818320247789522333346967937333796292127457606133896372549645211420139264638923603429840273430851226071044194097997515719942604369906312952199028011758109477206882434045557708578567982725951018759963245927642817848368081555785273626407515364272244500501691817410301625137835560319775775033387947203621566312142463180218472312962488956634138360978448418957535420772926249227020039966575595429667941102104826515046381768702480340483274857497408974850271307919998810323775603777962276131068404555610178278753902668792415289473080631027030613933580133820720449550791625560058513947474021022257267437449319969439534988214493007382809924086605020034925922582606040528599242312374811625566865988298561454425176696291505838917893809701006776268846272751394148462271837085958173333567196188065237770334661110460267504504309629522783690910305817380961877017810228242643173408707655445253285834579931600153904990857281283075604627341508431364342804950119370531540942005246831321259279076801311818373084014481394802832443642180569320086488449677724785365774568499611099048231431999714172228410950254278455465759530353384580260000987801157002766680628242982522066281952244504917218353081877455637837891927154187835112604092227235515856157789673876062091088501359420889740294826139026491212037981815948116533337323086707779188890691245639257606393555820093522866416224463513727870618089352135633999355399217593308815568972962846816711424005717702136513532063546814057450974284978429354327205767531665021135970579208836435918127521223382483664413732098991027671005601282371767379098453386721975761743598046282869316659107069506760668122121267075715326739423639631154483544629511634676775824036523025068681426274152040478932659333363910100999585330983022795011951530358631802690814955899142677220319150187314481694483962560587265559123780479958511904352381529540589694718082768912545231506987045745598497839748667642922248903553765044738075926046036970396187741974888144835319803790963814313273398868524383831666417832117068154977953827245794065730008045840438836005051644056809539124150047489123358897655712525423498263165001868535820527615214984081681551762428483771071658777851447396429539294102883741979010914078884126808671898417430492539080703475392045340318132366824377772980266330114272102761045550228546972384258054323582597510773036010937675875015171410473278185917863224182823412650335640578401203673531286074731797206923781217858245042232245650919113660178990661940166951074863246062216760538395368891382123122459719929271241135690432819228388008475287459812010275716347131039593222925885629054024716624978401327569178158696384528631993067033746891006404105174494965500193772486880875805553983699105776144020460857098528871499391380325607360031401679025101803111065729928805768817831258648970750197484689762075708462671884663536659462294461873694131874753255944101440480169831771841377085368855074691389565837043439814831418049259774583638846494662464055088275929610766844079248697034484759447352452108544536949022717381108919851457490496755549458366833488264215356602870360943465960603548232622820808691082148044687456517020314207416963357309251326008261819266692715744864633772194730882872054811675904210028802458580257930789500757553127753951686757939696251525119336436016479289693627042431071392274170962657534282166295260367279274707532041630826484275906439559026316771190185232417703671281784819046647373113014962047474941564719238893124661735611111699223877286628848597376055355225441322401526084563153729732229095327028844067102160016169508423632744241953605541039558159466794945615067286713726780061389792267568413758708137610705477629258839449371922533257411547659579683638001919308775814091963862012972898081519466820712190777756204177806410094479811684834069651620771325628126363157043448039365580009776118620763244767694114929801817256988701600533425923306776417918795130933736926042959063634930342724222595015098145659787625556628759955928915845713527579983613748425767183427680426688675680735367751399049853203257464274799343043808476644166897015794081075290893214236203053523642382230052529792483081798826098994656260946335745561971515855490751246697795218663338423103805469860707885500064811734299596257857024466076150820672395668856070595594244702470845302908396835336221427348555406074686713811971834606422830541470325558411502452160173838761181681395203154731942608748810044299721997306661960639201492961280983166548948665220669505742088450012976881161660273870787394505121524222084287088339461826096172069269002242984071274752128215640494189969822499450859549928967733616595133309884159277072423966414178025377436609760793130853438214116330042999677685078415457272386084388723918178950636970173573829867774533005613122718510375326500358782335546746171154001999040022465108119309602716245509241549677536893994468999152440071270155449935087264401409690093365650399010129851150140381759278100922173662004587001578245738093716623045462278043017924125130627133502844526157942827528064949839246291377190582775901146155786302858600823112761457365439377094626767473511267625339526175034716242872664060325847638888677452416385008944081240512140977472788307721047091174115965428589856018823232348789770675925356553923818115746180394475398762560118419526980759183866848043936048723754570303676097371127697379235490838193152022302825202713398174810771597565983887438959234570847469746960648358945287579383306287214592644206510468440071755290460885392026877251274283222683662400757227564014707493750755390935214065681907802156642128864518796941964283579459522195031653864776602622587134900336423466192123280372241680603932002744828079960620142724035561305274885732118416101805797911696603981313878498108704531467791327946544011699466478814681105828580045256868014250431562158172708241004431990186147904488687587074015911713042507719738766520383159180471232460558739080712729028555302005009080333534308023826411962521279380497969898017345485822648992875709364560258568529018361805909641861512225147898714317416583431376651971650117053448047749142618881428921555899748879889628705136289432038563467622261263650896334843018195393911549786147079199135919451796758013270043561013157355656955841539592256212884228130780188854265746331355419937577916938861289539483111753814821969180627556040693637733252361306323944584679998796018497799612052631966717141564611244821974099164850888713775050340208513168891629074801333216944128715044466157419906026183851183069528557885904707488926385064052122765303669157659741995003955930178677645299016447624962107041711693656108325101814810890799464352449144437880450995696321354619329045734185470667877519037751036493084961876172348922203631985961085598153910019032174258179137434721333675559961897295365166789640296304589344659584160465962443423959982558596076341617367856732416581553258926078701980858625950952916277646142643016152109137916949947877745609128180275071264216570487370712376206207779016899647251894047657977405212345309422863163439502747965123644933157892556149438804163759472534274950549699365892661046818607456712937233079397912504327360169267951187285969783082132713069167564885673536099550621898631084143310941271391404075063276872106104554427860243124933904106133214066404696491487547893742245608382995941801548856012870104774322053820442580442558904452168826711520078970384939549122616386677584308393171110953639400774579915343861574679934421005118963023060998726823861780440655172109003808742023172870862629315598352114206775250340412775879794881425729061831606554816134825067055173246488452235569842527928117427958718169151517066831086220165800123413029289936248683099323481112786169751805859849710959248019431643541356924856685329917009865609281469892056563917751149028459410788371755009665649380682319389990135318365564895935072898213124665771923348957343675399503766835842897611328814871182212294710373045762522336780159923403382959506825681219895512362531677089909287636443888235919641666025819525134537715835734751767638056097128731390443270575057829470281635867229088456814056326193635453689268380009718140287047720875001761485587322260361967363547400653579186321690409699260996798761551690871519991464459126631802574262702901699906858490474209077188324408713949561748002972651576796513657580465426689652510933074240273558858594302646458403625987549459396239209877897211887555474234801911779967379691361686412671899373650691870538186218915899147590931551015329792311062419418723223393517459677957930489266400258301535028399613862191660730898085382281154731621124996393184451164828542648790342921140736855859093806036176359733797974643893206791471005884190627326356933813512488247493209526411367957773658507456742898254516126109941993605925589585230003264227929696984548389200174208489853881956597415763992442850737891500643879773644951240008272021610949138848552667131446612842588117387107702007670815721883043910934837929712522079880791256685142912789109351132098328666472509211608621900083042701578489883407524086296351207892362975700829415156306287873069471650623771815607073725922758280704331786963262610230267542122057339527862132801297705556062858837167098442703724367499909891281910024531292011623688267355708891341035999312377829435045102282536885072119500490412814636006515937784757033344675417585669173402244368784730298288637236817972798056614821636284340348289116797638215777866936216053862558486160627850828415905904134038569450943200580041716545377886795647971972489964432940360409969917975535372158350994518351774124258169745520984055695433685192047297006411836933888804752371329426292517246533885357926158624566607804449898596818134405375164915721826536281402650129009078724257658073557837649657895854440553798496547872553714722762992090064308939466902439554696874498557064269110812638951028736458713847290236860496490747587825465794094388192672373126997173897976763793182441948754350032492723989914611142022213070241728794948045431817084871888403960689385990356276705961345391497777341064208213717052825203104376932178460275894024451979151099788026663105194720298049289903178764926025720921679137178590140209708930815664723264705220426059653568602129597144743441190075359181108785088900866093191450636585923468482617195589582020297354227627555729631309891897447228954580761243914796057928683302068886322888836035723131958283055075781577856462910844945741252472545943053128839967295727358193606958004301890072377426591193236147036076963431826945185775245124410349636276855127924355573460135919105089463047304731332914221863063911330281497258704061737134250557368723108695186533934726505063924402958631731580426333329928504832129863528832456776412018699640635489699390869135095146879296226179645544527917263538782149811190301115827178474506926181875768999495215718014789337202494435291476122007311430887754443373367514172001690445261688332537189215114089946238403196452569729647205030790495218735477313582768766731384166800840113187144401400075477661414283412441687330513245584004128409581541474060980818889776692945861160794575020178047379866008136561930193674247713117362829922166370953886643299681006929279459808665638063716430937237374580570900056350525502916512072047311687959707426051049770616501859650552798786607530359672622095256576556406138519291476704355036517686732916281943984791396509367447076671941881608569238699926873250185820712306208710715193500683776909425902777951620749119684770744352903495253008768691339643851767376250244568582869063992703390948634036076799633201997159663013097695792151281922272344333139668741649297578846385035768790076535368707996045135384040408971329614044233639198987069147727620230138197030247352068537299233507399708859566111365759315624036918969463683396349342479360300170170990387716115739710258465060366533149350204472180232117671476565925641589439082785736665497068740429624731943886616758737560134496696556742826491641130056578427358713135954993269648659295376459643766623784802265845678245941974284659880516510525194723336253228208036099656012368801663828519022340806013090475445874033218040814925364748875742241247669275370133440830736934411277596006759525995843012982217823066464720576596359521818953603349261242187022025428116517629418674127935160270264316993833187960428161971088164274564358769497432310050062825360618309817591600530935761001955620109502804593751494278009207525757564157358028460388644738216029328894937191569243367744436091010810010083127921082339480744748719215693264608874690270127784799704176430428495915288159624090595043045494434549218942135135286272284407937403913239625012065250822684141056764834595374985441614935344881645686981791739009194139022592394217470317147584118067363330212702338743871579378316117604420940110273151566811702385744274095137378645406745776245871516170865536267653711772312164343045719947421721790190221034307155039134594867803726352482860979102477963537139058634998171391651704318640363015452639734201136390366983594198604047233299599713035822814485231603259974580621067527711846696121988623425083682324948803690813274101310802555803860052375356855215468601424652367946833701545657657286296848569490361036479737223077232578759381604046943378739807722971313091224618463663622471367765137369367740044856875630194903380661993809955221818994449235651706534806814147508116970480857563242065164650121778387371658043244465133605732975759393057218628680782741852765646442974559357142094529622453701815091442390477563259736775605838054474608680442422306713386454185665329610068702278456309849688305928537490597182679289206789645276359910680731371937809530577121811711289557439369149136992820899371545955814390184245871632369891662115731111315621598771158856231237869275780966122086917457176693697658094151756337695844943307490599216691122906720337388773697473641895841774110540069814141156636490003813016915240140956406971824326388485052480579555959639057774246524884456935633396826299204243574578718076977266139377899632667698092993010144401947989672874898826649998699456042797586015553265681315790117117448014287836008731570064492372243594660271946381000357936060569330602066234193059191084821204596463483179776857573488950804919331786426076853855565245438545255853793832395199431879000575645594997074884365184772261002236589741588078138180890953122323684021744721064827074502135936672763798350037793463289539960254510549289353167576155746681793974425792624529166024562216548167773095813505119607357948883722582458326769022643780390470593842634772040850289947020970624023494564756476990893425389625568975107671993951597692338906657591386101017781794933096581472503287050501078095341113747407807675024564757574701092041571840167860013912548904285641401688408169442514976597333371834974732509380701462710938004869472201190484434807643651659253353496421417405664422676445880755661647904539469559304362965317616425205763208615326518020047724117914504427435798372944654430720948431168364880977968563426599636283055271235545489256304316114509796856288596124382103187774603073871861648922324751753633458731703449354314231638381687491127954846533196563091625616992859569170398647822050500640075393065598689830027069810964264247703840226021131501130463608717935016709627557173132478942892981525316395411452453146384207960330567765656025397807424561602285833938025301901425300653672474958136813041846869438026312675892183926487537593078969992326616554990393558021448737929324850200769216252598447832872785455317682129579340720935284827385211416814486384949355746742507703128025846662769051922963410243663759831197991708688674305395931988988734851332131951741347984256381897560286672739739056021400926656583665519911460350250126836744827845430257403676709150801201296650079492301730290720972941089109069447974813158494155674646898480289895059562759197790570468087190275637140514307440047409960765125920055785016762293819272134889403168795245300461866235439879419194658560846918504857100781941075279198705611396727357333446280547941782241531867995184870004352336763770321154414426750657490148937517691228881685014693222053678379884923447233511248881467992345612755050942676817169427387672947711520070488642475720041293076573201350081483864209705788150630189884187264078193057288197364643129924741942949396611187595440050121024968256964387192234754388573390246300142466637015896997313312149295354519841472397190718799051245686068166343569728233473519901079155628438446357695058316052350081516644624377971498510826793617891247866830908944363807095561714483255822459014019752625947530313845100488231053430999702981637861248227373024564345458517064947554227740996520320967652872817350493100949012034110600224811819545389135259720296657471960979963676639739023050570211881875708358790945720787937179552408316968220822265040932446161858798259273055468247391137793798305691398619867454879015721624885818822342952186449453375832651721693284057062219599631015944917427797638734919423859075825077373956534976543953553933781169307484686930015079018926262475725588139433942069431009884592212388814192933489372525978671920142970342529140095990682235399467760020896467457765790448970732010545897618426917874677924525789373902088384107113367115707354243990509061031411582311399702784774774936777956507966366552688905539185184369702905088234074463019366637596000681100374525740714579284016092174841118854408058491840113685748504868069021384826841639900392389623036249359907115371145146862811755103536103752689852342585631930863837557813762131069627776586842923480997864583048610831317437908194434698430449825655822894475033875528297519223213761561568444489733049254698996311519107734533876296104858569049791595835830307545541946024681592023769751648000002393634135003886764513728320372686963584125205865985105164212917868678068383398007600714173486748380558601541179233736727154931546966627544666689702081786780588981099486652561872876530401226518196100247308549063925342618925742760367832711937484080626813959996726919085129830042247958815113183582428748214849281450677277402674780556351896410910269350925051301758684627257532173291964436232461033107461561526843778859633326654371233434929513161154992829449229924256605657102884010647811995829405092902294118666351863870288609610598106166259081312134623942907276104928987518688354460138134271527239492006003447097733246047578705909846135702707798267210148671168182287512533875032475514936170002736989921790324097982373628729225787377153908370787831890011506264645226731704305482906170895417123052634787275545081092096670369304128238203511642705940678969910509346134698781068482390550000929118170836668756388542729294863671948657613690764526422024776097856765328846811856788776250270564990408115372730774724059277246848649390544912010423966540228461548298669641042510084451900675140382923279028005996977320281294149694926929200580990433655156630147149931893928070520102256508611490426390836711777061655393032146903321716734066382057074159343600024635920055591957026923233025135577116754193360216420240219606650719186485335737003717324959703750509650555693503114167047026015931057303272295466250819584289972146242719304914543207448795404688538150231021440610556567851856063349029446320225905887293064749653231127603385168745194093389231365239769597872043442518698591386719477918021247133614905994971480135783811064828853399773508730640505444423570015423370133896588685962866483397563475759210873007500034183512179274019757666926224583058074978491993715357340149443528886512249935766092755943002277058759005090533247957913156788972287793812300681518182815721125665213256113923072625833179901872772190767565183863114710265444135790101716916123161823040328221297007382471996159905603684319281095100853824359918265808848284408903086167170540102150526419865355162350751754881509786467058557313423593596383591429322212793416464032123282421789191996706382703291705366067003503592907349299589891151437365906487336832990022404967141567875790587224008719315037706125043190660740633764353444908348669902393128969329639669938259698875057920694603602042684795229601342820764804290052144942428967894631945338923356515958118318719383287723513414088854611257045268837080301898667742577413948503836502899684476593188982102725999906600851136736704788398587549669108961944535845683813004638249416192538572923533515140326421533222095473344361038884150425140563469036821468460091642839163206180922220081076336641206536333733238582303100167018673401755714003453854496436440096990787133208215322604419290638840176936483684384969725844688251882674115326547351226413022117890166919762743700828972189915222849610751575924280132592960130010967412015525546355985192503254123974596171054622844265862057787414350184949386562630170327582613594523604601956514559099514405895023956772681280313957329687612539493609564178865311751129562797880269875941478467402878700769146697461753824538816170071349048362462985523933744102957604571335203225996083783949814977680477364686963374926498214981443413162723006264151767769975672347439606996832845892616492791758751159364977694306171994743416251679687391186693426024308610339947173458005168640423160212192866512404296763186058643278737530905428729781652559248030903036169142856796758482183606706244876401865922549200755403827607568641687584138914254444973939598339544243917186216120594201665153999417791390528874260432075949031413623630921371128941903189987838116775040824592746165593845924491602110765452268962732977714091342495023331728341008151417374754932219273681755903286713786745397468790318161473678245045594800205228820593620028055717480597385435157342172739930277791914124103750815947472154730427549655329004426409656501312039600129794098136757893857479445862687000880234779056656283839678040700334191029952090939612180569903041683872355593349763715161061990905101854088864062335374556232373029267427733659902514770575122758435628807570611274348271596019438485679691396143460408220741898506375051822912331141822635952347931976418682728706230542381446181727766455984583275788690031618925541925473866219342710014797467297361002437613612240644723726182731356494454571524339116295581294546010726737321938612136455877887166725407762126212213598824223972001608853934474964239229756743542092798869509191105865533796608134243892390181911088094446479704794909051180996457060352217727473983354760936047744339250746987063441813681445509327043758818019684625799481189501792424057523953816309080273886349841989499736164690407675057939928873636573605893041447166460384865787170135445532925322255538715206412410426488026216547276583426271083829641934952585552594971717453518361344231863000652290674919419730710478607095446784309720295909585108495652840620836887637535902559018155857900104528518402625439741514442497262170792454240469755931739637191608956569319814361099854614095543877731142537059354967393850202057372241949478500292854894299855323958913225256009556677230746361448558057069671010664698885388789479566834832151217194059661993505490764648657085673121233373515715525266557784773669253754016550768051404256822942909417083006083775154434564384021622032582617041949163429877042956343798865744488705654947701479962706811855840321399912961278647850656429191408394008174962519593937562845494975882524048880700044869014473880857888989960858102723699708218080538477238349879285722103430046873642733631898531856104165666462771902754607418657442220249164723657169913407979012611411990391032449465811773772808072037462073079193756242814707930394039059375822507249566364224724284321075686365550093979539386990938442087351697058779989935241735948707174402423804720634422544045040282324650365759958423641690521669896434408587045269686281885374090125996880676966502310979174700498533127136938862350795455320190797111059901721459897515419471248307499428623926003022316131016059599804271416756293682158240620770355222172868571154259734979898748545708095911713708073328414241141974261131153494342862733491925881893792630834687655829476763674460620253320415197990322461402639674938233854710214558542400087107695704401704599482138184221681063824143711265950979310652824199716746111635624499261819385027145715458312076075963882817985112638274186971352767055626290503198736833344047131185312749718645416385803787012167101854437075692877004688306233606855596641184434293183885709930423034314348930834241765612831109451338283462533785484886332972778751560952279353088316188111899194769803023027912061866117747472226677486465893698423664705971444198801136421245723272038563546278490991650729922587727760704357522959484785881993689465672020825762026722951252024720178126769903743009700908957543579886651487470810206023201570712079802311201810204170998805685745848380974482198164276907793114785841681849744417316479804865115415335585291601642382976591384946072639428617907559351881325958580963527388124739831715612316825230454386331178721687779147706482209859191034731185982333964251679649095965404337748584254491800752995759512889212640192153144216895462344466026466381740163770519541774738810015307503374684780039254087085953015165177810234747292494791634407646972069811929951252279534999610512975445064247087784521826924258128680388023418435180442659219803752460870267396375145847202999900973506529654412841658268709473073330030538794871613772159740568070983268052944130978490400917949773031692296920657216134047466895752023567771811005014402035790439298165692645151327985585265393099989359423113462016289403967940278535469842884210461372070189082686875323981346694705819228257418036688446317267713266268385389505926433567232602533271753528722050182217877754456823228954161281193032035732488541266785543654270317561543933045926672856015467882611436514014664848546446778904988932300610467548407513218753867057072214340782747720232552328621368386959914230381793400661401083356232217978504743417161359883252367150159120409423667957092083129078256306824349675147916668401016602473932608785384647734472490288569029840737107487945001068877427944486833871029376155439921679631541689595894742222581268328804613646794766869468877281837858192791875381618329482674685030851343204043364008401668871376323132789535326581625696364843732597992981104069748404973477703275450245126254083060867231912517922754119572275710238248071429776059527330582927558067438092511973468006820931949420569007048902744592607327469547597269768572312182357828641273654945027156318479161039829706989099876555063019601493402494155491864403234026911125848832476349277824606034626568382551922214362309485141891875238672735525930274399412678538927989654199117635756110442436107227994094243499443988690490837073375187352454765724546038393162132086080314375061934929181135852753764235360180047997336975559391369597619880996581511129802105800173454484576539147321939588864611719433120553622610891928300397370353529408527534865764357634006115408913322518183628088187910132169249494486016765362667139737627609251389910625067113180693364199608867134159634897162019125478121591328104222522374572624313233223579088028511132862396420930560857049368202728082607786617818849693767887619857690339735262551430430951494095933534350444150683461199834949261113975673269939547539221724712920910045539053167938224362334838794279388608457128535830237021141026666409572178486585803638828600149865262858385897745312777464573976253848489382830723197571309251014227288838941925587929944012731527320179580237022806126948834521914057867780993878006352875476817547312262811618242221110753111574101774158718117348039375296842076774438710972023979898960389724075092719031954504952594177370831187872477875732663973559554005914563791716193932243741707278158676299504760007491295652980544831906285195227020124537618539003449838681389774089383373715093195496413906921246495535999257741540829464523453338937492312033704517775918638515167538339870538666503445462463500166622344546127544472375867738432367300482641658800636112981023921828223954453682255389931603604575667490500921139208674857330604057499294249997354775887290629205056399653103343375537948461475280524608718128928673989356529571482344494349673254064626191519367991390489736728797448426144532303623129329505377572853801535415074432005288708417634797968044684635108897842220845743824646583623214489387578192340025259025496376979644907126334956498363018166544086771106559263327062821705737682321255627976233304107375546064076559624196712458542445925387387650277102800908273020450950161355518475554804835313781009642286557702727271230239677171755832190197545279072544766287054521265091075709060085350440411119395597123561058699116319765086687470421550839725074826089917448433745313370483881327468452671128156962311176870144361279694386100093000020208012711901788606699373878633060046024476457636206834253343867290771103523751874775306773161773773945098471492028288776234502767272611656204406740727369618151868565579990895361221692813193955797896336199341847242307346282294714721206792164741086411458503055670824268906805153985104177012313854366747429462791109435984822171635498207980533205711021327572212858658937573635033762843446126169552794758783796194684143081115420675044312005667594031452364308954907312221691251164148601288893031890733089538180118874758693217507680923034697207895261751625412521765782648329246404830428731892528259965017422042481972682607551383651744816770156881100620722895676023994068642198387966961428934137920475445634217306215725148682687326645727480761079827671615181482003159008622348302522815154876761877797984513315030363251758019033783968121309276673654844330429867569498714859202834273488888264330568217728254855559364899082801073521919771634623431493816559890668556954335352485394587976964895632809354311705233588646092652421867187317643568805860348917521143412091617212182570110202371825346658540904973681940726385273404301239774129100084656627923353434790430765258628424604212113894763495698378352964655642830041542010443617995614775662395978340479042592329748792293073045109246627731819199450749221677378486249182611763882854968467822854768884117574492668572483961213165073281673546797760709998116053390335168057080852481421476738499260727927153841318489966826753368636256973193553984493984971349101124796949732105080151244267458244943921112430542450757537271996694279352262481855558083445534721429733531704846853614478028658036326363165686126685707436405030857516530327543079993692683881004970409672829277529062396429702942497468681391261999200262217293881615272871782668081731551301903642708851475494609067981137931465080431614529145639813778017315707836687486435069953362062833734365902064642947075530075586559121990054582920915001316533117832283095808173623508264966636151731649063805307564933360388811510652509842553861037400132206440739284413639477326482169986455076065908882746245274468722373558099498641374947136827832421188293209658195171202914530682971607334474377456053217698745190996416429524294149721167211803844773090554326708600943536125699936249505185054933731521866521587316746340359459819734701645289065365594638956328943296439820480060200379051176101643914486342400560417799505106027703218481437128693611654290475616356161776748165435999727155279308437571386191262025271954816778775157358210699054810283187896096246631743795002859342774660611446709153949181936582936240968734691777823564110873761035009827227136008102130035657723972709209187557164840702389876747806047317661733025856095971547042368693062855131461502497632623541382676326411240420479104373827737676057415754560662047068075108073300772104894253553193575388478558389469787935908184170100783519579942710078494048424247270279792931312176948601632488320590182827589610150304560627345778941741803800324506480450133750186928034397574303067754253444072791886804749858119132567096336208007503831111245811705312834639930011378001423275226696848111926433474568306820986089881258796408010382317198298469962449062784954582098032586839418509514568425044223827069276327215640459056410706463492523094820301960148204181268838073618731001063943848081911542309250990426760222038843132013767341394322526929693953097862106229247991001254667552046453476276049817818811743436241796965458397445966685426630285841817517402112978291625297374432358821791158493133571903905432881374895202093214495209700718775658142418449242292857274062338955648824140128197994060443806846528283013853969284136296061119323603178292984760486870362021336104375624655281611826286849402411674219250662190466194762742915284962677368047710249960227638004735095457029682007636866482653876159272705229999749423317412257860662919194727539885989937351627873622353198846013063746338975258518507823103959445395527782337017013374776886998146017852206564663758629792418265784478529245696559365793223270643042392153804847516065005487522071351817123514767685961134110253221466974151399745254794726548485134762002638857283055032525750927784605740977883209440115847172278968904039664823853465133239659859755423207477328502626131691381686136461853329014186574476019966043663139512315550628249374079414981485730257477439367335639080485504514746108805091390261684921274840636885279431053904600225968888583781663745094030335301287238758126339127591966927732995141884457179595735406724651296545060805896541633676105168572669757546531530489084180098600747828128157414708735508591005984499319478966268786028717842817096468676129853706285399551759891891613262805379989565717977216238829095138670134840096800238236108897981540331215529626805734741160989015253043237313771326515184677673691637049801019964646355982301888048552682514663179930614398165889026782470633807122843784090593311126424699712859232337031095401188524011137906259234404582370026873076134103260790338448529760452310362127627576798980414162201853625488883909138098653563737815332684509599674551158158321495251755979214455389544231331298114308772466425447789572811994204048576715993710865927856918576550261839207220678107263829102899295219977456004897979531243438308600776099025269972149420692965295102148941446697374104427848810596933886461325488014752229371342521112516930399302542982597635582032710172177648987293680849919096753083686216667137608311636502022927546526280145339932017715817309805639387431800956026534511231040588039615893055237689440260963675199088194279932301631612832475499566094853513399450887723977272384885155238952474559496447269354908873384862692094374951674308661386158948630432168332670413971072517170330586982521353299852754758525994489548770361409580459718753953057188795877113538004444434736124319941474492751019524981011267717692969527451896230889775165840506053607936956564839776660585806174596070512417640474238465006653595966788688799021780003451654422904380222830639098676711704962542207950678933165367092420912676948382507253072200831496233464522057629965969426906691643584038218073104211702973931868931821977226801794639936588239985924235314743222361965174941651617729300604070553526876177235214686027030713651561289350194129580605406674294724632755193729015363996361314732105467881237387614973797578639709691468280028708794533678196279756310484258382563321639153841159889547298316961721588349029285448633158947961673476070394611694095838854940978780494403511716618671312006534715726918454948516474139079754493815349800475789627975959068649344002571339379877282492534757618524345901352284643275562744476574774485120746726713417173619464192537130133848349715034723009848065829720753327279361449423494282723060890707578534662221668606829043177176089323593868310870099295990632537703889434930483274511634938603872522689393033953700560480374584488530473789726373783302267965564123076941353783437768921986309577795960622086882406892257763544066193604995352539889505999186299642063470025003320226917071196431336094318428439623643057750963802722492924717538152256559523760517359674997592173206851062130715206074033584445759350337547072257346158885404881534229496248974376302288925029069281584743057142948864823771806171604626835849631319012880432265692005091915145174306638263572521375080611113657172506743635827895434512496237822989860610090821641087986611288105418537139757134375379962989374781081194337589819358223790297147336971284903133081946995966795792461137549531683556273346532900655604048170683344228151070257192347678118330544936303267598473576400457496160924677010588721829759457020375633807157478106940002483778888171699036924847005492477729880306118194771437246039283694109368802760594560749847939681222109824397461533763258944227259012041582641707011251735497232626929177991968437378475332737272507876147406821628398891179466406826220930895039966947182937860332731757780421776050278397478201722468339085068502245172268539295846858357779461378500122243136022445532445068001463054786008330533209630339593460664261902521988861583583761868967399934238946793280699266090722143315425929615274279195999142504681956498034859668836864162271566200269599823198120647683201336530940086958140706791641402869417426749875184953448364918826565687835621846816998712361397696351927901130915049504084062720341861146572793965928089067982709235289898908819255571446730287688773169547360513748028930971086202375426811572199912882407984954781224113686324922613609907490848593635942856961922631999799102751493702822038613752571652127761360944923175086470961273083111087311893844335688265556493983813296623853199576891150025748765409390632625228301064623838239253663746990693869271146393413235150340862655263947456915605181606281497663181032702265549028903226553691683999068620672751833770276115446289016808641301286440971224906938213727388178713973943144632804539353865854057385270530162673840064829941357074182938124596702059560983736453203275560941073475741394526651507056465897873290233207506471073136724878770295084317342414850375589268662480495981253093746159616568908802165214985426514456395069626420023438925742840635613349977709472577815987370561657878186374397576507643682512745192865793941449748137078387573050429431722365796236221726702388707901546566129055433210599614057570294306292559485239682902626347462298262779049206415947247879438686239923427130545365348722573877940463554368416946166208970301620389247266972427197343167767308260070193915163304742410702609067725201610752939388990917750858935025960468013968558093687492488118375195850663401817139963802075205946797355904818939538216379803643389350829298128274133525979727099464174234935607251642539813291986499601896353733807365620394852028302951324044709522874887307505341876517038642181454369750218689426286059247008199234514926642333492401882928648118734765049046637641857632616584675351375786392122742743644143040309620614138690373939392469502238027072233424592530115675158508732900666299339913496137132617491165495715341979507516501729975145436613938154734555542107050552525570604535120720531311697854687833249681772123767859317773832425907834778528191340960000696354727478546266451511885324757834264302458941927096731138102699640697668904950920539229659024079259676744079790761298421001579713706675997811269005232795565353854756097692115136285725701713546887791899739874212206973189755842940340272436435102855658591519376224543925685674139990236728718873403226093653620541613799378988942809675577650884211956444116811920509127713048935879881413402532420898169153969435006422573378744625237178447677855787190981494250537976474517724051594254468393240334734297539699897461745842906760675906381541685759878026992629466305615935800710052168592784351543265433313456781713074267548597144360399840105246737245453152711461508218933527807133843525585049686531164038004875494796748033517425179096002734567803781063402415312291473025175225271370401981832026678148251718875730044417076692974344566216363695436600062879336613392918671319261507408051768907842454281167220273684327575217819174714890344819000810337061242298066894890782572344338698128763903519704299543296414543068362062119010601236933495795700627638547129892264088806491133893027547285854300223306380676319350471916080051937646169856731047593714802087806686474586413538349508833667145473464656759330314698926118167014190396369965431749069004989827816039093980610537834205220817384020921452916902670428023488263184767394142605933267312787235922873494816422763110529321596358802865594539679462608736855600712792558683657604669503100539611026587659890047275475130969601840155562342545790215841208433477096071379335092862416541120748674687612291542680940028640943189174773847066461186330427869157540000979925890534924604985899423054153385932228698214327209299786854200188786149540556012535735075091384969443169000296639167679439041210801068328162321881833959073066137256312195957238160790139635045632549106251511960561013795020808250938383858945481134260792500651186273602641575120937067185840495691579936507059671702387102272426736672890394776189740718620491333818930329185974167555628763209835430149691401813373557776616826173437061641110298448068938845068783116252585873468844104588503641903214273311193150482402643739728666524232006026601908271578921532420966445748181559101118659679045359247216577373240692765789586258584082698669974076144641689901488970351961997475355811457734720402674049610733730645818409318513227459267613215879305686502677457537257734393756735454555996372831089529781973136010741088815190957723084364498490910350986376935240164397149941751283808321072697258345492051560086845292352905663583247343412217131710391846831044190489556108888098584118997498238900099772027271121157330613080523068619659412085746891510291156111148318711967539945751249288957675692955150660417294598342807337210710662938482935448909553127959726781259962568979181393827117880856732300366077380068243184791117260107850858064260302684763247717377081800203240027818864659034494755267393664221913494534112199848705398255957575960641941062723022095438250031226569440771038412798015209519588589070286234038070206150744662589921160994595975390111140802918759818744781354108716600099412159704922405897465782440266924415159382731579242690671170976582221819704374734122444806221538066844198824198666750251168496708004655046656741088746580199069745043526809199798809415351662357102860765108704682733134596378423306268090709657475580174701367001763092799591482328619367709471156512520902049589623975527057786313821106138715763765617271579603339999729490500334173113832362219550021793281425033620004906433806021619000025342307681308191677875005160207067862374236858733923836218835190375802050288168416566239508868712055153434294519592720021626114343690532514301016635889670377723693542144552468918790740278549302113081560245177508193240687894498178405144197536284609697644840845644762628255843017497974235139883869374570109105493452303522969340779251358323590778528457510789559310412577347989331446829014048528625827669576108376542736974763986762944854364386672619831911869940919962252976362237396560319931394228971430410500609179463045577538276917987287066872433661705764695277156292160671540177846646433782509269441445022855544817542618803258430313791724970030879441060093620935983916351770024142401824348916936046607821483807659292456684772326150668492583942523630099379743085369422491809075115190813976124385226546313644249899227898423913342684049583208376697057091391740225069224324741494809536871343905070640631610288417827822937033332916701305207962270833134114240465617462357067592494081399331163186496106844864637842367126994120979669719058702379977331121588362589850247220848704878364743547154592666352309139895210840270646428332386596370322155626369342038608751322203308801461954431042288665665282153129539758385136858969941639385098472016606544112224891319721890347594725147612647197755098779368340081711748941579003836531840275067283953711462308339606830185117264406308041992825584916446931704078968655046404659187373571499742986146970815947215928556671631712759372302315512773601458921439374013327659576442908400483955761775811106170130561393398422447362261530751754428857484266285903120626835243605671238258810599360030765181102229297169495759640068503220414134476663800531011995022611449031672095446291894723482573283539796484293879242703472066257594416048184965882121906357472260752312247778856159305434808769068803389128436216902788601596319990065296048168848303423915520926463438491955763768466282539888708871065849860612627423361027779937663145626964812986389712052650232100403342904122660424352641452317441103933660392340498537830856955144318256973997081138869850577488637691631629438608191146304870864682275183751972551046197495651801609727196215290845109644390313048989199602032774689774608262353297995541579223953408791428805351776273416892065976178111310950082756893111276568002885378675948094103450488210407995580180765878300723536251588233894288565205273590777171030707394245960927750784184878049978018841875486949404415142877332116531317994977905026363279141817864909142217461718102621917966529640281091163227015564361272444363179106442410232254605187195103997813314367178666085934616207626120605588449730201635680828281147607369614132387111516340338635421571237745538404554646455368452070663835739299788276293760106050641639372544683190338431833845799160331147078860959920835493837994493104221583194258795022084534246220488139169151069926372283178952741112159276642404357904237254350864159113059671367372295817591347506955403118726969084623866007592608253261150620507991130961710994490366154896013296498081014174259183286881438813481608571605357527551734173326161386172461026738105514389569715555354694566860368164087081221242026711525877182670714782402195144772150552497673114816794755802717853796232756892096753608990839335793099690628827382594596019388299905215493193072298564526621422536095618193815761223291019468439762240907642529628296259395646891370926120279074059064251258468780289814402358843910059843927084842278001351641893983392421696576057938177429607981901089220581727712609699230617217236671164239230660981538849385901843866895630752285915615308766814095692304821427226440885412521496980984888379700051263462603696683842810176390222662627569325815379530390358172366788591260229912150118871497771603687898448949168687108874717658272098535731066157648073531672708474423862501716090641740148427448397386288031582086706905266882809413329768687503200025847748260041075926523375364006940842831527542485509396123835314689197440507294472744777885928251891679739848199156751169314722539975954151185118412913273084813265304653097955493790088596313861782784726371426058695730000439201741392893982880277823201624329277025009317802599960593132526985183092119487356268792744363645550177251185522196767984824839031211722140304776513800318052292552555722152911834719432060912856565717203421399097783917910781827212278318549315783915133571149054755075681928579205050757193017313905889871453822167246644965758981954390460041428386077683435527629677818970884754773250986416941820355856663532155215374680085969647778669493321796887352266116510262698738989255071180771762923462235997603953170418091504007791528636449200641135887998590621459811239165719256608905381919532460043786783689085792495049260063057810493563556345543219063376587369757494305862704307792531117862993257424317003154689777292431019788761562761258077153907110376329957567419057734989532061618875692488733721060765402226267262128906359869766692814658847678195729134136566279323380146624823802868311006581076522547448042434698375928078989206279616720102857400430239707089554361815405249108240455964980656382807417893767603276218898784949716484951127827663377266710919672514708301830851042318605759939966540584501672552570386063538794639531960912320011013786224200555879456328444128958000709784252336531497977102641827008112901845476205651484676295192714477031519464224255026818510095441433113722561689735325087969001256767874663004107216862569404851369181013047715559318580875459544045784234902350577087391823874235238553884762218023220011716142369672671154243153409883810711364394841076858107276316149184505693351671621422737189518514078426743548536529787237970682584409130509941637090079458830165537492262918097339917103075567703800523232017902121660966037372744475919496874848974604328551546933300975328646114041187842913371023633824852535604154434974208233720910500245004203358096386049594453727594410964772325518714139863113516134881512678435249786662344149500291788629692141722309734166672632142181177664685796319499178123235792964459219057726252312746284802789075889985854068186951298297630531053635762077952742897731415008265610036500405620707401000517978672360109875750527681530055931973396682225050955394955290223613170448449651642729057664709920947861920149763205972428792426540748041471475116143871990489126675658808906828552461461361223506604590031218058182953540237694376214751816253146884659880597753069075227462129203417550585217680967927195833234638354919536035772865565340073575061022598949941925386800907486895558878337098490978351825017262783839950756225581217532177681170668915538740908774955179302012110369076625568575408639974755427028192803639179558645383531970772489735379720545683794517030573531121030370867960321519072362044989631169495093922488994366548722292907028348431811906052054735313539119825918256056607749733980208225293909931913093555877521032594150234557533182110171164211286307951749253291439793806823919916034235459201636613251595983032349961588797964569507894257023105693177323397916303725817286647475441277427908860105104193492988648709884309510033908725870740631130760524169399827357339505720232855051325602923203518264763233040118265774012035636357947263547594323618130857890597261061401596022257464632379103176701832223673698108351139273504868189749303071675540922318116314585342734491165942461280807238860025909274343497175569061926231243277456985026491804874964489458180001187931686134861048964865743719638240268065723062824111479895999922268305028398681486078745618812621737824625544026698552159820217008837296701772893192265439562707372301657902337352318797553454002963194424332864399619562953566023718746047149043444141426282040818055092873100365101404922480998321400337202332053614727887468862333852059637695522368764844060241866372457189839887191174292749101150007373215101689671433744525358528516561083512116308431880290444134644738506068116773409702361636763384733521774070348473140508266620986047610836026351401864696216478034648811455887159615033020110496623354911112476383210558854815058755877003499876356839089852890085081266469227950143887213078660505660664845921312893726735145895632727156288965090382717757804908473915936076588488884404766987437848660974218339871430811104003832064902397235571567276086516684660696318970904850129976258098256186121833572731258072355398589350487848843709942091492921321918484080516911696925645995724071975138733278520271651694738047478581180813759100133798065226352232136915090879684474459605283586551526165176187160950962101137735901425155938144792743074114582724346165958163206242692252054052982551784299366938551160378293985952979308654723440601190353180535318526419516907446189812583954511845801806231938932454492834382599889583503784480885799262868730468754824918734477496883433309168796866019889498973855864010301402324908853313565724216822303554288970547674613915536452495944328021340361683867659605811069417226325313538381610144793129795232595177712795644135990657781924093548889806465008233652590410661570283873794470792131653306020017738137940821199382795907780307962634484728233028449390673972711584197176801393242135371727239987838370852818680570959508264116627888042809529172074177333459563794210188798555904866363959143409850615498196003491675611247639279684144533802076413802446331560177083939446929001641835289514091343588231544022118044530036328508955467607859581320710868915877210038976703362190175386753556296542398416424486256617416117909837243204460182233697378477444487134935749401601972464198623767717634328961063247077631960543850692525729493891734788982125640902581781523027637997191007338972087319867247910425088491839523817305142642679013151395912186420034193200889442398939242609593946068276927343716623130105314254874328614136572835474409564620532212310502739301011460353806369315075772259555079589519878439513904968319392925250461220452570690888695481149115597063339013147614231179941870470084592446412687445437843315110346699280124138144054044520973339639935898226843268633485715838635327009648532028227361457242309599449-0.68400038943793212918274445999266112671099148265499943432263037713815305812497663815095983421272147867223796451609148860995867804988314557940873905191188799883519183662118270858837799181911957942513854361008447824625285978694213906207961130230534396425823258922029111833260915122103671247169010471326011087527649463858304381567543786948780468083128685419611662057442804617762323459229053136582595762128096540220160302445831485873524743391305055400807997746196835725402929712588664502011018708357030603143493964914020649326448135645453452198688875201195035381817763595772650993023895661354755794681448497632617794526659552462586998679271659049208654746533234375478909962633090080006358213908728990850502675954992893502920644263742578600503604809859830409299675314558901264547453361707037686708654522822306094043493521925288533329839027234223495287088330411664040942145276528460936494120534412256978163478250836864112676652870701995734089506193624664506575310191678125455700698981840928331714583716734597151697084911609607703063578838916538106605599270842847024731543038002768039085600802049978032410584141889020183572020629532415382916822796942734253441520784640814155687968986766443021927163624935478697371795500444154908567339210555669208107564738820422789697814839787546859217582943182703853125971775989779126507155489945624617011553879109152932039370312241134127950112036269188660519350584627066913492587827820904871731608862932135327410151930740159463599005810417547430064147577672795528747577211274733023919090010208573019799984438003502961409280275043125556599521620045097356160834695413280188646798489040137637492451450834808286836572309267149722428811283919059270586193413375708112207196796100632266165992094655463447384455084923126684735763619603618658677613508235551926399435432335855340874970417590296269937584675822180884630975727167996170041156917614279457235179934083835867238785064092068574980839610211088043858862898096210960564497941815320304088536820486232037922401786916408929546804773696647294645346050497533838613687281687940888036941361300820872655197423504623465638275574931525299152757456982298067032740056758966773931796515909324355966311917239611789657027781446736193022092856907158124613309089764013644517623899657078413117551550268904491722071864244199033932975312109856798156007173953099883327321149663538863850139469206652754568287704308114205702954220578339135785097113701872137378952010279282797040224960903729924449564383217019522293442122558083204037679738642445320577848977287524256968144287999797437844184642347562096244658894248933475194785307547265860010438522813703638767590220948846202554707796819458689103074501770335918986534430260617846420739703293012732482796699253375454327779742539659488766007286183162913750263438812661274936208683053811441486020378826153557820156438817422921696852511002573140030360849300310062222133784468545513908061552716116948829069180123539251497542997093933466600210069851139576711541382055865276222614381015434847888315672181139689778856542397455980472551051617253918142037424847377940505693372626456605729203747745602063013467594771275133467385512897960206146190276562358697374509510942891475833132326898543689200288201153283823961487207074569127787543337610244361446341893012750960856485029157227946745253560495285722994253206534781235182186676096735604416436631561090999734586380424523313417343559866998326912967509644861915279300181083908059686372177765339770519713177859952997390714739199089389181064559644288939323779311368866022256463780421556509024962981844541590569617803915806390643341454417276493865691116461992936698042225210746002020696234821859425324259203734372869324535617885323536789089380087533345116077896149676524689109179373947259854565440891957304586270389565093102492787252020411499503718246438933671990211637684510087890690548055481714519922042523730008315675511316966105092466501991850451838812656776519800243315244363960256967576985807271113068953019419867754047590774474044313736822536222246018414975107885623165246115169182342970403056512509476682108712155753525486394586233044937472138746754302650809315263710508066435910266031473274056055464829219879842190313725005042054163695264662173665611635215739341343124566647437679535761842809030391774967645735367659836511651787754277962726195787307787129934436056930914168237091272332417339914383754258867023742645576995447102920790606749461854181937869770566276270270788029490287735604259753270241579342711794105139656664297148199729115574047217795683829197879310304011132631798322812549281200614891069399350415133287800475586233335544324670955649050224840141572400454856876680030581305186983662563187167726057568943419127005249585485898195098893697161892635967559497483864030042026978892579975828412709651394016254407286472829248029913821415718617922657936965351460132268347924056720560755869056803115977172403160738516860873806226804289120716725002484153649734966568864584920493805069823450385918485323892930688895929127784199419320254254659895648314268781576346275943964747674917700959835975201168046288562237818390958043776760535649365442238846681221968486716825092217404018293721350395979700975595294021351862604209034624819798330357322153900013451229764394683404706374573545977593025527104508577613280762528476965518320012027419095436307792618995689574254022438989854596530128528326630549600975267347205809398562866531869862144551125466082094134856285837695148121579544596396029410308420466288068764866740655402689574607986012527442314004003761454366689141447834864404888378146098897876156530315305101351620101683076924925886561059251069667391736164017059616078900911849504871742848332731353062492274954313931545108387842086416515388480523473511920146677016371887173871154680299400994616282901104223737984374775774021766836388067783958050224690640846845097589966944529508769963558124645914666863454376741967353040129487008925216102514018124957638067387761339976786716390576038235394505089811675675779113913998383014733101942530466129894336086406034193027608586855091575294700018449114269971719064858509439274952166592574903302221560383266269579161208001214399080005736751393231043335132512177346087184507355675717261545878967972416390778443841578420930683422502750085139064048118194145258909943655554683396356558528958604371303549436589119517352480449265663710633040829758330103276899974541318489061832923766375457830872278785658018930585640566366703252579026351095600161664769093203613048888339496538678633876782946033281660177850617246066195768258408085990722400222483045394144500692012107022613087261565696785135542068765144756388877562826424483857946123439624309087989348935711485795093770789372212869783221932133486385000128611952696272071982017762223663034026726799582508769912995658341455146132324980950766811581182691724647704707271738848323862184700824891598224646472212060529999321396756288661227336198846440711254889513716621332868572498052249349495231645762759247158037077764650411983292229432666532415860247045934272976484084385922977052935408619818340534144704021607496986219036883984368410296008769654021212963043599298076294012243012711099279578304990762776498564607974631367222375120547188016891052586054939966155221047888169849316532118718406421805975975862565806179288637589876021630597919564272590803682250541112049503127583382717741908759648050882321927775538095759903317216570245567350803139788930005582921036412523654503980053235063447321334053696114816435198403243584811910103231448771825632489624066859847856139017965795587109424550233092657115317118691737220189725791281202616578442346654176085490768219328010206147263516835515970854196539627025580956986422425733890222732209010065065596271923375220180033171151179494599035086909247254862410744445137612899765081570740383852690513620230919982422821440208354245599143423387545916395305996617515339954306663651023241430794452180457525797276153084772794580139552619306124873062360502642430940374473048861462115115778521071854830105088299950775086238615505019071858630491086520022940759216391059244867755488493240021662640001960280264374856409212437675445764148295479544425212099440019941507651472297539338361454196015764723603620047493269826582194090441953980067870696357150972389685595022979664165380599724153747697224961537612164520547920903987202496146878871619560983255532325909146130315041484141021712946349917778985131804113256409133659561995681817958276165619973448148323238925304207736085819678881778781901898567796014916990978850793094271730000792275482491576816654256149915980101094593635063036125592396743475659095113317100257702272307194029700431803465328506845412364271164166316570023776046018638824148914163738585313419908960544281524238461795488266332349960681744907712354255745935544251397252871453722288341452963558630938242078471644604523205712438018028690628884500719137765260904615262664033311337836971955200993048822774453461808631956372605283404790460558284173870306291155167356318466415665348818391394336429446804877824238524180412118216959319250482540632005920627685105713455744641301833648927933845933055913005951197051514490314113695811626227692935455638403993818575588841827665698749050256542601025758608801804619742210646849461703724925844292061818089070530235688293844398477015030972162834623841669026493524873066312819368109148116525503310162218801867430799571384006227168986035047932075050390946863722794257664881101253363524030734033399229015925982033819540272930221590391001598205539013247689859476811129230965404432426010807814339758062051706202321512710169031397914991171083922347957303319863156958901638865425435473841979126937526168879811420007343972264993924177498963275771849160117339080370834899997657894072534437445555711966618712449149130657504271759522736242934571366029401731589310017559919790392975536350947161300582315252646419879549723666693344688338271785706017942201319163026747434439962589823202584497358042795579931629864071729423138089652538989308770416016912549893412711640429075192050502099862334392576992938307659290313649210061908809853092697511787589297347414360242182229559217606268966896064081030580895039126995376150565706561977381819459300539557626184838135137102947050292460531551750023065048394801752252416764688179767953504340548212798175428800561484885531637356998567388172180749972625834323043718554605395478638446577541829713969595565770305456992387968857040621055838127410428792006422584034095839346489716875535802560573505944684449777908524273361721125391669071143675119499789181872267016571000952536995345487812056541610216402000559605355047994993834546317079535604779975007274794173774287554217706691994038047451620790066242233852221274539780403924242022034010501281968607547357584552042031385542795412898333876178236810905258407797061173356957839228039314127847252484048976408245661144000046884496543358402941334834372722859152408562871637788078072483200329696777207537560685808091704129853607835842658996324486137315689518535185788723531407028843616406238607894898853808331349302087241754631429890428199272593780088447773418775471345996040827125492954293265470182076020759112653707988190253535589970338549045931971245485519795917401560479559490535014110852542237949366875682088594415446148495530048650420362720299158127681845862348228347435961639782007477815426127184399111664740083970728167009820917861709483691590820928906581304048797100440978853654188346103002944070952839727126656485269522054350020572908207113594985826751349904290048009290773425435234465068665476147122704801079083270251822706609399883156440036381762707216942088069034772099897808854580792832793786152671016657485667342014016114200282972473575492472329420713998736905642377821301032615914082125278260841007646322429330553173042956720192450171528112689824023823682329880708055019054251531362564753685080910678309972279804744766091073016101638243596427179115673847309673877011987510930928620037843390178644169448525538142916343593497758606518491777480546946099370118632012423846851083885906011891142972093356135730401997269297731940645900294970180488196468583442083108842423077326571451764485521989162994384722368839440935059231696133716334551116929104369395279930502948179522368239565677768269173814775456807390266129860302348636367388516903061668657892296159720044501793687123445213889393969084863225547805443713689652151530431403328468858376300355053668291466111977588920508605485283165034252939895232884887415783373271228455694831407841748241244626104271710174813189453841215342872253252279042448817562799945273543023830648069821839061834978386207649912637430365551975396755628124215464226140473932160112713550465886546740247840188683714597414964081983017384847101444633973979591712007308188491947358621198556494813264840888245660430024512587247523688974760576197499446085718128636146842296967793125921806142563456422510441071791037058917914020978619264500281684791391104029994377330678766939348982757681555905971705493270161358382609198989356552601823208375963319890970913858767335342480283844587678214697092267540050949366382683713967125651735162876066413368111092116533612132200812508437652120518555088556438910872936900810080331760218651278543557272598383025518172092931770532597229176893182526116991948394189976348667457470788140924683793004224711368634368775845278260897898322369219038023261910552683250917501986547561192495963457638826313582549366155721299539116389295811687397885364395863755641547362118956028809158365798936942565182911991604077819949920086225369495912932459180350113627798959935883981999994146094914238412575768230304588478946902069111841330233154088315530838463812512860995445409328353740574232786656280274767120511966627084454175658888954501613334748402304004489997932327079746682456917500811433095756683231888787428382709765986411084064682515097018622705308563258129387785887748535304243102361202066772984837679784355923442445747077311483156700993171499638158315659802966144866907361669270240529348405463112986739753895966729360890487222149358730616906615839581764356346022021313839442870002590600906825274068053583925891586250781011353557484964519167905153067271730240367278161926757244904852668962077295657208177452538825524357957040407513699990585417627180176361197028810824145441537139385512971021146959217956552896134767888299698806724046414369466440022829300509839204931824252950875585382569866466085779143495139194810369598168337466639638377817298757322217091447564278843790510036975609037012610265452149639107705040117198744191873705395484495664369272378805543146492599182640838754303930708891940115654145235294305559557076636855685105446468943906905327062519466576075984882499641199784517097622310707998950878362523039284056253977914860917265849042874806034843410730271939578231027511401795926175024252572801575828536640215939463647381202972992406475368538198131568545924786860356133024032943581091209921687687674788279690061567679926154384714331766041172755992617370700664539218094623649162640667642580810420603682589095478204126519338794923482888246145352773934358799317820790053622018674517142827538023434779548069173224382620623822352139908317273194369836454850302143908749054756074441845252543836818586709516131109739525717947552589623918885413304734615716763008338354725241421548049609097739079828646448495487275405162812176239922031417780403984598991608424185752479831720967199688732097525937442601148616769042669503122197939399423103725985444207080242221013650558665348070905984823559685839387517976372606815035252693787975019987292341831120554643567633262472509556753291433160158054124131498088312574054116357632405679035930623095052169427535500077313379699557009329153258144205555172295292969909751917504978721979378596996381881525443279070727954123293938979524173232310099589502994580648754309087038599266572927605639567828244359384994548921205264609605061873628397181176783935857052330917431453164507179046658023779784994734716618549097565694610485249808971272880606345146428998928869673856551174355523082194926426236018901226322669317940396678183497147551276431294319899815986606691448933511700282716021227390293267821170959365639304635871490279175612710109333712502844325768700186251861314571277999910323361748919947790127593093363798864062033584601055322131830579705057005298003432132771673779274354277860825998105544506364839238796910289203987881442922946050446771926745737080343045250576961008679831737689550094990821840624990910137146778990465244880162267714291153197413402525757416052727301301289235687916448461672857915958452482615989809489602922789205213833495333657830802749269076781935241837287649083372941157643648264400847376742658610041011208674873323442207435434415196821424881413916741066750148606546803940856607536815182354098641686323496066259199678759202241607584200537049080185005284395166208189170747182751203858583647223434665423744778473582456403801016328493328254900878239266184855476880753577546262684052169467485241473571976213937235582834731359144755262618438634704816319271735733744430803374993125190462531544181910761084789637589792516056019231857293220202910846954815907242950746772936234324940423471638773805428242292218516680937690394258767917626228771599086034837888314430893153315263063519473454256189686946438210719937124802988084862810968516687020748755138718022326597511915778917939603625221573088791630167885766443744883156676567170790239677076118896557256756276550527650584980416768532087214801372706180678031918852258026397598735014895847966701793112077415671786682357092884393708124086868182686552211271527171250040628907827129098698270234298104173965130211770424050798124757336057382905100921012499363907578545895851339124370966321080584066281212855770102829584994513247087821534400557938626001646692825572080327561866295400451088159952743461039371705661569398612529598748026208549031088823280408135382824460334061727141967200455989361590796472463028532438626236606842906170066191086204545378907634627484882981100197070259176295568824671661461168098450020181383708421543618074277179690618096075422805779387883392754971250759204063036256772227789901546112677513154173238739854300598110382466811499067911416574694022810059254914620553930607698624201966743457228305490649493266353817074868141598653963002353040560150957150572539081704674746025387369824503831785091107376744193170255951454436638687486023685960564588438180259964521713579925296777870737152495385917686801672473793271279774355442963637269424387810215275652967820470946746574694189608617563916738045278626138280944571061904446529590491691048723787628976824612636825121213367589994008395044593731196717754144446563714443349298294935703190459674438572180210344698474907697739079858670003515490409233982656702031665839283203137648661787009657668296858948768489905436332882696341903855899726471187131820980447158022617502567454463406731370430978058873233346200649519895604798016800867127164067601643150322699145537282864096617177382848594694485146964134136327650915694473400535835482754391884061707423155370899905295182993571075345027941786556144823629411958117430827002392560814200556539883157386326826118923252859063596824548884055253836728509078756114448851425271060982306121848927753404533476678384438596245276173614604217533187616122403677337937679352763051639456248695894752596309861872231669340869347874651177333348164002440737649189192696450237160057470212755185976230492936887056300657526646790998944611230107039890158512636316291371835346320071267937077551759982384083028771230344612247255553176244634042191252366787719319395949530128301742356474846182971809821489443791225938724645756879228479125093322382423243363656586127727937204585584191690712365930824773367522991385596633167457310323756675554677932401172358644467926001420643727606715201079288265736829548838789240180389479876766119717359420412780515783356208588246859461785400035340863381522812565324184043075104016721269491679967271302639499275598312524522581103329848761919259386798723181673047427393622274022527373281548229585971526692395116743777692464580666275146139724110960563796798279891225307741743177755268898070176092287976197835858936591222660546258053622981255583493196929144874128141546679921339896901472463295523002365717976255275723825422825294265071616011761558252000760223334574113973030507799061809601249193248059015542164325994139744731636792478427098017348991353000425036146637275788152230729250406582156019601440809833833232230288418814352829135539316082529963194144490976433087653218790461356418083464727418202737394963130008297562886047417607574858066325682001445999206575318040193673675859862396981027141660476717743764739556503823698208443678419362951508600152608021042719745484266706199988377802691105963077328213374452892822985016211663032257542460454011331545311304022181074043874504354273488438143504835088563728254425827332474189768742671996329604694053518684489678819042641218464123676889124882002535257455813766157125580335509794994655736824990907337470516848736831462808414780716315130412174237338118254746057343818733540913079159271821704985651171018028497161928060059210662317471325591492475266281988386263636297340485942089027521851669576778005870737532111021644811791469849855298826955168764018948222677027124561758112338194702396639195183679942732060530021003913900513761752444016481952494853068897374258074213080716735332318741908686955578876351338240642536650912733203886880621651042548594382693376330053328388449689641023422690997546223970886684080444701715916845149804632104813509066140155804494021831032464379747796015841794738620553277556414084720616450795795433157212763227533567372745890017140550928064705343038647485100165136464905904901061305534814237476287738893112208788624093030592653122427774105065337470685220867112335176888591062017376994424221185011778228658671960961777948231361699213069483541422373339983828249774993415145970014041216498228839988363688891098879974335378444039524645985217203285201100588818535394706055589434908918577457374151254441901992062391860519681203048210781311443120230669037784954039731837362405307057739711537198064358879889546979454349524876044404281251314101049122970451530855275135624451514707133648666707389526502327971579832692980079553241165207763679340804268685276663112007402458547650319570935762032664214127692328517306987814569769079660221046163507413203646188273800546150194828661188468828353385965821478027110571349284993167876429483703552770874639875182747378891261348400950713444681462767705065843211009199532401760484029486850743717607291585625619913632689166594181391475418436620307741561110438195369129831567063296405276998761669587384329143768183042888473106760330623420902393164215552446402024710019125998937834372546967082419088571040056055641695212364880168785091828755884362278001738207995535744674924364000453109472104980595138824818172955338643422675272335962199285752582249254948780691267739773442806457329232111073404020286654208019696910659288854925502996360163281631745883298076369415592365276149536059367511826951754064831086759936280020482649425958293793314919077339750532136243896137001376928249850014643267980204521206395176403898098417958763372951029000041001247038948475792379959793357810665438290313665399481132675277946301922155959264314139286050583005147204511524630318601198355285118217035352485589985524257810009877702322480953362144411371340524649629612737500922371694850202363423460220231880188791631782540128924509939881727227701530801984123266587900252757424684039794015884413407612677134269445384016229627971922338891914317659699014406752696077397222665441726200577154708914768344895094429601123815911381028427848784326637513792736569103292999863272849896727821269786768064948854038055877016477328744635488664900612968223401132370657561056915203319981343227359013039316878270898697066621479452264467654350513976358883627094530255205396297263507351738984909515474009639302409610264727067404167591951901940023951698376432164261709818633340468866267840646522099887911501559572125111537323370237683857364337433967789051219033084591117429489659731532107339460295701589216459567074806940000910341365211114228070792543295211377992240535851153711601984638496649182627843453858500919284294852481793201563711743164368522485331818770928462374433695029150270289785443264315509624278646740308008989321831514211227220711760392291451364831042430826484792349006151293868577263109270821160721144946417187449861257073790074184667285215974823369700673786443799086520746958230626911255726389770007115486139413674705212522511862352528495758381843356403143546103566069075621325107253973293850750452478513933397561014257968309688098586820551923123982612435664364760494242999857899484464153712499317646179016713789120378515001708620804314162947225770117765679463711641456068617755703020777594095131723816750628179072218454410127225539422695954557329249971661662681881182825700098703796110179401816052546787688552440504832105727563626454683262391274587363186265713992586458506960792631339752401861694594674614175483476733934327444497699390656490851120679823495178720877092061831883769928436989027623547147629105106468235985076136060815638047579682441010017621359118123336806232783737623123784061821630703624009678864796300461026470127014734745876300489794022943254548467533158409764770692169134553207062546652414354976300790620977611991586767623173414004703207098417502582246159316887720507835269020526366065123362292830763931712731011997049029242500724932528098782268118205468793924645441313179293417208787411151466093503401385818257115342348180524585038533155430003039334462253789685284346965055608300295308886049241672786493499327033851951464994713374137623197801311490495742360417623957809287152085189786347030564609446032941192850669421815480341849572772189193457187551723390359984271392569885533602748729948065406654753518781272082541701453149209267665837717764179618981505192392320243797381077032027466356690764746060479713926742456661024925512324149486173079359199709517094222765529624567449898152102943056669812382226397419467873313932180229836907159254702012946012134750518246514041777146175636601776945091244960027850746513721945633265256852786903530486531936019231414510111393030567543572991058042486249744407025803993147946954817766989175979903922552385932400093798017929040459659020491730357793601076436336345803843665648180125499829296439798935181465085702005953798312594219673436226769002752897634101662788477838808876211379500361246116077487760224033711942532577815031399000150744877343581077743952409566858156175106581892628865035213811238113997701619718260312555032447156994866313081643582353104956155432169751595657572991734845743743812109942039820226659996717086618579795226432247046311768430760791447333559645738379103636253551081680806986539342618312596121160409772526368477257682604805068375230696604976572179599997178505928503157720805255237995800014538561725802939934575829820357461189196222162513792809624744839311916839952747233742664027104668855905180002965939225442841926896817915469017028141841737174133430205671494612490799163286383383901475784759146613491611533915037872194149020603530352899695468882817352834888973789472327495006761187127057763267894339557424479302616077798444798283245336461104676166604405492736734441122673190832617984678597092090123400867900477444174962899261656764914525796567895940736407171723644788278135314939515546593093817675585088367095470833044965506402050903574151102407758478028419045968690101551226509487666775792467506960778149942808130297953488088318113950304300580490173449043350398053420515792513811645086924824233877003713032435134038743825041023285553525115228509545198907502012718712930008878394223143073298054273884901722404227934610218523609662975909736753639536952414987980551736383588445419549294462359783341573649808773958272882731142131251148269022590854826962734511541384110877473046330169795249107267988393875849248835364230477336015819631424348092283334853958180432222742467072803737673948062557387061319789721435408665992532568116996493650236108840731893945108300552780247680781765876945505624391176237601658109911005777036920752350659920900344822012843748389915988394282545992743057936485653918283760261614529467466287145148180859586084600445060020553536144370621319792946134214492890178302756852906191112618539700322691422850891157491903984923458999891313288111437293217747800557832344172119688440980650216903918814381639992296559167187731617069247833200155672684553817801009063534709031713406435059592304172270586845965569082341502966110279015092366694844665122087050619515811099089618427548762128217614524926764061296483021493732509788613712680773741382113245939768687488008800409262302597256709663436929366801143876388025620929007877842453837189136329666677691986916025540972594117492991532767558745097283484859952602694422642810091052495335806301182724692260440857005128741580781841081570482490319857585404982295510351221990355703189251626346402317536133360411408343565688993954405895917800293863209971873975287971214034844127602734542777423922648130869678122588936465134780344219349009020748659392796786528250149579585261835892043244474341312957182351461604271905672125734858881642109732362127416016748041774960133808507315063566360493384019712530123226138260077806873852555554165607094843860050752690311972861935700383819724364366261842251140453473555355180107913405394178800602510264378115335266668938263403786973097258586203658716580758595654404446688165351062007544364500510251414423534132829985495264113083651391770730444815557716649750643545171114597711794831300417388145541616241329098108367563134564981690235439748115342957284374221805595426010902782606812024617353732534629901602182688617099278103628857188023487706794974381553745669978684002009203145429443162954680079922839091972505031495003496333078727350544222356495134387702750126277361105587605825858024649751542317417221209690100458557787153300214975356862928374916538789089500420551950485727316380953577319941690384743786355102249035912883718312059793386679011501423242319380052123175609612755540816006458627506219614325429367963918339682073968067936760949681010613359392968409794181390938036763995511415291052669893178999114141840908220116705721727105073100594333790121548582767826551690500884995213505626997894768693104125898504155108412286363962609741081997928976856190703328052737014010608776484241336324456746591528592275405124765285437183973431597292698859833860340215352310441821448369202394618507745466988551791521767164697919566502241534695388618715703998958193354213623940061159745713190211271653845882445875188470104911308655060208495425974123470698477914544385577968652731612622664634878557258259590030370787973966956288460488925387771064336296858006451898100089084555460107964055684801193660204883224516385821886848853703880466180864940679755203387744693123456659172926261214271222244170020776629595554207469484948866356701767344192612153771809069962458865874117963246096453169506829285557626064987192177408532317400864538785007137678476842266957769993828035398874311383441582394006645533033947437476334969768936570633740658245802658722902968480812120263562096344174221766257779984112082485018786299045665902311735512513516618878858841483842420890419038433484929263796163460413497898943547765705089907951577075160493562232598413385261689444790958345363091325072362932117644391392171515305806829261036142849719699990128526767293689195232278349037715448795955039427694843483919802158953324741680123961804469721613687763133135203825623233355627158722972388511780317343025754303140881885173735793641967372689800374272320147554802448677018821300380551406024477316947678987978759538974800701337180484087612355881534639904137033520386529017321064602126009990236457256460185765348681525238074552941422485051720546501243841148648745978607375186332171475896771620249846758145056581136565168062028087076133624650884362813611421737266250486501485397028114751434472976046125752166918378662645562461346890919674172455005701644290116469629881174614626907284480679393388457991225235260648452202733332255195910561124781359342766132844991066516829000449759566106199808088369353189069823529859132651837478158585006352724012047920751960877241458832768922326621129883162244220719032229403946030803892650423010097487021027667571905807669750156587184836893104914280446235363519500462840836425025458964140833146927553362816370572926563447422683764144094538496331108622866894775432667400395127158814108468979609427009396433835617343572492757141842387211950476736419080925832222120665662601212004640886651879686196513220317883003779200560013648003590897806166277124430998127053854460758970320841830775283811954831185233134448803552535599237819827192456984782620914861529368433637491735240070740939910614170200616401417119507403534286844670733537797545808137594479294052168219656771661957954866946348001224334944512343687969666582990575300201949997443343203394416410801007015999258874137820622921160736783786754431286500045457620669842547863080569367135585262913765742403347802830180527809968454179735025030742477632950449571915690267197752365292102883822665331790444835166550643334487239431670056574189219485939386655155381998674411295010205759615631953773035619308259936884687332897293879927563580225907059314781121483196524277669428603011335915688885313539323040051383334678999852103034322297305354570331110076094493207625798348884090462681745205668114857200162942088392383345006206234810887591893488477001264833793449058750861857062566589052716545416427980386308317975378527511213738331253338712821816071255899420194464305997968060557955403101265521953148439585280850888279935108415408520070530655848932581509624665997445423381586671799797310798430109170503103745550820792070152695391257071405418225568216150944930567332760753766654787592583502826576569311806545590368021899480352571211157056343621829220373046370341855018318120293127349579567752368009229265817019308300592994435982801329518462271275034692837769844506955116989170160000216997678332465003024555643231237483574069193582276337750950266833790316326817604653611950680185406911444300794611463050645150091620514511230641820734813241686653113886618772024266501210104433812484589450310107907648566596486813070907657861759219495061510945105088643772144902759129773238911180360217771428148424716198211790631825972992391818238123872417224978355530911955355831724975011402536667648274002228045822033182200854138452368837784020365732817941315395438661392898988501673750379070921436562050037118224083494587217358200833680624076339208642886817183070720379867561038420654581952076867351716267141334522246206249661378505159666728800429220847758759348643618546696212931272444887175696221640674359122458691586983780481990045200341709149690335957388525819159063163557979620716829546847178129750610273944327853631914778330659143364458709434112592873124575470270774236907937278789900604255245482942684338376523546406220362068724092448243579277465438461111630530057062786717660373120890078128234684956124316656222041838835921395984001745236817652472580974951171859862955718790353636722147891137243425402409291220544158827559324913782759508948270894107158732497744846088015288960971856503369372588923071147863357287944694479905560538820278463630284769033403437038945440254583202910213743156498622995227863155970399237978335849489569799477328441071310128298046249292179995472327835170331225803318354142377461133615128851623460158813066600316797335690964066922794317751828148756217687597091051208909195194747782515409939881015032443780820503907881223684483602309673936454391370836132349147034753929896475164372779584615576492898158937758682126540163981832805659521642217183790366786568243184619669048752251975454501042549098700668595949936262921890054893815010964391133594577898652846949705920696812353981208554477831454576668229879445482924431708065961762478294263556567195229442500434579095153194641104878884682008452090988073283338359299533190972033561460577741709442061596476528489316629356708443517395297781344185488248967161429323154251759921593336158449135447631311879409841206646046306116445492563009176898974179277012803071333259691615972545362688331715594373581484616300343984566122520098562071758841648408376678640600838621795676665547302609823994414615808525940102990055576076170825034498611766044160522903615330936417919134535042754044527717115219833277727464587198157876267394130035395621557776053183155366267463689469476025679879969262452378535299548022871491839200151766919821700443112377210376062290192123241950814312001914511930690258198467090331479031817202475039885941233374602196357014996599036680078204329736200716676634096203180179333214370030900906051742278835519914068714419128171179982910799058827761121617351418653037902264429242608768007602707537409974649402985701928807487405013083781306735895171432639510417926636978692785641477515164276536867339495413138994053229934654175655312776217181751883347931026065042232394663964876342986962488494028244912878970412983661129355786541028247577093026025357346169658867148859218695062130622609518949659716320795029273536637223647780046668756465563208201405237916596969585108381692712790313510154157248392406390099276626067212484948502381196783470294145387999217851467213020141375926420518389364272685933248049948299068655683269608048355797286099480100709415824300562634371668914357437869055768087249021332297569237958602136018798366662698169699966064056234913499781336059279168417326521370816372516460155887336300961234733284726665316938535208464358656895060887572569714350579544482210699512614434343721284447127841574019364734743767069090857880716777101342102166679098219226014924825837316935667076107028353651884143659317136832329148464379400279736184890201017426249805462837942029531537232671519791490162424515453821592040131085377173113050175175658365906321795905675668101078225400321898417753264443473374006785800885305530103578421273657629551447843736970463320507334589286766498081583324099007321254058461999809330648747148377429816314324766039372237162441613255317632034866845799897692552603275006358205513144558158810042914324012361656680491164475581888377458414568967254014947681010432323857270869081353642595634260888566314146398666705286073607184964301613643483601726907347090263451807495974770775804651041249654638000589118246490796776000569365708394074581035917549560223688976031471339159810848928930671443932567340574813263149637732177241724903479261434838846669280735780006170586934455612689350547515953790438722826302995612608462429446185301632342898573939036980158664851285784324273106854397020417926105632353564672386476925660698701962615441401504425797419047962217655600046593032460114273146683535534651677330740683600594165386639515349586607947035710336733952451422629584492064348644392398206735135178623723605957185883509636733895800116846668686352056216229993247838200454683190136994631834278548897748901031910441067128339199898986630882111946964845990578268961800291757005008976049986063881862091104843148034107102949036770549296463663230452536970838318582344955535547601878541348205991705260311356029560528680580911414780705988660867613686076167122867303392754684141932016522969981980576278042581009348953644446707268201314113057841301338183721869930750732538094822844485726690174804560704731042507039009323257226217704992908142832269139558372662104408917390516954803663571017619306897516801127162424532773980811129055162328911860112615606065362148355461958125760983290816897292910080354199729006426697062755599300831170110024725548340843001124313634113484642852059721566705418728187494389477868216721997309259627684852605503210362509199196516799189318438626100040898155446196542252519182505049369233513467343566727045973587182045816806365740439809880834458318811309916547531162389220128381731480673380375804949773404806325991918170451586881057822624860878787858677145474387269739511923396990649878051930684928485812048954110377679696144874670071993450259863532328273704312308137712652991665988459108590276052955242390865892318841148124386436968720642450713352375135131337939584799864587173477770957300928358428232265201881549904140469974411601293357054941086847867759243514578657813541279825711297879667969937829880178995221107265791119725128341850389230858194521305408623076011211911648914707229977378628594164757585190258190655917285162818830142897344433291172449519333722366842673201519122338132483476448717890829499906030582002511125219300988391137212477971754492190937769802778189047398492602358479902764924144737299205485092831529266319879099858344222430882244473074938731781890020310224657906276179137214036864424608456745700549830212143073131479619016346245252162851520897200734146353593375541192817243075144607818774897516121357506156090194257362459257045232458666490268438793628391164499938538156454619893903054635602701048182595698816553678681126025964470811223816266361268822452886244725668704712935450424532621018151887470799892830827077560328452823485966324166130808150982452946742275455110275347003979020959961548868769655711816616656074338727709455745915631567600540909179696424476246737740264057005786161976198029091584775608735020030619378803916326082845416591178684586220544047287618278619996299273175626780601366328309778175439057220180652061920476293708615201350066618356569637600819612918908220734752453452264845182722446799136109851352801241330122128995193654289196409893541715364020646784168818984575543440575263181725721382164890797063680991483883421686491553240840059831134571957608441295593995070869797358779662126175329594833038318241196693142821115261086429476230860347795633825184714531261423089740966416615177440963072851892214856572378267318193244396135803830899049427950735420979007897353976960025915337670419396730654573429144306757518478554962142122582471511869213638802505318692331460834978880490263810935128578343076553986973621031732702544702180372233836603652433270405211135566371191873664882336471335955851624760283267240273710055585751783240696408578196530290902369825803964961536752799733191366943507602517544561264988036704417032722652091992359607632154730950926230248526837937706601570669525479808957677802943767739873606741783095293549765821513912447910127981831188876193408048515706234853559336945756292477868191380986795874475778637576883845566427058457520233233925632198789894569007181795303187908012701090200526500944222800695603856736895704560448496736837470053932253007715399551913429660681854593401245894067749387214256154558412943821726423286717317229852237706339799064025286137691490261478654759400928372326479963868752323952846700383611836785247117490329562954328154259432665243717736561732078489737512682530935537821669272713128829735659207576267560578778230062304598081314525595172201527052330741390426523026646974330268126027921179264577813022331183991927292215967334335448146813199511497594053714143321075865365496634134281626945037232613278996221806069578821367109842469661071387039097173824787203254589173991370819932158785093834311701044300380376137908503769504507339840458645898680380555484937298627239299143879971996215537860730309549245096227047247194092261568841797795971030564649535371611934295215828615004492003869027204013937567035736471305008828218754706703053886573543402077123445709188357825554540981191229423414465199023745843807925885329514435608108804435040986287382949771002218538170415966605047975683935953889100406970961982366569485065226708026578419308940507950738166617032168175843090878553769859771173312309483713873543096354677352451062104299105368533154550396543621824940150693215076367182332184933605507789267636889799592924972845628858475757050961940283195250863329397830848490194388553231711940002846808897758797743969689578706832041584080489833538978498393332891808050743638774720574617825778394522464624962694475563660575623631468919321974129759835431724141730451939552932109540801941512333871266709408782011646119814964787265473983341993449335742519008935209993846718380024698957414602805028392197031119549040441283036680363416384410897377037361218840608375055911401453410710423789153073087838536274537648867927151395444180831951245161554760867046993737782069874691546793810848503682586685269355092129942602440829498488802255213285951734599067450271396039765628870619799214565417038715349632218241964441100654196298076247439282430028928547322879195595668656194047321862208628956705029056860401377915151714904968560359765147582502450334901794643771600562594819030363535465478272261855363886171489762888766319059601750142356069777534118970533584417454957499134105062996854449874613668938728047585417255580706149542709861403024763082428473582640410555720250329937672685687630066033892901999782485344848572089869593868377251880142889779377054407612410719491981441648675089575328808130629208413292575418229749545200058741595527890831432016391419085642696651296074501675558914832778429439662743805576516981926672546022974310134685730776022322784708853619958886546739704725836274947000631320711649462870393392711919728674196249368397726689337255468820194927959373359364824149317570105194243971913358311978817363165395384974415694777767791581055291180014970868739117327250048880979756644757234210476776805320974075008541359947350548205733058846137903671847097305779680724514369368798326054782016450814727671303102821027527806127478224576296955565213639998317861911742544270068407066947304346200180149319695420166432615749335082732290982708573321682385178536283924938796808008154004585595005169469972565371287293251584730124814992317088256557547363872237706813258778053152203262539572906317571391975044962335517547815031496837047817416639209928392989302512439822827824939639665407014878759583011295879416878152955244423661727296210110600368680141638503164340720098372900886214127665741066826688215584735691840620881484190643087604936148798790390466990746981825923031639406790492341746160171490667219037032140804117904966143008401473067513552835361158370367048071957844188274758662689011281993966177206949776372845922773702087606395159462809383868428534452887526722114471424551748527552347313767699968676308966396431323966087023560862937317852445309944413495434114367475318722435388696510400439950519224846887893356946377208162475181533640351383278064210620128778481418045113771272892439311144866934202122092720521589403338677253905448403324735879134397457261728487054958223730352709652884668217542077055330179041986140303420409481204457306497964793044387427203537864017219912263860156677577913464101163014865000995618897620596932394344753932070640001003590868988361949900788085430972118726466336166572922167855084320095626699355897878739682856280577997520879734092573823168324329330830495052838668163891231474957273489575711747931288884662492878462829273752651393681371220732669767936502834082811805002930002424126553035589886267659176807600257102399663719091392151924948803230922399755887279881367864686787662430133439346148967643340678507818166741820656331405729004456823145551750721520761349767056986968768993460515044420750919963447907736489503597272210681644766452547225046331712608158467354053854186007513991334906586536153447908666118576568405236302854045182430825778391241190897415107537552163148162046006341361714925260616310780086280354379772910864713311200715249919016201934583661484813011778896638178723829611247069329769857860235985816033168114341099385723540744291289333576085901625308711500164128352615073931856150229807690613918750105827029400596277892658828735704653310559873617784713898992735104334232534228193473324561787725965504326011164028595844227526761160885319475638441612961687187131288167416889247573106319293512480887697860632692950830431744053042524736379564736127203322145099159281603838770710111159551687271572727639021478062839494855736924329139761581044877706740676923028949439270192095469369709929496805607752284757966931113116250706498974656034909633648097076290378828198600499136603031864154682413017057908909682391669196018912355099546011688504977847583097377045716126587527505115172657847354415160438803986853679623749254877145191551512774490449053771833523188240725546558619159860909515722737707378580249106535031613187225273082510543701289101511325661672547265459327444340431343775852817503726838148780314140726825951992816400247323979452398183327084019782750106399939584620425626960081057316808470281232556473340856317204047906751184752412727004589642635262132156287546666108136345233606913016126069304843553788919687997608492659243945819511118080436677517859234738707371007254058526887715114506510546563689102609968373633351421777336903450207312946984893276722780548615297655507718134846067894363756300283687255968067488822301409189486319709051099867261608272994930551227343032982209204054651714975156093558110233272784453916702479824709134031506341355710317337759177203167008591955663021524187084232545009659669703235655733508773609923814656718752603454327473399893901682685802851894033531077972691201905453254580403943779877649794043178466349923854150379895921842397035560492673463403222714012090473333351776647866621540055234591399341693802211110576977896498101524652516252973442613113328151569105898145089913580002141441611415168616462443641924319367678669924249548819066485757884819349843664563790752376029422478320220014897660752324940731810945543656874323503105043755271424006487760442186781386956402164518473151000255169296739673235091615987915441837882366909835890736777995265955007315853653555772688183259886484826404549331488494108387220772083826625577147659499689118153214178173293689022246441152354488590762952751681211813686895393414792250123076735075842572030782190022913556767049584143795986227271886228904439136195578959076540146751439342543222799834145183464870072770841574271344832396213825500703808819355826294145130217045863422345414412535919460931143456055986481276348175681266987119517313098390968465606845625971584305845144909338766397811071725595229429744569497733826102354397930974572280102561044319401881479993380039573698030970021126719915973405574065547936345792048843263122388057434129181926802374747323269420040251603458479637079751395987638778507952130926003487697843222176315838846644945595215899439053213603443876956001427963218498311909497867398282713006064909768002005890759259069489234276749705862480140459419159650584897006893728941877262606511823050369245884901556085186742375579220141321381239286936876409808013538829328670642006475881558637015896421470079179408008643439202321648558260694564551066563587340230257238065953146654086338855885473473525534878412355075286886543876750204895799146688298812706191962185689889765513564018491303584141708786186284692702548949172866605124124133108778735336345614729944185026295228835335636862671809152173039111850421190648551872837474293478251391094736452569660281636127899188935948640218203445318338886696687384076052281563937005842365438978726017725633780662102630912735604536993377280279231115914178280251286154106771858851810821822077087362544685348124259302165236602411196632933982948468267056893819361339428922088910797847533626179573643420383454866305100187127835896013044280182394339206837910288524656140964274635283899879102638419354099181464765229353318897092460506898181474783092018829610618328812809519104865453584009083946172436802548043740207984374757156772087553870503860668348328436141319086161660787214479555863170608742157731124757200846601765405745137848682904005450765766986056697084078501395393319728248542738342248112569674137853103602969984851325524263927087078101236061791471360401385588198052923671212654234310979554728347514631881787585534165339977962956692640366090549235394115428643242061529152574956988477037770690416534005163643050969279481634139249571000225544125444879488819475697326983511181878407921798799990749285255823090181827931864416828693545778465899793830113243141961699137654755001342843764249285063602312811959543171865682064406360613390688897033093808816731493736262208112656670057916159511937705974789696223386341413800870164543964561503595320043867452448837669289397131049547915459927034823023462312984187931871814631619918292039024878906891407235041422261867686314709247914542066220497279592629733520358688593742801462218569182464369899665187681272530943268804069170919836746247676939794744906882428772305639318983186143626661198041088518856845622152225217074266086630001372538277735692798671108607452693048294948440864976806333673487165159699704455763800825688052593253991024092641230626720875629540088573149747889238214482685157184270030833034826191124607504107056747846814699275952677812704942668970776916679378723653589962387208162629760763243609164124059261997717280883590476030563492033344107060264108412063714556282613910146257894935353960388264624040092141463735310046359169602359472734096666871857764980243639887860646465199616678636057359484559695720601050796533201807910066608514718726672889012187170728139511805787722517745214199836972452676037413598041748983576493943955356314349078753460125941693075770238681824723583752553380780388646614172054007824548271576462698245751029910290030724778670922368317555957266153685120512940502820766505066460260751050577443141379108165879188215825591496028327039836616068939349436084302409143260535554730865771268221399487920784324329348118572373780125562482201434216712281716852135014106706359659851718272557418762204522241483118091989950399988831782804174757123681519208678104355384423337260025669934695425866391575371566771490701874085830847176990452302602538771810127539993967640053879041816329641180494234385977562743251528830609142193025915476068134212393723747648355855273161478014651095231447913027839806357342186552404462653664189665803416687052394190489609452948724615042788343010881945486801234202356957862453800484016804853162268657207308701272393927223607388681952979117507766989096432560496001517207933175263427029087378318492411199353388780385271274049888994999601424474234088160447921725179476777558861769548809326031445533385009497616054735603780736179338873012315231685489870362437832679938546702884991276093217453717634302298334090914684292499058007736077031190629340033494752749871763159463020610793208973480386623912208842396379860349644631744284223922079283654743798219551656021187666291910985149908555404303530692222454994491979744304269586387689700305895050967646633076660652964144527300089206543514900621451490775290069478782155898060580035612436292468009471667707889662248402377450381022058971572657723594330445691173513870295390812665516681034929939148640629491132918311611497756814534689157417734376925589951681636613870681297572702085287838828156173760168616668509049488935409943558192299420970826864151885313413357116019623004350485049283656744048133485973632809895418923874157388699649462262559585384262102783962258867758248824359564320455001992659640029161082070701649074926705531701033521210972620116382709706795779889392173242557302349961037154599325167957517654313867465741656988556953638079418962866880377829311590307997085409109776909436819154484139644343198228029330062721882749090123727991078935545634574570932392300846433952160392651425164104399157957518950515652725126246718622446156736920221693505126117493890777069043355645435748319349893272428325583323436632721509799298806179458730264602364542961550834160508275973916040847211498529200236051461276602212634513020134830787625182551276001455391291676949086028510488676270940566971058187566411527086210034849199420621986758566005804839024346621383920363064496670106561003877943183486502204776168804139661334544927276899916596774878208441279651754416232348548185173968375929032638033754483412965025740204172341903495942638783434596227195721620826120936695994555597761704451358108753345068352832171916890178141460354891463144011775939297738845992219824501644089667746436130571571994639170928666771554859998428264562990316672747999553950932495532951745337963062082274294908080653061983537097055604279647328547761967764419041368596752414989100627911596037620392593658195638674421652407760237386891050524962429740874362560215041411571920513626188104086922794551095688665559336711920654535213796168218952498305614901450764212485312954211327611523771244881950146983394562564667040935123774050468940890111262350794515681879130022099000683759652601755655220620530227316883759602173542648247271776853608351908520655381480439119125115984357624528954525034274068420164191640136864358255055821576129350907541820885788841161340486414192761503205268851774126043316409940274822115177569258546016261927216226318868621287333335250216340025982004015407347470976891467135175256306596028395252149396537771525078041301124346437353853863771289871977213721697895494485390108212106020026381759541329077400305793381960529052200310989715583976046459755016001459147992946090658295358207411202189137257253498279778956661581995085809890402460389190465377404541429116984345274188599053671218668566667733916658600076971911812027158261641635655942763100346958876291935156804332770511055104779835598279806150591107351406360136526866261145412114962968485144804703716451843529216192447363942339011669913599947834131923715734819640733047135422683585862366308731784240144966043267385923412881967683137009610215817423939074293104773227653466443905740468365723405683331490071604496881457420598269999375590918578166106299830664220548283672918669143859015616741855097799347639201061022431695123392633919292561367100585156083975825869032306138929619917475953381366028122045034864286382897332126082226109946989283461413135360118803075494258239214135922598209908852337629311711260026763761477697962150510375205324756416754599415768983325850359695554478946944094506125424156724202626087322430923408301938512911487824975215372558723412028948751199547347497055596601315787351106335013348398847628158465864171144086326568120614573057586737023098652021872355693249552373717541411707904865673857043282526760741707892970131831549092318277573095459747067010269860541677924462307230090756064005421491856473634160401713082508271527365320892005040743845148481056296506935445681604394840692458464168390689721296433851701107711644022934288338458127140123807603914817956723239561666445636100271246355628042884269716609541726491643510622432182729255526394412842191541812499354321755081426108359799275796387198936322178076490982990296781498598441469876612766324491121938687837241973056917216073265966873766254729005525359640794723006856859199526436312760508413302463582511223623559358946342353656175861476702585297213086040291605356160559975071421056789118152739484395232371359024702629451942656228574479861067803348623243088806506577370379231601942248682442596173265709994893635210543130364841732171554587094768412391500701491080197660709252298723614024122524719961659055915787504931621991153362418428461037597958546722405884900172910746817659572563728052496672613063231808513128779116010890483079420762274408106715308493087935671548005586848858298191300071732276528712232139412526670390730983310079565627791388009708952832290806426238741923304659500068570917756203991657034163145455232913772968770946651194944770141443161731965844887803978551490222792067207065786723071004887947140216577455219163320168856571356524445194756044102805127770512516123258174810433666242181167958327242435950956126044346254246469427921089860993027165922732150585693843626374091422305191442969493147690945148452184774404119683354379850939246595097378336463333417150748086107790183558715539187210438751991090232325930340896580331206642364558403863830959048993392513711038616431928560582594169833685349474971807836020703637956458528352023234609338220436360171133769341750734985886358071640116525788289371254232466377903541336345030859154264040309723717075454641864395344481480051856794393940011621972076445190966139578303580101164518942000233323898928547442727482270408080996503075062557442396024679707222180670897295453838655013935611140330210275137707801196114873364581633120838382435390168085402068344444836040742301413789843441294808334561379870649870089347869796514307196189408943948309430069869134049025700434482026821919263965709021006124500713562312134035212215422357085908488189859095944846440726656409271234935951627004317571270889311343194295996382850557003889992264827024872024161196228569182506083369883593025841464762823306071682240714632459088093738314455268210708466773814979399426293542365313772281584259588669115198741966352136481748189955444808884567843080108448704678473739750793335532083154024100998297214679796795508610598893032578529510363769800877412202857817630330551954095762410621166815168516947692520489266357748440248628325165971120089213641731388019848289913102970480507224825454521676235740542299101547003039215575125403005068014694523283442044985899187412942125477605386597401965207492251585534054352549053875646001703175622011819981266311946033739173640070729227023559006149692045672143545068328653315444155446375774059072334273521934932625638872264109063311831982665425819416400370150110386054340646024193799217533713330120439626130068353298953532734794723503387987310782998433846591682183457404389317366898018409039457989926356051124305288434545477017323808727095027674258548554340908389977844774638152936066126812723160768306294335075735189310824053399615965286588369570979240598338198386600357061340225997716475113227044617386802591793632480933381177611298395129839680682418126490556630361101941959344766930204321425573555727733023038870143819027001510616984890462191053599744182832506721477188173849831529953708750796962098480019082005212973619936096291720875126552666613789160770605423269409747225215365658076999474049162760060349626138761616267937730145122989432940936026471368770983559283180078547342066439002730351501122744182475657369285123360380260903128733494386591850795853281977073610599716796239071402106671800046215156957646268450297161364853868524124261005548362559741651718113815480652600838836335365280875503916957066240696607409309857948207895799834010909187869258830709144980098838620364714542466466037401509960924536011532923231766710346818044223596980038518679533767005055791131721094366096946836406853109525619605978559954058397658115561798022656350088068197088288874382231494257159512640143742758061304485389399090960929744544230894097815516547009800389325486849267775830288592652388790822248235119768710682349359385047789420285362496758108369613778964062435534412968598618352270501463593155293351108985585712006560115774618295015955226826462714613633420725118794220506231058534542267712362115208828412787445138133028721884876176557502808833381892092028150136183741987477931664113002854201396779700672192225264594723940324967747358785840653346559718058348554765632130495312716528770535101317043699167008641258889639370512012779701988236322930405694603536171331562527272592625533261762600323528375626880830194371818841847280361163740153206674217859070258941095830983526779851017643473472657224860440156681172562828305803736978628824399861236377685034484638887495836666318085754505651243394509410388147302651119449138225591016071313720048486027755269570282383516938913583017502427857696677084508723984014718466001711769158404616779520100866655346113274970353992686476487243146336147909573147306031602325401192281469335917800440775946554717707239566844998497793567456725434873208110079870554309305051853311137796641020718748981348165856516628837823956226540388389065345404707786781187338089471322869736815302221156112332482328308336891521399347960767208816280134008635838678432306564949685067833224823867806872142559248701383312189209817226879937285163737071620173466113341126486183413177349733939047846123950101648821342440076479105039738723551477426846494492380934589470659360079773099041729306998958174894661735437891003908379346587066412319893051529847102624803764643049684799767717883907661639080632341882316989798040709888378603305269897138848414550689950156554616016725788422659929751692775182483404378258672459218322546645627311032277525870307421556398142732536435353337606435685354856334366794736242198989482736508546498085521690724704576779369629002634703087189741160818804962735409465377146854062282718497632072923370924026113563389368592180020979406962912100717709718619314904203235466136800379810863121624698624099158451758103657052336559932797065481345898733876169746787544935492498664089665955132239489956386008675446437760633968017310586947894489461541083224936629784441984607381658715154176408135000615023472665965783423779136869238775320744006488923863375690402454553032003366217017223091511265457224428691972755589196589906720611858875247348450482340493514323852258781531108858970045024680865254677146294178339629010019538419173279511254062952415801528394159924133593304894449328454950187197554755951248221214030201875797469060822073889181178349613158227333187703874430943084988479664489303053010688029998905012578029863471483658951125822818535334415272931085038642754812765579100946234408213388938763561042397336191752939535930362980854362363117876219094063278406095470111088706352709980098863304639117797361967681636489594170598110683012638553852244657080280842673848796791498796722636929501340276385906322796621732523673725957462322953374003936862447489502205487734975504995298522301200041846817215149691633265545988197351476928918660072679838570804745641926997721016467685495394917681475550448398715421375395492464300670651707720932863045846609708303043630427797410171448824440078725643183950318316437095154133016548851180379165294720640345617184850595127726762938178280166001050562188276190517854563874552137655086219766315183957078396334280749421747184681774331551011488053200504026407973194189251835504465071805433726008838098065832243000545727333433683561542686123061195235757123958894933589909836018748103794639932024978881545415575379580563952789463462883265263707813820118063047112096988874744326992823989128723552181370813383848618692125956891400171847007297730639387376121699619700111677639568504990313855381961107661279285354481978123336154916566285085404223702713936303442567045835370015193227830970946650683175618112235072692441434694824062264670777656724248707905317757430800171796982840585706360046709750338794273680698202838236191793405258105434708648800655746331559702596811488536042595691169679870423146273785787875824781056082822568374145059791229868047807936401086857237438312956698568534842883237020847694206698675490510319738928364944275320131812124511193564605168299687668446806687958001281459797092219383794207635795206836782159345147574092597774876039367852959594054516781014434594839270944410429048324744982162917070368353657444143465984589770219904375801755211992946460398755874052926986831974665438335851537864557786321880036213419375388948956115421457440212146478862672167881390915554069020283656571940176252329235210028566049883759149873765548932445966749078188687780757128237295458490328411727405101954857609063197873633314222937878718328711881591874357527460155244581053989036836669547504234902049645088663064810834976037874704522324380566276964065590093611995868564230889292290167843263770429052623345152517648806859247506598233318068527700049651341028459572559416956209572207189434426907829202282581610047682680809784499290704682476673309469724256710805999078481088919357435828390322665955990797841573489096190990049771529344739263729457379481896493466660995411861307375818859113721478147646240675678519940342119119322061869489595644988071530643107344234492201879549587601265488466076170209067973117863499622049570115027492882754855532174922949569743477052949104582294332682800124006440106028696946719790198597966800596070573810760820718342083317825154179469076997950331715557779465693129109557797888741018317465744014284624533300969089546337273494685285824487164270738657488506056202606550343696649368713877439622182388412883892188814769500447428531231426564656884205204788770411968453207537971269907670335815964492731401529072545111002829097805058375817588105346049374757782925621478888257121266169448693674385215238119323943393725974635403453491710872360713837389178079179531301865098166920265369003017214294940709669547715624090231417761623698876035007341383834671188936677877715688791709407761245447134048364368435400786669237594840177849709376940472630644576203504736576780201657233170275603671289545772194739487689744351792677958534378514564933685177516133655655524292702523128720351855597984769035404733714269354971323578527387950643860964662805786291044701313307100713463096768338418664835267313976780375695047576992572795748106067267417188776630063460278902373645407446075230094676265479281356142747692721225177240119542626170384844844584963035257201494199398485184986214913305343638489569962037822154920179807247262187511709388754120573820590503762953748899351849199142203032561430753013162673275595837704230580125674157022780163126848429689685267859463941369953261027427875870214669700544359053927114432326242797276390699013194227023640320840626826485143954141079734752187423030468251589341302052305969327149567540477505484482490220012990738114586835915238278583749831059331359619059955322423580726271809613175859643666118353864815319273205789402450693195424296631170961879073172547809385055812135172644441500090240490826979827950080470974084385231204632106696446602024412126076019754148620842650936064096073149253945133413911835978345106211238275535260275674776416589827695870579815643073927603098494383425117001558813447081260553925348330827831969784150579751225128799246067540493118799806903639105855671245567265691608814388298236520213257177152972895217611638458199027736404927600039279471334028470664539838895646874407073488030414866174902763688495854279432910385823096347016671238588909675073585324318512862720538193073651164732219439149323308629824778884358141057122973387444232248726180196112532365654979876154211803748536351659417369906957133859641175983498469709250822038065101283088417130212398018575620103796540978762281032159916734179603369701920480310316677399549593783435349201305552332285197908078113862724432436168511353607120535658738035122651405409025226537790160672672454351456802898793643630064582787577231818612634588635230048248443377550730210393633915316072211199492992466325751188246907072737226562170697767098311880355575660197112657296229404331561490623713202228894118463959445437676436388038506171452425254970419655563434174753404469802162439168465013702576412308340600943168349132751372442449903708291479099322008590561789705525179932703995548993507279278869117077960050373171649942683009007761489256062728603405065564607715078152855474187364594046479508647069233216078741725683687659274824190824540488200124548088443885497154789290462740854782390783403975768729271349099102032523468577303946298178095687604658491586220017661456864772570763852724234830136199540244504283940674313100883064172777247675144637142688310197769363656044495445577872118332150531037806617804271851171692852065437050719864240759423303227757376109966815860911828022497256317360550593515745254856571561678928349250181880216944140311342701665203143492117183642001150585011784700235614641708519826862852349629325024418733333535176050611782040791334645809222443714660678893740148720027658253918958157804237494462031032528394975996440188386694871504570198390787851664530430485878781787534728851491844282499345187748971092984994374625660609185345676522977761636603752251800184857523465541620983755555995441384012504638831563283364900406965606551296999062127591112943421862487616163224897048441676347656010734000613496278648970412975417122605452982027279059051201159597794093275341168701717003761730143404986664120642558187132068156180691340340408043456680447031043768716047504270925972453010385201526390333761318698695551461021700649479845185920137005733318116374100343572264808069446367834466569217467422984753569418324673178838709236919091916274937165046008755511488266538919820357002046966601768641394002750176219607508224288792090107087683444194926483281175242901907152412270354816855386309555697046628293493680866866690283372806485478304876644020899633241661188902422840030988332171659994947244599155767537055364860461768230140562995973786745112749729216419269802783036470141525081228299281302009699528026921907154694426817749076976946488138031050135900458921693143176199564100031545532519629358836184684613786803633630933285648616142382680378596389700836657396056826333702080250644786287992441922667516007070457789893333336518062477587822864917025621725964983658694641217771774835171886348337803520644177405762559233607458779437028699669481661791542710063570495497383231122904281957678857276853159216441590680299828294630092761443345424441642500590449081676444284947129089151220216387942709246707979469294197909697493490834754957640523280373725218167851391755536278932102768553302336407720072428061330605038462004271850969672019169247808139664225591370102135829546730357780730835998203294503955419053457456680634126081209923324628218039755450508423638909532695944539901220823883619668235100605164526547202572764893990199447203800316234323251584690392659801696071585401670372772857509052908438155644476883965204098047069529868155804571061156055169643824613896980259229931020873034012284774378122663704857612195220485302802858555102864028267650652494154048025246648223737747122111704394814646924493568730297808106115763367058337123830325997772759500063877488686541846689230642307182762455928006008753859815478843174638238265475933665172160268310436945272436619360089282121485606465381742224382991472722605798739157420205611652844442564631397292492834031339733987727265123483856651973488689385976860764287761185344553305937863089262631144658601327340811138713210108167368731379177539937242468135646755555849901886785532410963964068623816377827668187435285759994381455724587937834265514719558470579334219607739698943560643710205888036305045485705277687541504906209354599427502016896162257079585607102019823300495675650647751401372852602727997673408847450637402072452741887938985349349916358530382347069005792225446215493897770732481312953038583371668267989614956567449081218406983656400138914856350422019552077562710593602138795440162532976512243632502490227143916191006120744299009768771294881389833192780807004149555681922366284883058776039640019621304703891183040566707241448613854013284449188802468362581750962332074801951231536935108009082281707495465867963726478442895032967340389454575860208539925649885914588682053668421507123886991429293559980175215550804904806570478174522619547228295643194915918785322824831042243295970019904968529876161815012976368239703737627389198374719995146796872532016318473138631330509730451519612444737855217998336003751294949051310312515754558001437254120420671158171735714886231565766467302327927703910331895877814507617951526189031723163887989540005000887816579860944914714977457372878729241267994619426430063899361792326853830171501221339015726954411868700104223851216504305511730392607589211210821417244134320662462659151650258316062211901820384131057574858851548120779826200847073651569328313881198279237450393834900496905607126207670913873702910481527729568073691573388098212640126521066786196463950230836710781024464465637135656015638545724681154302982583515400780281443660452859764237712869494731558754796702395596138253934478136634660155599531922420994632275455386805164167187113939868630389189177258849894540887547602901658666139296106760443668939866765272511075045603996433259306500565964257178297271830970565983615214819075061119244898708640060231763172290502030393067000550011834288209513784122726865573789105453800070912907292843563867657554721594345872013715052786473368423046959568306897160896452037388472123418213787759686152761616504419047472174157870525417459253130302014829725336283085303556185487554466867436602160529277560469743263943718267431535635443935513268336796706241832361055588240907822038199331205718244907395020787683114202837337864064200651211643888323284990443216364146597849905813874958431125710112277951432988145543800715628593199210571136489732503931996152038046743512664070451196008390993588448104608991465528188733630602467545625883017302070339925401248686734831278313778926263488234470821200443848668750590501277311903671824168622560758782031469999645405180920762568997841760833026078782830327915273960031337558069352988060349664799729333920326165572610491287486298640699412904427283674962216103203465233376290068453029362350939639610260297144067826051608800466589633524930048230218269480527060697065075762324679807951935712613933125592402491152540227164421738411696358507143320933495178472723251843602273961217319162705229288546811440419034384301783233117646672014599621655422038005911777056966940135593186969842541424135580482176069848551282562433567599644420208978356642784238257677297808660270805940112950938934993956955236215509946904917639708243326896552677222141896856267886740586145253082034077810967948106438410635374834228771653799907121902998617157733059935008539895372584360094491277135466006795779933263133627722445551617066871276537420032293546773688488668285513692562077872657475356650070215443645255051353033896506320959484081263445068890000135685202799398704536892601153781509542161474896339801009938575916694884833777593654048627770541365142557252144007342488491179333437170957182801123687242434276020704029098590327210864276598901188808562479578158866952729941396485772703621258065916058268120128096224404302814537929629107013295481259819739527678267422779829586836763723881077758501170198515011552600068317091257345319410530674422491157737597899976218233090181162025877584798059619506853360384946636639740336682740605539535307758688449553767886810858620517095915671189687952021180299008202905544764473067194274746975546515450366378119379982206239493370179691021579664608940821573722250409342075406210560380627211108402568752051965201343346893295080733024513094431949823816538703217057331754344298766500432877210205184709262159698519556097336029215653709725990535038298436995434472791424824388937439596974289062119367637842497036494198712460815201948689444181038828648008657024179249485231183810493555259750222182019365090649949570109543657352673993886556602035124770186337772802743840736428111800758267434336847989552308515822457600002445145649280244642496474329933782084948165717183718910444078559928227531543033125223906815827897586603192793128553077459375502609719859032395900096088256707113357323386048683454584234196237932402916681018944452902305762474052279259674023994516674232147909171933302913079328559152395389001824399732239201268919847947910727488659471627027293648689942440261834434703857719411252450678646337612685375359153847344968875168304761677214431849506414727996260459731783111453444045980772642237786304210505078612637925346206729631443734066641767036916597275697029337559629987042727653634260966612325909320926285500711589531135436542032355895075041566713220312649885796186958145439763000163074469656731372464865591229947553763409223314987852245847197711656067390566965016893691219178190587532442249172611433679383067897928187944530004145139852574416915152774349339361363232196033758652786193623961542685808940434062593248251465134290279174339353260327212797639844790682789067020457415636359034624638374001374467732205029149887230491201713773614374294581558788191859934285851897917659833703674334246999017477495653850532641329746082840659617313714508544255787762194066909563686214465130607044935656003098221575740537562964859714646183759527665708654623747535522164879122260494923625889008095312411999570242880492840937515858411051728072882942333336789384869459566876978817713921272231704235943677015234950680542502419220746393603966159829975785308928928590674695715551657562266636621243394441060522712296074810279420507914244127640955783928665749646432190401119280366390711304441340308290577792112024377253931144027307029541176441694035978541312184710103129244904036272117576312516954263918283016953735885428441303096063912257474409282492067021094984816558830341341831819599523935049351254286623709750078361551088680793878303993278401717588295777111002630579902994970130513317067897130941806799120670867481479435624935129781637094024891031094245002596130110312199920374873408863103638137496498328115682280029062980742887850804839674380519017308931139476149935705572150056610621138154131384934689730407191933483540872985279481480034588765748706700439783780117205748872488636176680081398548501942021554950212927678821911640343579497605339063884198629350196930695556233226421440918569483636582237669567456783052382896195817563160295269845973674546089967694457063492981568515814637374608705755065952710429714658735515579264009491183093610659259033646498574426548749699203211009518836542463533739416879872776576574134895810915816142762943389911787472974759827969687547763538714861720285803428423658687921619712249640617336217486207922369560088826849562272286605341004563970875882180913080303532101510123015542173795820358028405356558155286231154387583979505617273946752643325451460962207841071043463931943369879943120160776720150086783648945856404003211771423860098758257100093137954514449317545053873906611728905653768443062446125519375882689593741092075995160667141720022319469359846797134388443907473551438494175068965314561651059617517781938992574401405580300277455722841694062812345452997132448364040143260521282242965617243050907390865913591678510803961586295552108857027962850610977871454566591646475030524229891672669282212404548594771056526026776269980235975755104010097548913196824097370583730556520391070572057730352699464242060477943311426600506896330020350811488171376369493747003113584804596050569031162341726258804620062710708956337107850451209818656099407871828889747346651458578747337564419950948561994464373247601302073754982480728120361516373209153421003319338362687065911052708604855750700653968229079488786688157016387164063060145038786127209233433009871107691390121703736224132230289720174183931402073860047672673731134725916447067948557668111718629599799761172497982060665432558929341429124421369214408484432736846573747843626385661759904162764919529672548208039902402879140695793301900819103537087075724383429114619596696652479899982477609893721475387182096900824926277185632637128459346028571262485304437952661370556726867800769550810279427030272276004698602035767524098960839544286366799266805321215598863302194871844182752045772081778451182952221076173612391712701324431369893987471314040892830208990592872442744506639138989049500651916448332980448636548627875717902868269801078952304960120253069936449926832324164489348104167325427474854854104795173341113853925576624817282889002699736474694034196572153501993073812234548941648185785143199406782283118925001572861160711303505795205310811840792895525169420152958229518664707945101775609769555258380094910471442914321968646113719599950830840716254246070252167532522470331981295664838458571690522321898670608455310485184247220619065749674321485480660238300830738033537207532523300093784504515034526989892429913327097153484179192772302480766748844899762996180646023483207785339180606987260832967759550074093704091456232934187411722739620072851905945252687341282312694778174554438735548539804991922500509365850745187999563174779393281799187364549586187786325505538172934956374032667193825480353833990678100903455644033810403269410992955800709137359624697189469392099804435585661088988333983333211876802300001259193154410901486887103760230126899141515391125027588078496166647599997171650122964258232741534490076872767068801524153160067730198201422035446577690773374700365291499899803036690236759517149949769137056271038897547732813433975734590823455655142706766081692774820193687602648915483520096705489844063222479207803422503358951630144125749343042279842444841406049410274631419155612743103781980074334258860673794633037926436564120787527581512732066245432585564706512813816596659108189422164123025350276876862694032964728839576168263233893946694083636721678030261821218023106324085236879532835168435885924343639196111449898898700242691169693248085083136219107770513075264292952826567542295922559368723693213204426328042664920649002383552241467836656021872018511104792872991343297184221425703861290270990757701975638320927634075238624885931502554395128844360828102154554074035554001162941406078831219385956268425143396314355898079171578837694339368907601575524747919538815470524985385758802203319709021943738451715767438825129665351713584746934669447896421746357121421151019047630353873944865533167019912673890413825439526838043732243769905724367734400974012808246436333641001872616159544822112084022378189452027237490302695200004432644360025910165754597696284326489126674844353345012091787413525415055105528318074258489661105353909061208304878057863460735442793178213190754350060629663189738195778252897368179098668764242748965540766666554329593318733894526091506487372254344969067356117189847579153728366190748107015695761405210392851593548054810261262434391268467382602950486839402295713869949161126907218440623158051057204738410302551304686152349143780687807410290611535429145939237576909881706332529058832189243983635907174590871004372029527815470480480330094974439293508352522052297367462654251224918675322141399206176954745082622741762695329920331218181220890547522082153173143875217081016078991078799577373112195948622872992096718859121334435566572722342673239817212205578699709956602016691065820007876405071828800765471715272965444854578736726685495164152628622152908053366977479740030224363523972872304745743159325047269839037587690971743742349437144731029130966156215919119259070471800864338928455296455326351409749614918988775895338908461116559697219771908321093248398904838342023941815940879795418543424342513722880839821849293321091598736467361803131250541803342992735532428990963908752224503546697170341249600104331554569870799532502802248074709018985191736101790605280594040619042201408019361003260617942119486815807542782287682244990970977969782142253760452539527619605579085950496602812218350391467706224552615557456682630326237020272353816753048498101514612236997567385887807885069332778099050005785941809680395747393490950997528759950520550719529232601119577408352536426205568202422587293430830180043976383258852373628924324866200774001358048084607706229355872570537998357319174431068122188949667841982562586339434779516419858436081351921599868419848103023035458254649599904543376351689572020143830914535905565816015393769008909012683759914840704081638465841647762257633926529661170954257872834835905248429178761234329869698325214628938038024247627820803833500243594041228389284680134269866194528941058403703393403340805310564221028640192510819020652374081294574433030412991655842464139111629907902238797397887890538563625295781148650064542039116117828884066525548900124826663653541928856906556146151172300379346199858242028263363571514575178127084465043373056809602806352741274418044874397092870241144827350676446876778846078179355899264055596108630809181461697491599204418126371585660552391117690876055842871954213628662026516555815921117618075818279232694748687084657460708985326307717838882989311632800109183723647685815173680946979222260461891125950321921270303229586839549545543268350067664103708906392889385720931602918186504732997400320506251528998745330744487802941871006975270546697795165548250507278533653095914405276435319490993172166621716179725104610092138863085045273227204410875676736837891017633141830572368775326406328281267407652565648624944484308598670564700005455245301570213291049389335055303349101154395774143092395997351228646074720676297872872049741125189773359152663756190740041276244460238075366998915354398473812768409330688357179558296782893936175249806582084510066558087062492203247821818293614130769718261998484406443428765699602224713997740730544735678584620287656813851814689657022018211440958202312008945326830189815522380376282070706602573062181372107541394459185006983207479054689312832016659040996017656796807409076445480359177411969652614989151459187594051390310038776314533435492903150090329131867957630434479183971040342561152232883582157754651465223016889815638132523958887543116483897405207243493168119897517027986499235813357099010156202671455071757438600585060005217541605066558807012181318878925958790955522352903573764068151311028283798618603110991187906242037455584347100635016349610495687609386485516185161299387669748550089385870469809435091975105305745481079713269225055485439799239273315591713783176733339589527510720389879391941100243394666885139242543226191054124842231862393933274725258646306286220394089385037834955482845829480620698987486337471945855585906974602774057014367533590622654502346537305691363709206225375873296647749535422786374135551773711847959134266827960698374400162515304556646065396586809602376712697848249466536585439418387148035954478506582724212221553991385407022462471713565931734165583059692943888480884662563892822011809739322952025680516170945850798636696145253910673046773692342781467588682065240809825281398837756491746955231395443824978845751763081484738453923074158716071634970656845443596149496705671437763241804663845799912400573605639629906097575174859249221320606118334072237317914553903181778537637885488531879210444683432660513111215985002148625746792534062049814545817158149547557063141868437596491313539257597378096812381329569575702662807276883642791737304690572831082057550242903946461573330379235107026150789465464520786220819212299186038937582278630931819326331920892634970092666704153701296153367027693939936112503847656747391833862818799277995882216899607256286007159165998683284610456146018535100266368056048747730574495792716362880867151168440747073377036602296405615278988281544127688417010411843725127693172963767251243332951739062790477993500917558024323873139811281828790607011169606838360416463298060110399265068417868435084796455386900425268400225734043548347259744361382973603654361550406714225895150439002542136773826871455363581775354162333530137057498093664262365590016615542876755297715639906037525242395375795972344578873822190686800321681318995412583557250012613018105743744423880829126891542038710299911864327162308684464062910980914262251866183163316581087628546581182660503928526486127158560543178623534648190167357786638677781113783232578346341366569914151971590916916210140415927675898486110275851634142884968831624070030300706169041446932224226647761293981440930239203891101200474742199121545432343512289217600602797635862549403808221537642439116609002162564079430802263183303825416120823092037324952907627142104198066806325342822380728951805432743141207591990266978712010078641109029539370060574672537266975639314155032586965435707952313922870526197858376750965939062013684065119652556279979217270770472251638959454682915857019294862737844981922262897578954550707664489981145836966228854761809458462749514845667726037282141163494588201380970680318382787256470563379663879233644985986005874861152677492830156506683929879518760278105134082209977938794671769593035792767940989350312617509743312896811976510877319037061996819297302254977152286149357439497060173245183420399288087349096608858802433329310206084641708483925320248469794852458894378921767138555096714784776924231829469604967599611743094358146636977793672621342208316349481724025444514863252089387964992772522146944519701855824721769405399587698920271766399165632194301874696105163106152523721468261147578571391873566799753973235677245689213217766492173824996905199177730432805682299059292548987732842776231405637800652781323871390926202269950502989319918199082239967083042433653348274330758614465161529621844344655959483479607150934826494708733818699388642325348639217649740224650713171949946018250781095455492063811401104431380125730847760139281029365818088047655950920794106069095875593808701744401100422148770450945314759220668184746174555348710860394471927498799495983146582362457562446385092802218065493036777106677641199854669486627234521641275962723351270281145664239989830666813975255394334506829173268340169951956714513667792786920153093819557492110149478873709429456747332012701616688019291160309512718951032306464240667326405139737698860052571021418762856226319666471005120532793487894221542958420994053885855129852748538272749058253678673554417916612183580951298182339410053816727782986587770322501004142291227926348964424606551146950949847372932326778347342841933925186384999039389501312604804374546612197617170673121122356868648514339665169562230319296864558080607651426465316405624696688157035869000984974607161295024315154709061711464602239192757822854617590555134645162597069812340663731822273010736999883393922272262179535138363624468899966433416924401106215834210581382735329327933179781831194462384920440880569884853689644839436816744350230280072378425428812642377763339601486220461458461547926298013233775063289027247265270213732483034928379513681469151973358516440355270200033179297920868859824643648997641864725206145220023208459947243276491053668744832706199644145143184044716398513303810370248275559207512531438556879045990719111035617859785973063048947429487582609960829477120785609896887861070547434577098695782170901737808147000630798507134811036283049870031504342495761204483668618176924090124800924498048171996433797963993124969127698064837419042665305237295571786062319931550879072104289765809353501966952615636801529208803315245931513029615956895008606155123576995564646459361384753666691005398976418240687127442707909543690347065086185913152801375043117792131016657386414329639482519079537803433361764472853069141513769227620867189469380902016822870419585920071864410724958451434809449066272129146089084099885348864970359722005422946733295509630006682928137217389275716928283307326521178143929473359456966190580072931583650233690762332324622690958006781428990859056437076005103470919478595608536997200551478580831512508159481530777609369420140661720331352103085082154820789539513616535169143003882422781869634621592777099924159182589397650480387285740145298205019631418635428571328414433009350180249488770487465746703057126414235535509308522588946369042524915967446701583696373051401108890414548833973155012367191994480285450867404976055984998045230340943472020286556219234123280106242976026069529494831835330929146086256339464593349388937341103119556847820662388495525748309214683270938779277938352877096190542770968038765066379894466952378330174679381630709337954659072138570291091751280597233263160792815576199385563355659777711644074494833735540259569949391292364339467256114687538791020966783722885546534400727376530442941156216125374045040793450542443860390733948704379138335795866793811187209006467376655538786686785048122907262777314475840101426259276350128497349335833579121838582270829225905539788142460866890337786700010322696498507805252155716151216932354722418505423112111346921782207423006625571911961553044770912698892719666686574613932210137314250163621023266140168651364366178416001019322391667400887911430793173120661170185365501088111788279482172778578080814734168520837832360923665019655066667299107249253528405623754330638241804233466539644237412721901945744000916462156434232298823637365017995127737835721155685143558530111730336110052249787893105571127156074466194473501416466778734163657601833144408343503260794877525940200567538596797328083753020870529262748696717284036826299168008266191681402917328309479952345883426944033048138373055985664726920169858677299734448630950682026151933146682553071213494173995744445390002488465450756346155921817529686295465229196380065104484823018533239596071391956322852705158174047827542834952487466736130215362181867298841297385641214242354594376481497755727101704555984607117054562718677731435466601360926278106076196321397406172687598561113310798298015986625491914429148898300557670806652445686919933125030465068441005199079467905564949257944983462858522663704254934025140479932175363195175434104703271659735353805349183904841249408220614939847250445582437911760701730171099657415723621265727356900655688592759668819252997208407913992367505492715148371437785306844843224247843296357563322241421187385254340796890365627332635238304930672364050210201294634982532469996796262504896959554707884417955712995686380382191857273526481759233840365086623586547578856590350293249769613167669855875889859517708924818800134950366780032893404636672704577907807219477615191725531138783477510550672218111063870580203761406298814476346577142399442601597702051078716135840435043555249663949311416034626032283982770240106376279024614965338935912875395935753000612461685575381238618065873264849069121423629172820122884231052977548605627499910368745345035433760122276913509201736738307978362134640773396138060079989657066188225493493901804742353524101410061574171943954531952171439835270076115677146630548169607938665232035058116805376375597490098903478890250621458531979344034002346130282153614498797450095058963577805226841356010999217255638349032797885730460242970582480251625931725821631147256070632255906215297642523442124871236261870587203972826970764446288949620693474510659807976942471611744350971890202209477772582324395604222852041630490441932074725091119754172475580856422749699319930934934633585267508971967633659330382089418148556418508542468449024592248276844008282847718761146422870567651024430480911234725262048716177344617043552146750444146819859668800829811728290818661167021621093412775360689228879895623166423543524943576575652650464101628144443951479595330001141822868505045066377431406119293278941259144894013255603806665095601430623118879991876927451594611140657068680804213338542835426073248139094512404305899143246239768812628969976539316639592969445014753408475318737146844029800131549793485306115712929609991816857819646258750109459152265616559347866290637152421346416653299105670827338758482602409293755292505995402257851631274084724226343020390476348772666977773364226774314594969095946580438421167839159399205966360330370222713291948918628130286999543075743990603188081784154275669843261013152746966099504290452777418210859183987762950801236387668470423289581442337889878929517339344960656604625514974536479312201880848220950267358025251160403978583630129148189328578097557356752908093272681441055171582829250993297279137582685236108121448707422450729893928381623690910960506346139685012044609080965342370402937423220342730983743653838699558421194451744421002437344507677911187293875602433734921631156923590617392827112852816096202612756765231941172917008294295423290264198051639533576748646128463187367572039416341651093781219956985087978722894516207585274095086603009560761309780941255163468216136318194810342720984178637501313703837332272944603553269229042691161042782098931463017961679655470949195459124601061859181195006442073361742414657955482145931674400180628999556687058748641695730752852343170287229050255133035044288223003860142574654377803379518515824874609714253132111455072258394201944972501650306637962825380051448338118016976796071424169802398237315987296296830466435032643214729348639424311555911527821655916129404419118042310812521445621250059523249938594500443951208758500812900612499691197791434121485505758119165794142128935280172998711333012267635871119594879259568333347573967215504458114419390605073019524278565424111945851655736104283047223730215416045315873761591073546869815465263125916050328300782017479025324718893321345428606979240636796220042264068398299566171035954084040707792466749786799768730619009769543638657140989007314474683730353920576217434084809682617657361309399808848945832779683866912747636525531991439280008364430707481364686148467134138846036615578832653396174984469406103471064456080272409593332818737934319991226570765481505007015734329197601331152490777662651202152266933523974378630032585817781668135094789010232086824402636004100881710867515784949141168980266319448899920134126052740808505413319535780991305133150946568779827019870268986959175881227913575676384590127895251165900691349665255195128578928004069134146151479663209291822431894287396509281327536949371993162513768489357019936323725167992523984399734058952451876825377336819686783434886996882956022027318838022900891749843342457165730690993527816680115859296254792377502263942856962597691696037800914456457130970883304781756`100000.41447239257 \[ImaginaryI] 

Verify 100, 000 MaxRecursion -> 16

In[42]:= t = (Timing[
    test2 = (1/Pi NIntegrate[g'[1 + I t] Exp[-Pi t], {t, 0, Infinity},
          WorkingPrecision -> 100000, Method -> "Trapezoidal", 
         MaxRecursion -> 16] - 
       2 I/Pi)])[[1]]; Print["Timing for verification=", t];


  Timing for verification=1.90774*10^6

In[50]:=  1.9077364375`*^6/3600

Out[50]= 529.927

  err = test - test2; Print["Error=", N[err, 20]]

Error=0.10^-100000+0.10^-100001 I

In[48]:= DateString[]  
Out[48]= "Wed 12 May 2021 06:04:32"
Print[Abs[test2]]

...
Attachments:
POSTED BY: Marvin Ray Burns
removeInputInformation[layer_ConvolutionLayer] := 
 With[{k = NetExtract[layer, "OutputChannels"], 
   kernelSize = NetExtract[layer, "KernelSize"], 
   weights = NetExtract[layer, "Weights"], 
   biases = NetExtract[layer, "Biases"], 
   padding = NetExtract[layer, "PaddingSize"], 
   stride = NetExtract[layer, "Stride"], 
   dilation = NetExtract[layer, "Dilation"]}, 
  ConvolutionLayer[k, kernelSize, "Weights" -> weights, 
   "Biases" -> biases, "PaddingSize" -> padding, "Stride" -> stride, 
   "Dilation" -> dilation]]

removeInputInformation[layer_PoolingLayer] := 
 With[{f = NetExtract[layer, "Function"], 
   kernelSize = NetExtract[layer, "KernelSize"], 
   padding =9 Net4E7x1t0r9a8c2t899l2ayer3, "Padding4Siz1e8"8]4402
7782 6 6 4s9t7r0i7d6e6 3=8 7N726t1E3x7t1r0a7c3t9[4l5a3y7e0r6,7 6"52S1t6i7d568]6}, 1
2681 2 3P9o7o638i3n2g4L3a8y8e9r8[7k4e2r1n7e4l4S4i233485382726 29932dingSize" -> padding, 
056336 9 7"0F1u7n9c3t5i2o5n7"6 3->9 3f8]2]7
68
0849r0e2m8o0v4e1I500p0u7t9Info43352434429848710e8m8e9n5t6w404014954099101
2961 3W0i3t1h9[5{2f4 4=2 003e3t0Extract[layer, "Function"]},6E8l163e6n8t8w2i5s4e7L8a6y9e2r7[6f9]2]10
88
98366r8e6m6o3v9e6I7n4p3u0t7I1n5f6o5r6m9a0t2i0o1n4[2x5_0]4 3:3=4 2x60
7433239mp 019 N11tEx247r0a6c2t7[1N2e2t2E0x0t9r7a1c0t8[0t6n1e58528555e8r2e73497245975729
0387n133 7=8 0r0e3m2o732eI1n5p7u9t5I3n6f9o4477t3i9o9n1 4/2@8 6t6m0p6[0[414 9;5;1 8-933]4]7;24
3696A0p9p0e9n8d3T4o3[1n232,8 271o2f9t9m8a6x5L0a2y8e4r0[519]6]1;51
2643333 1=6 0N4e7t8C8h9a033n5@n3292
87215240022770041975994217164977381036125742340847036555245122571984488575341496924008255240386772053890462528477239068684755677876477063717858619761690997464800996548154061913592823931847146407230205443701211239627804668749562276592891368844555239054234252926349891026588163990499222107830687315138464296093558375775538591110978562984633477083385346816236728365385769272692706219939518388576579822846299843309705407756719332119733551986703924211122155329387939355472895980471534754149770418470707456357711348486762158911547597232564146914924844389408501194715323478282518508401040798521576484625969882326732489207851387366762530669391730043706347358773317552493075476300691821096498915397473786734443973018394313446845484695088308749203297069778457898927335985177552076234010449307061014414638755292021716964007120548812256453745055249548851566157238319089639130699767015900757209796552972827008127069007671395332011178750637843159079338708351580431569491244553663849083010216773925845901395242020866513173052769589179551072906854508927823403710821303223323764903529021572305535629803347357737884621954078731031414477743978127888959953874401062485172676168734010320286594593926983548034749447798986906448374933021468402198088144053346608516608143378585150021395468552645867393574846842096259642870679850421194192296831871450118544283896194025481641260553957150497800289252446780784100922980702220502516508103559992954328440371487456244226740053388005250653581545454231480796791033570912124850995392465870472366370026757350834949623044310106791672668102948312945799985914927643290616176998765458461246241872937518387220553593390666342754537836424545963070068201496333211871440140734588983991578129410553705236598209964235266315219164411367908105539254264711409611309931262196254846132434074891875639571964640728054186478536035461265515186773187537644679633879696319054755216189729301367040128249532832342916544967927879779626991792526209146151004673620341283181474441741647439933270340781204716151609535103382678520453707484053636689007043152941696632107122681529573666249025428193107689814193813764303318589286195075446936877657537521184667753186709987206784534551983907474394950413670482560031655331868186638654000629589072863291717369748413548652403918141489038997109739377531408089682128501653171280255197915368604520151124724491360887043123539351886441251971714439484635531088025375755130926126858067656586193546216508278826463535262366443371237209867027873388040891427505470554369808008890340071447481195575715276484411834050378337241547705047029028263669672578104103044152421551521589580695690274493766387298027806794348584099862163142978557189895941296148876808146589011546968497245375989894144579379068903164112519486390829819028496054255034268753281539643659597965699727277480912295073617277476378311727621455452832931683080592222890356642107542922797386644263145525347264816456465313931632034283023740225151823899860083691981393162646068835405100534938262578320242668369515297293068813567959119862547192040655069364727638931155220641358481453715129173402434150456033110710465261281481111227955259428498868464146657733007781618557397385223947878716755083396292563665315372065370340151597048322640774222392789181738642302403596653203827512066419566829908113230637966353236333062375786434432332412197962973427616925408454123297731894241132097347601593379362003244739720696120910373903069040221759218516288458380318593626475272739023809316452655946868646556572586464148172412239622010230453551690568680681892513286795724139475737979162470861178970435785944212237752349826742956054760335448447969005895538197006029475581806116870075760463510996519571974790534980211822625691407925808166738989956252647277303639402114751405694711220934647021152435513048960156307147928029072030331499051768433939654498570605947549936356939301957901477175438896675110354988227421635821230074417098872209727334932511707528323302325515246751981444987914093806782053009335376785750257303218338412304079968693700488160906772057335009919109982594989279057870869964693759788921348622283249945267207977062642087905084658584297125011574710178132736619865068515294400317367823989638009550420544963011984297817505638468214983852751878135451922795988849598254728291758287502106821824087659416080748965531405499996724445891430082979576703850096639678636794922506285155391588806206928448526341466114843854283393669765890283228877956402962436773554333563717156629799730908813503594256399515627082873627357605539317540378662464882531088496601792801386905042848137887684946585218204978618637137155874776991534896607952340409538520048739802200729362431857492188265622726617627915184141976559109686488968552234550260037922161164161558018935677158507802267867236497654861967416110422402237209726425616569610701479132143501952648072326898106286905838339559610057054873344188667780574779078778098529500814580741173422715902939995352189886614505414916041037763989155670042474210852029984326879400138526167004517688912030017833802667865870700793271681186736710817623567794035029475870186202292772005905497968552356175072986922282280912462852882981591538174980020194449101418340041202943745735166944501387321132368659998795323789177325686415885045029185385969025099745247817914430990140139433578639497600777910081595880076038616132678631638771779985468040327424221970306070564161201396100287913237841666800546727170541888602383388148899709924890307547773557962070960546527934083696447575318996778746460388609489739748544494095956207962477180497073234050868251602976490345775173231500159353030722853630671071588452755223022159707340047562987971555768890347417395405709307354812519360952051259899886561866404280181561483672563136677980273302965087258048130554488504927931413078590710849970304341083114158564234730954763556556069105952884577030243048750726450505644405635008340472173784996951161113445516533345692454072398717012760992399279414437543712182914238076362485569744952809925756392886191297865417111039400613932271100537948767695090716345122698612291209884966145557190031559370329872993708024864725141569472234577060293862824097409000802990573180670711710870505817001550876487882907319282522859301019019227929214135688373882157069867440112691679637062424486709388151175194280135189373972511918912702556830245700498114274340742315807537902813575220988384549748257273405632190777979024551329419848686107777799381566909078106951374107257352280803014738066109428352384906851007871916628052868004832155400257116067211497298255361988725728051326073549479700480976500057979057642194587433402978191762479005849299436119697095490996524369156161089337875231247192737124446594805055595939893198405279382930372345377748112048741743673118070978657921242390544026789492581674096480292543611980953382818498818705493054457288167802505413246321496450222591098868052902339319360153212758700659068769332697587094650804291897075072939764854395683441401543708332176844766015371988192637912469715823413184117801825101611508596269010047974520145501062641641824454780184864510089957600199232918020182803087934651714722009218282895550377946429156593817395761907830993100780516344093800741425772026187065917292028942063777659337806942775076801333704112558104744138632333045831515066310857076910838136932792009519122379711498993254600260804538695955732296529773062100583785743043051954645831379143239481186675489742454992217057728263201279739053235323730812498805879946625419068399242534046283656091507910823180340383017970564178629004352172830363781208107603367421798599402319221147221797085673936474878420145894214326868435449924645593250381918236083962939444981052794600643888372245914789962592781263860511857509051148270935812092599946858972877255468133694823089962500298912986218671056577391800592562302831973182212676501423868071270002237628153959563506560402890619748723753480770227913630533883105926059852887673627887367810266813907906293553534151109738654885736801378225144177671774451369484454828165404147226121553199457802726417376674046261823159823319279201199677124869339151636660807908341341685485784691619828423484787512680490507233655004168206763063553298851149294961264528771125694737110392940629178333687868747573852668265380624826450146505717328423390062006500670218413500766648029839308347212820325049654459209755705859475753456458720078263818533855056051669758979425123188165559290719718023869329030363255366535244588604982471870172860440124459091872976856319160385628491152572760884526646110734680342750093286499060427326419854987194573201226108812894824779890228334646111852175600190117121534094253794410128400938135013139216309588492375070719522441166856840107744375215848786902709565664224111064261203061348237917201614414511559704392805743513421787490925147540800564366976276592575582572240662030777674150029389669802888113090556469318800133275925565623843115937614645094373555948945466242101228524271459523602649138413059735987581371754907576169782557673555578499440865234182440431412314563845922183148656749235794309277241944498575246857333732159683945976788674228122038934566846779789682383594243143714988047586110247152786425157095133855545590157593813285300503058705438724156299950825193748003520719736386124777575074891957794755586696783287904325547376382695966698771718196012906393126557425549219831080877250416475807244703871488578531310129630829788358225905491668581745741594865271192884575571266240325333415878273698434226296781324989021274663206820719759026079034296250598496158508472990072568352366872517377648964875348421071538751457023659216166743372661949564927491154451937665345764962045634299786167808036700582051768558994788467878683657571226029343939220369737083853316746568907567695059311490590544613791423683366247636145402608726911255122511508535021709395726096797986786844580631938018846066580000226915632054351261590337788271870104034535723628684219929416862374110572174597462003329146793368764297668934803904092796854631084186925989430558890509046185892221759112441366724508212939901775822184260812115549221208241374598703102003536132907956356853784323925547325713093885870708232118205176963068152020981943667615030848487551592752108849685089748707516586362300315893090210485639097401760478535900490742462485944708561734967902859272199834606343475547866834385036742950130774718825811215915313693540526736737471585338654718462979317266153318233444936374587596114170810924987607576119325997873503750949340875293931492627416163700178710307472679515910335641416784910109594151166527237980494122998416790062874689450144742025409343774849232035389930335802697128830032281814109975176690816043307690521886174798521743864705008630691713833820977040065055582010901652565033941231084045371256855467740520131517683167178271830062114158443279355413478513922120229508381760414335511263521239428776787220705991673791977623746283064477711537042154582550675392366876809479890412500713243682262815009223254682300178649151965572729797585412736144908747765770083060887202950877496758551164879686984086426202514224348708908971700019144195535927391513470543806082747978019581154858592089434860306888072384555837780295874536116514834486606813279694378626290842773056130757617768998137972363485689524265711583720207829307766796564107179685610938350158520208478721693490656288016015995533796678510764090058584207918674580939939598540847972979588021600314938937916820368426342647576638698455656616360703433860585365888958569333856783960160914867105887920976681846011557348611405855303024895708744364487025052046958133722265058509406049509031893938169762250288247452991322693894596677139462690762933945881205247534578591305409246944038232317189148917001423568910175188594337438740112979388057477077406729451512912472362507567574525310130572269182870255257056983825767805547122516816357478060529904167607279323473128759866214557224126248272214828820759072279037560444956219345594609034188742876513765992767541335758793933966748831630986538334134254966487111132073122470914509461872719832515710746750949865311791225461662959850487803529645697043718136009982915189175336771782164451539008221040128622906846368016246661317141895577742990487221537243986639877870770237449449442379187482712740406010257569005737055187607492550463540138847679675208058614898523478638681136775234645482077509489377683648425454874901047144573763161576583203534688581382980670762260513287437017794178084315165913487266956009126438804386670130467555595653046847191461686895193451405448474383214580896048505710583305938268448666317212211387548860465372041283984066813360254775579677610112701635076992850536332872874653036593827108897244549897156209759918924006315446340965694862989740556732566177375502462401608838395106063506524020871817735925841764702616760440084577780716090103910032655263381110717833738666552487800475408233311285499732184506029987191792654471239222514264507003463145082746956068371734117588951939445990645786692952060981480759276209059661304154400294503438024663325703049387675024044681156048781324466461452286439870733488532271255531175989046157408959624212841697765137329924582627656731935378487928787880530482295642538046075076381328394924975874467113053010842800225761476654298027283185165081234697839383861345528179898369858144733231922739752951864135108267277489581846230526745067977217282188436155347557601632776975408638056529357325623850824390558332933123158118922319418891798939021549061700797114828625147564926967550478468633148894551759626314395625209445605841046075060600482542007769734264968486259016518395289595627927724217513668226023027736015981844405801852031495279021576518395696328165639039173711909273800616596931095044391091796941360114223077669683003154091446419342326061706992312144966703982869129163016885097483279833153815988154947815964853951068664337238657840576281404552088605477529752616859859264777830647383360132030408092550755526594279464747077947866594189856187750758956873738098873269402753843218871626178942649464512895498394210220548456842648666366482586739267842185481786793105857596186334953016668577258273362382798796011314276043764688216837961186983303700132384261653358691653383012231953581760578669961098642784400802818301268910379768179535959789701948823244776603265375087410887054424342102814526538934607372156812916764520476404135876970094520716164535380020438823396323238925729554332633581740003158678895205092770546297685299537708331016709756422359402344645816800892479945908431662613736557057457479046216105005167382917266662750272956730726679673108524608797304190661721578692131933655470300127442657941527341091137394820888455684959755871245398001984742607501216598360515380412635216359818852681744878393558046132548884153493539667289778049649475788972857418798096361886550983405324211133538123781897791515946264988597912689955472580935861998814431746978336609462237788579783901902708230229694289787377971945419940969008038758236558322435310872564137055829139488614568346481557917648728141772413174469584128147385857166913691272608827844318905525746965221214959520045134785377177374502066054216644838680123108146065384229587271375412322565368932579102477213196634285558056747079524261437555578084668377143232749482042839596355026302005903385182597910057965848141802674966084927879815760192866574552111708067785910093815648993759316757828475984955745590471506132753849570282509846186582999581366940279837944153276870600770906211744983406552359400936616048987887144717000145079817459044885743413704834713619078192064358845103612827091949944874983448623387196271669907118895558089356739335325421883403856632800103587264226582913999628660375648794461927367884074012938271539172406747744347103025090734388255830814060748791416057584828975124159551489143982907771234578754999554976061909785053362370809882277070645123528711254139413241677541647978414971130286136449181953738143363085146510049841385135051234280167387035776097483553090920294390625198284158638714784815095625570597632377771987087329906960840468704750122930424057294774698930594899512781758355006638593422288433815551243235328897215378406612525416015965209120080756668269108574118048519621909511678227973309308323685039086182877233443149271239828849756901283787713161124434132073259906418118530875271976607728437200392897122599030325407661051388534657212775269654706595813802693508320584198415984183103137911542954121614160114851391931316448014548776301741846887762116898887190481473977540318899658201049088229689066162564036140060684725359886087328364428894317085484190824901288707852181457540827913688486562928654608525906529629202129133871502006201977799477957399649230016295368142185627970485110486707128943621586692200537173353848176218220498519690966009070301568547751070475966647015963261933828159024496036832445831999706865333522602568408294959844093732408817425661730704539998169737822732768965578419366562780233708869225079150089412406128991183992073399978077533726886130825658820875157509499635011660525729300603181430456848728310016006880663644521917617777608425486989841938419357442056870941752739389804116460734689898664226791511306906356496820578526644702159309345176153073196958647765805455786796653150021839661539575934247510169697451412905425675906458736543617854702487407691502727043557881427683308042925714508097999110957206740752091320078369322932695123967872546945647272984403391331848733258080982649369451483165169297837382270684949579268031821477328009932392233117102444728550925441228122428488687417357185489459250667173642022917334702229275464684275069505745878202872820505906555961914945506449712955560313209632577480950491689339881990316859451729104000365420025013942188628235613331199231917620189219654997768599453839584105818734670909308535820456862590044568628578990727005632575280652207962209037430564123074833264066511114432466406192843144388304133835784636665175302303517495640833806068353624552273858354827025656593329227442854658058342986490226857614157067002456058545671578536627378800491451044114505228124822758629811025116368069632590828997500068266294652548354714692467681409010070333934618508304902648101640087483860689215946803675982178089613764822449181059734705063037910871098644195177657516309869805975815640673508260844468165304666248108731690273802325580697815615988795161686817700567153834930958358758711414377635039651697841430644314723280432520075739081875741371849793111771221519228028198141209201586204025798541271855068400793412351553149276863541467941400587117085647137964500611160697700841194059295902815828094355798249993079350689091854206641674884912621976056116662479868379162472331757545129540174814574372475059885735454116824781568461213474076034154305364599275581737494035197489193653076470252648708520722702195926882833605302726541427464108302685320049027609135159108722676823367698233627171070748209591837778609166779491117527629961085943949330239761919012367722025110442876197965393053065477107337927326244721320165791042498964975598535612390873471101473467733382981919856711284343982202481821953156359102983135669394515792573668194937589485575684759172473780035005247869379449991387300529943476627165802265918031544691633327469202515927456720708827528145398430502171979562196963813371842615749460915321581723144799887851170430173865024892383844329963834465991302850787650483907117268320594081761426877522905224221681341945315581926138834932525094151865542623386376672215609369149858439999373993712844701603799853758026291267135766322755347591091637862306297092907871168029947325541672541746684555474555607422385458386730278175233258653396553771367413037440897463060388705815019086239604668530611550132846207621549825226132946883794245579999741489458543409201431749746301402687143063795644387479732072407610207040129267379917631917990398988268352622336465649339327138797678438645619782536735306001084937430791280435647686397055390200107519481933758752763217074602872232441341965227694331008789224543313354220314223370984651564560313846487572843935838690665957778822118630508843589064408389157033473643291241916477491535035599854672469518163077344612547127450139642092614149952658127070665720470617426634510608898751993413992167460136648156904061072775964376696934015146680867557416648379090482428609878536783367189606982698405540119041139891298859432243065835774392858892080428325911671279037273462980615895311476437739128077535348029454932736336617675145319642763248558740998132918426174848303381470944251621950649758816703738171530091110149363190755768265746400957826738483738330783315970068445284935788145550908978599571587774054139146379372824955094742849418598384064615820820231297610568717228502147763018552548565434833221298699876532887055682321195630125564867536968286687005865090240855599804598502669025189507201317154231278743598941984171077154319818229812174264144914922121444617530926574366434548479658277392319930789720906781353979893639313273024904894968150794105561285194319310539077667925141412936140305058887661276664430554715321901403613104885127791849384961548877168936515042131488655045404987184000151196784241100808540530026385200477984585952370647745407443486029693212682408939708790220024661499762437543529925992123365824230910466643061410662109181648014574364325867654616291188341550276853560604444019563392784837878843618266745609952198638179608031049910221330240824243249565467131857790242501183944013004651421091925477419727221771895786246794077841867047279639168063446446350316195692656126701861493292579615982986861870534558945043878320237368992927568338561756017977688237302921512303291421443340484990688883062684685234226156782559802437431749000878570384676099496119566334881417920656933015520071379877738388775971932806840776080326441672401721650610204453814452772798052284915473725025914422562952034428090724848304837999941009498191950276541823821417182731568459772599681044367878260890076071099537189433530339856089652763925746738808514282701941366092984560926608044411796454888437654996179639144319162493973567313504355934970936638081789314314205181949974383771418598440558512914520255817259861681056322723552558966794428552703244128305348890325513153885620432195148716325870623937215029214849759074508871308157260520879891574777067606961321668218069659447955104043392607441242903820270557643555883299834916377494293730813433245570109588106535734576556232768791110113823134600585483980780459654123328993588699145360992235949148573592395643137201870891285537559659954956709183693214729414060963861253938507436687802183054653350904119857489159511068354193275254513229547995140461761373627617247160297068461157715249036335481255627849856624532021298165668910824931386855920658997507161728292097136322942313033910920388513255578440661337447549690256381511832378361539194720095701016190565232206995680713845813264363187832191980731927622920736127452764661878606618125595394502583084781357436080492404537963922945243150028990128324830056545539170360525074865684442638681379783520527505919020718597135825092165943917333374394725387253854880356847888280377644329616056390836863277751112167365349932163475357258648306377301342374342118837528549668421191027852804952475537519496693176593124482838955431298050588152886943785245128841982065070035040235018833212526994741952042175296922738003375750072679119143546313658496176268405160419839121347465777518099277798891702418531748478578426803468797590183077837749306984450268395356907299887170174621968514823134585082830269088570322796158033683976527798405736476649003214423178658193378475741802789258605697446881532305367639263118356482122869620869074532308076559621551434069320427781873824049562149511422369709575996469384359382861370825699733652840501283064240389981295128679496518401950589579628776869173938705017090417904394766608897158885309782420841541106338938248500382732907126047047165845488889928502508958893597510149185335876119296343554053411066307970238188402893675134764532670743551290473238843737035906513407035891211753377411532897856890833583474576229168567714348411781831839424858338202571007050994478371368342773673225756636316436626326744001396102838703719526924700017893743146416732695465484144592738232687549937514753930209470220816353859693847086953428159527052786601408700149083558149739096713204532083648287387184211590439302807331748500750336187148126584994879734484382083281527507376051919723754352511492030781935919078906634017853510347037571906429093959987228110554036362917528823907538534755303702049924533322727516674080746095680240794306424742632862054134006648763158419040134736640796634162781085910210528061215521853021005012022172990619808061071255622800878728396814997512184716260885438880814811517078319127033136904111105176886098514009391020287745748675379306945782326109173344081417594226824333249913299168669030835304008552478138035664483359749810794203603630365797230567308141571907639010018210726339824655744700080920591755109143053365456906221747965729070987276157063455761267268718068428216334630080289472567411642054800444257925205108153567003204202366453864212799288802396203256745914510021858484066594949273491548826403489952349722095079744905865061593784013311981531908756636143665659212989915495178059558008403309797117766236990458597337762626478294550397960108886751218795186533227637938511948291962232246504415450857869060343332015842882499732819785911111500160447178075321472769578445221638828278987887254867105102089272148293177867213098901146804904881353106669453634046434286002902161101766965457496482527655634586012398914453234887815153807352485767347468368375133415470620262498738748333283924271335375844404710410368610051706478206989864633726325795469089920989831579360828363961986926808552451331946574258039851408663409925971957035188265169799240966952479472590933042862246428116017996492701044096065422156019895442757829289704718660390427270921707834289566324916673876211734160564659319850658400402502100124323312714416215387697543988783907370990491392725203906061867829220055639352751879074572445804696902638609097636438075182625225121981911782588771605635002295627668556305231520432259743207189421695996789799432969530048274153948028197887813378425276356065023490311245290053995499212953976483645741282767837655686673777538011093085243669514697409194643625330815725209283100601150088745330292409526679286892815555327465000979869973103074672424222803633327059263345829584079966356988983800982397335007545495060315952873605424122161704425985021515088062071615698942658644923280413783556545222280433764032182040141451011786955135575306250415527557230300005606637158545845058204342020175801048693280475147333713571805298596558917317917006294073042026558959444881556502746929778174507086097933052803286408851330280858352679084929107514044501459582763110745793482570440143699371823633831765556212599458395645352137436675998812666214881229600063597736968368101677089710781940235051932767573453046746498496985857019960131767039558568542978473059069631601766172944293009785892130568470476442621366069367042323742966993875142781543241332849744088377964673003559420798422850712974466440571910550933547882046991457692714211038544154544300185804078752325144304545637607141415225953330006278994732108342853969366873006735694342566375536792001861013794331401648078098980621894530512757640730079399023425986019126613202750526483579985806274351286185043418080644928254601073303435377620818063019430154686631329979238742782899040953669886610652082792141088130326476123588015124444890519782897835306450480900656492831563499251344007701743182612085672365495508866129829804782444719191898462754517753269777203043928235609191565272434964170157922057888655434194561264411750045998601030552386900629951283269755893940525061526269106843294554268332880758914091362231975425513465017113267088150449808078068988138891983032207639250423018184264349108739737101250516619275279310764621177919204923976746818852745855022970137563686912758793702416167317018437603681892020532586835468755845620601431345298406209404142841149834472745176483810892665273556926054338680241890035239562103423841048368128543470250021865429116967448278224695957474234382103136777910360015203925386883154786752235104787967719136097285227009852810388490217975382548033895443125640742244262845367039949885361939451751072812238519568055488858603839477183518522094524705190225162887420257097362488114807191189399044444644726432175165708079037174397359033107584907142141362536614924198327559759672689301268089730181728642857950125280856854849434885588986360818811952797906220226984338999728811887433714394186858520240232856102716030093196285355394210758803767221678801815324581231676319313650651510409777588424765521318083108195658975335089093202882368839723703951729040013380761544578315686430973110041355505431860263611763642521514602726080744349308684997451360819646405071980259825634591149464897549518262647519195640142338664285897584931310044303490334926470427939644469956073662500066716873248641543831479677835574706335877875289781768908017493153282259177636946965840922290707205178363253465569326201441768121971562617493965446801035838560898334231713377316159500713243067897549101708455015647758180206713899432186259942536800665980942236589631880251918470817923953911184671619168997338276177547920716469923287828745744414048577553306135665673337951267802325597448357432913771171405018247204023332030933933609208365154315998127888240573217930812549075584186467451712209812218443279871077805338460750209181604334099466538532234320154661322172961397573471901885789606759817891539638942062997010207666429317550050780088038150988911615945495791090347776809453090577007690308866062501168826883462932316915577549281913480611679763047933675522080723554084612450490982451353462150496784930226107941299554902008327177878805995161061840140537844103960547372052985506860253376826128362179319927808909635791187936011589737953325533016388308190640492140099412428870921850192005074070159919867195759817210515047657257090602140367863506486287623852029585132183664444199088754571602685882445340222995885290241409061248819979467029304067511744995700508239571976882206166989265205843615207708122555384270915641877733322966218531416869450479974861771181210185396820415310156295971089257660486555883612136022417156758270649418545615425539443347610603870822625458021012969890461911594201055707757131837312848909284449496511804254365368875581271734497746011243426433952484349070288722537236768972139128821752796631650972704083476246321130454403052365620867525829478989506653976360001308063793528708125114708908943318282657091410639702217197588232360267908366012967490150985196519026171834111403195047236254297485137630233211690034127278667645650417847896052506563876136230929113032949544656998829722985515950724556649922121290194706081702580459649503410602498192499323471855007929155794408673770895166076798687936206201318400882656559469484465923369646664277867640172286117103801709537770011985202701088568095970232903667687793884126359380578360848874593482131293085566856593625501855534204586107975555489603032856843451120171173201550568212984518005591784763620433922076978848898925004840139356406365356424722118185513598202965330446702047999070573753310168814350079467519484217657926025108334669728396166585168898945000981592039932471064522248020792372233305295380787020130116363982216907360868953555703826132311392989095305274327516958486473357031504602739573315778751197146587354356490691520723010926681977537268639606261968345534799120169740411058747421257513640124400358930553745948384084392499751707388633165648606617939007835281233230711795703024034345501300921439830842344595209145404793397387008997203764087129710076509051306808246260874908525673530557471682972107362005917975832145393755153735655474861877630825561478064187752086705289977810928340843359945393964987775062505398479166337804919179499783172479319346793500233989241423934687937700720134851285576929949497073784901063040322932991801741301312106362432458181385646230231540102337842579165322231025356149764130317084519851186378105192376694354200555229013440968341671956924045109150563627885872832770477064948623969225145314461037326005531491977314460604804151597928160027262760898871164741852152886454487865868959037891697173668785362233119809620580886758678990538333922781860414288924083455232230410824069275118058987389672080443874393167264806454474637017051975208972522930260085571059107202745084833584295431605203569783210931111134065513776296722532625827468615761228135816465124554286762343655495001482386191492810991198424358198606792188251864217612369942431069141802220366175177574982990092617023539185800941257783429555646585039437725192586944953722592479606795209192529138839821307162055493148071151690915896304290597371951073178260417026513398603268432159706369844056690303045820268605819171858224081370121627999265382376326051640850220434488185509504703349016859455183728726906940022330186363561152968959628723435042292283492653935519971488806166261860413590098821090344645561536501851805336627475805783663412358577240653406326368103781135861169505699492335930901426069238406487463594956357540708447611680059269529058464152789473022350676939244880902580621983514174950602530604275369942853001837903093031400960520604684909454891319230034223534558336730877962425656619775827202729499857732158552303284564004543739910550421151875259742113479363992845409165657373324581743516251747811922022160284430296255799382115275714819166400947828810821558314071196740007529496888084514088230395893678151042763987547934467977585329655680001482438520897114003200674375899776879547363600897617852210784704259372297829575397628957364413944045904087952104829502631332813089317435764504535532437184267693591389995280930497701347256057931813123619595480749870068608426686067925972399767463217209103533183880820451412429853178918901254208976260701749432110048979980111515395515934675466860107648944965467510233143377826341344521470645327004705424847193195144661869228832928236752947592029783304452428232705019976764709142188435985798734230135012286267872528108392928066891738461481591929588030342766375934370884609703804383639722590491080652629794900152208168700621723076775253862650375998610595578012776932264178781987843712116113148707697137287466307515393953357294316239296141640579732724658880302631202973121547337879984810834184282755844490603783851877618469041922279647062043083135764870450865078927282449792665907129532399933284905716589567895014358387790501688416110537788720704986044157398497473135843096931787492539837586977290228412307695818366612542870858107545778832070954592427593252834377935627921516172019938787070538920853939995660116409954815079147377588910607503899236402109203364027644141267742302051855471`100001.01714067292
POSTED BY: Marvin Ray Burns

left=right

Using this new, fast method, I computed and proved to be correct 64,000 digits of the MKB constant

!

The computation time for the original calculation was 784,937 seconds, 9.08492 days. The computation time for the check was 900,860 seconds,10.42662 days. See attached "64k MKB proven.nb" for the work and digits.

The code for the calculation:

g[x_] = x^(1/x); t = 
 Timing[MKB64k = -(I NIntegrate[(g[(1 + t I)])/(Exp[Pi t]), {t, 0, 
          Infinity}, WorkingPrecision -> 64000, 
         Method -> "Trapezoidal", MaxRecursion -> 16] + I/Pi)][[1]];
t



DateString[]

The formula for the check: right

The code for the check:

g[x_] = x^(1/x); t = (Timing[
    test2 = (1/Pi  NIntegrate[
         g'[1 + I t] Exp[-Pi t], {t, 0, Infinity}, 
         WorkingPrecision -> 64000, Method -> "Trapezoidal", 
         MaxRecursion -> 16] - 2 I/Pi)])[[
  1]]; Print["Timing for verification=", t];

The code for the comparison:

  MKB64k - test2

 (* 0.*10^-64000 + 0.*10^-64000 I *)

Here are the new speed records

digits       seconds
2000        23
3000        96
4000       165
5000        442
6000        623
10000      3250
40000      175,551=49  hours
64000      784,937=218  hours, half a day longer than the 35,000 using the long code.

The 35,000 digit computation finished on Sun 14 Jun 2015 06:52:29, taking 727,844 seconds, 8.42412 days.

Attachments:
POSTED BY: Marvin Ray Burns
POSTED BY: Marvin Ray Burns

On Tue 6 Apr 2021 04:13:58, I computed 64,000 digits of the MKB constant using the following code.

g[x_] = x^(1/x); t = 
 Timing[t64k = -(I NIntegrate[(g[(1 + t I)])/(Exp[Pi t]), {t, 0, 
          Infinity}, WorkingPrecision -> 64000, 
         Method -> "Trapezoidal", MaxRecursion -> 15] + I/Pi)][[1]];
t
(*393847*)

I verified it to 40,000 digits, See attached 64KMKB.nb.

Later I found it was accurate only to 54,390 decimal places.

Attachments:
POSTED BY: Marvin Ray Burns

Here is proof of the faster integral I'm using is indeed exactly equal to the MKB constant integral. In the following hypothesis, the MKB constant integral=LHS and the faster integral I'm using=RHS.

g(x)=x^(1/x), M1=hypothesis Which is the same as

enter image description here because Changing the upper limit to 2N + 1 increases MI by 2i/π.

by Ariel Gershon.

Iimofg->1

Cauchy's Integral Theorem

Lim surface h gamma r=0

Lim surface h beta r=0

limit to 2n-1

limit to 2n-

Plugging in equations [5] and [6] into equation [2] gives us:

leftright

Now take the limit as N→∞ and apply equations [3] and [4] : QED He went on to note that

enter image description here

POSTED BY: Marvin Ray Burns

I found the 64,000 digit computation was accurate only to 54,390 decimal places; see attached 54390 confirmed MKB digits.nb.

The new recommended setting for MaxRecursion (M.R.), as hypothesized, is found in the following table. It starts out at digits around 2^(M.R.+1).

       digits    M.R.   
      1309  default
      2410      10
      4453      11    
      8182      12
      19734     13
      31286     14
      54390     15
Attachments:
POSTED BY: Marvin Ray Burns

Today I followed a lots of links about your work on internet. And this is the first time I post in Mathematica community! Since I very interested in your efforts, I wish to become a successful man like you in mathematics so that my name remains eternal ... My dear friend Marvin Ray Burns. Your sincerely, Fereydoon Shekofte

@Fereydoon Shekofte: All it takes to leave a legacy is to keep planting seeds! A million baby steps >a mile.

POSTED BY: Marvin Ray Burns

I found out how to verify my MKB constant calculations beyond any shadow of a doubt. Use one iteration of partial integration, because for g(x)=x^(1/x),

enter image description here.

The following computation will show that the calculation was right by leaving a small error.

g[x_] = x^(1/x); t = (Timing[
    test = -(I NIntegrate[(g[(1 + t I)]) ( Exp[-Pi t]), {t, 0, 
           Infinity}, WorkingPrecision -> 2410, 
          Method -> "Trapezoidal", MaxRecursion -> 10] + I/Pi)])[[
  1]]; Print["Timing for calculation=", t]; t = (Timing[
    test2 = (1/Pi  NIntegrate[
         g'[1 + I t] Exp[-Pi t], {t, 0, Infinity}, 
         WorkingPrecision -> 2410, Method -> "Trapezoidal", 
         MaxRecursion -> 10] - 2 I/Pi)])[[
  1]]; Print["Timing for verification=", t]; err = 
 test - test2; Print["Error=", N[err, 20]]
(*Timing for calculation=48.0927

Timing for verification=69.4713

Error=-1.*10^-2410-1.03*10^-2408 I*)

The following will show that the calculation was wrong by leaving a large error.

g[x_] = x^(1/x); t = (Timing[
    test = -(I NIntegrate[(g[(1 + t I)]) ( Exp[-Pi t]), {t, 0, 
           Infinity}, WorkingPrecision -> 2410, 
          Method -> "Trapezoidal", MaxRecursion -> 9] + I/Pi)])[[
  1]]; Print["Timing for calculation=", t]; t = (Timing[
    test2 = (1/Pi  NIntegrate[
         g'[1 + I t] Exp[-Pi t], {t, 0, Infinity}, 
         WorkingPrecision -> 2410, Method -> "Trapezoidal", 
         MaxRecursion -> 9] - 2 I/Pi)])[[
  1]]; Print["Timing for verification=", t]; err = 
 test - test2; Print["Error=", N[err, 20]]

(* Timing for calculation=14.375
Timing for verification=18.7344
Error=-1.21910183828457949*10^-1311-1.6392815749781077289*10^-1309 I*)

The following proves that MaxRecursion -> 12 is good for calculating and verifying at least 8192 digits.

Compute 8192 with MaxRecursion -> 12

g[x_] = x^(1/x); t = (Timing[
    test = -(I NIntegrate[(g[(1 + t I)]) ( Exp[-Pi t]), {t, 0, 
           Infinity}, WorkingPrecision -> 8192, 
          Method -> "Trapezoidal", MaxRecursion -> 12] + I/Pi)])[[
  1]]; Print["Timing for calculation=", t]
   (*Timing for calculation=1111.69*)

Verify 8192 with MaxRecursion -> 12

g[x_] = x^(1/x); t = (Timing[
    test2 = (1/Pi NIntegrate[g'[1 + I t] Exp[-Pi t], {t, 0, Infinity},
          WorkingPrecision -> 8192, Method -> "Trapezoidal", 
         MaxRecursion -> 12] - 2 I/Pi)])[[
  1]]; Print["Timing for verification=", t]; err = 
 test - test2; Print["Error=", N[err, 20]]
(*Timing for verification=1419.66

Error=0.*10^-8193+0.*10^-8193 I*)

As time allows, I will post what all this parity-check has to say to confirm or unconfirm my latest table of recommended MaxRecursions (M.R.).

       digits    M.R.   
      1309  default
      2410      10
      4453      11    
      8182      12
      19734     13
      31286     14
      54390     15
      65942     16
      77494     17
      89046     18

We see that 4453 11

is confirmed, although the real part converges to a slightly higher magnitude:

g[x_] = x^(1/x); t = (Timing[
    test = -(I NIntegrate[(g[(1 + t I)]) (Exp[-Pi t]), {t, 0, 
           Infinity}, WorkingPrecision -> 5000, 
          Method -> "Trapezoidal", MaxRecursion -> 11] + 
        I/Pi)])[[1]]; Print["Timing for calculation=", t]; t = \
(Timing[test2 = (1/Pi NIntegrate[
         g'[1 + I t] Exp[-Pi t], {t, 0, Infinity}, 
         WorkingPrecision -> 5000, Method -> "Trapezoidal", 
         MaxRecursion -> 11] - 
       2 I/Pi)])[[1]]; Print["Timing for verification=", t]; err = 
 test - test2; Print["Error=", N[err, 20]]



Timing for calculation=230.391



Timing for verification=299.469

Error=2.8146045128793867*10^-4456+1.6474663184374133246*10^-4453 I

As for MaxRecursion -> 12 where the R.M. table shows up to 8182 digits, r.e.

      8182      12.

Actual inspection from this method shows it is possible to get all the way up to 8278 accurate digits of the real part and 8275 of the imaginary. That is the same difference that exists from it and 35,000 digits computed by a totally different method.

So

      8182      12.

should say

      8275      12.

Here is the work for the verification:

g[x_] = x^(1/x); t = (Timing[
    test = -(I NIntegrate[(g[(1 + t I)]) (Exp[-Pi t]), {t, 0, 
           Infinity}, WorkingPrecision -> 10000, 
          Method -> "Trapezoidal", MaxRecursion -> 12] + 
        I/Pi)])[[1]]; Print["Timing for calculation=", t]; t = \
(Timing[test2 = (1/Pi NIntegrate[
         g'[1 + I t] Exp[-Pi t], {t, 0, Infinity}, 
         WorkingPrecision -> 10000, Method -> "Trapezoidal", 
         MaxRecursion -> 12] - 
       2 I/Pi)])[[1]]; Print["Timing for verification=", t]; err = 
 test - test2; Print["Error=", N[err, 20]]



Timing for calculation=1764.03



Timing for verification=2247.2

Error=-7.2028204961753149*10^-8278-8.0907462882284574618*10^-8275 I

As for MaxRecursion -> 13 where the R.M. table shows up to 8182 digits, r.e.

      19734      12.

Actual inspection from this method shows it is possible to get all the way up to 15444 accurate digits of the real part and 15442 of the imaginary. That is the same difference that exists from it and 35,000 digits computed by a totally different method.

So

      19734      13

should say

      15442      13.

Here is the work for the verification:

g[x_] = x^(1/x); t = (Timing[
    test = -(I NIntegrate[(g[(1 + t I)]) (Exp[-Pi t]), {t, 0, 
           Infinity}, WorkingPrecision -> 20000, 
          Method -> "Trapezoidal", MaxRecursion -> 13] + 
        I/Pi)])[[1]]; Print["Timing for calculation=", t]; t = \
(Timing[test2 = (1/Pi NIntegrate[
         g'[1 + I t] Exp[-Pi t], {t, 0, Infinity}, 
         WorkingPrecision -> 20000, Method -> "Trapezoidal", 
         MaxRecursion -> 13] - 
       2 I/Pi)])[[1]]; Print["Timing for verification=", t]; err = 
 test - test2; Print["Error=", N[err, 20]]



Timing for calculation=11440.4



Timing for verification=14435.1

Error=1.269166151550935283*10^-15444-1.34038091454473637998*10^-15442 I

Through actual inspection the next row is

           28932   14.

More to come. But so far through actual inspection, we have the following.

        digits    M.R.   
       1309  default
       2410      10
       4453      11   
       8275      12
       15442     13
       28932     14

So far, the table gives a clear-cut pattern:

            digits     M.R.
1309*1.84 ~=2410         10 
2410*1.85~=4453          11
4453*1.86~=8275          12
8275*1.87~=15442         13
15442*1.875~= 28932      14

Following the growth with an eye on our experience were we proved the next row is

               54286          15

we get

            digits         M.R.

 28932*1.88~=54286          15
54286*1.89~=102600          16
POSTED BY: Marvin Ray Burns

March 30, 2021

I finally computed 40,000 digits of the MKB constant!!!!!

(March 30, 2021, approximately 8:00 am) The new 40,000 digit record took 362945 seconds, while the 35,000 digits old record took 727,844 seconds. That's more 2.29 times as fast: (40000/362945)/(35000/727844.) = 2.291867126660277. See attached first 40 K MKB.nb and 35KMKB (1).nb

Here is the short, very fast code.

g[x_] = x^(1/x); t = (Timing[
    test = -(I NIntegrate[(g[(1 + t I)])/(Exp[Pi t]), {t, 0, 
           Infinity}, WorkingPrecision -> 40000, 
          Method -> "Trapezoidal", MaxRecursion -> 18] + I/Pi)])[[1]];
t

The recommended setting for MaxRecursion (M.R.) is found in the following table.

digits     M.R.
2048      10
3000      11
4096      12

10000     13
40000     18

40000/2048+9 Here are the new speed records

digits       seconds
2000        23
3000        96
4000       165
5000        442
6000        623
10000      3250
40000      362945=101 hours

Documentation is available from the Wolfram Cloud here. (40,000 digits are saved at the bottom by the name of "test.") Here is a redo of the 10K run, where "test" is 40,000 digits of which 35,000 have been computed by very different methods.

 g[x_] =  x^(1/x); t = (Timing[ t10k = -(I NIntegrate[(g[(1 + t I)])/(Exp[Pi t]), {t, 0,  Infinity}, WorkingPrecision -> 10000,  Method -> "Trapezoidal", MaxRecursion -> 13] + I/Pi)])[[1]];t


 (*3250.55*)

 N[test - t10k, 10000]

  (* 0.*10^-10001 + 0.*10^-10001 I*)

"Thu 1 Apr 2021 11:42:14" I computed a much faster 40,000 digits of the MKB constant.

g[x_] = x^(1/x); t = (Timing[
test3 = -(I NIntegrate[(g[(1 + t I)])/(Exp[Pi t]), {t, 0, 
Infinity}, WorkingPrecision -> 40000, 
Method -> "Trapezoidal", MaxRecursion -> 15] + I/Pi)])[[1]];

175,551seconds That's more 473% as fast as the old 35,000 digit record!!!: (40000/175551)/(35000/727844.)=4.738347911921403

Here are the new speed records

digits       seconds
2000        23
3000        96
4000       165
5000        442
6000        623
10000      3250
40000      175551=49  hours
POSTED BY: Marvin Ray Burns

I made a quicker program for calculating the digits of the MKB constant in V12.1.0 enter image description here

Module[{$MaxExtraPrecision = 200, sinplus1, cosplus1, middle, end, a, 
  b, c, d, g, h}, prec = 5000; f[x_] = x^(1/x);
  Print[DateString[]];
  Print[T0 = SessionTime[]];

   d = Ceiling[0.264086 + 0.00143657 prec];
  h[n_] := 
    Sum[StirlingS1[n, k]*
        Sum[(-j)^(k - j)*Binomial[k, j], {j, 0, k}], {k, 1, n}];
  h[0] = 1;
  g = 2 I/Pi - Sum[-I^(n + 1) h[n]/Pi^(n + 1), {n, 1, d}];
  sinplus1 := Module[{},
     NIntegrate[
       Simplify[Sin[Pi*x]*D[f[x], {x, d + 1}]], {x, 1, Infinity}, 
       WorkingPrecision -> prec*(105/100), 
       PrecisionGoal -> prec*(105/100)]];
  cosplus1 := Module[{},
     NIntegrate[
       Simplify[Cos[Pi*x]*D[f[x], {x, d + 1}]], {x, 1, Infinity}, 
       WorkingPrecision -> prec*(105/100), 
       PrecisionGoal -> prec*(105/100)]];
  middle := Module[{}, Print[SessionTime[] - T0, " seconds"]];
  end := Module[{}, Print[SessionTime[] - T0, " seconds"];
      Print[N[Sqrt[a^2 - b^2], prec]]; Print[DateString[]]];
  If[Mod[d, 4] == 0, 
    Print[N[a = -Re[g] - (1/Pi)^(d + 1)*sinplus1, prec]];
    middle;
    Print[N[b = -I (Im[g] - (1/Pi)^(d + 1)*cosplus1), prec]];
    end];
  If[Mod[d, 4] == 1, 
    Print[N[a = -Re[g] - (1/Pi)^(d + 1)*cosplus1, prec]];
    middle;
    Print[N[b = -I (Im[g] + (1/Pi)^(d + 1)*sinplus1), prec]]; end];
  If[Mod[d, 4] == 2, 
    Print[N[a = -Re[g] + (1/Pi)^(d + 1)*sinplus1, prec]];
    middle;
    Print[N[b = -I (Im[g] + (1/Pi)^(d + 1)*cosplus1), prec]];
    end];
  If[Mod[d, 4] == 3, 
    Print[N[a = -Re[g] + (1/Pi)^(d + 1)*cosplus1, prec]];
    middle;
    Print[N[b = -I (Im[g] - (1/Pi)^(d + 1)*sinplus1), prec]];
    end];]

Whether it will allow me to calculate more digits is a question that will be answered in a week or two.

Here is a comparison of timings on similar computers.

 digits    seconds

                                              (Impoved code)
             V10.3       v11.3   V12.0         V12.1 
 2000       256            67      67           58
 3000       794           217     211          186
 4000       1633          514     492          447
 5000       2858          1005    925          854
 10000      17678         8327    7748        7470
 20000      121431       71000   66177
 30000      411848      ?        229560

Seethe following cloud notebook for the results from my improved code. https://www.wolframcloud.com/obj/bmmmburns/Published/2nd%2040k%20mkb%20prep.nb

POSTED BY: Marvin Ray Burns

Here is a comparison between some of the last few versions of Mathematica computing the MKB constant on similar computers.

digits    seconds
            V10.3       v11.3   V12.0
2000       256            67      67
3000       794           217     211
4000       1633          514     492
5000       2858          1005    925
10000      17678         8327    7748
20000      121431       71000   66177
30000      411848      ?        229560

For documentation of the 229560 seconds 30000 digit computation see "mkb 30k v12p0 2020.nb."

For documentation of the 411848 seconds 30000 digit computation see "MKB30K2 (1).nb."

POSTED BY: Marvin Ray Burns

Shutterstock has found the MKB constant, I(2N), at least 2 times! enter image description here enter image description here

enter image description here

POSTED BY: Marvin Ray Burns

June 5, 2018

Mathematica got hung up on the 40k run again! this time it complained about the dynamics stopping working and wouldn't quit complaining. I think it needs a smarter program! Anyone else want to try to beat this world record??

POSTED BY: Marvin Ray Burns

My computer is getting so sluggish that it has become nearly impossible to get snippets of RAM use! I was able to determine that it is, however, still working on the 40,000 digits. I'll let it do its job!

POSTED BY: Marvin Ray Burns

You might get tired of hearing this, but I made another improvement to my MKB computation formula and am trying to get 40,000 digits from it.

Code

 MaxMemoryUsed[(*Other program:For large calculations.Tested for \
 1000-35000 digits-- see post at \
 http://community.wolfram.com/groups/-/m/t/366628?p_p_auth=KA7y1gD4 \
 and search for "analog" to find pertinent replies.Designed to include \
 40000 digits.A157852 is saved as c,the real part as a and the \
 imaginary part as b.*)
  Block[{$MaxExtraPrecision = 200}, 
   prec = 40000(*Replace 40000 with number of desired digits.40000 \
 digits should take two weeks on a 3.5 GH Pentium processor.*);
   f[x_] = x^(1/x);
   ClearAll[a, b, h];
   Print[DateString[]];
   Print[T0 = SessionTime[]];
   If[prec > 35000, d = Ceiling[0.264086 + 0.0019 prec], 
    d = Ceiling[0.264086 + 0.00143657 prec]];
   h[n_] := 
    Sum[StirlingS1[n, k]*
      Sum[(-j)^(k - j)*Binomial[k, j], {j, 0, k}], {k, 1, n}];
   h[0] = 1;
   g = 2 I/Pi - Sum[-I^(n + 1) h[n]/Pi^(n + 1), {n, 1, d}];
   sinplus1 := 
    NIntegrate[
     Simplify[Sin[Pi*x]*Simplify[D[f[x], {x, d + 1}]]], {x, 1, 
      Infinity}, WorkingPrecision -> prec*(105/100), 
     PrecisionGoal -> prec*(105/100)];
   cosplus1 := 
    NIntegrate[
     Simplify[Cos[Pi*x]*Simplify[D[f[x], {x, d + 1}]]], {x, 1, 
      Infinity}, WorkingPrecision -> prec*(105/100), 
     PrecisionGoal -> prec*(105/100)];
   middle := Print[SessionTime[] - T0, " seconds"];
   end := Module[{}, Print[SessionTime[] - T0, " seconds"];
     Print[c = Abs[a + b]]; Print[DateString[]]];
   If[Mod[d, 4] == 0, 
    Print[N[a = -Re[g] - (1/Pi)^(d + 1)*sinplus1, prec]];
    middle;
    Print[N[b = -I (Im[g] - (1/Pi)^(d + 1)*cosplus1), prec]];
    end];
   If[Mod[d, 4] == 1, 
    Print[N[a = -Re[g] - (1/Pi)^(d + 1)*cosplus1, prec]];
    middle;
    Print[N[b = -I (Im[g] + (1/Pi)^(d + 1)*sinplus1), prec]]; end];
   If[Mod[d, 4] == 2, 
    Print[N[a = -Re[g] + (1/Pi)^(d + 1)*sinplus1, prec]];
    middle;
    Print[N[b = -I (Im[g] + (1/Pi)^(d + 1)*cosplus1), prec]];
    end];
   If[Mod[d, 4] == 3, 
    Print[N[a = -Re[g] + (1/Pi)^(d + 1)*cosplus1, prec]];
    middle;
    Print[N[b = -I (Im[g] - (1/Pi)^(d + 1)*sinplus1), prec]];
    end];] (*Marvin Ray Burns,Aug 06 2015*)]

Output so far:

Fri 18 May 2018 08:03:35

65.6633081

Here are the results from the task manager:

enter image description here

POSTED BY: Marvin Ray Burns

I got substantial improvement in calculating the digits of MKB by using V11.3 in May 2018, my new computer (processor Intel(R) Core(TM) i7-7700 CPU @ 3.60GHz, 3601 MHz, 4 Core(s), 8 Logical Processor(s) with 16 GB 2400 MH DDR4 RAM):

Digits  Seconds
2000    67.5503022
3000    217.096312
4000    514.48334
5000    1005.936397
10000   8327.18526
 20000 2*35630.379241 ~71000

They are found in the attached 2018 quad MKB.nb.

They are twice as fast,(or more) as my old records with the same program using Mathematica 10.2 in July 2015 on my old big computer (a six core Intel(R) Core(TM) i7-3930K CPU @ 3.20 GHz 3.20 GHz with 64 GB of 1066 MHz DDR3 RAM):

digits          seconds

2000    256.3853590 
3000    794.4361122
4000       1633.5822870
5000        2858.9390025
10000      17678.7446323 
20000      121431.1895170
40000       I got error msg
Attachments:
POSTED BY: Marvin Ray Burns
Reply to this discussion
Community posts can be styled and formatted using the Markdown syntax.
Reply Preview
Attachments
Remove
or Discard

Group Abstract Group Abstract