blob: 2ae184ea874b0dfa22b95e36ac76a1439669525b [file] [log] [blame]
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#define NCYCLES 4096
int sizes[NCYCLES] = {
11986,
277806,
2659,
46,
0,
775553,
1991,
21,
7638,
250197,
155828,
5777,
9,
315006,
900788,
0,
24893,
119996,
72299,
171266,
357,
560,
368,
22952,
54058,
12638,
39155,
2738,
217563,
26853,
47,
75,
1167,
16917,
1899,
2905,
9337,
62243,
14214,
270523,
4024,
21,
32,
14892,
625144,
13,
21700,
8804,
254147,
0,
6,
836004,
1718,
2289,
15554,
412857,
185097,
806709,
64,
18602,
17064,
1779,
78153,
170600,
199100,
546528,
0,
21,
20609,
16514,
548196,
311446,
53484,
0,
551,
22225,
24,
153989,
457309,
526833,
227979,
757167,
429560,
0,
835,
1702,
475275,
798416,
753,
0,
11126,
145779,
2006,
0,
8182,
0,
569432,
9671,
36,
5523,
407325,
0,
65,
9293,
0,
6793,
468701,
73,
0,
186236,
0,
328405,
125616,
508013,
380519,
599518,
83,
151973,
466906,
9029,
159725,
1316,
1,
911532,
1508,
19050,
972850,
126,
439377,
29,
37928,
149628,
54,
130248,
2,
143,
0,
716873,
3327,
5,
116131,
5124,
559621,
2886,
534,
186432,
441,
7348,
10331,
1,
260935,
7,
4370,
405415,
2,
84518,
1970,
1,
281910,
46,
274,
2273,
370565,
4190,
820641,
577970,
32809,
974893,
398067,
380698,
4,
25978,
153,
882668,
312365,
9523,
156421,
0,
268143,
6,
2,
42987,
212,
12303,
6723,
1179,
0,
120924,
3877,
330421,
310445,
39264,
8,
85380,
464716,
0,
33657,
6285,
0,
4491,
229,
50,
373197,
6029,
19,
86884,
243745,
335656,
90945,
38973,
572950,
164129,
0,
3,
17,
13579,
4448,
47,
3,
132966,
726249,
498503,
256,
0,
25841,
0,
7,
945380,
11872,
69,
3799,
77223,
1914,
73,
810968,
10223,
257918,
184252,
350,
8101,
725,
9,
2,
2089,
175,
247,
185964,
36517,
3723,
313465,
209,
1300,
128071,
7425,
2436,
62,
13753,
9514,
41,
409141,
46643,
20866,
15664,
388548,
84692,
9549,
610,
7213,
14,
14930,
244719,
4748,
41682,
401098,
102506,
176535,
0,
5133,
548,
5234,
56,
11101,
87638,
336579,
291705,
640250,
768165,
370,
2809,
3,
0,
445122,
47190,
24885,
143556,
84,
504726,
610020,
40355,
902230,
4360,
1747,
3496,
489501,
19,
801601,
62189,
48,
2645,
320601,
27304,
17740,
344,
10,
991,
925503,
0,
315,
251,
3611,
1756,
683,
165,
380132,
181101,
453041,
892056,
67191,
252592,
32407,
56242,
8,
297173,
542903,
830334,
585236,
422555,
44769,
0,
68,
4143,
38754,
73539,
44579,
94001,
428537,
38554,
106612,
0,
182987,
831731,
3605,
752851,
52,
72,
120872,
963754,
31,
764,
240592,
99101,
328538,
440325,
12211,
151282,
353436,
2991,
40710,
5212,
5106,
139122,
148915,
498505,
1366,
516,
29190,
17,
224208,
40,
89,
19190,
8,
25377,
10029,
720,
97963,
0,
614,
244567,
2113,
903675,
8388,
6,
390705,
325006,
284272,
108086,
17,
2628,
952530,
20474,
898276,
138661,
3883,
903,
569993,
376918,
5849,
103404,
794499,
35388,
5,
0,
961626,
27415,
1927,
92036,
46241,
35978,
7426,
399884,
29490,
252655,
675971,
3509,
54170,
170790,
831341,
134579,
0,
790422,
35,
930830,
97394,
20265,
670,
38497,
1759,
71209,
93,
736,
11,
886,
1961,
7,
210607,
62226,
186736,
1518,
5,
5,
13,
66989,
442321,
0,
607939,
11253,
210875,
495530,
2,
221136,
377663,
372,
200658,
18591,
129783,
803411,
867506,
757446,
48836,
34,
200,
114983,
7287,
22849,
226669,
13,
0,
20164,
7828,
39,
49448,
26740,
185566,
9927,
36192,
91068,
338368,
926,
27746,
534794,
936132,
2922,
5,
183162,
256846,
242551,
134318,
212959,
167162,
470,
477045,
532116,
483794,
733,
5335,
83074,
4686,
9567,
1,
195100,
40354,
87338,
369,
800,
0,
194504,
469051,
363532,
850574,
5085,
167027,
794511,
124320,
303231,
132195,
13225,
46333,
4313,
89,
799,
51482,
0,
26,
12659,
1045,
23621,
0,
74926,
490979,
6,
3188,
9448,
174730,
38982,
102317,
189621,
853,
29227,
43374,
423,
420951,
686,
128,
31291,
0,
402819,
663143,
55903,
142,
2,
331584,
197164,
7,
671983,
53,
5020,
9782,
123,
743407,
1276,
1115,
1169,
122752,
824690,
292030,
2094,
144626,
0,
297278,
440,
742,
95879,
17682,
10654,
31,
22183,
746,
0,
0,
11185,
28,
394987,
36,
474,
243749,
1431,
56702,
76,
15619,
33071,
12181,
158647,
261786,
1,
119783,
48816,
6278,
4121,
61122,
69,
48790,
345335,
275917,
964393,
424,
586433,
20519,
18156,
756400,
27736,
458706,
1,
3286,
929624,
1883,
2,
1086,
439501,
552,
157132,
5565,
105061,
8199,
23,
178797,
0,
130644,
1,
6952,
754,
500,
647683,
0,
959079,
622561,
1131,
559783,
6862,
175420,
408671,
463461,
55908,
606496,
169,
49060,
247,
953,
333030,
0,
23399,
29193,
9303,
15,
515402,
34961,
365856,
633043,
173,
556089,
1809,
12215,
14,
316,
20642,
9,
15,
190391,
951463,
25059,
13654,
385040,
4272,
929033,
208813,
35166,
42849,
662648,
254811,
4230,
812459,
681,
390168,
5381,
4662,
173257,
478863,
103,
89332,
0,
0,
589484,
19369,
94,
9,
639917,
1110,
393,
101040,
911,
152899,
0,
2,
0,
0,
335691,
43694,
62273,
200121,
2250,
621004,
149918,
41063,
218229,
0,
497924,
16832,
587071,
0,
0,
729918,
2,
808513,
9417,
718,
0,
2769,
28704,
1335,
734726,
219157,
786230,
981004,
350788,
884529,
0,
87872,
34647,
85469,
4524,
339838,
38228,
0,
4151,
1145,
0,
351,
167956,
810075,
689,
251212,
583068,
2929,
189456,
2089,
48749,
278952,
77134,
0,
0,
45595,
281829,
969602,
43999,
69824,
856982,
61732,
336,
25488,
213,
46683,
1909,
174097,
57930,
91466,
828418,
95740,
378828,
128065,
68068,
0,
13312,
26006,
6760,
51,
276081,
640068,
634985,
7131,
784882,
790126,
628585,
205824,
764965,
17793,
3159,
649924,
0,
37383,
9919,
353,
0,
149003,
620629,
95928,
2560,
504343,
1000,
32,
43836,
407031,
207,
800894,
3222,
51028,
7,
6,
22010,
0,
21174,
12893,
824932,
7305,
70,
624258,
372139,
21504,
387996,
418931,
914268,
576,
0,
0,
618224,
787516,
133014,
422,
383124,
656318,
4420,
6082,
244813,
38585,
3200,
1,
2,
11882,
113,
45581,
13121,
95475,
807219,
8195,
995116,
13,
2146,
369925,
60103,
25,
125165,
51300,
4894,
173261,
74186,
1044,
122992,
1243,
21703,
26294,
197,
333825,
426872,
719580,
3598,
106,
0,
9932,
61509,
146,
721428,
964781,
319850,
573802,
7458,
317889,
0,
133086,
87836,
60496,
304249,
1565,
27,
42,
899324,
189637,
8648,
104570,
901598,
447765,
24,
108,
120127,
828626,
8,
899514,
28,
13,
7576,
163390,
1625,
3023,
155175,
2,
391,
1,
493073,
398,
210771,
26266,
287999,
38255,
249666,
598202,
119601,
216933,
91205,
0,
7247,
77077,
565383,
29102,
253641,
48855,
19722,
463536,
40182,
65393,
829444,
598402,
1590,
798,
467,
834847,
3007,
13711,
0,
195,
101662,
255749,
129201,
11965,
1781,
13349,
3100,
718066,
99,
712450,
888215,
42503,
43171,
494946,
0,
2175,
12387,
25662,
78,
739030,
0,
19,
427526,
4275,
5583,
0,
2447,
132398,
26437,
3873,
440035,
21,
6,
35432,
41523,
7179,
712703,
428868,
2793,
6,
286277,
1882,
95116,
2959,
86,
115425,
81386,
59836,
37,
247598,
34732,
249,
500110,
5589,
40319,
575,
12145,
385829,
565600,
582150,
92,
223209,
0,
910,
1048,
47329,
90944,
235,
8739,
686685,
1753,
126,
434,
609477,
25021,
6610,
52675,
4,
717846,
150864,
418583,
17751,
513794,
181362,
329556,
10426,
717019,
457,
616,
388984,
17,
8338,
59531,
32,
99565,
376146,
134578,
966,
0,
0,
174,
2105,
555,
8990,
298,
169932,
247281,
240918,
298655,
158743,
15994,
95708,
51,
2985,
4294,
731934,
185640,
1483,
87,
742033,
9,
1345,
3680,
133530,
9355,
800111,
28508,
0,
369,
31681,
24,
8237,
313380,
4732,
275423,
951592,
0,
41381,
225515,
393004,
526,
187,
19515,
6006,
28923,
310151,
2390,
374,
0,
19142,
72,
114,
193305,
24035,
397067,
18,
14839,
3473,
164,
104622,
378958,
2218,
0,
89053,
105183,
312265,
82146,
147210,
3419,
5178,
34948,
46836,
41319,
842825,
595972,
0,
249625,
325,
608,
372328,
119634,
7504,
920214,
7302,
444532,
359213,
27265,
1755,
48,
126799,
651270,
818220,
799493,
724024,
64047,
73699,
206999,
209,
1581,
0,
42937,
301144,
73416,
0,
242058,
29660,
3,
34709,
162719,
2863,
3992,
5212,
151814,
3092,
198001,
44331,
36,
407,
364771,
1349,
502772,
214726,
607,
388583,
137660,
337124,
13279,
10549,
943075,
164068,
19157,
38443,
26351,
0,
67167,
735,
46486,
130305,
232330,
744,
882337,
2,
69275,
126354,
9370,
2845,
299,
38988,
37834,
0,
306433,
9139,
237132,
0,
500,
13462,
373684,
107453,
381924,
347915,
4329,
1668,
3960,
370661,
3614,
636048,
0,
487449,
64925,
333894,
11,
52192,
531200,
155554,
461,
1547,
994361,
11955,
321056,
37425,
14249,
69151,
621862,
174,
79607,
34,
77577,
13723,
267550,
13801,
698,
12,
171556,
57354,
676845,
0,
24965,
908955,
570483,
0,
296387,
983966,
85012,
130298,
151946,
384474,
731455,
150699,
772,
216131,
346,
130935,
3472,
18,
426045,
677262,
808,
17030,
5188,
0,
491153,
67299,
19,
60342,
69,
0,
76478,
95763,
0,
28778,
147869,
335927,
27846,
2163,
22750,
162,
23,
11391,
469099,
5852,
63,
0,
0,
22193,
165,
489007,
9249,
12477,
2841,
223532,
13877,
173,
3570,
45477,
233073,
23296,
64377,
4910,
8,
76246,
411147,
287411,
10450,
3667,
1,
500933,
31363,
257,
1705,
6036,
49934,
13738,
13485,
61608,
561978,
76493,
16377,
1817,
0,
235600,
0,
16347,
680478,
5115,
895607,
138270,
369912,
53110,
0,
647083,
85,
458681,
163227,
52767,
196,
267719,
14047,
147293,
814457,
174896,
0,
34138,
36,
21575,
3,
0,
0,
38391,
2597,
2,
1433,
3807,
36476,
287,
141530,
29389,
495655,
30014,
0,
550766,
11958,
348,
226760,
15,
251353,
675788,
518308,
215,
81987,
409862,
559596,
114283,
4925,
0,
17,
14221,
0,
162,
766370,
4898,
998,
493,
138418,
265159,
12152,
5229,
1204,
1814,
432530,
2889,
144,
1149,
35886,
636931,
6640,
1508,
414118,
858,
20039,
17398,
3,
5094,
6,
13996,
6754,
362,
451487,
11471,
7896,
330009,
244269,
99928,
0,
14311,
9949,
15251,
283923,
123754,
188360,
93902,
854384,
548001,
531788,
26298,
328479,
941,
246535,
106320,
28769,
440,
4,
61262,
55615,
170,
989327,
692534,
8063,
445842,
4434,
255349,
117781,
6,
9249,
136216,
38165,
307012,
12,
2341,
18062,
371882,
662154,
12623,
176847,
332220,
590935,
33682,
0,
121374,
67,
46841,
495890,
640,
19,
14737,
11032,
17,
5993,
302562,
827710,
165346,
49607,
87863,
308513,
735300,
1914,
2900,
207308,
9068,
83494,
179,
417,
41605,
74681,
652171,
4013,
29811,
13966,
8136,
78,
61182,
674187,
0,
331121,
0,
18559,
386,
77,
348439,
975358,
18,
33700,
47396,
204751,
2350,
26503,
0,
83653,
446,
10844,
485,
9241,
88347,
232419,
936900,
43250,
2,
26112,
811955,
20723,
102069,
42255,
8431,
119508,
4080,
13565,
12,
46110,
62096,
638777,
44025,
152985,
13362,
3,
12331,
193337,
56419,
14593,
3837,
282314,
403454,
48589,
135,
18350,
2160,
90,
918216,
7083,
105534,
742826,
399028,
1470,
23770,
480,
677884,
340472,
107406,
0,
5002,
445,
748948,
534012,
592464,
6539,
819632,
3138,
4,
39397,
229683,
12204,
2439,
65131,
817226,
22596,
0,
1046,
94638,
0,
95403,
1230,
790056,
19976,
43085,
14251,
139187,
20232,
693,
3058,
27654,
65690,
40948,
15001,
21089,
14425,
322459,
13571,
228154,
536814,
761221,
28030,
2322,
921,
1,
1137,
187815,
8,
34911,
4527,
15,
46,
78801,
0,
73605,
44,
28233,
1370,
73409,
198159,
66586,
3,
2576,
15,
35460,
263237,
44997,
2873,
240,
1781,
269,
46,
272778,
28404,
8232,
417073,
234591,
9,
720349,
1176,
16195,
0,
9705,
0,
14,
947048,
163,
76288,
1115,
267020,
3416,
414217,
441004,
95131,
765002,
6196,
9069,
27017,
137039,
65247,
266489,
484945,
187008,
45405,
5700,
9,
7751,
12,
294,
3093,
6350,
103303,
6045,
252345,
140207,
22390,
234867,
443326,
1,
0,
89972,
8637,
427150,
22146,
0,
310432,
390333,
10461,
1632,
31403,
908653,
0,
6543,
163479,
67608,
195543,
315889,
822964,
383536,
954954,
1619,
241,
96053,
104556,
767302,
2469,
12,
164330,
78,
141,
170519,
268214,
53338,
48342,
721,
58980,
4345,
1,
856265,
87289,
57219,
775679,
123992,
695804,
113025,
832,
117420,
16634,
352,
24729,
14973,
25622,
131290,
0,
22,
87740,
5917,
533,
2934,
34261,
9174,
0,
1656,
764587,
54652,
35597,
36389,
577889,
63957,
26808,
34556,
56,
15641,
137,
1,
3,
11724,
197397,
39027,
87902,
320,
791479,
7,
487864,
0,
433,
25733,
6956,
15407,
312557,
526302,
383019,
340215,
96,
276158,
6493,
135613,
2000,
1218,
930,
276808,
273249,
8896,
397,
735095,
20648,
2079,
5349,
205,
356313,
841954,
8255,
266874,
0,
965,
287993,
1549,
207833,
75,
178180,
39072,
0,
43254,
3847,
227,
2712,
161043,
463264,
74720,
795789,
12,
6812,
202804,
29379,
64241,
132121,
790622,
493588,
0,
48,
147352,
925197,
38149,
18380,
0,
270280,
633,
3373,
31294,
7830,
0,
0,
11371,
56143,
5393,
74724,
495109,
0,
18993,
21524,
0,
53889,
400509,
204563,
0,
11625,
9635,
0,
1678,
12096,
59,
817112,
10002,
128209,
11593,
17313,
15200,
106796,
261401,
707077,
0,
314030,
798591,
14175,
5668,
2766,
0,
566,
5543,
24112,
154482,
5642,
0,
38410,
3,
4,
700724,
25024,
5,
407,
564150,
672,
143,
2049,
574708,
65858,
213412,
3797,
511,
30907,
1212,
765,
2127,
481,
130048,
113816,
39861,
153169,
503378,
523944,
111,
55083,
698,
275,
3,
3195,
1657,
0,
317881,
6672,
543,
153011,
77240,
9338,
889850,
29518,
872485,
181927,
376086,
266,
409,
4,
14856,
31943,
2448,
8,
75,
383097,
294366,
0,
173084,
753160,
66457,
725783,
51,
127651,
1073,
12598,
140080,
0,
296375,
581720,
217346,
8272,
2051,
185390,
520645,
1260,
13873,
168040,
19690,
103347,
295011,
548404,
48,
4,
916417,
1948,
621365,
263245,
2792,
86803,
181193,
558081,
50907,
442770,
51448,
340276,
1346,
607,
459627,
0,
30,
73298,
15389,
12264,
2719,
2936,
143043,
209970,
0,
42,
6657,
317419,
0,
32622,
524000,
0,
310331,
303778,
268710,
9,
10410,
25343,
949506,
784353,
3861,
46823,
251292,
75008,
269798,
87731,
112813,
571679,
385,
3,
2811,
36025,
9243,
935128,
906,
10688,
25,
86757,
307,
55,
22,
2,
61,
620426,
484530,
633806,
0,
1342,
9293,
992181,
503,
195433,
46150,
893091,
3207,
2865,
72894,
830299,
355,
327479,
0,
35573,
3068,
15699,
31187,
55378,
416067,
91721,
159,
0,
255139,
2104,
19,
606757,
323,
902659,
365655,
400,
903,
408,
385,
21774,
701290,
234426,
17020,
950,
0,
0,
429,
1245,
405871,
1097,
280634,
74,
158233,
1583,
180333,
42114,
575973,
539327,
59252,
121928,
165,
148501,
55757,
7494,
127728,
7832,
68504,
619770,
70995,
312816,
7307,
38265,
46248,
363304,
269442,
77112,
448331,
910442,
474418,
152752,
752,
104912,
408492,
691709,
632381,
48519,
20524,
344294,
14670,
0,
21607,
81162,
181458,
0,
908322,
7261,
10888,
58054,
1788,
970933,
5925,
121553,
36152,
588267,
23615,
1850,
30728,
3599,
1319,
6027,
0,
32141,
984156,
436781,
15003,
621407,
9412,
562911,
189740,
377895,
656800,
197,
14413,
99382,
384,
11480,
0,
86118,
881961,
1905,
82061,
4140,
741153,
26,
687,
12251,
10945,
209267,
220602,
135881,
6,
237945,
158,
5,
76303,
81344,
986042,
956063,
30282,
186055,
357802,
12492,
577476,
838,
0,
11,
117602,
0,
187928,
96860,
4268,
3478,
818264,
1649,
17175,
272,
158951,
440987,
677594,
14935,
37953,
0,
198,
160404,
12,
287803,
2386,
10,
271663,
319152,
361322,
68370,
428,
182707,
387429,
1152,
360065,
25218,
2790,
42228,
13,
110942,
452491,
1,
665638,
2308,
1196,
87306,
66,
219,
0,
130736,
334,
605,
5979,
2681,
0,
123463,
11219,
283681,
19269,
553,
6217,
130965,
714409,
242,
674833,
237581,
133284,
683,
1758,
278193,
518726,
44,
420361,
325228,
14955,
10,
11994,
64157,
1937,
20214,
848,
27804,
151341,
79236,
316393,
158883,
1196,
334,
22797,
185955,
13857,
397357,
7948,
6038,
0,
2621,
16,
155267,
44809,
9171,
21328,
12212,
40200,
2600,
439,
804014,
10938,
96135,
43696,
158715,
4,
284558,
191,
270254,
7923,
880603,
21032,
107700,
172,
700823,
5613,
78816,
258290,
214398,
821856,
295325,
0,
1,
23559,
63895,
21249,
717490,
956952,
944819,
793,
356,
757716,
111773,
394826,
25665,
4358,
640216,
1152,
37175,
150192,
106071,
28992,
67,
1685,
134242,
2,
102045,
1457,
419589,
6789,
677,
94675,
11300,
2595,
8,
926535,
265194,
0,
886048,
246242,
1494,
191,
169985,
649765,
0,
201,
1069,
679163,
16627,
274639,
84438,
3,
1301,
247496,
5879,
710904,
403652,
958241,
361,
139732,
6042,
15985,
2378,
267031,
223767,
9656,
241717,
33863,
14314,
205697,
1274,
168000,
621777,
837913,
89654,
659829,
69,
503884,
432717,
70443,
110891,
19655,
132432,
620401,
428,
0,
425662,
0,
0,
0,
194489,
7601,
26870,
0,
63,
594,
12278,
582479,
213723,
424489,
96446,
990664,
46966,
44137,
829810,
104,
19707,
16,
0,
2499,
167075,
140972,
249283,
6620,
68368,
856414,
9255,
14315,
0,
11432,
24329,
216463,
299556,
818401,
246607,
697733,
229,
144,
389394,
664634,
0,
19393,
657903,
52912,
952177,
536931,
187271,
17687,
970155,
232571,
234016,
159980,
13510,
32952,
0,
0,
24132,
18806,
15624,
28364,
472126,
626978,
599,
112843,
502933,
915660,
63920,
0,
84,
10899,
904823,
126,
469132,
590052,
195831,
443113,
294149,
15944,
2271,
282974,
211,
0,
22934,
82283,
49973,
41707,
87530,
0,
910528,
0,
36029,
423337,
817512,
223671,
27800,
398847,
198528,
1,
560679,
518270,
23033,
501059,
0,
3909,
272062,
261581,
187,
52043,
334,
24354,
3947,
8549,
37863,
328851,
963771,
1,
3930,
82416,
6,
2943,
122101,
82577,
85,
89540,
5135,
109236,
18297,
1,
177371,
4541,
769577,
178,
417,
960566,
33803,
911651,
248160,
153725,
43981,
809174,
116,
486900,
4842,
148490,
131534,
4347,
239949,
984096,
749756,
429499,
2794,
78209,
18812,
21111,
490,
328042,
12,
132119,
505103,
353148,
0,
373656,
951244,
491,
355778,
30620,
317,
60175,
220,
214496,
41249,
5169,
78367,
506804,
0,
1368,
407,
295126,
1288,
86,
97614,
61640,
244723,
3,
0,
869827,
527246,
52,
107036,
240739,
780281,
113084,
62009,
740343,
483201,
8649,
16419,
1,
801574,
95524,
326126,
26912,
877040,
10262,
5895,
0,
132633,
59171,
306347,
702701,
196245,
12642,
32723,
24608,
30287,
45775,
18281,
7587,
144532,
5,
35,
99862,
215127,
170875,
61461,
77790,
5,
0,
129358,
0,
105084,
21399,
42233,
85397,
480654,
555988,
89575,
42346,
20004,
11102,
21321,
185,
379267,
849147,
121514,
3388,
33662,
12,
164898,
226,
274,
385003,
365052,
693376,
41245,
9010,
41594,
89835,
10490,
272,
128437,
0,
122648,
277,
116505,
38372,
4,
1376,
0,
46317,
139368,
36398,
193899,
30632,
26371,
7548,
367643,
954849,
25889,
36567,
176,
140631,
4690,
975031,
80965,
500471,
8442,
43,
27758,
301501,
3797,
80,
384440,
928477,
4960,
24566,
33245,
14638,
228354,
54347,
861285,
12841,
2,
157402,
646747,
53763,
1,
214732,
49471,
49757,
998,
201135,
566,
73512,
194240,
391773,
21510,
13,
829894,
783200,
565329,
2101,
12,
191043,
1621,
18443,
279,
294135,
526503,
729735,
4639,
444138,
5835,
12372,
46362,
1543,
870907,
83262,
0,
38331,
95,
1194,
909,
8053,
453066,
845561,
411,
3229,
1,
158,
1431,
835137,
21774,
7298,
148388,
224649,
379318,
520138,
39781,
172130,
362634,
487495,
51957,
158,
1770,
7,
18010,
1063,
171484,
19924,
279867,
469956,
189785,
0,
814,
60580,
944349,
18743,
553235,
0,
95475,
99,
0,
5,
42623,
178418,
398940,
5700,
69023,
5786,
0,
10531,
551,
86308,
63451,
32704,
176903,
0,
251689,
11589,
25711,
43437,
1431,
304,
52965,
34816,
268688,
47756,
825323,
122608,
81246,
69974,
360515,
99973,
143015,
5063,
4499,
34459,
171982,
677943,
489082,
257515,
3765,
5,
7416,
602206,
74122,
3,
686204,
5493,
28901,
11349,
549668,
257082,
82000,
17031,
1517,
7442,
937160,
722,
0,
72952,
377192,
438266,
555,
31436,
284,
56390,
0,
585856,
27635,
519344,
126131,
360273,
845073,
0,
191965,
55652,
23,
112773,
639025,
84749,
0,
330822,
7173,
126217,
871,
112112,
0,
664,
530474,
1,
379564,
172617,
647308,
0,
356,
17,
84345,
457,
0,
8,
6,
136602,
634424,
0,
177298,
100726,
91661,
383792,
1665,
43583,
15775,
4083,
4277,
345749,
969599,
65804,
19327,
0,
352514,
4225,
9,
103767,
0,
0,
148436,
850,
33,
2146,
20153,
50,
9063,
50329,
348379,
2569,
83697,
37073,
715486,
629,
4753,
442,
259203,
287223,
48625,
9,
70184,
45946,
144947,
0,
60285,
28640,
7626,
134159,
33,
12452,
150566,
348293,
124426,
353952,
11,
22,
776742,
29072,
132168,
254533,
319957,
1602,
1659,
209341,
32847,
92392,
753005,
1392,
10271,
28557,
6717,
941745,
0,
0,
0,
78645,
45320,
11193,
1448,
130626,
377907,
795535,
24285,
26094,
266691,
64449,
77400,
191410,
1,
1346,
25224,
489637,
47052,
248592,
76689,
0,
7722,
47285,
3152,
285577,
0,
149366,
264346,
1,
208602,
320459,
131771,
1421,
350,
723283,
714934,
0,
566439,
11656,
34189,
125484,
943273,
15,
7789,
0,
7427,
464278,
680924,
651102,
87794,
39640,
838644,
964500,
1,
1765,
272604,
10,
837347,
44845,
130,
163357,
4150,
403331,
839132,
44876,
272792,
592527,
57225,
128826,
2915,
2,
3570,
2410,
199,
171358,
5931,
53620,
55299,
1868,
24123,
165,
346513,
16527,
133,
517412,
195700,
730365,
896209,
152760,
24577,
65,
8218,
349642,
901345,
5127,
5102,
238318,
955,
631921,
12218,
55101,
930381,
219503,
469237,
132,
16701,
494,
199729,
0,
32139,
314,
172,
2947,
106997,
4871,
236,
6146,
1843,
128,
0,
254240,
2964,
14825,
60624,
2108,
286953,
654931,
0,
0,
396587,
19852,
70311,
363561,
282,
17966,
924254,
104173,
130816,
179096,
105466,
136,
618261,
358433,
25587,
49357,
102,
133746,
620776,
17084,
406881,
802675,
349,
69,
8761,
278482,
16336,
128,
160096,
25857,
280,
39639,
726299,
293905,
4621,
41,
649,
3655,
269286,
578026,
0,
11156,
1,
744858,
531,
48155,
28435,
7991,
447,
10201,
379341,
0,
5773,
0,
295,
228592,
331155,
104089,
628069,
29693,
22,
13,
0,
0,
554349,
6082,
238,
23,
151873,
805937,
0,
194076,
6450,
3,
128322,
69149,
95511,
86,
844368,
415964,
51985,
308686,
553403,
624943,
365800,
4,
120263,
91239,
195248,
58010,
19,
415112,
136806,
42,
571848,
55306,
29454,
3,
144926,
189,
0,
161943,
592155,
10930,
279297,
56932,
957430,
10244,
190296,
807209,
781,
1466,
235055,
33,
196,
58280,
436,
408649,
221,
711143,
10495,
2441,
275720,
2,
15391,
132107,
102610,
688549,
237142,
3041,
14,
308623,
0,
0,
287,
295147,
61443,
229,
207,
2051,
64,
13479,
55656,
570134,
50387,
225869,
20615,
258465,
64932,
112461,
164521,
907269,
758563,
22901,
0,
7944,
48,
154921,
2784,
548608,
0,
12524,
142556,
0,
13882,
507227,
316598,
987551,
0,
894687,
1964,
364,
10316,
440269,
9,
776723,
72288,
54604,
185101,
142,
362,
11679,
77,
79,
529321,
364,
42387,
0,
570879,
417503,
604871,
578806,
1102,
66584,
615440,
146744,
19441,
170478,
144069,
36170,
145376,
842283,
193612,
3,
359429,
368596,
0,
11064,
7726,
229410,
63569,
67402,
91,
203201,
213513,
0,
704479,
1325,
0,
385154,
13,
806763,
197132,
6183,
45760,
99377,
0,
972077,
4043,
195700,
34229,
0,
154027,
633,
6,
32142,
0,
29,
620842,
14099,
495465,
26937,
0,
0,
432,
227704,
0,
63,
0,
19,
863491,
20,
1,
160713,
24607,
85800,
3566,
37854,
81913,
121573,
816,
20,
133253,
692231,
4869,
255175,
15028,
9383,
542877,
4608,
369610,
243635,
385285,
391565,
286009,
0,
61685,
416318,
208,
67019,
788416,
88,
165056,
0,
439589,
160,
105528,
152,
160624,
865,
390229,
714086,
6007,
30229,
481306,
173266,
1135,
2266,
8,
59,
104722,
647885,
579471,
21309,
230834,
140278,
31858,
3288,
36011,
151387,
594217,
22439,
418638,
76859,
29363,
154809,
275533,
39,
472996,
22076,
7481,
155705,
10406,
214779,
223,
1312,
16391,
17203,
55605,
44579,
69332,
303,
19217,
26288,
126212,
316,
98,
114,
37382,
137591,
439749,
12972,
54,
154879,
0,
102680,
7639,
309119,
263550,
766,
1124,
56,
686608,
123767,
518054,
18,
672385,
3161,
53791,
26769,
451670,
61,
148245,
2713,
96725,
4794,
33247,
297946,
33380,
0,
20034,
5647,
17227,
76444,
0,
21011,
675,
13226,
1027,
990842,
124459,
34406,
53,
69540,
134,
0,
168521,
6,
4075,
1137,
63740,
220,
10434,
1171,
28950,
0,
79680,
993269,
355622,
15,
0,
1452,
21667,
22208,
494484,
33984,
691308,
10,
693686,
196,
9,
70676,
157660,
775,
165,
468432,
1083,
515154,
778344,
70241,
42,
40931,
277125,
43837,
301881,
1332,
56712,
9013,
1299,
7564,
31092,
1975,
113517,
833295,
245021,
36503,
23586,
149327,
89175,
10512,
484348,
187793,
954609,
53199,
792175,
126,
12369,
405,
0,
6614,
322857,
166,
571874,
60839,
180975,
146722,
411565,
1536,
1,
11,
116230,
60514,
9003,
2325,
43763,
63,
355553,
0,
389876,
14672,
11526,
160209,
65,
10283,
966,
10,
58333,
129920,
2850,
83346,
0,
14,
295819,
679550,
143928,
29489,
82324,
36558,
267118,
143313,
90107,
12789,
951,
0,
187619,
295317,
82,
41326,
309682,
907327,
809358,
324,
139157,
12,
78366,
671811,
354,
131,
70525,
35830,
281018,
91456,
92523,
54874,
48273,
2423,
0,
81,
361314,
374811,
394758,
15350,
795,
3,
16779,
796684,
477556,
73927,
26643,
119281,
62692,
17039,
454778,
952,
48973,
19529,
151,
239121,
93509,
254702,
1307,
10029,
7973,
546706,
806644,
680517,
223,
0,
2,
0,
402421,
619193,
15685,
2,
939715,
519198,
0,
444312,
23204,
35669,
32467,
0,
799725,
5883,
2217,
32292,
355557,
22179,
1066,
15704,
610,
37819,
403626,
83101,
10989,
311607,
43394,
72576,
335450,
85964,
73734,
105142,
38292,
0,
181516,
33959,
611797,
221838,
5931,
7666,
1044,
477173,
13591,
405,
521,
190653,
184191,
0,
215,
847195,
22782,
11912,
27345,
2572,
0,
566350,
7,
52302,
26641,
587826,
127,
2,
44449,
153198,
14,
926,
285,
0,
938196,
52255,
9153,
807,
12548,
358324,
18521,
104956,
42738,
116,
135772,
189554,
38,
54,
36,
89768,
17170,
75,
34502,
45489,
172796,
971810,
16153,
499280,
1,
879663,
53830,
186,
539,
242059,
268,
402,
2732,
68057,
18463,
198560,
10068,
591753,
6116,
699280,
1,
0,
114258,
277,
149,
283821,
352561,
88172,
684476,
3450,
87,
99936,
3155,
72983,
31619,
8832,
58666,
0,
59023,
306091,
352150,
255063,
992708,
23,
4896,
18165,
424401,
227613,
5175,
347,
139846,
11962,
714,
3501,
82367,
11110,
10,
12874,
0,
0,
222712,
169,
123281,
0,
268149,
101,
17446,
4262,
489,
0,
30,
0,
277235,
28,
71,
23,
61219,
953631,
477548,
662491,
273,
44787,
4130,
14483,
470571,
735977,
406648,
815898,
5985,
462696,
937510,
9,
0,
111727,
93,
331435,
336402,
78690,
49,
0,
87422,
1242,
0,
8783,
8540,
314,
33411,
805718,
247,
6870,
523743,
8323,
612593,
430,
354048,
264913,
83,
114063,
202825,
35202,
32823,
185554,
85760,
45159,
5971,
267733,
4545,
116,
6910,
24833,
218,
922362,
221735,
740,
7112,
31,
15739,
523589,
4,
95996,
936,
823951,
0,
88,
160,
375419,
663627,
3741,
22896,
114326,
415962,
880100,
6222,
18650,
35524,
195076,
506,
451640,
541336,
70903,
3946,
1,
61765,
1,
2696,
753129,
289,
225234,
378692,
1703,
6751,
1,
820,
7677,
589,
12412,
317,
69,
226031,
134523,
318253,
66677,
111025,
96,
0,
96,
523528,
1017,
0,
258740,
420947,
4600,
400684,
12174,
11770,
52,
5959,
82658,
531787,
202,
548430,
964,
1054,
34,
96897,
25445,
47609,
386052,
97004,
1935,
30074,
13458,
494105,
54,
65575,
594698,
2340,
20259,
84,
2774,
534,
972534,
115057,
0,
11379,
0,
271,
266305,
132595,
2,
773561,
52365,
3585,
351,
148206,
778964,
149379,
596,
284914,
2900,
35596,
1547,
212027,
8100,
12248,
3013,
1814,
183415,
273633,
15812,
0,
966680,
14830,
134309,
0,
416450,
206611,
816,
82258,
9873,
3155,
53485,
779805,
107690,
254475,
102504,
72495,
17301,
472130,
6895,
245420,
7299,
110508,
27776,
246134,
0,
330853,
0,
271767,
61886,
24123,
309681,
58325,
608865,
20666,
87349,
229228,
246,
457768,
5374,
69643,
148,
618375,
45236,
352565,
133904,
152,
10688,
18,
0,
276036,
493281,
11156,
12566,
5762,
113,
24179,
98,
327,
893,
209180,
140805,
0,
2341,
66309,
30305,
630559,
3682,
152767,
265822,
142868,
1535,
728603,
69081,
353151,
237995,
1075,
925071,
86,
6748,
0,
684186,
735,
13793,
4790,
73175,
69677,
367627,
238650,
303543,
1,
26059,
21392,
10,
288609,
0,
76345,
158496,
7000,
1865,
20385,
0,
54213,
9948,
102667,
6963,
71,
555744,
5626,
2512,
1124,
7171,
628,
29225,
321687,
61519,
4,
8352,
9156,
};
char *pointers[NCYCLES];
int main(void)
{
int r, i, j, sp, sq;
char *p, *q, *ep, *eq;
int ok;
int err = 0;
for (r = 0; r < 4; r++) {
for (i = 0; i < NCYCLES; i++) {
pointers[i] = p = malloc(sp = sizes[i]);
ep = p + sp;
ok = 1;
for (j = 0; j < i; j++) {
q = pointers[j];
sq = sizes[j];
eq = q + sq;
if ((p < q && ep > q) || (p >= q && p < eq)) {
ok = 0;
err = 1;
break;
}
}
printf("Allocated %6d bytes at %p, ok = %d\n", sp, p,
ok);
if (p)
memset(p, 0xee, sp); /* Poison this memory */
}
for (i = 0; i < NCYCLES; i++) {
free(pointers[i]);
printf("Freed %6d bytes at %p\n", sizes[i],
pointers[i]);
}
}
return err;
}