添加项目文件。

master
bestlqiang 8 months ago
parent f9b75716b3
commit 9168eb2f6a

@ -0,0 +1,28 @@

Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio 14
VisualStudioVersion = 14.0.25420.1
MinimumVisualStudioVersion = 10.0.40219.1
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "CcdDataImageProcessing", "CcdDataImageProcessing\CcdDataImageProcessing.vcxproj", "{FACDB1E7-DFA5-43A8-96CA-ACC06868E306}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|x64 = Debug|x64
Debug|x86 = Debug|x86
Release|x64 = Release|x64
Release|x86 = Release|x86
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{FACDB1E7-DFA5-43A8-96CA-ACC06868E306}.Debug|x64.ActiveCfg = Debug|x64
{FACDB1E7-DFA5-43A8-96CA-ACC06868E306}.Debug|x64.Build.0 = Debug|x64
{FACDB1E7-DFA5-43A8-96CA-ACC06868E306}.Debug|x86.ActiveCfg = Debug|Win32
{FACDB1E7-DFA5-43A8-96CA-ACC06868E306}.Debug|x86.Build.0 = Debug|Win32
{FACDB1E7-DFA5-43A8-96CA-ACC06868E306}.Release|x64.ActiveCfg = Release|x64
{FACDB1E7-DFA5-43A8-96CA-ACC06868E306}.Release|x64.Build.0 = Release|x64
{FACDB1E7-DFA5-43A8-96CA-ACC06868E306}.Release|x86.ActiveCfg = Release|Win32
{FACDB1E7-DFA5-43A8-96CA-ACC06868E306}.Release|x86.Build.0 = Release|Win32
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
EndGlobal

@ -0,0 +1,135 @@
9,10,11,12,8,9,8,10,11,15,9,12,12,10,11,12,12,13,10,14,14,10,12,13,11,11,12,11,13,6,13,13,13,13,10,11,18,13,8,13,12,11,11,11,12,8,13,13,12,12,10,10,12,14,11,12,12,13,13,11,14,12,14,7,16,12,8,17,16,13,11,11,11,10,13,15,10,13,9,14,11,9,15,16,9,12,16,12,14,10,14,11,10,10,14,13,14,12,14,16,10,7,17,11,14,10,16,12,13,8,11,8,14,12,9,8,14,9,12,12,11,7,11,12,11,9,7,11,13,9,10,8,11,7,10,
10,8,10,11,11,8,13,9,10,10,9,11,10,9,10,13,11,10,9,8,14,10,9,10,12,11,13,14,13,12,13,14,13,13,11,11,16,9,13,9,9,12,11,12,9,14,13,13,14,17,10,14,12,11,12,14,12,14,12,12,17,8,12,9,13,17,16,14,13,16,15,9,12,15,15,11,12,13,13,14,16,18,16,13,16,17,14,12,15,12,13,9,15,12,13,14,13,15,16,11,13,13,14,11,11,13,14,10,15,12,14,7,12,11,10,13,12,8,12,8,10,10,12,8,7,10,8,10,9,12,9,11,11,8,9,
10,9,11,12,7,7,8,10,9,7,7,11,8,16,9,9,11,13,13,14,13,8,11,11,14,14,11,14,13,12,13,13,13,15,13,11,8,12,13,13,11,14,13,14,11,11,15,16,9,12,16,9,14,8,11,11,15,10,17,10,12,13,14,16,13,15,18,11,15,12,8,13,16,10,13,17,15,14,15,15,11,16,14,13,15,10,12,11,12,15,10,14,12,12,15,13,12,11,12,10,12,11,20,10,10,11,11,14,12,13,11,11,14,12,10,9,10,10,13,11,12,9,6,10,8,8,9,10,8,9,10,8,8,9,10,
10,15,10,9,12,10,12,10,10,12,10,12,8,11,14,10,14,11,14,9,9,11,12,13,15,14,17,19,17,11,15,20,12,12,14,16,13,16,18,13,19,18,14,19,14,22,16,17,12,18,11,16,14,11,20,15,18,19,16,13,11,20,14,15,23,15,17,20,19,18,18,13,18,20,25,16,15,18,17,19,17,20,19,16,14,16,17,19,20,15,15,17,16,21,14,18,15,17,22,15,14,17,16,13,21,14,12,15,11,19,12,11,12,7,13,14,12,11,11,8,12,13,9,8,10,9,9,11,9,10,9,10,10,12,8,
11,10,14,11,11,9,10,11,9,13,5,7,11,11,13,12,10,16,13,16,13,16,13,16,16,17,14,15,15,13,14,14,15,16,13,18,15,19,14,20,16,16,14,14,16,18,17,15,21,17,20,18,19,17,14,14,15,17,14,20,18,19,20,14,19,21,17,14,20,20,23,13,16,18,15,24,17,20,15,12,18,18,15,16,19,19,22,17,18,15,15,21,14,20,18,19,15,16,19,17,17,17,18,19,16,16,16,19,14,15,16,13,12,10,8,15,9,10,9,11,10,9,11,7,14,12,11,9,10,11,12,10,11,9,7,
9,14,8,8,7,8,10,10,12,11,12,15,12,8,12,11,11,14,15,15,16,21,14,24,22,25,20,18,19,21,26,18,23,17,19,27,20,22,26,23,23,28,21,24,23,19,20,25,26,21,28,21,27,29,26,28,30,24,30,31,29,27,29,26,22,21,28,27,29,24,30,24,29,31,22,27,30,27,22,25,27,29,26,30,21,34,25,25,27,21,24,25,33,24,25,27,27,21,28,22,25,27,23,24,21,24,26,18,19,19,18,17,14,12,14,11,12,13,14,11,9,11,9,14,13,12,10,10,10,8,6,8,10,10,10,
11,6,9,8,12,9,12,13,11,10,12,9,9,16,14,8,15,14,19,15,17,16,22,22,16,18,26,24,26,23,25,22,28,18,27,25,26,25,23,24,27,23,25,22,27,28,31,22,24,27,29,21,30,26,21,25,30,25,23,25,31,30,31,26,28,29,33,30,24,21,28,22,22,26,29,31,26,33,25,31,24,29,26,29,25,26,24,27,28,23,27,25,25,26,29,35,29,23,32,27,28,31,20,26,24,23,23,20,20,26,23,21,17,15,12,13,15,11,10,10,12,11,7,9,9,8,11,15,10,10,9,8,12,11,7,
10,10,10,11,11,11,9,11,13,10,8,11,16,12,13,10,16,22,24,25,22,23,16,26,25,28,31,27,28,27,25,32,29,25,33,34,32,29,27,29,28,26,30,20,32,25,37,30,35,34,34,34,37,36,32,33,33,34,36,25,28,36,39,28,34,34,36,39,39,34,33,34,37,39,38,31,31,35,37,38,33,34,39,34,48,32,31,41,34,30,40,32,30,43,33,36,37,34,36,42,39,29,30,25,31,30,27,24,26,24,24,23,18,14,10,13,11,16,13,11,12,11,14,14,9,8,11,9,10,11,10,11,11,10,11,
9,13,9,9,13,10,10,8,10,9,13,14,10,12,12,14,19,28,23,31,25,24,28,32,26,29,32,26,37,32,36,31,33,39,38,36,34,47,45,40,31,38,39,40,41,43,46,35,41,38,38,40,44,46,43,39,33,42,35,45,44,50,47,38,40,42,45,42,52,47,37,41,51,47,46,44,47,39,44,37,33,40,37,48,40,45,40,42,40,40,44,45,41,43,47,38,38,43,44,51,42,45,51,39,37,42,38,30,23,30,28,30,22,12,16,14,13,9,15,10,15,7,11,9,9,10,11,11,10,8,10,11,7,10,9,
9,10,10,10,14,10,8,12,14,12,14,9,14,10,12,12,20,26,33,37,39,43,49,39,54,49,52,47,48,52,49,53,49,62,55,64,63,68,66,68,70,65,70,60,66,64,74,53,62,66,63,74,72,74,77,74,65,72,88,66,87,80,72,77,82,87,80,78,88,67,80,83,77,85,86,90,99,83,79,80,83,70,85,76,86,90,91,82,79,75,87,100,84,85,100,93,94,103,88,93,104,87,93,95,93,83,79,80,77,71,70,53,41,20,11,16,16,14,14,15,9,14,10,8,11,11,12,9,13,10,11,7,11,9,11,
10,10,12,10,8,8,10,9,6,8,11,11,14,11,16,15,38,84,78,93,96,104,106,102,122,124,120,135,133,127,117,132,123,130,158,141,155,158,138,147,146,150,143,164,176,155,153,152,150,157,162,158,158,160,162,168,154,164,168,173,171,193,167,154,163,165,166,172,186,173,157,171,157,180,185,170,174,180,167,182,165,157,205,182,189,173,196,184,183,186,183,212,195,199,191,207,185,188,167,194,196,214,208,218,184,171,176,175,165,155,131,127,99,38,18,14,13,15,8,10,12,11,11,10,13,7,10,9,8,12,8,9,14,12,8,
14,11,11,9,12,12,13,11,11,10,14,13,14,16,19,67,268,437,481,512,587,561,566,639,628,659,600,590,636,653,664,640,728,731,779,778,758,762,725,780,817,807,722,751,746,807,823,792,830,720,743,793,774,809,870,876,978,992,1040,1034,1037,940,882,998,1060,968,981,1069,963,954,996,1008,1015,919,979,1126,1082,1049,1098,1127,992,1017,1113,1127,1189,1193,1135,1066,1024,1051,1144,1138,1114,1222,1211,1206,1154,1152,1200,1218,1138,1215,1287,1332,1251,1252,1332,1218,1257,1172,1084,967,917,305,43,24,21,17,16,15,13,11,13,14,9,10,11,12,11,12,12,11,8,11,14,
12,13,12,10,12,12,13,12,14,15,15,10,18,20,34,175,1038,2004,2124,2202,2296,2312,2370,2428,2309,2431,2402,2349,2422,2408,2442,2491,2646,2557,2589,2651,2610,2566,2636,2649,2650,2702,2730,2620,2815,2640,2675,2645,2642,2529,2678,2756,2771,2652,2726,2726,2844,2837,2831,2928,2882,2734,2656,2767,2971,2834,2831,2956,2808,2848,2867,2900,2888,2685,2901,2983,2911,2964,2944,2904,2772,2845,2900,3000,2963,3041,2934,2879,2879,2800,2944,3007,2931,2968,2999,2983,2972,2864,3086,3027,3015,3011,3036,3065,2803,2705,2943,2801,2777,2718,2687,2474,2332,662,74,28,20,19,14,15,12,12,11,10,10,12,11,10,10,9,11,13,9,9,9,
9,10,10,15,13,7,10,12,12,17,17,20,20,22,31,227,1210,2350,2378,2525,2558,2510,2376,2548,2489,2573,2619,2706,2670,2676,2625,2657,2884,2770,2722,2776,2808,2746,2848,2853,2737,2746,2883,2886,2943,2769,2744,2856,2824,2900,2861,2955,2896,2799,2841,2884,2874,2799,2840,2884,2858,2817,2812,2835,2861,2811,2919,2856,2863,2874,2804,2822,2835,2859,2981,2941,2921,2781,2857,2788,2895,2829,2956,2930,2820,2833,2794,2943,2928,2884,3056,2971,2919,2888,2814,2993,2867,2860,3015,2865,2824,2817,2836,2831,2797,2602,2884,2719,2662,2618,2623,2443,2342,727,92,29,24,19,15,22,13,14,11,15,12,10,9,8,10,9,10,10,10,10,10,
10,13,8,10,12,15,11,13,17,17,17,19,19,28,44,210,1232,2390,2402,2576,2658,2707,2603,2845,2677,2721,2778,2812,2896,2799,2815,2738,2998,2886,2885,2963,3058,2947,2872,2897,2939,2948,2977,2982,3093,2978,2939,2937,2974,2942,2931,3031,3067,2961,2908,2936,2914,2951,2915,3085,3081,2918,2948,2968,3011,3004,2997,3092,2972,2970,2875,2949,2911,2905,3010,3082,3049,3040,3012,2961,2888,2907,2884,3047,2996,2953,3015,2975,3057,2977,3045,3101,3047,3071,3070,3137,3006,2970,3102,3002,2921,3032,2992,3012,2947,2743,3051,2822,2831,2781,2772,2509,2375,757,90,23,25,19,16,15,12,14,10,12,10,6,9,10,10,12,12,13,7,8,7,
8,13,10,8,13,13,12,11,12,14,18,24,17,27,33,235,1233,2538,2505,2563,2686,2728,2577,2823,2678,2723,2753,2833,2817,2851,2945,2850,2942,2899,2894,2962,2941,2973,2934,2862,2857,2979,2938,2977,3003,2986,2918,2835,2892,2919,2963,2967,2968,2814,2908,2854,2922,2932,2851,2998,2932,2923,2924,2932,2835,2890,2944,3019,3006,2898,2880,2945,2929,2940,2932,3093,3029,2911,2959,2918,2906,2951,2921,3001,3042,2964,2981,2961,3001,2941,3054,3067,3021,3015,2951,3069,3046,2818,3024,2945,3045,2975,2984,2976,2794,2729,2901,2871,2722,2755,2695,2503,2327,732,89,22,25,17,18,17,12,13,8,12,12,12,10,9,8,9,11,10,10,9,11,
8,9,10,8,16,16,10,13,13,18,14,19,19,29,42,217,1307,2495,2527,2578,2749,2743,2671,2829,2726,2777,2733,2846,2826,2771,2862,2799,2928,2957,2855,2991,2919,2971,2956,2864,2865,2907,2958,2930,3062,2875,2994,3086,2941,2945,3042,2986,2922,2914,2943,2937,2893,3063,3130,3050,3026,3026,3022,2994,3007,2946,3029,2986,3019,2978,2933,2917,2973,2920,2998,3087,3083,2921,2933,2991,2998,2966,2902,3071,3028,2931,2973,2858,3015,2927,2940,3002,3124,3014,2992,3123,2974,2767,3036,2989,2998,2895,2931,2932,2834,2724,3032,2881,2764,2657,2729,2539,2324,762,90,21,31,15,15,18,13,12,9,9,9,11,12,10,11,10,9,8,11,12,9,
10,11,14,12,9,12,11,12,15,17,13,21,22,27,43,229,1283,2488,2449,2576,2691,2687,2633,2756,2594,2733,2769,2795,2801,2850,2852,2761,2938,2921,2843,3053,2929,3001,2866,2878,2920,2927,2940,3055,3023,2948,2907,2966,2938,2870,2985,3049,2953,2885,2915,2898,2908,2912,2964,2999,2903,2936,2907,2942,2887,2845,2961,2918,2957,2842,2888,2920,2844,2906,2957,2850,2888,2948,2886,2824,2892,2864,2863,2884,3004,2964,2940,3000,2918,2880,3052,3150,2977,2981,2896,3081,3030,2843,3076,3001,2972,2924,3005,2959,2898,2832,3016,2864,2867,2827,2758,2572,2374,780,80,25,19,27,16,17,15,14,14,12,9,9,12,12,11,11,11,14,10,9,11,
9,9,13,12,10,11,10,13,13,16,19,19,23,29,47,208,1223,2522,2527,2753,2677,2758,2653,2807,2750,2781,2734,2879,2904,2885,2865,2755,2926,2921,2945,2970,2914,2942,2905,2869,2803,2949,2968,2886,3034,2905,2946,2874,2890,2924,2937,2956,3060,2829,2833,2866,2896,2807,2927,2925,2850,2417,2772,2835,2800,2823,2829,2942,2853,2912,2766,2884,2835,2810,2852,3010,2967,2890,2893,2873,2791,2787,2930,2980,2947,2938,2964,2944,2884,2882,3010,3131,3093,2995,2984,3016,2913,2855,2926,2974,2964,2965,3009,2929,2791,2676,3011,2828,2680,2708,2765,2521,2365,751,79,35,23,21,23,19,8,14,13,10,11,13,12,10,11,9,10,10,10,12,9,
12,11,12,12,10,11,9,12,10,15,15,20,23,34,41,171,1169,2420,2458,2589,2642,2653,2608,2844,2582,2579,2725,2680,2771,2806,2762,2671,2847,2859,2777,2933,2791,2818,2810,2794,2687,2861,2829,2815,2796,2762,2791,2762,2862,2717,2702,2760,2835,2803,2864,2765,2878,2825,2834,2899,2769,2906,2791,2832,2884,2797,2790,2767,2935,2847,2718,2845,2843,2799,2879,2960,2976,2934,2854,2912,2871,2788,2867,2927,2952,2905,2899,2855,2821,2780,2953,2987,2957,2987,2800,2974,2962,2817,2874,2933,2840,2855,2792,2845,2752,2721,2895,2772,2648,2628,2679,2522,2288,752,102,23,25,15,22,17,15,12,16,11,11,12,10,11,10,11,9,12,9,10,9,
9,8,11,14,13,12,14,15,15,14,14,15,23,26,43,184,1061,2451,2436,2548,2548,2685,2576,2671,2610,2597,2604,2611,2737,2748,2650,2565,2854,2813,2768,2817,2758,2689,2754,2639,2603,2824,2764,2832,2761,2779,2766,2797,2785,2723,2784,2802,2860,2807,2773,2815,2825,2779,2725,2757,2761,2810,2790,2683,2697,2798,2725,2837,2785,2768,2770,2718,2696,2782,2753,2769,2830,2759,2786,2743,2734,2634,2748,2846,2799,2675,2773,2757,2773,2715,2838,2835,2844,2740,2669,2791,2733,2700,2825,2805,2716,2703,2772,2843,2751,2578,2869,2669,2647,2568,2596,2433,2371,833,101,32,30,24,23,22,20,14,9,10,13,11,10,15,11,13,8,11,7,11,9,
11,8,12,10,10,12,11,11,18,16,16,24,19,24,40,194,1106,2414,2374,2578,2643,2728,2672,2750,2687,2739,2683,2686,2846,2793,2716,2716,2889,2875,2770,2922,2873,2864,2857,2707,2802,2876,2819,2848,2820,2795,2772,2808,2858,2695,2724,2869,2831,2787,2690,2728,2753,2779,2721,2769,2841,2737,2676,2773,2789,2721,2724,2820,2814,2694,2729,2692,2701,2682,2729,2832,2837,2732,2721,2692,2677,2658,2667,2753,2736,2658,2675,2738,2752,2721,2818,2872,2878,2771,2779,2848,2887,2713,2782,2811,2780,2731,2713,2875,2768,2652,2822,2728,2738,2592,2645,2501,2378,939,98,29,18,25,20,19,17,13,10,13,13,9,11,12,12,7,10,13,8,8,8,
12,12,10,11,14,11,9,11,16,19,20,25,16,34,24,207,1151,2527,2495,2662,2597,2739,2684,2820,2625,2742,2628,2673,2716,2697,2655,2660,2810,2768,2756,2789,2744,2766,2755,2618,2651,2669,2653,2581,2046,2771,2699,2632,2789,2743,2564,2766,2767,2786,2726,2610,2719,2672,2637,2752,2773,2600,2602,2564,2713,2652,2573,2785,2722,2594,2727,2585,2708,2684,2723,2753,2712,2603,2698,2713,2660,2676,2654,2746,2775,2805,2769,2791,2757,2608,2831,2842,2879,2798,2762,2877,2905,2725,2790,2848,2840,2761,2770,2901,2651,2665,2875,2819,2794,2642,2647,2464,2494,985,114,26,24,22,21,23,17,14,15,8,8,12,11,14,13,10,11,10,12,10,7,
14,10,9,12,10,11,14,12,13,14,17,15,19,26,34,197,1165,2478,2506,2668,2630,2684,2678,2768,2607,2600,2707,2720,2739,2676,2749,2605,2704,2786,2699,2726,2687,2728,2732,2681,2753,2646,2639,2728,2785,2750,2692,2680,2643,2748,2715,2717,2771,2739,2686,2693,2645,2764,2749,2690,2758,2654,2642,2652,2736,2694,2761,2745,2767,2758,2694,2664,2721,2715,2674,2775,2807,2716,2638,2601,2749,2723,2773,2752,2798,2807,2735,2780,2792,2754,2851,2911,2949,2835,2819,2999,2912,2771,2802,2857,2853,2823,2901,2891,2754,2589,2856,2828,2706,2703,2680,2524,2304,939,107,19,25,24,17,19,15,12,12,12,8,12,12,9,10,14,9,10,12,11,11,
14,10,11,9,10,12,13,11,10,13,23,19,19,25,42,201,1111,2452,2480,2474,2485,2749,2573,2742,2565,2589,2616,2628,2686,2727,2704,2573,2713,2805,2670,2696,2722,2692,2669,2692,2777,2698,2692,2728,2744,2673,2702,2696,2671,2700,2721,2785,2775,2796,2805,2710,2712,2689,2703,2832,2808,2760,2692,2676,2690,2785,2730,2773,2777,2749,2685,2752,2725,2701,2825,2765,2962,2772,2806,2736,2803,2726,2776,2754,2836,2817,2777,2810,2800,2815,2824,2924,2972,2791,2806,2834,2919,2813,2816,2890,2853,2837,2823,2874,2750,2636,2892,2801,2763,2629,2727,2579,2461,928,107,29,25,23,19,22,18,12,10,16,10,10,13,11,8,9,10,11,8,12,10,
12,12,9,11,10,9,15,14,13,16,19,20,24,38,38,179,1012,2460,2352,2561,2561,2654,2556,2674,2622,2671,2597,2716,2688,2693,2713,2657,2755,2762,2680,2797,2775,2821,2726,2649,2775,2719,2743,2729,2741,2784,2808,2720,2818,2746,2816,2752,2782,2778,2711,2783,2779,2803,2799,2749,2830,2717,2672,2711,2729,2725,2732,2832,2760,2654,2675,2768,2700,2760,2690,2834,2822,2736,2807,2718,2767,2809,2755,2804,2837,2841,2837,2846,2763,2672,2506,2966,2406,2872,2979,2841,2907,2835,2899,2987,2817,2862,2924,2926,2801,2711,2974,2909,2776,2697,2801,2669,2485,989,112,33,31,26,23,20,16,16,13,13,10,10,13,12,11,12,13,12,9,13,10,
11,10,13,12,10,9,10,12,14,22,18,26,24,30,39,173,975,2384,2367,2588,2579,2686,2617,2729,2531,2697,2712,2655,2795,2673,2677,2593,2812,2802,2726,2711,2770,2809,2644,2694,2676,2682,2781,2693,2803,2683,2704,2722,2828,2714,2739,2734,2803,2694,2775,2689,2706,2737,2748,2787,2761,2780,2767,2672,2783,2699,2725,2741,2815,2707,2666,2719,2669,2664,2760,2831,2856,2905,2759,2796,2716,2744,2721,2820,2779,2740,2808,2772,2858,2519,2559,2992,3059,2848,2833,2854,2763,2754,2918,2882,2796,2776,2810,2828,2841,2624,2826,2848,2693,2700,2688,2589,2465,920,98,32,27,26,17,17,14,18,14,15,15,11,9,11,9,11,11,9,9,11,9,
11,12,7,12,13,14,12,11,10,17,20,30,24,42,48,162,954,2423,2446,2568,2625,2646,2692,2683,2543,2625,2664,2767,2805,2764,2730,2554,2735,2876,2682,2862,2753,2769,2766,2644,2737,2729,2722,2903,2834,2802,2860,2748,2885,2771,2797,2881,2800,2812,2814,2822,2836,2844,2750,2884,2761,2765,2826,2732,2746,2770,2751,2710,2929,2848,2806,2762,2741,2746,2830,2877,2880,2900,2714,2837,2856,2769,2816,2819,2837,2807,2723,2886,2868,2803,2786,2954,2953,2906,2849,2856,2915,2816,2833,2953,2907,2747,2855,2860,2844,2740,2888,2840,2744,2726,2609,2639,2521,844,95,31,27,20,16,17,15,10,14,8,11,13,12,11,8,11,9,10,7,10,10,
9,12,11,11,11,9,15,15,17,20,16,15,25,29,29,159,973,2431,2407,2595,2604,2694,2671,2731,2590,2683,2643,2725,2784,2754,2776,2698,2435,2855,2796,2734,2887,2862,2804,2694,2764,2812,2768,2763,2784,2829,2778,2796,2874,2707,2756,2851,2787,2835,2652,2800,2825,2851,2744,2848,2799,2737,2731,2676,2693,2677,2665,2746,2775,2751,2750,2674,2709,2717,2688,2896,2834,2860,2722,2798,2673,2712,2752,2786,2830,2774,2753,2763,2889,2764,2802,2872,2887,2868,2755,2834,2954,2801,2751,2866,2801,2862,2803,2914,2874,2720,2844,2847,2792,2756,2703,2618,2456,889,102,32,29,22,20,22,18,13,9,9,10,13,12,11,8,9,11,11,11,11,10,
14,12,12,9,11,10,9,11,18,16,14,19,23,25,43,171,1004,2468,2440,2578,2674,2704,2705,2780,2665,2698,2737,2659,2741,2732,2760,2743,2811,2897,2776,2761,2867,2896,2806,2621,2788,2732,2710,2808,2819,2804,2720,2753,2782,2794,2731,2750,2866,2762,2826,2685,2731,2788,2745,2751,2796,2720,2681,2666,2755,2734,2669,2844,2797,2835,2716,2733,2736,2716,2778,2876,2847,2822,2770,2826,2778,2723,2725,2774,2881,2809,2833,2782,2777,2862,2742,2851,2942,2850,2785,2858,2920,2786,2864,2757,2843,2868,2817,2919,2804,2716,2993,2899,2776,2788,2658,2592,2552,974,102,30,31,22,21,20,17,13,13,16,12,15,8,14,9,12,12,10,14,11,11,
12,9,10,10,13,5,9,16,18,14,14,24,21,26,38,170,940,2477,2509,2557,2682,2797,2682,2720,2656,2670,2732,2678,2814,2713,2783,2803,2706,2862,2797,2690,2800,2830,2791,2701,2689,2770,2693,2795,2714,2789,2805,2729,2827,2722,2788,2741,2846,2914,2749,2665,2703,2811,2840,2744,2835,2720,2705,2691,2690,2755,2736,2797,2777,2764,2701,2654,2756,2815,2740,2822,2924,2815,2705,2717,2783,2804,2752,2769,2881,2770,2905,2747,2861,2806,2790,2940,2999,2881,2875,2936,2937,2780,2763,2961,2826,2884,2853,3048,2874,2685,2981,2968,2790,2661,2684,2553,2555,949,89,30,30,23,17,18,16,15,13,12,13,11,9,11,10,11,8,12,8,10,7,
11,9,10,15,9,15,9,14,14,16,24,18,23,29,39,147,865,2494,2487,2593,2620,2820,2716,2768,2626,2640,2688,2760,2731,2783,2763,2661,2819,2778,2723,2769,2784,2833,2802,2679,2752,2685,2749,2778,2818,2736,2794,2600,2794,2762,2762,2835,2783,2804,2773,2845,2676,2796,2787,2830,2845,2727,2753,2643,2779,2749,2814,2780,2781,2773,2645,2678,2682,2780,2811,2857,2872,2839,2865,2871,2770,2799,2834,2837,2831,2817,2880,2843,2893,2856,2869,2916,2914,3035,2895,2927,2921,2828,2813,2963,2919,2917,2818,2849,2802,2691,2949,2932,2872,2739,2664,2579,2510,1071,106,33,26,23,21,23,15,12,14,12,10,12,11,10,11,12,9,11,9,10,8,
10,8,15,11,12,13,11,12,14,19,17,18,25,27,39,140,929,2471,2512,2586,2577,2803,2648,2737,2640,2724,2657,2762,2745,2749,2791,2724,2795,2864,2727,2763,2823,2761,2840,2634,2786,2735,2658,2863,2790,2860,2803,2810,2840,2839,2800,2767,2757,2787,2807,2803,2830,2861,2861,2797,2879,2741,2704,2789,2784,2767,2747,2856,2803,2805,2832,2810,2793,2799,2813,2859,2921,2747,2831,2752,2782,2725,2748,2777,2910,2800,2880,2807,2780,2834,2807,2857,3029,2932,2801,2885,2953,2817,2854,2922,2880,2926,2890,2960,2835,2670,2933,3018,2868,2787,2673,2694,2556,1050,100,41,26,26,21,21,11,16,12,16,10,12,12,11,11,11,13,8,9,10,14,
9,11,14,12,13,12,14,13,13,14,22,22,24,26,47,155,871,2448,2512,2729,2602,2837,2325,2696,2698,2715,2749,2740,2787,2802,2691,2674,2825,2778,2789,2824,2860,2865,2736,2763,2828,2816,2831,2786,2852,2883,2818,2814,2807,2869,2720,2796,2885,2923,2788,2756,2817,2816,2835,2783,2873,2769,2737,2773,2722,2809,2848,2770,2859,2748,2816,2748,2715,2736,2676,2846,2934,2897,2822,2764,2769,2738,2773,2795,2904,2840,2885,2822,2803,2723,2797,2884,2989,2858,2885,2934,2996,2830,2904,2993,2948,2886,2929,3052,2912,2786,2920,3026,2915,2808,2831,2752,2588,1031,99,27,23,24,24,18,18,11,10,13,8,12,8,12,10,11,9,11,13,9,11,
15,14,11,8,14,10,13,14,15,20,21,26,25,27,40,154,832,2484,2442,2795,2665,2739,2371,2756,2802,2682,2753,2890,2868,2803,2785,2728,2745,2718,2847,2786,2870,2797,2814,2690,2736,2736,2779,2852,2812,2786,2722,2828,2764,2764,2728,2775,2839,2841,2799,2771,2717,2818,2785,2877,2661,2803,2771,2743,2701,2768,2777,2773,2786,2765,2801,2825,2785,2734,2756,2699,2859,2923,2788,2785,2792,2712,2776,2861,2891,2895,2701,2816,2818,2846,2880,2990,3079,2967,2840,2888,2992,2853,2865,2974,2880,3014,2882,2998,2946,2760,2919,2925,2952,2821,2687,2698,2565,1018,106,38,34,21,25,22,18,17,12,12,13,12,13,12,13,11,11,13,10,12,11,
13,15,15,9,11,12,12,13,16,22,19,20,21,26,41,139,754,2535,2448,2613,2719,2796,2738,2727,2734,2653,2702,2776,2842,2894,2779,2747,2593,2772,2827,2806,2914,2877,2791,2743,2780,2794,2791,2782,2852,2878,2771,2759,2841,2849,2705,2770,2793,2874,2750,2800,2807,2773,2835,2784,2844,2770,2841,2758,2758,2755,2774,2813,2817,2853,2809,2775,2722,2756,2701,2875,2830,2825,2844,2797,2828,2714,2756,2895,2959,2841,2894,2759,2852,2900,2787,2936,3005,2900,2922,2983,2988,2921,2904,2913,2939,2951,2875,2859,2907,2756,2942,2988,2821,2800,2806,2675,2552,1057,102,30,32,23,15,24,23,12,11,14,16,12,10,14,13,10,10,10,10,12,14,
9,10,11,11,12,12,16,12,16,13,25,32,23,26,29,128,698,2422,2560,2695,2556,2780,2759,2708,2755,2732,2750,2777,2610,2822,2757,2803,2808,2837,2922,2840,2931,2784,2867,2730,2795,2893,2745,2789,2899,2814,2827,2776,2708,2885,2792,2780,2814,2935,2863,2750,2790,2797,2752,2735,2912,2812,2785,2744,2739,2778,2794,2796,2877,2925,2752,2772,2731,2756,2809,2880,2801,2855,2780,2700,2841,2752,2678,2771,2836,2911,2861,2825,2772,2877,2800,2865,2903,2903,2952,2851,2936,2824,2871,2833,2738,2912,2896,2911,2890,2712,2970,2954,2781,2834,2769,2661,2551,1184,107,36,31,20,22,22,15,17,9,14,10,12,8,13,9,9,8,10,10,14,9,
9,14,8,13,6,7,14,14,15,23,19,27,19,32,38,122,712,2374,2554,2656,2735,2812,2814,2765,2742,2727,2687,2734,2793,2847,2695,2752,2811,2886,2865,2827,2879,2950,2962,2743,2772,2878,2772,2805,2837,2843,2940,2845,2867,2837,2848,2795,2857,2882,2820,2766,2763,2793,2784,2773,2865,2814,2826,2698,2714,2796,2753,2762,2804,2792,2803,2720,2787,2789,2791,2829,2823,2858,2702,2721,2755,2716,2724,2756,2869,2798,2805,2821,2879,2855,2797,2865,2903,2906,2963,2816,2912,2859,2872,2854,2876,2906,2916,2942,2948,2716,2871,2920,2927,2831,2728,2715,2680,1187,119,29,37,25,25,22,16,21,14,13,9,14,12,12,12,12,9,10,9,11,9,
11,9,9,11,9,11,13,15,14,22,19,23,17,28,40,134,760,2452,2469,2654,2689,2812,2965,2805,2780,2648,2727,2802,2751,2806,2723,2721,2844,2800,2836,2792,2790,2784,2835,2821,2749,2811,2861,2720,2836,2849,2906,2791,2801,2717,2717,2804,2795,2813,2792,2642,2680,2784,2717,2704,2697,2882,2737,2689,2733,2773,2773,2789,2771,2746,2821,2684,2734,2825,2834,2798,2839,2809,2792,2795,2749,2839,2737,2794,2890,2815,2739,2761,2854,2933,2866,2891,2903,2939,2850,2842,3043,2886,2882,2922,2966,2887,2861,2948,2977,2688,2862,3023,2909,2793,2734,2677,2662,1209,108,27,33,22,20,21,15,14,11,11,10,10,10,10,9,11,11,11,9,11,10,
10,10,14,10,12,15,7,13,15,15,24,20,23,26,41,151,804,2478,2526,2644,2645,2822,2807,2732,2780,2662,2698,2711,2768,2864,2760,2730,2757,2852,2788,2785,2832,2806,2823,2672,2757,2757,2786,2733,2886,2779,2781,2729,2718,2724,2761,2799,2786,2829,2757,2769,2778,2654,2889,2844,2872,2871,2824,2662,2765,2705,2798,2755,2811,2778,2746,2738,2791,2815,2739,2844,2894,2679,2882,2819,2657,2786,2752,2850,2905,2877,2831,2850,2869,2878,2831,2839,3034,2957,2931,2906,2984,2945,2910,2840,2896,3014,2942,2929,2973,2828,2898,2976,2854,2936,2819,2726,2671,1180,116,31,31,28,23,21,22,18,11,9,10,12,15,9,15,11,9,11,10,10,14,
10,11,9,12,12,14,13,14,13,19,22,27,25,29,37,136,855,2450,2551,2709,2632,2753,2701,2656,2693,2577,2690,2794,2686,2800,2768,2685,2791,2811,2835,2815,2710,2850,2908,2708,2799,2834,2768,2832,2869,2789,2802,2761,2697,2829,2781,2791,2884,2772,2757,2797,2882,2779,2866,2801,2945,2855,2739,2700,2757,2743,2825,2830,2836,2874,2782,2678,2737,2789,2784,2749,2863,2045,2725,2820,2728,2754,2766,2758,2977,2893,2833,2878,2915,2854,2892,3029,3016,2895,2919,2876,2895,2845,2806,2889,2943,2980,2902,2962,2953,2771,2948,3000,2870,2785,2743,2698,2701,1199,139,36,34,26,23,20,23,15,13,16,11,16,9,9,11,10,9,10,10,9,8,
9,12,14,9,10,12,11,12,20,17,14,20,24,27,39,146,829,2431,2471,2695,2640,2819,2872,2742,2747,2734,2715,2763,2787,2796,2835,2784,2786,2815,2846,2833,2868,2854,2918,2808,2824,2781,2850,2772,2893,2887,2837,2799,2868,2885,2852,2817,2814,2829,2835,2791,2718,2749,2797,2845,2767,2750,2787,2745,2694,2813,2830,2801,2899,2870,2910,2760,2747,2692,2829,2789,2878,2913,2750,2776,2804,2715,2743,2752,2898,2987,2804,2833,2886,2806,2816,2786,2986,2944,2815,2852,2924,2889,2759,2908,3003,2907,2950,2873,2920,2791,2901,2952,2926,2804,2776,2670,2693,1233,118,38,28,25,21,23,19,17,11,13,10,10,12,12,12,9,11,11,12,9,12,
12,10,10,10,12,13,14,12,17,20,22,27,24,25,42,129,751,2431,2518,2651,2663,2817,2831,2740,2696,2702,2693,2778,2738,2818,2752,2702,2761,2827,2846,2808,2918,2913,2812,2738,2847,2778,2815,2754,2767,2842,2852,2814,2852,2837,2878,2776,2799,2849,2772,2643,2801,2786,2767,2794,2789,2790,2740,2763,2723,2810,2833,2774,2873,2748,2724,2842,2852,2724,2763,2780,2879,2924,2888,2798,2812,2771,2731,2730,2905,2871,2803,2828,2865,2820,2832,2834,3013,2973,2871,2895,3036,2950,2817,2815,3004,2913,2858,2808,2996,2807,2942,3013,2953,2862,2693,2722,2724,1252,138,32,31,22,22,22,19,16,12,13,11,13,15,14,10,12,10,9,13,12,10,
12,11,14,14,11,11,13,12,13,22,17,21,27,34,40,130,690,2376,2486,2680,2643,2774,2799,2749,2713,2711,2806,2794,2758,2793,2807,2761,2792,2853,2835,2871,2844,2909,2888,2841,2815,2893,2841,2773,2876,2830,2756,2787,2823,2881,2776,2806,2800,2907,2825,2795,2723,2844,2753,2730,2810,2818,2763,2744,2839,2803,2695,2828,2852,2847,2878,2751,2746,2482,2769,2759,2888,2891,2839,2730,2761,2830,2802,2880,2911,2989,2752,2851,2774,2810,2848,2769,2936,2898,2904,2858,2804,2926,2769,2831,2816,2806,2860,2833,2854,2697,2817,2971,2776,2740,2696,2587,2660,1335,137,41,27,33,23,21,19,13,10,15,9,13,12,13,11,10,11,10,10,12,11,
10,9,11,12,13,9,10,15,20,16,20,22,24,33,47,109,631,2346,2428,2652,2608,2712,2870,2743,2798,2671,2781,2741,2796,2787,2884,2754,2750,2888,2949,2818,2891,2890,2862,2754,2830,2802,2818,2867,2784,2903,2892,2795,2790,2838,2828,2807,2797,2923,2840,2829,2781,2855,2795,2712,2834,2844,2803,2704,2729,2789,2766,2714,2765,2858,2802,2724,2761,2709,2775,2707,2811,2815,2725,2660,2709,2620,2736,2695,2778,2774,2761,2804,2785,2721,2807,2815,2888,2829,2883,2804,2827,2739,2775,2787,2869,2868,2778,2881,2937,2780,2799,2982,2829,2767,2749,2647,2634,1332,152,32,27,32,24,21,23,15,11,11,12,18,11,12,10,11,11,12,9,12,9,
14,9,10,10,11,9,14,13,14,14,18,33,24,25,38,105,591,2326,2444,2624,2626,2754,2795,2750,2851,2661,2798,2749,2714,2896,2896,2806,2815,2843,2880,2858,2826,2968,2855,2865,2801,2759,2858,2912,2765,2809,2827,2747,2755,2691,2788,2812,2805,2835,2821,2738,2716,2686,2720,2760,2828,2782,2698,2678,2698,2671,2686,2700,2745,2783,2751,2668,2674,2707,2704,2675,2810,2775,2751,2686,2705,2705,2770,2725,2782,2833,2783,2765,2768,2801,2800,2808,2813,2883,2748,2775,2831,2871,2774,2810,2881,2841,2870,2786,2956,2814,2757,3014,2965,2810,2606,2663,2635,1302,160,28,33,25,18,22,21,15,12,10,14,11,11,14,9,13,7,11,12,9,8,
9,13,11,9,11,13,12,9,17,17,24,20,23,25,44,110,609,2275,2471,2605,2615,2733,2859,2666,2805,2687,2727,2711,2758,2798,2760,2753,2719,2818,2881,2930,2812,2842,2819,2761,2772,2715,2807,2709,2748,2687,2715,2701,2786,2678,2749,2733,2758,2848,2781,2670,2718,2716,2740,2718,2732,2790,2649,2752,2619,2514,2695,2700,2693,2775,2639,2756,2712,2627,2741,2793,2800,2773,2755,2810,2714,2700,2726,2830,2724,2825,2779,2810,2806,2847,2780,2800,2878,2869,2839,2800,2834,2834,2807,2797,2934,2904,2923,2856,2866,2768,2767,2860,2855,2915,2691,2698,2502,1325,138,40,32,25,24,24,24,18,13,15,14,10,12,9,12,7,9,11,11,10,13,
13,13,10,9,8,12,10,12,12,19,18,22,27,30,39,108,557,2175,2478,2582,2592,2746,2820,2643,2705,2640,2657,2671,2768,2761,2779,2690,2676,2778,2808,2702,2704,2821,2847,2722,2738,2734,2758,2793,2852,2816,2823,2669,2703,2735,2780,2797,2802,2700,2796,2680,2652,2703,2713,2726,2780,2795,2779,2648,2761,2696,2780,2674,2872,2739,2732,2750,2713,2697,2774,2732,2814,2814,2760,2661,2777,2714,2779,2725,2761,2850,2817,2824,2855,2751,2747,2807,3028,2822,2908,2877,2868,2916,2826,2785,2863,2867,2862,2866,2859,2768,2736,2978,2839,2727,2685,2682,2614,1486,157,39,35,25,27,16,17,16,13,12,9,14,11,13,10,18,13,10,16,8,11,
10,11,15,12,11,13,10,16,19,18,20,23,24,28,39,104,564,2245,2376,2663,2598,2662,2732,2666,2713,2602,2556,2670,2744,2673,2734,2719,2668,2646,2864,2774,2798,2864,2812,2860,2784,2774,2820,2774,2758,2792,2729,2678,2784,2791,2771,2681,2765,2760,2711,2664,2646,2680,2709,2782,2754,2777,2708,2664,2698,2722,2729,2679,2772,2742,2725,2699,2777,2704,2659,2710,2812,2783,2839,2761,2709,2634,2695,2735,2805,2873,2714,2731,2722,2749,2797,2753,2894,2885,2824,2800,2841,2767,2692,2763,2839,2860,2803,2897,2855,2745,2771,2882,2860,2724,2688,2557,2663,1456,150,33,30,24,16,24,16,14,11,8,10,13,13,10,12,12,7,14,10,13,9,
9,12,12,12,11,16,14,15,16,18,19,27,23,26,37,103,566,2202,2454,2609,2640,2655,2717,2663,2743,2638,2630,2719,2715,2736,2891,2717,2713,2648,2832,2870,2776,2875,2786,2747,2811,2782,2761,2816,2766,2741,2794,2662,2718,2736,2842,2767,2674,2760,2674,2706,2733,2763,2773,2751,2791,2814,2702,2698,2743,2673,2768,2672,2671,2740,2741,2600,2677,2709,2634,2734,2756,2808,2725,2766,2715,2877,2623,2744,2685,2793,2735,2809,2618,2783,2694,2766,2864,2838,2842,2736,2813,2785,2690,2832,2876,2903,2807,2774,2866,2789,2755,2939,2918,2824,2640,2615,2645,1561,172,38,30,28,16,25,26,17,11,11,11,12,12,13,11,9,13,11,10,9,9,
10,11,15,14,10,12,15,13,15,15,22,27,29,25,41,92,542,2229,2358,2545,2614,2595,2747,2621,2711,2568,2589,2653,2661,2821,2658,2764,2728,2808,2861,2734,2761,2784,2794,2808,2678,2741,2731,2728,2774,2811,2755,2666,2777,2738,2824,2671,2776,2709,2734,2651,2618,2702,2674,2621,2692,2836,2671,2615,2598,2673,2669,2624,2607,2777,2714,2436,2678,2734,2676,2737,2756,2736,2790,2681,2626,2700,2643,2692,2806,2811,2716,2773,2817,2672,2739,2767,2846,2901,2848,2850,2796,2863,2687,2723,2845,2937,2751,2738,2896,2727,2756,2828,2835,2757,2627,2563,2617,1447,160,37,31,25,30,19,23,20,16,9,11,10,11,12,13,14,12,12,12,9,12,
9,15,7,12,14,12,14,13,15,17,22,28,29,29,50,95,528,2210,2399,2539,2486,2744,2741,2608,2724,2552,2633,2704,2675,2722,2719,2768,2727,2707,2806,2844,2686,2767,2824,2753,2694,2813,2783,2724,2634,2787,2686,2694,2683,2720,2719,2729,2727,2710,2716,2646,2622,2705,2683,2714,2670,2776,2768,2705,2632,2733,2629,2575,2762,2816,2781,2727,2740,2710,2653,2655,2747,2786,2784,2699,2700,2746,2597,2630,2702,2772,2756,2733,2680,2759,2775,2729,2771,2832,2760,2747,2843,2761,2691,2751,2721,2762,2699,2799,2704,2647,2633,2849,2793,2758,2598,2573,2524,1271,163,36,38,28,23,34,21,14,13,11,14,12,11,13,12,9,10,14,8,8,12,
12,12,14,11,10,12,13,15,15,16,16,15,24,22,37,86,519,2177,2397,2601,2556,2631,2718,2640,2717,2518,2646,2655,2646,2625,2766,2621,2571,2732,2861,2780,2759,2744,2873,2793,2707,2692,2786,2742,2782,2809,2843,2786,2666,2638,2739,2682,2701,2768,2704,2713,2641,2660,2723,2668,2659,2741,2742,2641,2587,2644,2647,2629,2602,2703,2768,2633,2668,2641,2665,2589,2718,2768,2684,2613,2576,2683,2634,2625,2685,2709,2581,2719,2691,2745,2679,2638,2686,2836,2743,2771,2726,2790,2703,2660,2788,2732,2844,2782,2667,2799,2715,2822,2727,2767,2664,2537,2592,1408,151,43,33,33,17,22,26,12,12,14,17,13,12,9,12,10,7,12,11,12,9,
11,12,8,10,11,9,12,11,16,20,21,28,21,22,34,88,553,2120,2426,2631,2533,2634,2699,2638,2679,2594,2731,2593,2710,2755,2742,2796,2700,2697,2696,2814,2797,2806,2814,2755,2725,2738,2772,2741,2731,2776,2729,2761,2683,2666,2671,2681,2677,2615,2685,2622,2570,2677,2600,2684,2684,2688,2642,2572,2564,2622,2585,2604,2606,2722,2633,2605,2593,2566,2626,2584,2692,2756,2706,2694,2568,2652,2575,2670,2654,2655,2676,2772,2679,2730,2736,2663,2719,2745,2728,2719,2707,2772,2778,2709,2833,2821,2785,2766,2721,2776,2772,2866,2813,2792,2690,2531,2639,1511,174,31,36,24,25,21,20,19,11,10,13,12,11,11,9,8,10,12,8,9,14,
12,11,11,11,11,11,13,13,15,22,17,21,26,27,40,69,407,2056,2320,2529,2512,2548,2711,2649,2690,2560,2561,2586,2623,2711,2714,2647,2316,2273,2725,2715,2647,2785,2705,2681,2700,2566,2720,2583,2651,2643,2703,2738,2686,2653,2650,2656,2661,2682,2605,2614,2660,2560,2618,2629,2726,2754,2626,2549,2600,2576,2606,2709,2692,2733,2649,2570,2596,2562,2603,2647,2695,2683,2720,2699,2656,2601,2607,2676,2647,2692,2661,2644,2699,2684,2724,2694,2850,2706,2774,2700,2679,2725,2793,2711,2862,2777,2839,2701,2784,2801,2678,2840,2844,2726,2672,2600,2644,1583,175,44,32,28,28,22,25,12,13,14,13,13,10,10,10,11,11,16,8,9,10,
13,12,12,13,9,12,10,11,16,13,24,22,21,24,40,79,397,1945,2361,2536,2492,2482,2653,2603,2619,2494,2536,2621,2640,2612,2636,2666,2578,2592,2627,2720,2567,2739,2730,2719,2669,2628,2611,2605,2699,2709,2819,2707,2619,2614,2672,2623,2734,2660,2702,2655,2615,2650,2713,2651,2717,2701,2616,2585,2633,2628,2571,2669,2600,2652,2660,2607,2589,2641,2722,2626,2710,2722,2701,2660,2650,2661,2383,2666,2637,2802,2659,2709,2693,2783,2750,2744,2794,2774,2788,2792,2794,2625,2690,2716,2747,2747,2785,2708,2768,2663,2620,2795,2798,2807,2589,2579,2633,1564,191,40,25,21,24,15,23,15,13,10,15,13,11,12,12,9,8,13,11,9,12,
13,11,10,16,13,12,14,16,13,20,23,20,22,26,35,70,402,2018,2327,2480,2505,2566,2600,2581,2741,2534,2523,2606,2636,2677,2619,2706,2607,2590,2665,2695,2704,2720,2747,2587,2602,2542,2557,2751,2646,2715,2719,2605,2638,2584,2633,2623,2715,2709,2686,2666,2618,2616,2609,2654,2699,2765,2624,2603,2615,2590,2705,2660,2704,2729,2674,2688,2598,2658,2617,2567,2670,2733,2611,2671,2670,2655,2575,2615,2635,2788,2663,2619,2687,2689,2578,2721,2690,2762,2794,2785,2701,2774,2692,2630,2703,2770,2775,2640,2810,2734,2642,2811,2839,2795,2620,2586,2608,1581,201,47,32,21,24,23,22,16,11,12,14,13,10,13,10,12,12,9,13,11,11,
14,13,14,12,14,12,14,14,16,18,17,28,22,29,40,74,387,1867,2380,2438,2429,2511,2586,2535,2643,2425,2529,2569,2639,2645,2638,2730,2622,2634,2691,2679,2727,2685,2694,2739,2551,2684,2680,2656,2700,2758,2776,2710,2628,2687,2694,2680,2697,2645,2794,2628,2620,2631,2614,2632,2633,2615,2738,2700,2561,2660,2562,2584,2658,2678,2629,2674,2653,2647,2633,2576,2638,2619,2758,2603,2639,2593,2619,2599,2675,2721,2685,2699,2640,2722,2654,2690,2792,2848,2759,2753,2688,2715,2710,2724,2886,2814,2789,2834,2802,2776,2751,2825,2881,2783,2748,2532,2551,1656,196,46,34,26,28,20,22,13,16,16,12,13,14,12,15,14,12,8,11,13,12,
11,11,15,10,11,9,12,14,16,14,21,28,19,23,44,70,375,1939,2303,2497,2493,2583,2610,2492,2693,2457,2504,2616,2710,2656,2658,2628,2560,2650,2816,2625,2674,2705,2687,2692,2641,2662,2715,2556,2602,2711,2663,2747,2632,2686,2727,2682,2548,2689,2671,2726,2563,2652,2727,2540,2556,2690,2629,2600,2611,2594,2627,2532,2714,2610,2726,2646,2673,2597,2657,2544,2628,2727,2740,2707,2569,2725,2596,2652,2767,2780,2761,2713,2691,2644,2806,2710,2751,2844,2711,2723,2672,2778,2742,2772,2741,2744,2754,2766,2755,2737,2707,2796,2767,2670,2563,2617,2512,1661,197,44,33,25,21,22,21,17,10,13,14,13,12,9,7,9,11,10,11,10,13,
9,10,14,14,11,8,11,13,16,16,25,23,22,21,38,72,388,1884,2286,2403,2499,2560,2536,2521,2703,2425,2522,2609,2528,2586,2671,2588,2599,2610,2672,2687,2616,2667,2695,2648,2635,2564,2699,2674,2608,2618,2737,2702,2647,2651,2655,2697,2623,2675,2654,2775,2575,2617,2661,2612,2632,2682,2738,2692,2621,2588,2688,2702,2624,2685,2801,2607,2579,2612,2660,2687,2673,2654,2662,2636,2564,2689,2579,2603,2650,2724,2714,2607,2660,2666,2732,2647,2760,2714,2708,2639,2669,2741,2723,2661,2709,2747,2767,2680,2688,2797,2694,2810,2740,2752,2635,2497,2496,1560,174,48,25,25,23,21,27,15,15,10,12,11,9,9,12,8,12,15,9,10,11,
16,14,12,12,11,11,14,12,11,19,13,24,23,19,35,76,387,1945,2318,2410,2443,2546,2548,2535,2620,2442,2511,2529,2596,2649,2618,2674,2660,2600,2745,2759,2703,2795,2713,2676,2682,2667,2648,2674,2678,2725,2699,2685,2712,2713,2752,2676,2778,2702,2656,2640,2623,2544,2595,2608,2644,2591,2693,2666,2605,2480,2610,2641,2692,2658,2678,2617,2584,2490,2653,2549,2609,2645,2658,2688,2528,2579,2482,2616,2480,2644,2665,2674,2609,2601,2665,2600,2707,2749,2725,2734,2732,2674,2746,2670,2688,2769,2735,2715,2581,2702,2679,2778,2836,2484,2674,2433,2518,1527,166,50,32,30,25,19,20,16,10,12,13,11,13,13,11,11,11,15,10,8,12,
9,14,12,12,13,15,11,13,18,15,23,18,21,21,45,74,407,2009,2311,2510,2475,2560,2677,2595,2653,2536,2536,2585,2579,2633,2675,2644,2608,2620,2644,2663,2637,2761,2766,2708,2684,2637,2684,2656,2606,2669,2704,2693,2602,2436,2345,2636,2712,2703,2585,2640,2581,2517,2553,2635,2674,2570,2667,2564,2603,2514,2561,2639,2574,2645,2616,2611,2548,2534,2537,2641,2646,2722,2547,2632,2599,2564,2722,2605,2489,2650,2712,2634,2734,2486,2757,2683,2666,2772,2670,2715,2745,2791,2725,2786,2805,2818,2813,2731,2752,2647,2738,2786,2829,2777,2416,2541,2572,1686,223,50,38,23,25,24,18,15,12,15,13,15,11,17,13,11,13,14,10,8,12,
11,11,11,11,11,14,15,16,18,19,23,24,24,20,33,55,331,1788,2274,2447,2490,2518,2628,2565,2681,2492,2494,2603,2503,2594,2552,2584,2590,2577,2607,2687,2646,2614,2742,2654,2744,2547,2576,2603,2632,2584,2689,2692,2554,2584,2368,2690,2680,2621,2650,2625,2500,2616,2497,2610,2686,2714,2582,2630,2607,2612,2569,2617,2619,2653,2670,2642,2541,2558,2579,2658,2658,2636,2750,2565,2623,2654,2670,2629,2649,2636,2713,2674,2665,2582,2788,2728,2704,2780,2754,2766,2787,2816,2779,2737,2845,2806,2841,2801,2765,2777,2760,2825,2860,2770,2703,2580,2570,1818,258,46,35,28,28,25,23,14,11,15,11,10,10,12,10,13,9,12,10,12,11,
12,12,13,13,13,15,10,11,15,18,23,24,20,29,39,61,301,1670,2406,2473,2434,2509,2457,2575,2695,2436,2393,2630,2617,2525,2621,2646,2549,2581,2617,2606,2674,2679,2692,2730,2666,2551,2655,2660,2618,2666,2615,2667,2594,2574,2646,2575,2691,2651,2663,2581,2649,2601,2609,2624,2599,2700,2690,2592,2534,2636,2606,2659,2706,2666,2650,2681,2641,2634,2672,2684,2662,2787,2768,2695,2670,2637,2683,2616,2649,2686,2733,2696,2638,2694,2815,2669,2691,2872,2768,2730,2662,2827,2742,2644,2761,2813,2780,2707,2687,2815,2745,2932,2871,2883,2639,2537,2576,1779,218,55,35,30,30,26,21,18,11,14,14,12,13,13,10,12,12,13,10,10,11,
9,13,9,11,10,10,12,14,16,16,20,17,22,23,33,57,329,1759,2275,2436,2445,2512,2584,2517,2645,2430,2460,2519,2566,2588,2656,2705,2523,2570,2599,2729,2731,2666,2718,2679,2657,2621,2653,2636,2676,2635,2695,2690,2574,2672,2658,2648,2763,2792,2692,2723,2593,2536,2632,2618,2607,2629,2743,2586,2653,2684,2743,2714,2651,2674,2721,2685,2622,2645,2550,2561,2622,2662,2716,2667,2625,2672,2634,2513,2610,2712,2743,2639,2671,2713,2697,2678,2638,2780,2760,2800,2717,2754,2683,2611,2656,2831,2880,2709,2770,2865,2693,2921,2894,2784,2705,2596,2632,1898,250,56,29,23,23,23,20,16,13,11,13,12,12,10,12,12,9,8,9,11,13,
9,11,12,10,11,10,18,11,11,20,19,24,23,24,30,68,307,1769,2245,2500,2523,2518,2640,2584,2670,2381,2617,2587,2595,2671,2670,2701,2613,2618,2699,2744,2771,2687,2761,2740,2753,2704,2798,2623,2732,2714,2751,2739,2698,2713,2771,2724,2586,2732,2739,2706,2566,2580,2685,2669,2735,2724,2719,2672,2674,2590,2698,2565,2661,2698,2706,2708,2622,2620,2620,2626,2641,2738,2678,2645,2646,2648,2707,2695,2682,2681,2698,2665,2707,2686,2676,2699,2808,2841,2835,2876,2737,2863,2765,2792,2830,2858,2874,2830,2790,2804,2662,2831,2888,2862,2754,2611,2599,1876,302,58,36,30,25,20,23,15,11,12,13,11,11,15,9,10,12,10,10,10,11,
11,10,12,15,10,10,12,10,12,17,24,20,27,22,37,59,343,1822,2297,2486,2552,2556,2625,2623,2692,2412,2674,2608,2617,2657,2649,2665,2539,2628,2588,2660,2650,2703,2599,2682,2776,2614,2655,2699,2587,2636,2656,2677,2630,2517,2774,2721,2656,2679,2793,2631,2661,2539,2728,2637,2735,2663,2701,2642,2685,2617,2635,2603,2695,2675,2745,2724,2574,2635,2667,2597,2655,2758,2774,2687,2695,2724,2635,2634,2660,2755,2712,2709,2733,2720,2753,2803,2717,2832,2846,2850,2757,2794,2754,2739,2828,2847,2872,2860,2734,2762,2761,2810,2789,2757,2668,2585,2512,1756,236,56,22,25,25,24,22,12,10,12,11,11,14,11,10,14,9,11,10,10,10,
11,13,10,10,9,10,12,14,12,18,22,29,19,21,30,59,308,1773,2272,2403,2548,2536,2645,2577,2650,2398,2516,2555,2568,2605,2635,2722,2596,2618,2656,2784,2689,2636,2737,2682,2805,2713,2684,2712,2797,2708,2722,2789,2749,2642,2666,2706,2740,2692,2772,2772,2673,2735,2677,2727,2713,2668,2677,2762,2673,2658,2745,2674,2580,2661,2741,2586,2637,2662,2655,2694,2610,2682,2710,2691,2625,2681,2636,2637,2626,2718,2697,2644,2660,2668,2707,2713,2713,2765,2793,2745,2723,2769,2780,2826,2726,2711,2859,2771,2780,2721,2804,2849,2756,2809,2716,2560,2524,1746,237,53,35,31,27,24,23,16,14,12,11,11,12,7,10,14,10,12,12,9,11,
12,11,13,10,13,10,11,16,13,17,19,18,22,18,32,58,340,1784,2286,2468,2495,2566,2615,2549,2827,2472,2536,2556,2635,2632,2662,2717,2651,2656,2671,2834,2700,2778,2776,2750,2811,2724,2751,2697,2788,2719,2692,2767,2704,2663,2742,2671,2764,2651,2670,2734,2646,2705,2663,2623,2737,2721,2681,2714,2693,2681,2515,2648,2703,2666,2751,2664,2660,2570,2582,2673,2656,2626,2694,2695,2638,2610,2604,2671,2685,2686,2707,2558,2659,2601,2700,2667,2642,2704,2832,2768,2762,2815,2768,2783,2775,2863,2745,2837,2842,2782,2718,2878,2883,2801,2770,2636,2653,2065,334,63,29,29,27,29,20,21,16,13,9,11,10,9,11,11,12,14,9,8,15,
10,9,10,13,14,12,15,13,16,21,19,20,19,27,38,54,332,1795,2332,2510,2571,2573,2646,2623,2786,2535,2596,2461,2650,2696,2654,2952,2677,2649,2715,2816,2775,2709,2790,2683,2703,2664,2742,2798,2697,2709,2747,2760,2710,2565,2645,2726,2551,2698,2684,2717,2626,2631,2557,2746,2668,2761,2713,2704,2625,2614,2666,2669,2631,2722,2682,2699,2644,2529,2588,2646,2695,2710,2658,2684,2690,2738,2607,2660,2648,2706,2752,2729,2802,2772,2769,2751,2744,2961,2889,2804,2863,2805,2804,2764,2882,2829,2908,2938,2852,2851,2713,2949,2872,2839,2770,2632,2679,1712,235,53,38,27,29,25,24,18,11,11,12,13,11,9,11,13,12,9,10,10,11,
15,11,11,10,11,8,13,13,9,18,17,18,19,24,38,49,305,1776,2341,2406,2589,2539,2639,2527,2802,2439,2524,2686,2697,2606,2576,2705,2614,2701,2644,2709,2765,2692,2703,2724,2740,2625,2664,2696,2641,2752,2812,2755,2756,2569,2741,2682,2733,2750,2711,2670,2667,2654,2634,2652,2751,2745,2705,2688,2636,2662,2680,2665,2688,2807,2723,2648,2635,2654,2669,2752,2715,2708,2739,2774,2762,2667,2664,2667,2655,2700,2829,2761,2693,2765,2764,2840,2769,2902,2917,2751,2771,2890,2829,2738,2789,2917,2917,2829,2792,2902,2775,2873,2781,2866,2802,2641,2633,1800,249,53,31,30,28,30,16,16,14,10,10,11,12,11,12,10,6,12,13,9,10,
16,10,12,15,12,12,13,12,11,12,17,15,21,24,28,58,312,1800,2293,2452,2487,2549,2607,2619,2782,2538,2486,2602,2647,2703,2626,2796,2611,2640,2642,2732,2782,2788,2686,2693,2677,2626,2661,2606,2651,2747,2784,2785,2618,2801,2733,2661,2752,2828,2729,2744,2722,2641,2737,2789,2779,2757,2826,2733,2685,2675,2709,2728,2812,2796,2763,2734,2665,2715,2708,2672,2733,2769,2791,2744,2697,2668,2683,2713,2620,2782,2751,2747,2815,2717,2804,2720,2809,2803,2835,2886,2841,2782,2835,2830,2744,2908,2874,2887,2763,2853,2800,2916,2794,2952,2790,2657,2581,2099,321,67,31,30,31,20,21,22,16,12,12,14,13,13,10,13,14,10,9,7,9,
10,9,12,11,12,16,9,9,15,16,15,24,17,18,32,56,314,1755,2323,2423,2486,2467,2684,2634,2774,2402,2543,2714,2654,2664,2694,2753,2637,2629,2716,2811,2736,2774,2782,2708,2795,2769,2702,2730,2747,2766,2757,2761,2632,2773,2738,2777,2742,2861,2769,2798,2723,2717,2748,2753,2765,2768,2854,2852,2685,2728,2757,2720,2715,2776,2739,2691,2686,2719,2665,2648,2688,2765,2676,2720,2726,2723,2637,2679,2709,2770,2821,2726,2760,2688,2802,2708,2765,2835,2940,2812,2785,2777,2780,2771,2686,2903,2869,2816,2702,2851,2883,2923,2806,2924,2824,2688,2643,2202,360,63,31,28,26,22,23,14,12,14,11,13,11,11,14,8,11,10,8,9,10,
10,10,9,10,12,14,13,9,11,16,25,21,19,17,35,64,293,1768,2338,2517,2601,2652,2743,2573,2840,2512,2621,2693,2720,2781,2827,2912,2583,2778,2838,2799,2788,2796,2850,2813,2941,2656,2803,2821,2762,2646,2862,2749,2180,2625,2772,2838,2791,2664,2792,2784,2684,2652,2775,2758,2673,2737,2805,2717,2707,2740,2822,2646,2678,2698,2768,2812,2658,2723,2714,2669,2580,2747,2745,2780,2640,2704,2746,2710,2729,2818,2829,2815,2817,2815,2723,2830,2846,2907,2942,2897,2850,2884,2851,2831,2808,2850,2995,2939,2897,2891,2884,2996,2898,2930,2835,2756,2670,2034,332,65,35,32,24,22,23,16,14,13,13,14,10,14,9,12,10,8,8,11,10,
11,7,12,12,10,10,11,10,16,17,17,22,22,21,33,57,305,1850,2415,2472,2565,2658,2638,2597,2817,2606,2632,2625,2679,2749,2768,2890,2687,2710,2781,2829,2766,2780,2826,2785,2768,2667,2795,2813,2783,2674,2732,2796,2733,2682,2765,2849,2819,2711,2827,2794,2854,2734,2658,2881,2683,2736,2691,2796,2705,2642,2708,2850,2805,2753,2842,2741,2697,2633,2698,2674,2714,2764,2818,2800,2755,2790,2766,2678,2699,2679,2869,2887,2844,2752,2845,2817,2735,2851,2827,2835,2891,2839,2785,2914,2726,2907,2977,2936,2854,2834,2924,2953,2871,2857,2882,2744,2659,1834,281,65,28,32,18,23,18,18,20,10,12,11,13,9,9,11,10,10,11,9,11,
9,12,9,13,10,11,13,15,10,14,14,24,22,26,34,63,305,1691,2343,2496,2581,2540,2723,2541,2834,2461,2548,2712,2759,2699,2661,2798,2676,2708,2747,2789,2747,2848,2722,2800,2821,2696,2796,2789,2717,2762,2799,2830,2795,2750,2743,2741,2810,2739,2836,2806,2773,2667,2751,2789,2739,2840,2478,2863,2811,2841,2753,2780,2766,2744,2794,2853,2803,2740,2750,2727,2807,2710,2757,2757,2729,2695,2765,2748,2679,2796,2781,2851,2797,2821,2704,2828,2822,2876,2919,2939,2860,2758,2811,2929,2750,2825,2855,2919,2856,2789,2878,3024,2864,2794,2811,2726,2652,1940,287,68,29,23,28,20,21,18,12,12,11,15,12,12,12,11,12,8,12,14,11,
11,10,11,7,15,8,10,14,14,16,19,19,19,27,34,54,296,1696,2340,2496,2480,2553,2634,2231,2960,2515,2669,2625,2670,2795,2774,2542,2668,2783,2728,2828,2861,2830,2821,2917,2846,2760,2799,2849,2819,2817,2780,2917,2835,2781,2841,2827,2811,2818,2820,2809,2813,2744,2757,2705,2773,2798,2806,2744,2768,2742,2752,2790,2681,2715,2775,2727,2680,2691,2653,2653,2811,2743,2766,2689,2682,2703,2713,2703,2745,2776,2835,2794,2803,2749,2827,2812,2760,2852,2837,2892,2876,2847,2870,2897,2817,2841,2905,2846,2823,2916,2850,2995,2971,2951,2872,2763,2687,2110,355,69,28,25,22,21,24,19,16,13,15,10,16,11,11,12,11,9,8,14,10,
10,10,10,14,10,14,10,18,13,16,18,19,29,27,38,53,283,1665,2516,2537,2617,2655,2675,2676,2962,2558,2690,2714,2737,2813,2706,2925,2786,2786,2760,2857,2827,2814,2797,2932,2908,2827,2716,2867,2810,2750,2835,2776,2804,2733,2713,2814,2706,2758,2799,2876,2774,2757,2770,2750,2778,2880,2837,2743,2747,2751,2634,2760,2707,2795,2799,2758,2700,2635,2691,2755,2788,2854,2747,2867,2709,2711,2735,2800,2737,2751,2771,2828,2769,2838,2761,2879,2780,2834,3003,2869,2879,2892,2885,2912,2804,3001,2986,2927,2790,2931,2882,3137,2947,3029,2878,2825,2723,2214,384,70,33,31,27,24,19,18,10,14,14,14,10,14,10,12,11,11,6,10,11,
11,9,7,14,9,14,16,10,12,19,18,14,24,26,34,53,278,1640,2403,2496,2366,2611,2604,2592,2861,2637,2642,2570,2631,2727,2722,2862,2575,2797,2771,2757,2821,2809,2760,2811,2765,2754,2750,2720,2807,2804,2820,2731,2776,2780,2769,2794,2766,2792,2828,2827,2737,2685,2796,2697,2770,2819,2928,2808,2797,2698,2735,2783,2670,2703,2735,2855,2772,2763,2735,2754,2766,2947,2864,2853,2781,2765,2747,2693,2757,2771,2941,2928,2916,2670,2860,2823,2832,2900,2975,2864,2911,2887,2845,2883,2806,2907,2932,3012,2855,2831,2807,2943,2809,2931,2940,2709,2642,2282,416,72,31,21,25,21,21,14,11,13,12,11,11,10,12,9,11,10,9,13,8,
11,10,11,15,11,14,10,11,16,15,19,24,20,16,32,53,233,1511,2305,2417,2546,2623,2663,2639,2871,2488,2595,2514,2672,2760,2771,2789,2676,2767,2698,2835,2843,2761,2841,2793,2821,2802,2758,2731,2739,2794,2844,2923,2804,2710,2818,2771,2837,2897,2897,2792,2814,2763,2798,2776,2815,2938,2872,2794,2862,2762,2818,2760,2875,2796,2906,2781,2813,2694,2771,2771,2724,2792,2822,2828,2808,2764,2773,2773,2667,2658,2888,2894,2782,2775,2821,2823,2761,2848,2942,2848,2847,2821,2876,2966,2804,2857,3031,2846,2840,2787,2903,2973,2884,2909,2838,2688,2671,2241,453,71,35,25,26,29,23,15,13,13,11,15,12,13,12,12,12,10,12,11,12,
11,12,11,12,10,10,12,15,12,14,19,24,20,24,24,46,237,1554,2446,2432,2582,2560,2631,2613,2834,2509,2603,2616,2826,2824,2728,2892,2739,2728,2779,2788,2873,2923,2877,2897,2954,2806,2540,2824,2832,2775,2864,2840,2819,2814,2802,2820,2818,2878,2949,2887,2857,2738,2853,2808,2795,2771,2919,2899,2786,2782,2796,2861,2758,2754,2736,2822,2720,2759,2770,2730,2633,2794,2786,2778,2711,2659,2717,2737,2705,2834,2813,2884,2814,2829,2683,2809,2746,2843,2959,2892,2798,2914,2783,2894,2772,2806,3045,2954,2866,2868,2798,3074,2837,2933,2927,2718,2629,2192,408,73,27,34,24,21,24,13,15,10,12,14,10,10,13,9,9,10,13,15,12,
11,13,9,13,10,14,11,9,11,14,23,20,23,26,32,62,265,1547,2321,2421,2678,2677,2720,2672,2915,2543,2670,2646,2773,2812,2810,2844,2797,2776,2815,2815,2979,2872,2931,2907,3007,2885,2770,2894,2825,2785,2801,2896,2785,2804,2776,2807,2905,2728,2880,2851,2845,2734,2728,2727,2823,2734,2737,2809,2799,2762,2734,2822,2710,2660,2765,2821,2745,2661,2676,2791,2711,2687,2847,2915,2776,2656,2756,2789,2712,2796,2765,2837,2742,2747,2905,2816,2791,2848,2870,2915,2919,2862,2888,2902,2817,2900,2878,2911,2836,2822,2904,3007,2970,2995,2897,2803,2719,1991,323,61,33,31,28,26,21,16,14,11,11,13,11,8,12,17,11,6,8,10,11,
11,13,10,8,12,9,12,11,15,13,18,19,29,22,36,43,248,1549,2455,2486,2653,2587,2694,2649,2951,2485,2574,2661,2781,2810,2822,2872,2755,2741,2744,2828,2836,2877,2858,2861,2918,2712,2851,2778,2815,2812,2810,2772,2744,2779,2756,2753,2732,2748,2857,2782,2899,2737,2699,2835,2845,2781,2767,2823,2771,2698,2764,2756,2806,2739,2808,2795,2855,2730,2666,2727,2752,2796,2851,2766,2753,2730,2715,2790,2727,2648,2803,2870,2899,2827,2869,2863,2811,2848,2996,2981,2941,2888,2802,2861,2801,2856,2937,2974,2900,2805,2849,3085,2904,2845,2857,2740,2619,2096,366,64,36,27,31,23,23,17,15,11,13,12,12,13,10,10,16,11,8,10,8,
10,13,12,13,11,12,9,9,12,14,19,19,21,26,35,45,255,1511,2354,2435,2525,2581,2653,2645,2853,2450,2593,2652,2707,2659,2636,2823,2753,2816,2728,2798,2808,2854,2759,2898,2849,2803,2836,2849,2767,2815,2841,2822,2913,2736,2792,2849,2840,2808,2912,2853,2855,2827,2854,2660,2838,2852,2825,2884,2879,2761,2736,2780,2810,2763,2829,2781,2852,2773,2690,2809,2761,2761,2800,2788,2786,2830,2733,2725,2756,2788,2709,2789,2745,2754,2842,2811,2891,2758,2920,2858,2866,2848,2843,2965,2730,2792,2915,2793,2868,2826,2838,3074,2884,2803,2827,2772,2755,2311,463,79,34,27,24,26,22,14,16,14,9,11,10,13,12,13,12,11,12,12,11,
11,9,12,10,13,12,9,12,14,18,26,19,25,20,30,41,263,1486,2347,2433,2558,2624,2529,2626,2798,2545,2638,2672,2806,2758,2787,2869,2752,2814,2840,2834,2834,2869,2769,2942,2984,2902,2800,2946,2819,2796,2892,2939,2882,2810,2745,2845,2808,2888,2888,2909,2748,2738,2834,2828,2792,2781,2829,2810,2832,2702,2745,2763,2819,2727,2815,2741,2736,2713,2656,2775,2768,2854,2742,2797,2745,2708,2741,2728,2681,2802,2758,2814,2739,2743,2663,2760,2876,2812,2951,2900,2790,2784,2778,2848,2807,2854,2972,2894,2984,2857,2799,3047,2854,2999,2835,2766,2681,2306,519,70,33,27,24,23,26,14,19,13,11,12,13,8,11,12,11,13,15,11,12,
10,12,11,11,10,13,14,14,11,14,26,19,27,21,36,44,254,1443,2453,2459,2596,2732,2593,2560,2959,2601,2741,2618,2689,2706,2763,2859,2801,2788,2773,2716,2898,2904,2834,2903,2967,2819,2788,2793,2793,2769,2779,2832,2731,2770,2759,2834,2667,2819,2888,2829,2794,2731,2826,2690,2713,2831,2826,2764,2762,2674,2671,2658,2729,2691,2696,2708,2720,2718,2627,2733,2832,2756,2750,2779,2742,2759,2715,2768,2766,2690,2809,2918,2820,2746,2845,2814,2854,2846,2906,2953,2933,2835,2869,2904,2830,2839,2923,2931,2892,2851,2921,3016,2788,2883,2864,2774,2656,2277,495,78,34,25,23,27,22,19,14,12,11,10,11,13,9,9,15,12,13,11,9,
8,13,10,10,7,12,11,13,15,11,27,19,21,23,28,43,227,1381,2442,2506,2669,2580,2705,2675,2906,2475,2682,2639,2704,2824,2697,2802,2786,2758,2753,2789,2888,2781,2811,2914,2856,2779,2814,2799,2753,2831,2855,2876,2789,2798,2804,2812,2748,2826,2932,2918,2831,2878,2765,2706,2824,2878,2869,2921,2846,2799,2691,2745,2797,2772,2843,2795,2844,2747,2742,2757,2753,2769,2789,2899,2798,2829,2719,2842,2767,2725,2846,2853,2899,2821,2812,2863,2893,2855,2958,2911,2938,2861,2786,2972,2741,2846,2935,2975,2874,2762,2761,3077,2770,2911,2861,2743,2633,2276,483,81,28,29,31,17,21,13,15,13,11,10,13,10,11,10,9,12,7,12,8,
11,12,13,11,9,9,13,13,12,12,20,20,20,28,29,49,189,1298,2357,2358,2588,2659,2638,2562,2958,2556,2658,2593,2754,2741,2698,2870,2694,2774,2719,2769,2894,2840,2830,2923,2822,2834,2771,2754,2862,2786,2862,2830,2845,2859,2798,2803,2811,3010,2897,2843,2852,2767,2761,2804,2815,2828,2851,2995,2786,2777,2727,2747,2718,2769,2815,2814,2833,2821,2739,2687,2773,2764,2822,2824,2710,2738,2706,2676,2677,2663,2705,2786,2772,2743,2861,2649,2475,2810,2909,2965,2876,2796,2799,2821,2780,2826,2966,2858,2821,2851,2795,3090,2788,2835,2843,2710,2550,2202,453,73,34,28,20,29,20,15,13,16,12,13,11,11,10,10,14,11,13,8,9,
9,9,10,12,8,10,8,12,13,15,24,19,23,18,33,39,198,1295,2397,2372,2531,2661,2668,2592,2944,2517,2584,2570,2768,2806,2797,2859,2708,2699,2733,2866,2844,2896,2934,2846,2948,2851,2745,2814,2820,2875,2835,2818,2905,2829,2848,2816,2913,2869,2885,2871,2860,2774,2718,2789,2783,2834,2768,2834,2784,2749,2699,2834,2757,2723,2680,2759,2816,2717,2657,2726,2683,2704,2682,2789,2639,2684,2728,2708,2696,2571,2709,2866,2732,2718,2736,2675,2674,2769,2812,2855,2739,2816,2729,2799,2746,2813,2916,2959,2798,2812,2769,3013,2870,2754,2854,2691,2640,2192,445,78,34,33,25,23,29,13,15,13,9,9,12,14,11,12,10,8,10,9,9,
13,8,11,12,13,15,11,12,11,12,20,19,28,26,25,35,189,1349,2448,2466,2571,2689,2675,2688,2913,2595,2602,2600,2716,2778,2844,2852,2704,2792,2759,2836,2906,2855,2841,2841,2828,2790,2806,2806,2801,2792,2779,2857,2832,2841,2732,2648,2853,2771,2694,2775,2760,2772,2785,2802,2759,2772,2735,2843,2760,2785,2651,2719,2713,2725,2655,2734,2740,2674,2643,2712,2710,2743,2736,2835,2820,2741,2672,2709,2643,2785,2768,2833,2795,2741,2773,2801,2745,2808,3002,3035,2926,2850,2777,2970,2889,2827,2951,2993,2896,2812,2863,3096,2822,2964,2905,2837,2550,2269,493,71,32,25,20,26,25,16,15,10,12,12,10,16,13,12,9,12,10,8,10,
8,10,10,13,8,11,15,12,16,13,16,19,20,25,31,39,217,1268,2327,2354,2533,2596,2629,2651,2803,2492,2568,2647,2669,2717,2654,2799,2673,2738,2707,2725,2779,2794,2752,2852,2788,2706,2725,2658,2695,2668,2757,2783,2770,2655,2664,2756,2837,2789,2795,2736,2871,2742,2789,2671,2749,2742,2811,2765,2781,2742,2700,2625,2745,2718,2698,2802,2753,2759,2647,2690,2697,2744,2777,2832,2750,2672,2653,2761,2800,2686,2815,2871,2870,2783,2798,2786,2836,2780,2922,2850,2798,2921,2770,2896,2844,2873,2868,2920,2863,2806,2739,2988,2870,2871,2784,2780,2683,2263,487,74,37,26,28,23,17,19,18,10,11,8,10,11,11,12,7,11,9,9,10,
14,11,12,12,10,9,9,10,13,14,27,19,18,18,29,49,198,1193,2383,2249,2465,2573,2663,2506,2710,2451,2540,2603,2676,2684,2674,2774,2712,2758,2705,2750,2836,2777,2743,2873,2723,2818,2732,2733,2735,2705,2768,2883,2840,2783,2762,2889,2849,2820,2912,2846,2923,2796,2777,2755,2711,2722,2797,2856,2735,2832,2624,2735,2765,2763,2834,2839,2782,2741,2690,2710,2770,2823,2906,2835,2723,2793,2790,2768,2708,2791,2780,2845,2820,2850,2734,2845,2876,2880,2866,2852,2882,2917,2807,2910,2806,2742,2896,2876,2822,2822,2845,3059,2924,2868,2902,2810,2629,2416,519,75,25,30,22,15,20,13,16,13,11,11,11,9,13,12,14,10,10,9,9,
10,9,9,14,8,8,11,10,15,18,22,26,21,19,26,33,204,1178,2354,2275,2493,2480,2513,2419,2779,2471,2559,2534,2696,2709,2567,2764,2778,2712,2753,2684,2778,2749,2765,2818,2822,2787,2744,2763,2779,2814,2819,2771,2808,2816,2615,2825,2806,2795,2873,2803,2817,2770,2688,2734,2790,2833,2877,2917,2842,2790,2630,2671,2766,2788,2812,2638,2764,2658,2674,2649,2726,2670,2784,2729,2706,2767,2656,2713,2720,2804,2717,2813,2828,2609,2679,2765,2825,2811,2827,2934,2905,2818,2794,2903,2802,2783,2948,2866,2915,2878,2712,3052,2839,2826,2927,2777,2643,2442,564,75,26,30,20,13,20,11,13,10,11,8,10,8,10,10,8,10,9,11,11,
11,13,13,10,7,14,13,11,14,12,17,19,31,21,26,37,183,1128,2412,2318,2622,2596,2638,2598,2765,2550,2674,2715,2709,2733,2846,2886,2826,2776,2775,2789,2914,2901,2850,2842,2922,2808,2788,2796,2809,2704,2776,2911,2818,2835,2802,2798,2749,2785,2884,2844,2789,2813,2709,2716,2710,2799,2767,2774,2749,2777,2745,2696,2716,2774,2725,2826,2774,2814,2761,2658,2788,2792,2806,2772,2887,2806,2753,2769,2814,2750,2782,2931,2869,2852,2878,2842,2855,2876,2931,2939,2999,2910,2867,2992,2811,2854,2922,2948,2928,2831,2757,3062,2758,2847,2987,2903,2616,2389,533,84,34,30,20,23,23,19,15,11,12,12,10,10,12,11,10,12,12,10,10,
12,11,13,11,10,11,13,8,13,16,20,16,21,25,25,39,164,1043,2299,2225,2520,2562,2620,2606,2766,2553,2511,2498,2661,2672,2649,2749,2706,2724,2666,2673,2765,2793,2742,2785,2805,2807,2773,2793,2789,2758,2734,2819,2725,2739,2696,2818,2764,2759,2873,2867,2759,2839,2761,2779,2851,2752,2835,2828,2841,2722,2757,2722,2755,2764,2826,2778,2866,2751,2688,2732,2747,2709,2797,2873,2761,2797,2657,2603,2791,2741,2760,2836,2765,2797,2715,2700,2824,2806,2729,2896,2869,2844,2735,2839,2802,2755,2941,2879,2835,2770,2666,3043,2782,2795,2854,2746,2535,2274,542,81,32,18,24,21,22,16,12,15,11,11,10,11,14,9,14,12,8,15,14,
11,11,10,13,13,10,11,9,13,14,17,18,25,18,30,40,179,1135,2331,2276,2478,2463,2604,2582,2771,2531,2507,2575,2710,2672,2680,2808,2715,2792,2734,2719,2831,2886,2847,2842,2891,2818,2802,2797,2881,2826,2879,2895,2886,2881,2792,2820,2887,2906,2940,2900,2853,2809,2780,2875,2850,2841,2700,2829,2851,2750,2713,2713,2731,2696,2688,2807,2753,2727,2705,2783,2798,2671,2769,2862,2775,2679,2660,2718,2676,2705,2758,2797,2779,2691,2769,2782,2834,2718,2816,2912,2966,2844,2697,2817,2783,2725,2835,2890,2711,2770,2649,2979,2707,2673,2767,2638,2521,2325,512,72,28,25,19,18,19,16,18,7,11,14,13,9,13,10,10,12,12,10,14,
9,12,13,12,7,13,11,10,12,14,20,20,16,22,25,38,184,1102,2295,2322,2496,2580,2601,2575,2815,2555,2579,2741,2673,2697,2817,2785,2728,2738,2671,2684,2795,2821,2872,2799,2931,2724,2663,2769,2845,2831,2871,2827,2822,2749,2778,2820,2830,2894,2829,2763,2790,2794,2744,2694,2868,2702,2684,2725,2747,2709,2691,2731,2748,2648,2663,2859,2802,2660,2700,2672,2660,2615,2720,2771,2859,2675,2739,2649,2713,2715,2691,2792,2856,2699,2705,2694,2707,2640,2702,2904,2888,2767,2736,2775,2711,2697,2823,2799,2822,2683,2624,2887,2852,2636,2721,2742,2542,2247,562,84,33,26,18,23,22,16,14,8,10,12,12,10,14,10,9,10,10,11,7,
11,14,15,9,9,13,13,12,10,14,20,24,23,23,22,36,185,1101,2254,2340,2530,2515,2599,2536,2769,2626,2581,2501,2679,2699,2772,2739,2722,2688,2715,2703,2763,2841,2733,2765,2791,2682,2780,2696,2684,2803,2784,2697,2810,2798,2725,2688,2863,2711,2736,2796,2765,2627,2602,2728,2770,2713,2731,2741,2704,2658,2598,2638,2745,2715,2615,2726,2706,2732,2636,2687,2700,2603,2653,2740,2783,2715,2757,2689,2741,2665,2737,2690,2776,2785,2615,2685,2750,2694,2774,2800,2856,2854,2736,2794,2785,2747,2818,2821,2738,2700,2698,2958,2820,2744,2724,2686,2576,2326,542,85,36,26,22,25,24,15,14,9,13,12,14,12,12,9,11,10,9,12,12,
9,8,10,10,8,11,12,12,13,9,18,18,23,17,24,39,185,1167,2210,2222,2420,2517,2575,2423,2694,2422,2445,2531,2612,2595,2639,2631,2572,2705,2743,2656,2701,2806,2682,2692,2783,2690,2680,2699,2758,2576,2700,2761,2705,2851,2612,2734,2737,2803,2669,2764,2818,2700,2691,2757,2714,2728,2702,2702,2818,2695,2640,2630,2717,2681,2714,2830,2778,2680,2710,2607,2727,2708,2766,2809,2791,2770,2691,2668,2779,2795,2726,2783,2814,2777,2798,2714,2789,2751,2779,2785,2815,2840,2730,2760,2736,2722,2757,2788,2794,2757,2663,2930,2772,2683,2651,2627,2512,2284,501,81,32,28,24,24,26,15,14,14,14,12,14,13,12,11,11,14,11,8,10,
9,11,12,10,8,11,12,13,11,15,18,21,24,19,31,37,183,1101,2348,2205,2458,2548,2450,2373,2734,2501,2472,2521,2657,2634,2595,2605,2654,2610,2662,2663,2722,2801,2678,2656,2751,2750,2747,2680,2741,2750,2687,2851,2792,2824,2754,2743,2784,2769,2819,2787,2362,2793,2647,2802,2794,2684,2750,2763,2757,2741,2747,2692,2620,2807,2709,2717,2761,2694,2658,2051,2668,2691,2714,2803,2859,2668,2679,2730,2670,2692,2770,2807,2756,2698,2747,2764,2780,2777,2747,2765,2872,2742,2772,2834,2757,2743,2669,2833,2790,2781,2621,2944,2789,2658,2724,2712,2529,2258,528,83,30,26,26,21,19,17,14,12,13,14,12,9,11,7,10,8,10,10,9,
12,13,8,13,10,9,12,10,12,12,23,17,19,21,18,28,160,1003,2190,2102,2339,2393,2407,2386,2559,2498,2436,2445,2468,2575,2619,2682,2570,2770,2547,2632,2609,2752,2675,2672,2794,2776,2709,2639,2643,2717,2724,2721,2698,2669,2666,2612,2751,2693,2651,2819,2741,2669,2647,2652,2682,2774,2771,2790,2825,2718,2672,2588,2640,2712,2705,2764,2654,2738,2605,2435,2654,2648,2594,2735,2765,2673,2723,2593,2617,2664,2637,2755,2798,2727,2641,2708,2813,2710,2690,2843,2826,2786,2650,2686,2718,2642,2717,2775,2757,2694,2692,2961,2826,2670,2676,2631,2473,2386,600,84,27,19,22,19,22,11,19,13,12,11,11,13,8,10,9,9,10,9,13,
11,11,13,13,11,10,11,14,10,11,16,15,18,18,25,38,189,1074,2336,2376,2492,2634,2659,2571,2762,2679,2657,2627,2773,2831,2815,2923,2806,2943,2889,2820,2519,2974,2892,2985,2910,2895,2883,2948,3028,2911,2974,2944,2992,2940,2975,3040,3006,3005,2959,2940,2971,3006,2910,2934,2927,2944,2894,2911,2905,2947,2860,2786,2764,2858,2935,2913,2936,2995,2922,2894,2843,2873,2973,2971,3010,2824,2494,2894,2992,2942,2860,2921,2967,2947,2971,2882,2897,2961,2898,3008,3046,3023,2846,2971,2944,2862,2932,2992,2942,2709,2754,3065,2886,2747,2905,2833,2620,2271,587,84,24,21,19,22,18,11,16,16,12,10,14,11,12,10,10,10,7,12,6,
11,11,13,12,10,13,13,16,15,11,15,16,20,21,20,28,176,900,2126,2166,2336,2461,2383,2468,2611,2443,2554,2478,2545,2660,2706,2688,2805,2701,2697,2673,2733,2762,2824,2847,2831,2789,2866,2777,2793,2738,2831,2773,2715,2885,2799,2893,2752,2867,2811,2854,2928,2892,2732,2797,2804,2884,2909,2819,2864,2795,2845,2782,2843,2808,2783,2831,2855,2833,2731,2786,2679,2673,2754,2716,2851,2735,2764,2723,2631,2663,2776,2878,2765,2740,2740,2641,2738,2596,2726,2904,2839,2724,2691,2761,2604,2651,2686,2790,2827,2677,2613,2827,2701,2603,2650,2573,2423,2154,553,79,29,22,24,15,22,17,14,9,11,9,8,11,10,10,8,9,10,11,12,
13,15,14,10,11,15,11,12,12,11,14,17,20,19,19,27,169,965,2196,2297,2441,2488,2637,2530,2699,2592,2585,2226,2580,2773,2749,2877,2804,2870,2877,2815,2850,2919,2846,2937,2909,3004,2853,2900,2864,2897,2909,2886,2941,2954,2896,2897,3029,2905,2978,2991,2986,2999,2890,2837,2995,2862,2901,2880,2873,2845,2964,2828,2843,2931,2736,2852,2932,2649,2780,2848,2840,2754,2782,2868,2930,2859,2830,2799,2773,2738,2712,2204,2940,2822,2754,2802,2872,2725,2765,2850,2935,2858,2797,2829,2749,2674,2731,2859,2842,2701,2634,2782,2801,2612,2659,2564,2481,2190,528,80,28,28,23,27,12,12,13,10,12,12,8,11,10,14,12,14,12,7,10,
10,10,10,12,9,12,12,16,8,12,16,10,17,17,20,32,162,928,2162,2199,2407,2531,2542,2484,2773,2496,2597,2220,2627,2707,2679,2757,2764,2888,2715,2686,2812,2903,2923,2817,2876,2782,2782,2762,2764,2786,2876,2787,2837,2879,2806,2817,2814,2886,2832,2837,2857,2852,2765,2782,2726,2824,2810,2823,2755,2737,2655,2706,2755,2738,2703,2799,2833,2599,2667,2645,2698,2677,2699,2742,2769,2718,2692,2655,2702,2601,2577,2642,2744,2709,2626,2656,2767,2604,2644,2632,2722,2706,2570,2675,2638,2581,2646,2715,2672,2652,2458,2724,2615,2516,2449,2463,2320,2087,513,84,27,26,15,18,19,18,16,12,12,11,12,13,11,14,11,8,11,10,11,
10,11,12,11,9,12,14,10,12,10,12,13,18,19,24,37,169,897,2214,2230,2309,2524,2501,2454,2742,2510,2481,2485,2646,2670,2740,2745,2737,2818,2765,2664,2748,2933,2738,2724,2915,2787,2790,2738,2804,2759,2704,2843,2832,2851,2715,2786,2826,2803,2832,2890,2867,2849,2719,2688,2852,2751,2780,2762,2815,2773,2707,2725,2648,2673,2707,2772,2748,2767,2607,2563,2622,2633,2599,2648,2727,2709,2629,2578,2671,2561,2594,2697,2761,2720,2435,2614,2643,2662,2560,2710,2739,2720,2640,2661,2627,2643,2645,2609,2625,2492,2539,2682,2659,2519,2507,2441,2320,2139,563,82,25,19,18,17,18,11,11,11,10,8,7,10,8,12,12,9,15,9,10,
9,7,8,10,10,7,11,11,9,13,17,15,15,15,20,32,150,921,2287,2304,2356,2466,2640,2477,2719,2586,2487,2505,2569,2688,2713,2796,2764,2823,2797,2777,2765,2949,2737,2779,2799,2835,2691,2754,2851,2820,2791,2848,2868,2759,2769,2743,2849,2771,2832,2835,2781,2714,2728,2698,2695,2683,2620,2668,2720,2693,2675,2590,2584,2674,2712,2710,2668,2722,2688,2559,2638,2744,2655,2699,2707,2722,2621,2625,2596,2669,2633,2662,2760,2731,2561,2739,2721,2655,2648,2698,2692,2633,2696,2704,2690,2602,2552,2650,2631,2562,2434,2743,2615,2525,2497,2466,2443,2265,608,66,25,20,22,13,18,15,12,9,9,12,9,11,10,10,10,14,8,10,11,
11,12,11,10,13,9,10,8,10,9,12,14,15,19,20,22,162,876,2179,2098,2188,2261,2316,2303,2411,2309,2315,2393,2503,2385,2321,2440,2517,2509,2435,2401,2502,2489,2501,2412,2425,2351,2309,2406,2404,2384,2354,2298,2449,2451,2352,2341,2426,2416,2323,2391,2360,2254,2306,2257,2236,2237,2117,2014,2067,2114,2050,2023,1935,2128,2190,2101,2125,2112,2217,2061,2036,2216,2130,2121,2147,2075,2082,2152,2170,2150,2081,2136,2155,2162,2094,2189,2137,2063,2042,2027,2066,2006,1924,2049,2070,2066,1931,1968,1918,1841,1780,1901,1907,1840,1885,1848,1834,1654,561,61,17,17,22,14,15,13,12,12,8,13,10,8,11,11,12,9,11,13,8,
10,8,13,10,7,10,11,8,10,10,11,11,17,17,15,20,78,316,699,712,798,799,824,798,818,733,775,813,890,855,798,786,815,765,767,745,816,818,835,774,755,685,709,793,787,739,684,711,762,751,758,742,690,738,725,717,674,646,665,693,654,639,602,509,514,570,544,570,513,554,632,565,569,616,550,557,589,583,552,559,554,549,521,526,548,588,539,523,551,527,552,595,584,542,484,499,495,448,474,502,500,548,511,494,454,437,405,430,431,416,411,426,432,371,156,29,16,15,10,10,14,11,13,13,12,8,10,11,13,9,9,10,11,11,10,
9,9,10,8,11,8,12,11,11,9,11,11,10,11,14,11,18,25,40,53,50,46,59,63,59,50,47,71,69,52,56,58,55,48,44,48,54,55,48,50,74,47,59,60,68,53,52,56,52,64,66,62,52,51,56,52,57,43,56,59,59,53,45,42,45,61,45,40,45,37,44,44,47,40,44,46,50,46,47,42,43,43,38,44,58,46,45,34,49,41,36,48,46,45,47,45,42,39,43,42,43,40,47,33,43,31,33,36,29,34,26,34,24,24,16,16,16,14,11,11,9,9,11,10,12,12,14,9,8,10,11,8,12,16,10,
10,9,12,14,11,8,8,12,11,13,13,11,8,15,14,12,13,15,21,26,18,22,24,29,28,29,28,29,24,33,32,31,35,30,27,28,32,32,35,36,38,33,29,41,37,37,39,33,40,34,39,40,34,33,40,30,33,37,35,33,33,41,37,34,33,32,37,33,34,38,33,34,36,37,35,36,34,34,42,24,38,35,33,33,32,31,36,32,32,30,37,35,21,31,34,32,33,36,40,35,32,34,29,31,26,27,31,26,30,28,23,22,23,22,15,12,14,10,12,14,8,12,10,10,8,12,10,10,8,13,7,11,10,9,9,
9,14,15,13,11,11,12,12,10,10,12,12,13,14,14,13,10,15,18,24,17,23,19,21,27,23,25,29,22,25,21,23,27,30,27,27,37,28,25,25,26,33,25,26,29,21,24,23,30,28,33,27,33,22,22,27,29,27,29,21,25,28,28,31,29,30,30,20,27,38,24,25,34,25,27,26,29,32,25,19,26,27,22,28,31,26,25,25,27,27,32,23,26,26,26,21,22,30,28,25,26,22,29,29,24,16,26,22,20,22,22,16,23,17,13,10,10,11,12,16,10,9,9,12,8,8,12,14,8,10,10,10,10,11,7,
10,9,10,8,10,10,8,11,12,12,11,9,14,13,14,10,12,13,17,14,18,19,19,14,20,27,25,23,21,16,21,24,16,21,23,21,20,25,25,22,19,22,26,24,26,20,25,26,20,28,27,28,25,28,29,27,22,25,25,20,26,21,26,24,33,23,25,21,22,25,28,25,20,20,22,25,25,23,29,21,22,21,20,24,23,21,24,22,24,26,24,22,29,26,25,20,18,32,24,19,25,27,19,21,20,19,22,20,21,18,14,18,17,15,12,9,7,14,10,16,9,12,9,9,8,7,12,12,10,8,10,12,10,11,9,
12,7,11,11,8,11,12,9,11,8,8,13,11,12,13,10,12,16,12,18,19,17,15,22,18,19,18,20,20,16,18,28,16,23,28,24,26,17,20,20,19,26,21,20,25,23,25,23,23,27,19,17,22,27,25,23,25,27,30,22,20,26,19,29,22,27,27,21,18,15,20,18,24,23,26,33,22,24,26,20,21,23,24,19,24,20,19,23,17,21,19,18,22,23,14,21,25,20,24,19,15,25,17,18,18,21,22,19,16,17,18,13,18,18,16,10,10,11,9,8,10,13,9,13,9,11,8,10,12,10,7,10,10,10,8,
9,11,10,8,9,11,10,11,11,12,13,13,9,10,13,10,12,19,14,11,10,14,14,15,18,18,15,14,17,19,18,17,16,24,16,20,22,20,17,19,20,21,18,18,23,20,18,21,24,19,18,23,17,21,20,17,21,17,25,21,25,18,21,19,20,18,17,13,20,22,19,16,16,17,21,18,19,19,14,19,20,20,19,18,18,23,19,21,19,16,19,17,15,17,22,18,20,28,20,22,19,15,18,17,15,16,16,19,12,18,13,16,15,11,9,9,10,12,11,11,12,8,11,8,13,8,11,8,12,12,12,8,10,11,11,
11,14,10,10,9,11,11,8,9,10,12,11,11,11,12,11,11,10,15,13,17,12,13,16,13,17,15,14,16,17,21,18,15,25,19,17,18,18,18,20,14,21,18,13,22,18,14,20,23,18,21,23,15,22,20,20,19,18,16,14,16,18,19,16,21,14,21,26,19,16,17,15,19,22,17,24,15,14,18,20,19,16,17,15,18,18,13,20,15,14,19,16,19,17,22,14,20,20,19,22,16,13,18,19,12,13,15,17,16,13,19,13,15,16,10,12,12,7,11,10,12,12,8,10,11,11,10,11,9,9,11,10,10,10,9,
8,8,8,10,12,9,12,9,13,13,13,11,13,9,11,10,10,13,11,14,13,12,14,11,12,12,16,13,12,12,16,14,14,15,15,13,16,16,12,11,14,14,11,17,13,17,19,11,12,14,12,16,18,14,16,12,10,13,16,17,16,14,15,14,11,14,14,15,19,16,14,14,13,15,19,13,14,17,18,14,16,12,11,15,17,12,12,14,14,13,14,14,12,10,11,13,11,13,15,16,9,13,15,12,16,14,14,14,12,12,12,9,13,10,7,10,10,9,11,12,12,9,7,12,7,14,9,8,9,11,9,8,7,11,10,
11,10,10,9,12,10,9,11,10,12,9,11,13,17,13,12,10,11,12,14,15,14,13,12,11,11,13,11,9,14,13,15,14,12,12,9,12,10,13,10,13,17,10,14,16,14,12,15,11,15,12,12,12,12,16,15,14,15,10,11,13,15,14,12,11,12,13,14,12,13,12,16,17,14,10,15,12,9,11,14,12,14,15,10,11,14,15,13,11,16,16,15,14,11,19,9,12,14,16,9,15,11,11,7,15,9,11,12,10,9,11,11,13,12,10,9,11,10,11,10,8,12,7,10,9,7,9,10,9,10,9,8,7,11,11,
8,7,10,11,11,11,7,11,10,11,12,10,15,11,10,12,12,11,10,9,14,11,10,8,11,11,13,14,14,10,9,15,12,14,14,10,9,12,14,10,13,17,10,13,14,12,11,11,14,10,16,14,12,10,10,14,12,15,10,10,12,12,12,16,11,11,11,11,9,12,13,8,11,13,12,11,10,12,13,13,9,18,9,9,12,11,12,14,12,9,13,10,12,10,13,13,11,11,10,8,13,13,14,10,12,10,12,9,13,12,11,10,11,11,9,13,9,11,10,11,12,11,12,9,10,11,11,13,11,9,6,12,9,13,9,
11,6,9,9,9,10,10,11,10,10,11,9,13,13,10,11,13,15,10,11,10,11,14,10,11,16,9,10,13,14,9,15,6,13,11,12,11,13,12,11,10,10,11,14,14,14,12,14,12,13,10,10,8,11,13,16,15,8,10,12,11,10,10,12,13,9,13,12,12,10,12,11,11,8,10,11,15,13,14,12,14,10,11,11,13,14,11,16,11,14,7,13,12,7,14,13,13,12,11,9,14,14,13,9,13,13,13,14,12,12,10,13,14,12,10,13,10,11,9,10,12,11,10,11,14,8,11,8,12,10,7,11,10,13,7,
11,8,9,10,13,9,9,10,11,10,8,10,8,9,7,14,9,11,9,12,10,11,9,12,8,11,11,10,11,14,14,10,11,12,4,11,13,15,10,10,13,10,12,13,12,11,10,12,11,9,13,13,14,13,12,12,13,13,12,13,11,13,13,10,15,11,8,12,8,7,10,13,11,11,16,14,10,14,10,10,10,9,13,11,13,11,13,10,14,13,12,9,12,12,10,12,10,17,12,11,9,15,9,12,13,12,8,12,12,12,12,13,13,14,11,11,10,12,12,12,12,9,10,10,8,9,7,12,10,8,9,6,9,10,9,
12,13,8,9,11,13,9,8,9,10,8,11,13,11,10,9,11,11,13,10,11,13,10,14,12,14,14,10,9,8,10,12,11,14,14,12,12,13,12,12,15,11,9,9,13,12,10,11,12,11,11,14,14,12,10,14,11,13,13,10,13,10,10,11,12,9,9,10,13,12,12,11,11,9,11,10,11,15,11,13,10,10,13,14,13,7,11,12,14,9,10,10,13,16,10,8,10,13,10,8,12,12,14,11,13,11,12,14,11,11,9,10,10,10,9,13,9,12,12,12,10,11,11,9,11,9,10,12,9,10,8,10,10,9,9,
11,12,14,8,10,8,9,9,12,15,16,9,7,10,8,13,7,14,11,12,10,14,11,13,11,9,12,11,12,10,8,14,10,10,9,10,11,10,11,12,15,11,12,12,13,7,12,9,8,12,12,13,11,11,14,15,9,12,13,12,10,17,12,10,11,12,11,11,11,15,10,12,11,9,12,12,15,13,13,13,14,11,10,12,13,12,11,9,14,11,12,12,11,12,11,14,11,10,12,11,13,10,9,12,10,11,9,8,6,11,12,12,15,11,10,11,10,11,9,11,8,11,12,5,12,8,11,11,9,11,9,6,8,13,9,
11,6,10,6,11,9,14,8,11,8,8,10,11,12,9,10,12,7,12,11,8,9,10,11,11,12,15,10,9,11,12,9,12,11,14,17,10,8,9,10,8,12,11,11,11,11,10,15,14,11,15,12,11,13,11,14,10,9,15,7,14,9,9,13,13,13,14,11,10,12,13,15,10,10,14,13,8,13,7,12,10,11,12,13,9,9,12,8,10,9,8,11,9,13,14,14,11,12,11,10,14,11,12,11,14,11,12,12,10,10,10,13,12,8,9,10,11,12,12,12,11,11,9,9,10,10,9,11,12,11,10,7,8,9,11,
9,11,14,11,10,10,7,8,13,11,11,8,10,11,11,10,11,9,12,10,12,11,12,11,12,14,12,11,10,9,11,9,11,10,13,11,8,13,11,9,8,11,10,12,10,9,12,10,11,9,11,11,14,14,13,9,11,11,10,10,14,12,13,12,13,10,10,12,8,13,11,13,10,13,10,12,11,10,9,14,11,11,9,10,12,8,11,13,12,11,10,12,11,10,11,6,15,10,11,12,14,10,8,10,8,11,13,12,7,9,9,11,9,10,7,10,9,10,9,10,6,9,9,11,5,12,12,8,8,11,10,13,6,11,10,
9,11,8,11,8,11,9,9,12,12,9,11,9,14,10,9,11,8,9,12,13,9,11,12,8,9,12,10,11,10,15,8,11,8,9,12,9,15,8,12,7,10,11,9,12,12,11,7,10,7,12,12,14,10,14,11,11,11,12,13,12,12,14,11,11,11,12,11,14,12,8,11,10,11,9,10,12,14,12,12,10,9,10,13,8,9,8,11,10,9,10,8,8,9,10,14,11,10,11,10,11,12,10,8,15,8,14,13,12,9,11,14,9,10,13,10,12,12,9,14,13,9,8,9,12,11,11,12,7,10,12,13,11,10,12,
9,6,8,8,9,11,10,8,11,11,7,10,12,10,8,9,9,10,10,10,12,9,15,9,8,10,10,11,9,11,7,7,8,10,12,10,12,12,12,9,14,9,9,10,10,11,14,9,9,13,11,11,10,12,13,10,11,12,9,5,9,11,10,14,9,10,11,8,10,14,12,12,14,13,11,13,13,10,10,11,9,9,11,10,10,9,12,8,10,8,15,9,9,12,9,11,15,12,11,9,11,12,11,7,8,9,9,12,9,7,11,11,10,10,10,13,9,13,11,8,8,10,11,11,9,8,8,9,7,8,10,11,7,12,7,
7,7,8,10,7,13,7,11,11,9,10,9,11,8,12,9,12,11,8,9,9,11,9,13,11,9,11,12,9,14,9,9,10,12,11,10,9,8,10,8,10,10,11,8,10,10,11,10,11,11,12,9,12,11,11,9,10,10,8,12,11,10,8,10,10,12,11,11,10,12,8,6,9,10,11,12,8,10,9,9,10,11,9,13,10,14,11,10,12,9,10,9,12,11,12,13,10,10,11,11,8,12,8,12,10,12,11,10,10,14,10,11,11,12,9,10,9,12,8,10,11,7,11,13,9,15,9,9,9,10,10,11,9,11,10,
9,12,14,12,8,11,10,11,8,10,8,10,9,11,11,13,10,8,12,10,9,11,14,9,9,12,9,10,12,11,10,9,9,9,15,11,12,8,11,10,10,6,13,12,10,10,13,12,11,10,15,9,8,11,9,8,11,15,7,12,11,11,13,9,10,4,12,10,11,10,10,11,11,11,11,13,9,8,8,11,11,11,10,8,9,12,10,9,13,11,12,9,10,11,11,11,11,11,10,13,12,9,12,13,13,12,15,10,11,11,11,9,13,11,9,8,11,9,9,10,12,11,13,9,11,9,12,10,12,10,8,11,8,6,13,
8,8,8,12,9,10,10,9,9,9,8,11,7,12,9,12,11,9,8,9,11,9,9,9,10,8,8,11,10,11,10,12,10,12,9,12,6,12,13,9,10,10,13,11,11,9,11,11,10,10,6,10,11,10,9,11,10,12,11,10,11,12,11,9,8,11,8,11,12,12,11,13,8,9,9,11,9,10,13,11,10,7,12,15,9,11,13,8,11,11,11,12,12,12,10,9,7,11,11,9,13,13,12,10,13,12,11,12,9,14,10,6,8,10,11,9,10,12,14,9,12,10,11,9,11,9,10,9,8,13,12,9,12,8,10,
9,10,8,7,9,8,8,10,10,10,15,9,6,10,11,10,11,9,12,9,9,9,10,13,15,9,7,11,7,9,13,8,9,11,9,8,13,9,11,10,12,10,10,11,12,10,12,12,12,11,12,10,10,11,9,6,9,9,11,8,9,11,9,12,13,14,10,12,10,12,10,9,8,10,8,9,8,11,10,9,8,9,16,12,12,10,10,12,9,9,11,10,9,10,11,10,8,12,8,9,8,9,7,14,11,10,10,11,9,12,8,11,10,11,10,14,8,11,9,10,12,11,8,8,11,10,9,14,12,9,14,10,8,9,10,
14,12,10,10,10,12,8,12,9,9,7,11,8,8,10,15,8,10,11,8,10,7,11,11,10,12,9,16,9,14,12,13,10,11,11,8,7,11,12,11,12,10,7,10,12,7,10,10,12,11,10,8,13,14,13,9,12,11,10,8,9,7,7,10,13,13,10,13,13,8,16,11,9,12,11,10,11,7,13,12,7,11,11,13,9,13,9,14,10,8,12,13,12,8,9,12,8,12,11,12,11,10,7,10,9,8,10,10,11,14,7,10,12,6,10,12,11,9,9,10,9,13,10,11,10,9,9,10,10,12,13,9,10,10,9,
7,10,9,14,10,10,11,10,8,10,8,10,9,9,11,12,7,11,9,10,12,10,8,10,10,11,13,12,10,11,10,9,9,12,10,9,12,9,13,11,11,12,13,12,10,12,10,13,11,12,13,10,10,6,10,14,9,7,7,8,8,9,10,10,10,15,10,13,9,7,10,10,8,9,10,12,11,14,11,11,10,6,10,10,11,10,12,11,11,14,11,12,7,12,9,11,10,10,10,10,12,9,9,12,9,9,12,13,9,13,11,9,12,9,10,11,9,10,8,8,9,7,14,9,11,6,11,11,9,9,7,10,10,9,9,
9,9,12,10,13,13,10,11,10,12,10,12,11,9,10,10,10,12,10,12,11,9,14,9,9,15,12,12,8,13,9,10,11,9,11,8,9,11,12,9,8,11,9,10,8,11,10,10,10,11,7,12,10,10,8,9,11,6,10,13,10,12,10,10,11,10,11,9,11,10,10,9,9,9,10,10,14,10,10,8,12,8,11,10,11,10,11,10,9,12,8,10,9,13,10,11,7,6,9,8,6,13,9,13,14,9,9,12,10,10,11,8,10,9,10,8,10,11,13,10,7,10,11,9,9,11,10,11,13,6,8,9,9,9,9,
9,10,11,11,6,9,9,8,7,11,12,8,9,10,9,13,10,12,9,10,7,12,12,8,11,9,14,12,10,12,11,8,10,10,11,9,10,12,12,10,8,11,11,7,12,9,9,11,12,11,10,7,11,7,8,11,10,10,11,9,12,12,15,13,15,11,11,9,11,11,9,10,10,12,12,11,9,9,10,12,10,11,11,7,10,11,9,12,12,10,10,8,12,10,10,12,13,6,7,11,13,11,15,10,12,11,10,9,10,10,10,10,13,12,11,8,7,9,10,10,8,11,11,13,12,6,12,10,10,13,10,9,10,8,10,
1 9 10 11 12 8 9 8 10 11 15 9 12 12 10 11 12 12 13 10 14 14 10 12 13 11 11 12 11 13 6 13 13 13 13 10 11 18 13 8 13 12 11 11 11 12 8 13 13 12 12 10 10 12 14 11 12 12 13 13 11 14 12 14 7 16 12 8 17 16 13 11 11 11 10 13 15 10 13 9 14 11 9 15 16 9 12 16 12 14 10 14 11 10 10 14 13 14 12 14 16 10 7 17 11 14 10 16 12 13 8 11 8 14 12 9 8 14 9 12 12 11 7 11 12 11 9 7 11 13 9 10 8 11 7 10
2 10 8 10 11 11 8 13 9 10 10 9 11 10 9 10 13 11 10 9 8 14 10 9 10 12 11 13 14 13 12 13 14 13 13 11 11 16 9 13 9 9 12 11 12 9 14 13 13 14 17 10 14 12 11 12 14 12 14 12 12 17 8 12 9 13 17 16 14 13 16 15 9 12 15 15 11 12 13 13 14 16 18 16 13 16 17 14 12 15 12 13 9 15 12 13 14 13 15 16 11 13 13 14 11 11 13 14 10 15 12 14 7 12 11 10 13 12 8 12 8 10 10 12 8 7 10 8 10 9 12 9 11 11 8 9
3 10 9 11 12 7 7 8 10 9 7 7 11 8 16 9 9 11 13 13 14 13 8 11 11 14 14 11 14 13 12 13 13 13 15 13 11 8 12 13 13 11 14 13 14 11 11 15 16 9 12 16 9 14 8 11 11 15 10 17 10 12 13 14 16 13 15 18 11 15 12 8 13 16 10 13 17 15 14 15 15 11 16 14 13 15 10 12 11 12 15 10 14 12 12 15 13 12 11 12 10 12 11 20 10 10 11 11 14 12 13 11 11 14 12 10 9 10 10 13 11 12 9 6 10 8 8 9 10 8 9 10 8 8 9 10
4 10 15 10 9 12 10 12 10 10 12 10 12 8 11 14 10 14 11 14 9 9 11 12 13 15 14 17 19 17 11 15 20 12 12 14 16 13 16 18 13 19 18 14 19 14 22 16 17 12 18 11 16 14 11 20 15 18 19 16 13 11 20 14 15 23 15 17 20 19 18 18 13 18 20 25 16 15 18 17 19 17 20 19 16 14 16 17 19 20 15 15 17 16 21 14 18 15 17 22 15 14 17 16 13 21 14 12 15 11 19 12 11 12 7 13 14 12 11 11 8 12 13 9 8 10 9 9 11 9 10 9 10 10 12 8
5 11 10 14 11 11 9 10 11 9 13 5 7 11 11 13 12 10 16 13 16 13 16 13 16 16 17 14 15 15 13 14 14 15 16 13 18 15 19 14 20 16 16 14 14 16 18 17 15 21 17 20 18 19 17 14 14 15 17 14 20 18 19 20 14 19 21 17 14 20 20 23 13 16 18 15 24 17 20 15 12 18 18 15 16 19 19 22 17 18 15 15 21 14 20 18 19 15 16 19 17 17 17 18 19 16 16 16 19 14 15 16 13 12 10 8 15 9 10 9 11 10 9 11 7 14 12 11 9 10 11 12 10 11 9 7
6 9 14 8 8 7 8 10 10 12 11 12 15 12 8 12 11 11 14 15 15 16 21 14 24 22 25 20 18 19 21 26 18 23 17 19 27 20 22 26 23 23 28 21 24 23 19 20 25 26 21 28 21 27 29 26 28 30 24 30 31 29 27 29 26 22 21 28 27 29 24 30 24 29 31 22 27 30 27 22 25 27 29 26 30 21 34 25 25 27 21 24 25 33 24 25 27 27 21 28 22 25 27 23 24 21 24 26 18 19 19 18 17 14 12 14 11 12 13 14 11 9 11 9 14 13 12 10 10 10 8 6 8 10 10 10
7 11 6 9 8 12 9 12 13 11 10 12 9 9 16 14 8 15 14 19 15 17 16 22 22 16 18 26 24 26 23 25 22 28 18 27 25 26 25 23 24 27 23 25 22 27 28 31 22 24 27 29 21 30 26 21 25 30 25 23 25 31 30 31 26 28 29 33 30 24 21 28 22 22 26 29 31 26 33 25 31 24 29 26 29 25 26 24 27 28 23 27 25 25 26 29 35 29 23 32 27 28 31 20 26 24 23 23 20 20 26 23 21 17 15 12 13 15 11 10 10 12 11 7 9 9 8 11 15 10 10 9 8 12 11 7
8 10 10 10 11 11 11 9 11 13 10 8 11 16 12 13 10 16 22 24 25 22 23 16 26 25 28 31 27 28 27 25 32 29 25 33 34 32 29 27 29 28 26 30 20 32 25 37 30 35 34 34 34 37 36 32 33 33 34 36 25 28 36 39 28 34 34 36 39 39 34 33 34 37 39 38 31 31 35 37 38 33 34 39 34 48 32 31 41 34 30 40 32 30 43 33 36 37 34 36 42 39 29 30 25 31 30 27 24 26 24 24 23 18 14 10 13 11 16 13 11 12 11 14 14 9 8 11 9 10 11 10 11 11 10 11
9 9 13 9 9 13 10 10 8 10 9 13 14 10 12 12 14 19 28 23 31 25 24 28 32 26 29 32 26 37 32 36 31 33 39 38 36 34 47 45 40 31 38 39 40 41 43 46 35 41 38 38 40 44 46 43 39 33 42 35 45 44 50 47 38 40 42 45 42 52 47 37 41 51 47 46 44 47 39 44 37 33 40 37 48 40 45 40 42 40 40 44 45 41 43 47 38 38 43 44 51 42 45 51 39 37 42 38 30 23 30 28 30 22 12 16 14 13 9 15 10 15 7 11 9 9 10 11 11 10 8 10 11 7 10 9
10 9 10 10 10 14 10 8 12 14 12 14 9 14 10 12 12 20 26 33 37 39 43 49 39 54 49 52 47 48 52 49 53 49 62 55 64 63 68 66 68 70 65 70 60 66 64 74 53 62 66 63 74 72 74 77 74 65 72 88 66 87 80 72 77 82 87 80 78 88 67 80 83 77 85 86 90 99 83 79 80 83 70 85 76 86 90 91 82 79 75 87 100 84 85 100 93 94 103 88 93 104 87 93 95 93 83 79 80 77 71 70 53 41 20 11 16 16 14 14 15 9 14 10 8 11 11 12 9 13 10 11 7 11 9 11
11 10 10 12 10 8 8 10 9 6 8 11 11 14 11 16 15 38 84 78 93 96 104 106 102 122 124 120 135 133 127 117 132 123 130 158 141 155 158 138 147 146 150 143 164 176 155 153 152 150 157 162 158 158 160 162 168 154 164 168 173 171 193 167 154 163 165 166 172 186 173 157 171 157 180 185 170 174 180 167 182 165 157 205 182 189 173 196 184 183 186 183 212 195 199 191 207 185 188 167 194 196 214 208 218 184 171 176 175 165 155 131 127 99 38 18 14 13 15 8 10 12 11 11 10 13 7 10 9 8 12 8 9 14 12 8
12 14 11 11 9 12 12 13 11 11 10 14 13 14 16 19 67 268 437 481 512 587 561 566 639 628 659 600 590 636 653 664 640 728 731 779 778 758 762 725 780 817 807 722 751 746 807 823 792 830 720 743 793 774 809 870 876 978 992 1040 1034 1037 940 882 998 1060 968 981 1069 963 954 996 1008 1015 919 979 1126 1082 1049 1098 1127 992 1017 1113 1127 1189 1193 1135 1066 1024 1051 1144 1138 1114 1222 1211 1206 1154 1152 1200 1218 1138 1215 1287 1332 1251 1252 1332 1218 1257 1172 1084 967 917 305 43 24 21 17 16 15 13 11 13 14 9 10 11 12 11 12 12 11 8 11 14
13 12 13 12 10 12 12 13 12 14 15 15 10 18 20 34 175 1038 2004 2124 2202 2296 2312 2370 2428 2309 2431 2402 2349 2422 2408 2442 2491 2646 2557 2589 2651 2610 2566 2636 2649 2650 2702 2730 2620 2815 2640 2675 2645 2642 2529 2678 2756 2771 2652 2726 2726 2844 2837 2831 2928 2882 2734 2656 2767 2971 2834 2831 2956 2808 2848 2867 2900 2888 2685 2901 2983 2911 2964 2944 2904 2772 2845 2900 3000 2963 3041 2934 2879 2879 2800 2944 3007 2931 2968 2999 2983 2972 2864 3086 3027 3015 3011 3036 3065 2803 2705 2943 2801 2777 2718 2687 2474 2332 662 74 28 20 19 14 15 12 12 11 10 10 12 11 10 10 9 11 13 9 9 9
14 9 10 10 15 13 7 10 12 12 17 17 20 20 22 31 227 1210 2350 2378 2525 2558 2510 2376 2548 2489 2573 2619 2706 2670 2676 2625 2657 2884 2770 2722 2776 2808 2746 2848 2853 2737 2746 2883 2886 2943 2769 2744 2856 2824 2900 2861 2955 2896 2799 2841 2884 2874 2799 2840 2884 2858 2817 2812 2835 2861 2811 2919 2856 2863 2874 2804 2822 2835 2859 2981 2941 2921 2781 2857 2788 2895 2829 2956 2930 2820 2833 2794 2943 2928 2884 3056 2971 2919 2888 2814 2993 2867 2860 3015 2865 2824 2817 2836 2831 2797 2602 2884 2719 2662 2618 2623 2443 2342 727 92 29 24 19 15 22 13 14 11 15 12 10 9 8 10 9 10 10 10 10 10
15 10 13 8 10 12 15 11 13 17 17 17 19 19 28 44 210 1232 2390 2402 2576 2658 2707 2603 2845 2677 2721 2778 2812 2896 2799 2815 2738 2998 2886 2885 2963 3058 2947 2872 2897 2939 2948 2977 2982 3093 2978 2939 2937 2974 2942 2931 3031 3067 2961 2908 2936 2914 2951 2915 3085 3081 2918 2948 2968 3011 3004 2997 3092 2972 2970 2875 2949 2911 2905 3010 3082 3049 3040 3012 2961 2888 2907 2884 3047 2996 2953 3015 2975 3057 2977 3045 3101 3047 3071 3070 3137 3006 2970 3102 3002 2921 3032 2992 3012 2947 2743 3051 2822 2831 2781 2772 2509 2375 757 90 23 25 19 16 15 12 14 10 12 10 6 9 10 10 12 12 13 7 8 7
16 8 13 10 8 13 13 12 11 12 14 18 24 17 27 33 235 1233 2538 2505 2563 2686 2728 2577 2823 2678 2723 2753 2833 2817 2851 2945 2850 2942 2899 2894 2962 2941 2973 2934 2862 2857 2979 2938 2977 3003 2986 2918 2835 2892 2919 2963 2967 2968 2814 2908 2854 2922 2932 2851 2998 2932 2923 2924 2932 2835 2890 2944 3019 3006 2898 2880 2945 2929 2940 2932 3093 3029 2911 2959 2918 2906 2951 2921 3001 3042 2964 2981 2961 3001 2941 3054 3067 3021 3015 2951 3069 3046 2818 3024 2945 3045 2975 2984 2976 2794 2729 2901 2871 2722 2755 2695 2503 2327 732 89 22 25 17 18 17 12 13 8 12 12 12 10 9 8 9 11 10 10 9 11
17 8 9 10 8 16 16 10 13 13 18 14 19 19 29 42 217 1307 2495 2527 2578 2749 2743 2671 2829 2726 2777 2733 2846 2826 2771 2862 2799 2928 2957 2855 2991 2919 2971 2956 2864 2865 2907 2958 2930 3062 2875 2994 3086 2941 2945 3042 2986 2922 2914 2943 2937 2893 3063 3130 3050 3026 3026 3022 2994 3007 2946 3029 2986 3019 2978 2933 2917 2973 2920 2998 3087 3083 2921 2933 2991 2998 2966 2902 3071 3028 2931 2973 2858 3015 2927 2940 3002 3124 3014 2992 3123 2974 2767 3036 2989 2998 2895 2931 2932 2834 2724 3032 2881 2764 2657 2729 2539 2324 762 90 21 31 15 15 18 13 12 9 9 9 11 12 10 11 10 9 8 11 12 9
18 10 11 14 12 9 12 11 12 15 17 13 21 22 27 43 229 1283 2488 2449 2576 2691 2687 2633 2756 2594 2733 2769 2795 2801 2850 2852 2761 2938 2921 2843 3053 2929 3001 2866 2878 2920 2927 2940 3055 3023 2948 2907 2966 2938 2870 2985 3049 2953 2885 2915 2898 2908 2912 2964 2999 2903 2936 2907 2942 2887 2845 2961 2918 2957 2842 2888 2920 2844 2906 2957 2850 2888 2948 2886 2824 2892 2864 2863 2884 3004 2964 2940 3000 2918 2880 3052 3150 2977 2981 2896 3081 3030 2843 3076 3001 2972 2924 3005 2959 2898 2832 3016 2864 2867 2827 2758 2572 2374 780 80 25 19 27 16 17 15 14 14 12 9 9 12 12 11 11 11 14 10 9 11
19 9 9 13 12 10 11 10 13 13 16 19 19 23 29 47 208 1223 2522 2527 2753 2677 2758 2653 2807 2750 2781 2734 2879 2904 2885 2865 2755 2926 2921 2945 2970 2914 2942 2905 2869 2803 2949 2968 2886 3034 2905 2946 2874 2890 2924 2937 2956 3060 2829 2833 2866 2896 2807 2927 2925 2850 2417 2772 2835 2800 2823 2829 2942 2853 2912 2766 2884 2835 2810 2852 3010 2967 2890 2893 2873 2791 2787 2930 2980 2947 2938 2964 2944 2884 2882 3010 3131 3093 2995 2984 3016 2913 2855 2926 2974 2964 2965 3009 2929 2791 2676 3011 2828 2680 2708 2765 2521 2365 751 79 35 23 21 23 19 8 14 13 10 11 13 12 10 11 9 10 10 10 12 9
20 12 11 12 12 10 11 9 12 10 15 15 20 23 34 41 171 1169 2420 2458 2589 2642 2653 2608 2844 2582 2579 2725 2680 2771 2806 2762 2671 2847 2859 2777 2933 2791 2818 2810 2794 2687 2861 2829 2815 2796 2762 2791 2762 2862 2717 2702 2760 2835 2803 2864 2765 2878 2825 2834 2899 2769 2906 2791 2832 2884 2797 2790 2767 2935 2847 2718 2845 2843 2799 2879 2960 2976 2934 2854 2912 2871 2788 2867 2927 2952 2905 2899 2855 2821 2780 2953 2987 2957 2987 2800 2974 2962 2817 2874 2933 2840 2855 2792 2845 2752 2721 2895 2772 2648 2628 2679 2522 2288 752 102 23 25 15 22 17 15 12 16 11 11 12 10 11 10 11 9 12 9 10 9
21 9 8 11 14 13 12 14 15 15 14 14 15 23 26 43 184 1061 2451 2436 2548 2548 2685 2576 2671 2610 2597 2604 2611 2737 2748 2650 2565 2854 2813 2768 2817 2758 2689 2754 2639 2603 2824 2764 2832 2761 2779 2766 2797 2785 2723 2784 2802 2860 2807 2773 2815 2825 2779 2725 2757 2761 2810 2790 2683 2697 2798 2725 2837 2785 2768 2770 2718 2696 2782 2753 2769 2830 2759 2786 2743 2734 2634 2748 2846 2799 2675 2773 2757 2773 2715 2838 2835 2844 2740 2669 2791 2733 2700 2825 2805 2716 2703 2772 2843 2751 2578 2869 2669 2647 2568 2596 2433 2371 833 101 32 30 24 23 22 20 14 9 10 13 11 10 15 11 13 8 11 7 11 9
22 11 8 12 10 10 12 11 11 18 16 16 24 19 24 40 194 1106 2414 2374 2578 2643 2728 2672 2750 2687 2739 2683 2686 2846 2793 2716 2716 2889 2875 2770 2922 2873 2864 2857 2707 2802 2876 2819 2848 2820 2795 2772 2808 2858 2695 2724 2869 2831 2787 2690 2728 2753 2779 2721 2769 2841 2737 2676 2773 2789 2721 2724 2820 2814 2694 2729 2692 2701 2682 2729 2832 2837 2732 2721 2692 2677 2658 2667 2753 2736 2658 2675 2738 2752 2721 2818 2872 2878 2771 2779 2848 2887 2713 2782 2811 2780 2731 2713 2875 2768 2652 2822 2728 2738 2592 2645 2501 2378 939 98 29 18 25 20 19 17 13 10 13 13 9 11 12 12 7 10 13 8 8 8
23 12 12 10 11 14 11 9 11 16 19 20 25 16 34 24 207 1151 2527 2495 2662 2597 2739 2684 2820 2625 2742 2628 2673 2716 2697 2655 2660 2810 2768 2756 2789 2744 2766 2755 2618 2651 2669 2653 2581 2046 2771 2699 2632 2789 2743 2564 2766 2767 2786 2726 2610 2719 2672 2637 2752 2773 2600 2602 2564 2713 2652 2573 2785 2722 2594 2727 2585 2708 2684 2723 2753 2712 2603 2698 2713 2660 2676 2654 2746 2775 2805 2769 2791 2757 2608 2831 2842 2879 2798 2762 2877 2905 2725 2790 2848 2840 2761 2770 2901 2651 2665 2875 2819 2794 2642 2647 2464 2494 985 114 26 24 22 21 23 17 14 15 8 8 12 11 14 13 10 11 10 12 10 7
24 14 10 9 12 10 11 14 12 13 14 17 15 19 26 34 197 1165 2478 2506 2668 2630 2684 2678 2768 2607 2600 2707 2720 2739 2676 2749 2605 2704 2786 2699 2726 2687 2728 2732 2681 2753 2646 2639 2728 2785 2750 2692 2680 2643 2748 2715 2717 2771 2739 2686 2693 2645 2764 2749 2690 2758 2654 2642 2652 2736 2694 2761 2745 2767 2758 2694 2664 2721 2715 2674 2775 2807 2716 2638 2601 2749 2723 2773 2752 2798 2807 2735 2780 2792 2754 2851 2911 2949 2835 2819 2999 2912 2771 2802 2857 2853 2823 2901 2891 2754 2589 2856 2828 2706 2703 2680 2524 2304 939 107 19 25 24 17 19 15 12 12 12 8 12 12 9 10 14 9 10 12 11 11
25 14 10 11 9 10 12 13 11 10 13 23 19 19 25 42 201 1111 2452 2480 2474 2485 2749 2573 2742 2565 2589 2616 2628 2686 2727 2704 2573 2713 2805 2670 2696 2722 2692 2669 2692 2777 2698 2692 2728 2744 2673 2702 2696 2671 2700 2721 2785 2775 2796 2805 2710 2712 2689 2703 2832 2808 2760 2692 2676 2690 2785 2730 2773 2777 2749 2685 2752 2725 2701 2825 2765 2962 2772 2806 2736 2803 2726 2776 2754 2836 2817 2777 2810 2800 2815 2824 2924 2972 2791 2806 2834 2919 2813 2816 2890 2853 2837 2823 2874 2750 2636 2892 2801 2763 2629 2727 2579 2461 928 107 29 25 23 19 22 18 12 10 16 10 10 13 11 8 9 10 11 8 12 10
26 12 12 9 11 10 9 15 14 13 16 19 20 24 38 38 179 1012 2460 2352 2561 2561 2654 2556 2674 2622 2671 2597 2716 2688 2693 2713 2657 2755 2762 2680 2797 2775 2821 2726 2649 2775 2719 2743 2729 2741 2784 2808 2720 2818 2746 2816 2752 2782 2778 2711 2783 2779 2803 2799 2749 2830 2717 2672 2711 2729 2725 2732 2832 2760 2654 2675 2768 2700 2760 2690 2834 2822 2736 2807 2718 2767 2809 2755 2804 2837 2841 2837 2846 2763 2672 2506 2966 2406 2872 2979 2841 2907 2835 2899 2987 2817 2862 2924 2926 2801 2711 2974 2909 2776 2697 2801 2669 2485 989 112 33 31 26 23 20 16 16 13 13 10 10 13 12 11 12 13 12 9 13 10
27 11 10 13 12 10 9 10 12 14 22 18 26 24 30 39 173 975 2384 2367 2588 2579 2686 2617 2729 2531 2697 2712 2655 2795 2673 2677 2593 2812 2802 2726 2711 2770 2809 2644 2694 2676 2682 2781 2693 2803 2683 2704 2722 2828 2714 2739 2734 2803 2694 2775 2689 2706 2737 2748 2787 2761 2780 2767 2672 2783 2699 2725 2741 2815 2707 2666 2719 2669 2664 2760 2831 2856 2905 2759 2796 2716 2744 2721 2820 2779 2740 2808 2772 2858 2519 2559 2992 3059 2848 2833 2854 2763 2754 2918 2882 2796 2776 2810 2828 2841 2624 2826 2848 2693 2700 2688 2589 2465 920 98 32 27 26 17 17 14 18 14 15 15 11 9 11 9 11 11 9 9 11 9
28 11 12 7 12 13 14 12 11 10 17 20 30 24 42 48 162 954 2423 2446 2568 2625 2646 2692 2683 2543 2625 2664 2767 2805 2764 2730 2554 2735 2876 2682 2862 2753 2769 2766 2644 2737 2729 2722 2903 2834 2802 2860 2748 2885 2771 2797 2881 2800 2812 2814 2822 2836 2844 2750 2884 2761 2765 2826 2732 2746 2770 2751 2710 2929 2848 2806 2762 2741 2746 2830 2877 2880 2900 2714 2837 2856 2769 2816 2819 2837 2807 2723 2886 2868 2803 2786 2954 2953 2906 2849 2856 2915 2816 2833 2953 2907 2747 2855 2860 2844 2740 2888 2840 2744 2726 2609 2639 2521 844 95 31 27 20 16 17 15 10 14 8 11 13 12 11 8 11 9 10 7 10 10
29 9 12 11 11 11 9 15 15 17 20 16 15 25 29 29 159 973 2431 2407 2595 2604 2694 2671 2731 2590 2683 2643 2725 2784 2754 2776 2698 2435 2855 2796 2734 2887 2862 2804 2694 2764 2812 2768 2763 2784 2829 2778 2796 2874 2707 2756 2851 2787 2835 2652 2800 2825 2851 2744 2848 2799 2737 2731 2676 2693 2677 2665 2746 2775 2751 2750 2674 2709 2717 2688 2896 2834 2860 2722 2798 2673 2712 2752 2786 2830 2774 2753 2763 2889 2764 2802 2872 2887 2868 2755 2834 2954 2801 2751 2866 2801 2862 2803 2914 2874 2720 2844 2847 2792 2756 2703 2618 2456 889 102 32 29 22 20 22 18 13 9 9 10 13 12 11 8 9 11 11 11 11 10
30 14 12 12 9 11 10 9 11 18 16 14 19 23 25 43 171 1004 2468 2440 2578 2674 2704 2705 2780 2665 2698 2737 2659 2741 2732 2760 2743 2811 2897 2776 2761 2867 2896 2806 2621 2788 2732 2710 2808 2819 2804 2720 2753 2782 2794 2731 2750 2866 2762 2826 2685 2731 2788 2745 2751 2796 2720 2681 2666 2755 2734 2669 2844 2797 2835 2716 2733 2736 2716 2778 2876 2847 2822 2770 2826 2778 2723 2725 2774 2881 2809 2833 2782 2777 2862 2742 2851 2942 2850 2785 2858 2920 2786 2864 2757 2843 2868 2817 2919 2804 2716 2993 2899 2776 2788 2658 2592 2552 974 102 30 31 22 21 20 17 13 13 16 12 15 8 14 9 12 12 10 14 11 11
31 12 9 10 10 13 5 9 16 18 14 14 24 21 26 38 170 940 2477 2509 2557 2682 2797 2682 2720 2656 2670 2732 2678 2814 2713 2783 2803 2706 2862 2797 2690 2800 2830 2791 2701 2689 2770 2693 2795 2714 2789 2805 2729 2827 2722 2788 2741 2846 2914 2749 2665 2703 2811 2840 2744 2835 2720 2705 2691 2690 2755 2736 2797 2777 2764 2701 2654 2756 2815 2740 2822 2924 2815 2705 2717 2783 2804 2752 2769 2881 2770 2905 2747 2861 2806 2790 2940 2999 2881 2875 2936 2937 2780 2763 2961 2826 2884 2853 3048 2874 2685 2981 2968 2790 2661 2684 2553 2555 949 89 30 30 23 17 18 16 15 13 12 13 11 9 11 10 11 8 12 8 10 7
32 11 9 10 15 9 15 9 14 14 16 24 18 23 29 39 147 865 2494 2487 2593 2620 2820 2716 2768 2626 2640 2688 2760 2731 2783 2763 2661 2819 2778 2723 2769 2784 2833 2802 2679 2752 2685 2749 2778 2818 2736 2794 2600 2794 2762 2762 2835 2783 2804 2773 2845 2676 2796 2787 2830 2845 2727 2753 2643 2779 2749 2814 2780 2781 2773 2645 2678 2682 2780 2811 2857 2872 2839 2865 2871 2770 2799 2834 2837 2831 2817 2880 2843 2893 2856 2869 2916 2914 3035 2895 2927 2921 2828 2813 2963 2919 2917 2818 2849 2802 2691 2949 2932 2872 2739 2664 2579 2510 1071 106 33 26 23 21 23 15 12 14 12 10 12 11 10 11 12 9 11 9 10 8
33 10 8 15 11 12 13 11 12 14 19 17 18 25 27 39 140 929 2471 2512 2586 2577 2803 2648 2737 2640 2724 2657 2762 2745 2749 2791 2724 2795 2864 2727 2763 2823 2761 2840 2634 2786 2735 2658 2863 2790 2860 2803 2810 2840 2839 2800 2767 2757 2787 2807 2803 2830 2861 2861 2797 2879 2741 2704 2789 2784 2767 2747 2856 2803 2805 2832 2810 2793 2799 2813 2859 2921 2747 2831 2752 2782 2725 2748 2777 2910 2800 2880 2807 2780 2834 2807 2857 3029 2932 2801 2885 2953 2817 2854 2922 2880 2926 2890 2960 2835 2670 2933 3018 2868 2787 2673 2694 2556 1050 100 41 26 26 21 21 11 16 12 16 10 12 12 11 11 11 13 8 9 10 14
34 9 11 14 12 13 12 14 13 13 14 22 22 24 26 47 155 871 2448 2512 2729 2602 2837 2325 2696 2698 2715 2749 2740 2787 2802 2691 2674 2825 2778 2789 2824 2860 2865 2736 2763 2828 2816 2831 2786 2852 2883 2818 2814 2807 2869 2720 2796 2885 2923 2788 2756 2817 2816 2835 2783 2873 2769 2737 2773 2722 2809 2848 2770 2859 2748 2816 2748 2715 2736 2676 2846 2934 2897 2822 2764 2769 2738 2773 2795 2904 2840 2885 2822 2803 2723 2797 2884 2989 2858 2885 2934 2996 2830 2904 2993 2948 2886 2929 3052 2912 2786 2920 3026 2915 2808 2831 2752 2588 1031 99 27 23 24 24 18 18 11 10 13 8 12 8 12 10 11 9 11 13 9 11
35 15 14 11 8 14 10 13 14 15 20 21 26 25 27 40 154 832 2484 2442 2795 2665 2739 2371 2756 2802 2682 2753 2890 2868 2803 2785 2728 2745 2718 2847 2786 2870 2797 2814 2690 2736 2736 2779 2852 2812 2786 2722 2828 2764 2764 2728 2775 2839 2841 2799 2771 2717 2818 2785 2877 2661 2803 2771 2743 2701 2768 2777 2773 2786 2765 2801 2825 2785 2734 2756 2699 2859 2923 2788 2785 2792 2712 2776 2861 2891 2895 2701 2816 2818 2846 2880 2990 3079 2967 2840 2888 2992 2853 2865 2974 2880 3014 2882 2998 2946 2760 2919 2925 2952 2821 2687 2698 2565 1018 106 38 34 21 25 22 18 17 12 12 13 12 13 12 13 11 11 13 10 12 11
36 13 15 15 9 11 12 12 13 16 22 19 20 21 26 41 139 754 2535 2448 2613 2719 2796 2738 2727 2734 2653 2702 2776 2842 2894 2779 2747 2593 2772 2827 2806 2914 2877 2791 2743 2780 2794 2791 2782 2852 2878 2771 2759 2841 2849 2705 2770 2793 2874 2750 2800 2807 2773 2835 2784 2844 2770 2841 2758 2758 2755 2774 2813 2817 2853 2809 2775 2722 2756 2701 2875 2830 2825 2844 2797 2828 2714 2756 2895 2959 2841 2894 2759 2852 2900 2787 2936 3005 2900 2922 2983 2988 2921 2904 2913 2939 2951 2875 2859 2907 2756 2942 2988 2821 2800 2806 2675 2552 1057 102 30 32 23 15 24 23 12 11 14 16 12 10 14 13 10 10 10 10 12 14
37 9 10 11 11 12 12 16 12 16 13 25 32 23 26 29 128 698 2422 2560 2695 2556 2780 2759 2708 2755 2732 2750 2777 2610 2822 2757 2803 2808 2837 2922 2840 2931 2784 2867 2730 2795 2893 2745 2789 2899 2814 2827 2776 2708 2885 2792 2780 2814 2935 2863 2750 2790 2797 2752 2735 2912 2812 2785 2744 2739 2778 2794 2796 2877 2925 2752 2772 2731 2756 2809 2880 2801 2855 2780 2700 2841 2752 2678 2771 2836 2911 2861 2825 2772 2877 2800 2865 2903 2903 2952 2851 2936 2824 2871 2833 2738 2912 2896 2911 2890 2712 2970 2954 2781 2834 2769 2661 2551 1184 107 36 31 20 22 22 15 17 9 14 10 12 8 13 9 9 8 10 10 14 9
38 9 14 8 13 6 7 14 14 15 23 19 27 19 32 38 122 712 2374 2554 2656 2735 2812 2814 2765 2742 2727 2687 2734 2793 2847 2695 2752 2811 2886 2865 2827 2879 2950 2962 2743 2772 2878 2772 2805 2837 2843 2940 2845 2867 2837 2848 2795 2857 2882 2820 2766 2763 2793 2784 2773 2865 2814 2826 2698 2714 2796 2753 2762 2804 2792 2803 2720 2787 2789 2791 2829 2823 2858 2702 2721 2755 2716 2724 2756 2869 2798 2805 2821 2879 2855 2797 2865 2903 2906 2963 2816 2912 2859 2872 2854 2876 2906 2916 2942 2948 2716 2871 2920 2927 2831 2728 2715 2680 1187 119 29 37 25 25 22 16 21 14 13 9 14 12 12 12 12 9 10 9 11 9
39 11 9 9 11 9 11 13 15 14 22 19 23 17 28 40 134 760 2452 2469 2654 2689 2812 2965 2805 2780 2648 2727 2802 2751 2806 2723 2721 2844 2800 2836 2792 2790 2784 2835 2821 2749 2811 2861 2720 2836 2849 2906 2791 2801 2717 2717 2804 2795 2813 2792 2642 2680 2784 2717 2704 2697 2882 2737 2689 2733 2773 2773 2789 2771 2746 2821 2684 2734 2825 2834 2798 2839 2809 2792 2795 2749 2839 2737 2794 2890 2815 2739 2761 2854 2933 2866 2891 2903 2939 2850 2842 3043 2886 2882 2922 2966 2887 2861 2948 2977 2688 2862 3023 2909 2793 2734 2677 2662 1209 108 27 33 22 20 21 15 14 11 11 10 10 10 10 9 11 11 11 9 11 10
40 10 10 14 10 12 15 7 13 15 15 24 20 23 26 41 151 804 2478 2526 2644 2645 2822 2807 2732 2780 2662 2698 2711 2768 2864 2760 2730 2757 2852 2788 2785 2832 2806 2823 2672 2757 2757 2786 2733 2886 2779 2781 2729 2718 2724 2761 2799 2786 2829 2757 2769 2778 2654 2889 2844 2872 2871 2824 2662 2765 2705 2798 2755 2811 2778 2746 2738 2791 2815 2739 2844 2894 2679 2882 2819 2657 2786 2752 2850 2905 2877 2831 2850 2869 2878 2831 2839 3034 2957 2931 2906 2984 2945 2910 2840 2896 3014 2942 2929 2973 2828 2898 2976 2854 2936 2819 2726 2671 1180 116 31 31 28 23 21 22 18 11 9 10 12 15 9 15 11 9 11 10 10 14
41 10 11 9 12 12 14 13 14 13 19 22 27 25 29 37 136 855 2450 2551 2709 2632 2753 2701 2656 2693 2577 2690 2794 2686 2800 2768 2685 2791 2811 2835 2815 2710 2850 2908 2708 2799 2834 2768 2832 2869 2789 2802 2761 2697 2829 2781 2791 2884 2772 2757 2797 2882 2779 2866 2801 2945 2855 2739 2700 2757 2743 2825 2830 2836 2874 2782 2678 2737 2789 2784 2749 2863 2045 2725 2820 2728 2754 2766 2758 2977 2893 2833 2878 2915 2854 2892 3029 3016 2895 2919 2876 2895 2845 2806 2889 2943 2980 2902 2962 2953 2771 2948 3000 2870 2785 2743 2698 2701 1199 139 36 34 26 23 20 23 15 13 16 11 16 9 9 11 10 9 10 10 9 8
42 9 12 14 9 10 12 11 12 20 17 14 20 24 27 39 146 829 2431 2471 2695 2640 2819 2872 2742 2747 2734 2715 2763 2787 2796 2835 2784 2786 2815 2846 2833 2868 2854 2918 2808 2824 2781 2850 2772 2893 2887 2837 2799 2868 2885 2852 2817 2814 2829 2835 2791 2718 2749 2797 2845 2767 2750 2787 2745 2694 2813 2830 2801 2899 2870 2910 2760 2747 2692 2829 2789 2878 2913 2750 2776 2804 2715 2743 2752 2898 2987 2804 2833 2886 2806 2816 2786 2986 2944 2815 2852 2924 2889 2759 2908 3003 2907 2950 2873 2920 2791 2901 2952 2926 2804 2776 2670 2693 1233 118 38 28 25 21 23 19 17 11 13 10 10 12 12 12 9 11 11 12 9 12
43 12 10 10 10 12 13 14 12 17 20 22 27 24 25 42 129 751 2431 2518 2651 2663 2817 2831 2740 2696 2702 2693 2778 2738 2818 2752 2702 2761 2827 2846 2808 2918 2913 2812 2738 2847 2778 2815 2754 2767 2842 2852 2814 2852 2837 2878 2776 2799 2849 2772 2643 2801 2786 2767 2794 2789 2790 2740 2763 2723 2810 2833 2774 2873 2748 2724 2842 2852 2724 2763 2780 2879 2924 2888 2798 2812 2771 2731 2730 2905 2871 2803 2828 2865 2820 2832 2834 3013 2973 2871 2895 3036 2950 2817 2815 3004 2913 2858 2808 2996 2807 2942 3013 2953 2862 2693 2722 2724 1252 138 32 31 22 22 22 19 16 12 13 11 13 15 14 10 12 10 9 13 12 10
44 12 11 14 14 11 11 13 12 13 22 17 21 27 34 40 130 690 2376 2486 2680 2643 2774 2799 2749 2713 2711 2806 2794 2758 2793 2807 2761 2792 2853 2835 2871 2844 2909 2888 2841 2815 2893 2841 2773 2876 2830 2756 2787 2823 2881 2776 2806 2800 2907 2825 2795 2723 2844 2753 2730 2810 2818 2763 2744 2839 2803 2695 2828 2852 2847 2878 2751 2746 2482 2769 2759 2888 2891 2839 2730 2761 2830 2802 2880 2911 2989 2752 2851 2774 2810 2848 2769 2936 2898 2904 2858 2804 2926 2769 2831 2816 2806 2860 2833 2854 2697 2817 2971 2776 2740 2696 2587 2660 1335 137 41 27 33 23 21 19 13 10 15 9 13 12 13 11 10 11 10 10 12 11
45 10 9 11 12 13 9 10 15 20 16 20 22 24 33 47 109 631 2346 2428 2652 2608 2712 2870 2743 2798 2671 2781 2741 2796 2787 2884 2754 2750 2888 2949 2818 2891 2890 2862 2754 2830 2802 2818 2867 2784 2903 2892 2795 2790 2838 2828 2807 2797 2923 2840 2829 2781 2855 2795 2712 2834 2844 2803 2704 2729 2789 2766 2714 2765 2858 2802 2724 2761 2709 2775 2707 2811 2815 2725 2660 2709 2620 2736 2695 2778 2774 2761 2804 2785 2721 2807 2815 2888 2829 2883 2804 2827 2739 2775 2787 2869 2868 2778 2881 2937 2780 2799 2982 2829 2767 2749 2647 2634 1332 152 32 27 32 24 21 23 15 11 11 12 18 11 12 10 11 11 12 9 12 9
46 14 9 10 10 11 9 14 13 14 14 18 33 24 25 38 105 591 2326 2444 2624 2626 2754 2795 2750 2851 2661 2798 2749 2714 2896 2896 2806 2815 2843 2880 2858 2826 2968 2855 2865 2801 2759 2858 2912 2765 2809 2827 2747 2755 2691 2788 2812 2805 2835 2821 2738 2716 2686 2720 2760 2828 2782 2698 2678 2698 2671 2686 2700 2745 2783 2751 2668 2674 2707 2704 2675 2810 2775 2751 2686 2705 2705 2770 2725 2782 2833 2783 2765 2768 2801 2800 2808 2813 2883 2748 2775 2831 2871 2774 2810 2881 2841 2870 2786 2956 2814 2757 3014 2965 2810 2606 2663 2635 1302 160 28 33 25 18 22 21 15 12 10 14 11 11 14 9 13 7 11 12 9 8
47 9 13 11 9 11 13 12 9 17 17 24 20 23 25 44 110 609 2275 2471 2605 2615 2733 2859 2666 2805 2687 2727 2711 2758 2798 2760 2753 2719 2818 2881 2930 2812 2842 2819 2761 2772 2715 2807 2709 2748 2687 2715 2701 2786 2678 2749 2733 2758 2848 2781 2670 2718 2716 2740 2718 2732 2790 2649 2752 2619 2514 2695 2700 2693 2775 2639 2756 2712 2627 2741 2793 2800 2773 2755 2810 2714 2700 2726 2830 2724 2825 2779 2810 2806 2847 2780 2800 2878 2869 2839 2800 2834 2834 2807 2797 2934 2904 2923 2856 2866 2768 2767 2860 2855 2915 2691 2698 2502 1325 138 40 32 25 24 24 24 18 13 15 14 10 12 9 12 7 9 11 11 10 13
48 13 13 10 9 8 12 10 12 12 19 18 22 27 30 39 108 557 2175 2478 2582 2592 2746 2820 2643 2705 2640 2657 2671 2768 2761 2779 2690 2676 2778 2808 2702 2704 2821 2847 2722 2738 2734 2758 2793 2852 2816 2823 2669 2703 2735 2780 2797 2802 2700 2796 2680 2652 2703 2713 2726 2780 2795 2779 2648 2761 2696 2780 2674 2872 2739 2732 2750 2713 2697 2774 2732 2814 2814 2760 2661 2777 2714 2779 2725 2761 2850 2817 2824 2855 2751 2747 2807 3028 2822 2908 2877 2868 2916 2826 2785 2863 2867 2862 2866 2859 2768 2736 2978 2839 2727 2685 2682 2614 1486 157 39 35 25 27 16 17 16 13 12 9 14 11 13 10 18 13 10 16 8 11
49 10 11 15 12 11 13 10 16 19 18 20 23 24 28 39 104 564 2245 2376 2663 2598 2662 2732 2666 2713 2602 2556 2670 2744 2673 2734 2719 2668 2646 2864 2774 2798 2864 2812 2860 2784 2774 2820 2774 2758 2792 2729 2678 2784 2791 2771 2681 2765 2760 2711 2664 2646 2680 2709 2782 2754 2777 2708 2664 2698 2722 2729 2679 2772 2742 2725 2699 2777 2704 2659 2710 2812 2783 2839 2761 2709 2634 2695 2735 2805 2873 2714 2731 2722 2749 2797 2753 2894 2885 2824 2800 2841 2767 2692 2763 2839 2860 2803 2897 2855 2745 2771 2882 2860 2724 2688 2557 2663 1456 150 33 30 24 16 24 16 14 11 8 10 13 13 10 12 12 7 14 10 13 9
50 9 12 12 12 11 16 14 15 16 18 19 27 23 26 37 103 566 2202 2454 2609 2640 2655 2717 2663 2743 2638 2630 2719 2715 2736 2891 2717 2713 2648 2832 2870 2776 2875 2786 2747 2811 2782 2761 2816 2766 2741 2794 2662 2718 2736 2842 2767 2674 2760 2674 2706 2733 2763 2773 2751 2791 2814 2702 2698 2743 2673 2768 2672 2671 2740 2741 2600 2677 2709 2634 2734 2756 2808 2725 2766 2715 2877 2623 2744 2685 2793 2735 2809 2618 2783 2694 2766 2864 2838 2842 2736 2813 2785 2690 2832 2876 2903 2807 2774 2866 2789 2755 2939 2918 2824 2640 2615 2645 1561 172 38 30 28 16 25 26 17 11 11 11 12 12 13 11 9 13 11 10 9 9
51 10 11 15 14 10 12 15 13 15 15 22 27 29 25 41 92 542 2229 2358 2545 2614 2595 2747 2621 2711 2568 2589 2653 2661 2821 2658 2764 2728 2808 2861 2734 2761 2784 2794 2808 2678 2741 2731 2728 2774 2811 2755 2666 2777 2738 2824 2671 2776 2709 2734 2651 2618 2702 2674 2621 2692 2836 2671 2615 2598 2673 2669 2624 2607 2777 2714 2436 2678 2734 2676 2737 2756 2736 2790 2681 2626 2700 2643 2692 2806 2811 2716 2773 2817 2672 2739 2767 2846 2901 2848 2850 2796 2863 2687 2723 2845 2937 2751 2738 2896 2727 2756 2828 2835 2757 2627 2563 2617 1447 160 37 31 25 30 19 23 20 16 9 11 10 11 12 13 14 12 12 12 9 12
52 9 15 7 12 14 12 14 13 15 17 22 28 29 29 50 95 528 2210 2399 2539 2486 2744 2741 2608 2724 2552 2633 2704 2675 2722 2719 2768 2727 2707 2806 2844 2686 2767 2824 2753 2694 2813 2783 2724 2634 2787 2686 2694 2683 2720 2719 2729 2727 2710 2716 2646 2622 2705 2683 2714 2670 2776 2768 2705 2632 2733 2629 2575 2762 2816 2781 2727 2740 2710 2653 2655 2747 2786 2784 2699 2700 2746 2597 2630 2702 2772 2756 2733 2680 2759 2775 2729 2771 2832 2760 2747 2843 2761 2691 2751 2721 2762 2699 2799 2704 2647 2633 2849 2793 2758 2598 2573 2524 1271 163 36 38 28 23 34 21 14 13 11 14 12 11 13 12 9 10 14 8 8 12
53 12 12 14 11 10 12 13 15 15 16 16 15 24 22 37 86 519 2177 2397 2601 2556 2631 2718 2640 2717 2518 2646 2655 2646 2625 2766 2621 2571 2732 2861 2780 2759 2744 2873 2793 2707 2692 2786 2742 2782 2809 2843 2786 2666 2638 2739 2682 2701 2768 2704 2713 2641 2660 2723 2668 2659 2741 2742 2641 2587 2644 2647 2629 2602 2703 2768 2633 2668 2641 2665 2589 2718 2768 2684 2613 2576 2683 2634 2625 2685 2709 2581 2719 2691 2745 2679 2638 2686 2836 2743 2771 2726 2790 2703 2660 2788 2732 2844 2782 2667 2799 2715 2822 2727 2767 2664 2537 2592 1408 151 43 33 33 17 22 26 12 12 14 17 13 12 9 12 10 7 12 11 12 9
54 11 12 8 10 11 9 12 11 16 20 21 28 21 22 34 88 553 2120 2426 2631 2533 2634 2699 2638 2679 2594 2731 2593 2710 2755 2742 2796 2700 2697 2696 2814 2797 2806 2814 2755 2725 2738 2772 2741 2731 2776 2729 2761 2683 2666 2671 2681 2677 2615 2685 2622 2570 2677 2600 2684 2684 2688 2642 2572 2564 2622 2585 2604 2606 2722 2633 2605 2593 2566 2626 2584 2692 2756 2706 2694 2568 2652 2575 2670 2654 2655 2676 2772 2679 2730 2736 2663 2719 2745 2728 2719 2707 2772 2778 2709 2833 2821 2785 2766 2721 2776 2772 2866 2813 2792 2690 2531 2639 1511 174 31 36 24 25 21 20 19 11 10 13 12 11 11 9 8 10 12 8 9 14
55 12 11 11 11 11 11 13 13 15 22 17 21 26 27 40 69 407 2056 2320 2529 2512 2548 2711 2649 2690 2560 2561 2586 2623 2711 2714 2647 2316 2273 2725 2715 2647 2785 2705 2681 2700 2566 2720 2583 2651 2643 2703 2738 2686 2653 2650 2656 2661 2682 2605 2614 2660 2560 2618 2629 2726 2754 2626 2549 2600 2576 2606 2709 2692 2733 2649 2570 2596 2562 2603 2647 2695 2683 2720 2699 2656 2601 2607 2676 2647 2692 2661 2644 2699 2684 2724 2694 2850 2706 2774 2700 2679 2725 2793 2711 2862 2777 2839 2701 2784 2801 2678 2840 2844 2726 2672 2600 2644 1583 175 44 32 28 28 22 25 12 13 14 13 13 10 10 10 11 11 16 8 9 10
56 13 12 12 13 9 12 10 11 16 13 24 22 21 24 40 79 397 1945 2361 2536 2492 2482 2653 2603 2619 2494 2536 2621 2640 2612 2636 2666 2578 2592 2627 2720 2567 2739 2730 2719 2669 2628 2611 2605 2699 2709 2819 2707 2619 2614 2672 2623 2734 2660 2702 2655 2615 2650 2713 2651 2717 2701 2616 2585 2633 2628 2571 2669 2600 2652 2660 2607 2589 2641 2722 2626 2710 2722 2701 2660 2650 2661 2383 2666 2637 2802 2659 2709 2693 2783 2750 2744 2794 2774 2788 2792 2794 2625 2690 2716 2747 2747 2785 2708 2768 2663 2620 2795 2798 2807 2589 2579 2633 1564 191 40 25 21 24 15 23 15 13 10 15 13 11 12 12 9 8 13 11 9 12
57 13 11 10 16 13 12 14 16 13 20 23 20 22 26 35 70 402 2018 2327 2480 2505 2566 2600 2581 2741 2534 2523 2606 2636 2677 2619 2706 2607 2590 2665 2695 2704 2720 2747 2587 2602 2542 2557 2751 2646 2715 2719 2605 2638 2584 2633 2623 2715 2709 2686 2666 2618 2616 2609 2654 2699 2765 2624 2603 2615 2590 2705 2660 2704 2729 2674 2688 2598 2658 2617 2567 2670 2733 2611 2671 2670 2655 2575 2615 2635 2788 2663 2619 2687 2689 2578 2721 2690 2762 2794 2785 2701 2774 2692 2630 2703 2770 2775 2640 2810 2734 2642 2811 2839 2795 2620 2586 2608 1581 201 47 32 21 24 23 22 16 11 12 14 13 10 13 10 12 12 9 13 11 11
58 14 13 14 12 14 12 14 14 16 18 17 28 22 29 40 74 387 1867 2380 2438 2429 2511 2586 2535 2643 2425 2529 2569 2639 2645 2638 2730 2622 2634 2691 2679 2727 2685 2694 2739 2551 2684 2680 2656 2700 2758 2776 2710 2628 2687 2694 2680 2697 2645 2794 2628 2620 2631 2614 2632 2633 2615 2738 2700 2561 2660 2562 2584 2658 2678 2629 2674 2653 2647 2633 2576 2638 2619 2758 2603 2639 2593 2619 2599 2675 2721 2685 2699 2640 2722 2654 2690 2792 2848 2759 2753 2688 2715 2710 2724 2886 2814 2789 2834 2802 2776 2751 2825 2881 2783 2748 2532 2551 1656 196 46 34 26 28 20 22 13 16 16 12 13 14 12 15 14 12 8 11 13 12
59 11 11 15 10 11 9 12 14 16 14 21 28 19 23 44 70 375 1939 2303 2497 2493 2583 2610 2492 2693 2457 2504 2616 2710 2656 2658 2628 2560 2650 2816 2625 2674 2705 2687 2692 2641 2662 2715 2556 2602 2711 2663 2747 2632 2686 2727 2682 2548 2689 2671 2726 2563 2652 2727 2540 2556 2690 2629 2600 2611 2594 2627 2532 2714 2610 2726 2646 2673 2597 2657 2544 2628 2727 2740 2707 2569 2725 2596 2652 2767 2780 2761 2713 2691 2644 2806 2710 2751 2844 2711 2723 2672 2778 2742 2772 2741 2744 2754 2766 2755 2737 2707 2796 2767 2670 2563 2617 2512 1661 197 44 33 25 21 22 21 17 10 13 14 13 12 9 7 9 11 10 11 10 13
60 9 10 14 14 11 8 11 13 16 16 25 23 22 21 38 72 388 1884 2286 2403 2499 2560 2536 2521 2703 2425 2522 2609 2528 2586 2671 2588 2599 2610 2672 2687 2616 2667 2695 2648 2635 2564 2699 2674 2608 2618 2737 2702 2647 2651 2655 2697 2623 2675 2654 2775 2575 2617 2661 2612 2632 2682 2738 2692 2621 2588 2688 2702 2624 2685 2801 2607 2579 2612 2660 2687 2673 2654 2662 2636 2564 2689 2579 2603 2650 2724 2714 2607 2660 2666 2732 2647 2760 2714 2708 2639 2669 2741 2723 2661 2709 2747 2767 2680 2688 2797 2694 2810 2740 2752 2635 2497 2496 1560 174 48 25 25 23 21 27 15 15 10 12 11 9 9 12 8 12 15 9 10 11
61 16 14 12 12 11 11 14 12 11 19 13 24 23 19 35 76 387 1945 2318 2410 2443 2546 2548 2535 2620 2442 2511 2529 2596 2649 2618 2674 2660 2600 2745 2759 2703 2795 2713 2676 2682 2667 2648 2674 2678 2725 2699 2685 2712 2713 2752 2676 2778 2702 2656 2640 2623 2544 2595 2608 2644 2591 2693 2666 2605 2480 2610 2641 2692 2658 2678 2617 2584 2490 2653 2549 2609 2645 2658 2688 2528 2579 2482 2616 2480 2644 2665 2674 2609 2601 2665 2600 2707 2749 2725 2734 2732 2674 2746 2670 2688 2769 2735 2715 2581 2702 2679 2778 2836 2484 2674 2433 2518 1527 166 50 32 30 25 19 20 16 10 12 13 11 13 13 11 11 11 15 10 8 12
62 9 14 12 12 13 15 11 13 18 15 23 18 21 21 45 74 407 2009 2311 2510 2475 2560 2677 2595 2653 2536 2536 2585 2579 2633 2675 2644 2608 2620 2644 2663 2637 2761 2766 2708 2684 2637 2684 2656 2606 2669 2704 2693 2602 2436 2345 2636 2712 2703 2585 2640 2581 2517 2553 2635 2674 2570 2667 2564 2603 2514 2561 2639 2574 2645 2616 2611 2548 2534 2537 2641 2646 2722 2547 2632 2599 2564 2722 2605 2489 2650 2712 2634 2734 2486 2757 2683 2666 2772 2670 2715 2745 2791 2725 2786 2805 2818 2813 2731 2752 2647 2738 2786 2829 2777 2416 2541 2572 1686 223 50 38 23 25 24 18 15 12 15 13 15 11 17 13 11 13 14 10 8 12
63 11 11 11 11 11 14 15 16 18 19 23 24 24 20 33 55 331 1788 2274 2447 2490 2518 2628 2565 2681 2492 2494 2603 2503 2594 2552 2584 2590 2577 2607 2687 2646 2614 2742 2654 2744 2547 2576 2603 2632 2584 2689 2692 2554 2584 2368 2690 2680 2621 2650 2625 2500 2616 2497 2610 2686 2714 2582 2630 2607 2612 2569 2617 2619 2653 2670 2642 2541 2558 2579 2658 2658 2636 2750 2565 2623 2654 2670 2629 2649 2636 2713 2674 2665 2582 2788 2728 2704 2780 2754 2766 2787 2816 2779 2737 2845 2806 2841 2801 2765 2777 2760 2825 2860 2770 2703 2580 2570 1818 258 46 35 28 28 25 23 14 11 15 11 10 10 12 10 13 9 12 10 12 11
64 12 12 13 13 13 15 10 11 15 18 23 24 20 29 39 61 301 1670 2406 2473 2434 2509 2457 2575 2695 2436 2393 2630 2617 2525 2621 2646 2549 2581 2617 2606 2674 2679 2692 2730 2666 2551 2655 2660 2618 2666 2615 2667 2594 2574 2646 2575 2691 2651 2663 2581 2649 2601 2609 2624 2599 2700 2690 2592 2534 2636 2606 2659 2706 2666 2650 2681 2641 2634 2672 2684 2662 2787 2768 2695 2670 2637 2683 2616 2649 2686 2733 2696 2638 2694 2815 2669 2691 2872 2768 2730 2662 2827 2742 2644 2761 2813 2780 2707 2687 2815 2745 2932 2871 2883 2639 2537 2576 1779 218 55 35 30 30 26 21 18 11 14 14 12 13 13 10 12 12 13 10 10 11
65 9 13 9 11 10 10 12 14 16 16 20 17 22 23 33 57 329 1759 2275 2436 2445 2512 2584 2517 2645 2430 2460 2519 2566 2588 2656 2705 2523 2570 2599 2729 2731 2666 2718 2679 2657 2621 2653 2636 2676 2635 2695 2690 2574 2672 2658 2648 2763 2792 2692 2723 2593 2536 2632 2618 2607 2629 2743 2586 2653 2684 2743 2714 2651 2674 2721 2685 2622 2645 2550 2561 2622 2662 2716 2667 2625 2672 2634 2513 2610 2712 2743 2639 2671 2713 2697 2678 2638 2780 2760 2800 2717 2754 2683 2611 2656 2831 2880 2709 2770 2865 2693 2921 2894 2784 2705 2596 2632 1898 250 56 29 23 23 23 20 16 13 11 13 12 12 10 12 12 9 8 9 11 13
66 9 11 12 10 11 10 18 11 11 20 19 24 23 24 30 68 307 1769 2245 2500 2523 2518 2640 2584 2670 2381 2617 2587 2595 2671 2670 2701 2613 2618 2699 2744 2771 2687 2761 2740 2753 2704 2798 2623 2732 2714 2751 2739 2698 2713 2771 2724 2586 2732 2739 2706 2566 2580 2685 2669 2735 2724 2719 2672 2674 2590 2698 2565 2661 2698 2706 2708 2622 2620 2620 2626 2641 2738 2678 2645 2646 2648 2707 2695 2682 2681 2698 2665 2707 2686 2676 2699 2808 2841 2835 2876 2737 2863 2765 2792 2830 2858 2874 2830 2790 2804 2662 2831 2888 2862 2754 2611 2599 1876 302 58 36 30 25 20 23 15 11 12 13 11 11 15 9 10 12 10 10 10 11
67 11 10 12 15 10 10 12 10 12 17 24 20 27 22 37 59 343 1822 2297 2486 2552 2556 2625 2623 2692 2412 2674 2608 2617 2657 2649 2665 2539 2628 2588 2660 2650 2703 2599 2682 2776 2614 2655 2699 2587 2636 2656 2677 2630 2517 2774 2721 2656 2679 2793 2631 2661 2539 2728 2637 2735 2663 2701 2642 2685 2617 2635 2603 2695 2675 2745 2724 2574 2635 2667 2597 2655 2758 2774 2687 2695 2724 2635 2634 2660 2755 2712 2709 2733 2720 2753 2803 2717 2832 2846 2850 2757 2794 2754 2739 2828 2847 2872 2860 2734 2762 2761 2810 2789 2757 2668 2585 2512 1756 236 56 22 25 25 24 22 12 10 12 11 11 14 11 10 14 9 11 10 10 10
68 11 13 10 10 9 10 12 14 12 18 22 29 19 21 30 59 308 1773 2272 2403 2548 2536 2645 2577 2650 2398 2516 2555 2568 2605 2635 2722 2596 2618 2656 2784 2689 2636 2737 2682 2805 2713 2684 2712 2797 2708 2722 2789 2749 2642 2666 2706 2740 2692 2772 2772 2673 2735 2677 2727 2713 2668 2677 2762 2673 2658 2745 2674 2580 2661 2741 2586 2637 2662 2655 2694 2610 2682 2710 2691 2625 2681 2636 2637 2626 2718 2697 2644 2660 2668 2707 2713 2713 2765 2793 2745 2723 2769 2780 2826 2726 2711 2859 2771 2780 2721 2804 2849 2756 2809 2716 2560 2524 1746 237 53 35 31 27 24 23 16 14 12 11 11 12 7 10 14 10 12 12 9 11
69 12 11 13 10 13 10 11 16 13 17 19 18 22 18 32 58 340 1784 2286 2468 2495 2566 2615 2549 2827 2472 2536 2556 2635 2632 2662 2717 2651 2656 2671 2834 2700 2778 2776 2750 2811 2724 2751 2697 2788 2719 2692 2767 2704 2663 2742 2671 2764 2651 2670 2734 2646 2705 2663 2623 2737 2721 2681 2714 2693 2681 2515 2648 2703 2666 2751 2664 2660 2570 2582 2673 2656 2626 2694 2695 2638 2610 2604 2671 2685 2686 2707 2558 2659 2601 2700 2667 2642 2704 2832 2768 2762 2815 2768 2783 2775 2863 2745 2837 2842 2782 2718 2878 2883 2801 2770 2636 2653 2065 334 63 29 29 27 29 20 21 16 13 9 11 10 9 11 11 12 14 9 8 15
70 10 9 10 13 14 12 15 13 16 21 19 20 19 27 38 54 332 1795 2332 2510 2571 2573 2646 2623 2786 2535 2596 2461 2650 2696 2654 2952 2677 2649 2715 2816 2775 2709 2790 2683 2703 2664 2742 2798 2697 2709 2747 2760 2710 2565 2645 2726 2551 2698 2684 2717 2626 2631 2557 2746 2668 2761 2713 2704 2625 2614 2666 2669 2631 2722 2682 2699 2644 2529 2588 2646 2695 2710 2658 2684 2690 2738 2607 2660 2648 2706 2752 2729 2802 2772 2769 2751 2744 2961 2889 2804 2863 2805 2804 2764 2882 2829 2908 2938 2852 2851 2713 2949 2872 2839 2770 2632 2679 1712 235 53 38 27 29 25 24 18 11 11 12 13 11 9 11 13 12 9 10 10 11
71 15 11 11 10 11 8 13 13 9 18 17 18 19 24 38 49 305 1776 2341 2406 2589 2539 2639 2527 2802 2439 2524 2686 2697 2606 2576 2705 2614 2701 2644 2709 2765 2692 2703 2724 2740 2625 2664 2696 2641 2752 2812 2755 2756 2569 2741 2682 2733 2750 2711 2670 2667 2654 2634 2652 2751 2745 2705 2688 2636 2662 2680 2665 2688 2807 2723 2648 2635 2654 2669 2752 2715 2708 2739 2774 2762 2667 2664 2667 2655 2700 2829 2761 2693 2765 2764 2840 2769 2902 2917 2751 2771 2890 2829 2738 2789 2917 2917 2829 2792 2902 2775 2873 2781 2866 2802 2641 2633 1800 249 53 31 30 28 30 16 16 14 10 10 11 12 11 12 10 6 12 13 9 10
72 16 10 12 15 12 12 13 12 11 12 17 15 21 24 28 58 312 1800 2293 2452 2487 2549 2607 2619 2782 2538 2486 2602 2647 2703 2626 2796 2611 2640 2642 2732 2782 2788 2686 2693 2677 2626 2661 2606 2651 2747 2784 2785 2618 2801 2733 2661 2752 2828 2729 2744 2722 2641 2737 2789 2779 2757 2826 2733 2685 2675 2709 2728 2812 2796 2763 2734 2665 2715 2708 2672 2733 2769 2791 2744 2697 2668 2683 2713 2620 2782 2751 2747 2815 2717 2804 2720 2809 2803 2835 2886 2841 2782 2835 2830 2744 2908 2874 2887 2763 2853 2800 2916 2794 2952 2790 2657 2581 2099 321 67 31 30 31 20 21 22 16 12 12 14 13 13 10 13 14 10 9 7 9
73 10 9 12 11 12 16 9 9 15 16 15 24 17 18 32 56 314 1755 2323 2423 2486 2467 2684 2634 2774 2402 2543 2714 2654 2664 2694 2753 2637 2629 2716 2811 2736 2774 2782 2708 2795 2769 2702 2730 2747 2766 2757 2761 2632 2773 2738 2777 2742 2861 2769 2798 2723 2717 2748 2753 2765 2768 2854 2852 2685 2728 2757 2720 2715 2776 2739 2691 2686 2719 2665 2648 2688 2765 2676 2720 2726 2723 2637 2679 2709 2770 2821 2726 2760 2688 2802 2708 2765 2835 2940 2812 2785 2777 2780 2771 2686 2903 2869 2816 2702 2851 2883 2923 2806 2924 2824 2688 2643 2202 360 63 31 28 26 22 23 14 12 14 11 13 11 11 14 8 11 10 8 9 10
74 10 10 9 10 12 14 13 9 11 16 25 21 19 17 35 64 293 1768 2338 2517 2601 2652 2743 2573 2840 2512 2621 2693 2720 2781 2827 2912 2583 2778 2838 2799 2788 2796 2850 2813 2941 2656 2803 2821 2762 2646 2862 2749 2180 2625 2772 2838 2791 2664 2792 2784 2684 2652 2775 2758 2673 2737 2805 2717 2707 2740 2822 2646 2678 2698 2768 2812 2658 2723 2714 2669 2580 2747 2745 2780 2640 2704 2746 2710 2729 2818 2829 2815 2817 2815 2723 2830 2846 2907 2942 2897 2850 2884 2851 2831 2808 2850 2995 2939 2897 2891 2884 2996 2898 2930 2835 2756 2670 2034 332 65 35 32 24 22 23 16 14 13 13 14 10 14 9 12 10 8 8 11 10
75 11 7 12 12 10 10 11 10 16 17 17 22 22 21 33 57 305 1850 2415 2472 2565 2658 2638 2597 2817 2606 2632 2625 2679 2749 2768 2890 2687 2710 2781 2829 2766 2780 2826 2785 2768 2667 2795 2813 2783 2674 2732 2796 2733 2682 2765 2849 2819 2711 2827 2794 2854 2734 2658 2881 2683 2736 2691 2796 2705 2642 2708 2850 2805 2753 2842 2741 2697 2633 2698 2674 2714 2764 2818 2800 2755 2790 2766 2678 2699 2679 2869 2887 2844 2752 2845 2817 2735 2851 2827 2835 2891 2839 2785 2914 2726 2907 2977 2936 2854 2834 2924 2953 2871 2857 2882 2744 2659 1834 281 65 28 32 18 23 18 18 20 10 12 11 13 9 9 11 10 10 11 9 11
76 9 12 9 13 10 11 13 15 10 14 14 24 22 26 34 63 305 1691 2343 2496 2581 2540 2723 2541 2834 2461 2548 2712 2759 2699 2661 2798 2676 2708 2747 2789 2747 2848 2722 2800 2821 2696 2796 2789 2717 2762 2799 2830 2795 2750 2743 2741 2810 2739 2836 2806 2773 2667 2751 2789 2739 2840 2478 2863 2811 2841 2753 2780 2766 2744 2794 2853 2803 2740 2750 2727 2807 2710 2757 2757 2729 2695 2765 2748 2679 2796 2781 2851 2797 2821 2704 2828 2822 2876 2919 2939 2860 2758 2811 2929 2750 2825 2855 2919 2856 2789 2878 3024 2864 2794 2811 2726 2652 1940 287 68 29 23 28 20 21 18 12 12 11 15 12 12 12 11 12 8 12 14 11
77 11 10 11 7 15 8 10 14 14 16 19 19 19 27 34 54 296 1696 2340 2496 2480 2553 2634 2231 2960 2515 2669 2625 2670 2795 2774 2542 2668 2783 2728 2828 2861 2830 2821 2917 2846 2760 2799 2849 2819 2817 2780 2917 2835 2781 2841 2827 2811 2818 2820 2809 2813 2744 2757 2705 2773 2798 2806 2744 2768 2742 2752 2790 2681 2715 2775 2727 2680 2691 2653 2653 2811 2743 2766 2689 2682 2703 2713 2703 2745 2776 2835 2794 2803 2749 2827 2812 2760 2852 2837 2892 2876 2847 2870 2897 2817 2841 2905 2846 2823 2916 2850 2995 2971 2951 2872 2763 2687 2110 355 69 28 25 22 21 24 19 16 13 15 10 16 11 11 12 11 9 8 14 10
78 10 10 10 14 10 14 10 18 13 16 18 19 29 27 38 53 283 1665 2516 2537 2617 2655 2675 2676 2962 2558 2690 2714 2737 2813 2706 2925 2786 2786 2760 2857 2827 2814 2797 2932 2908 2827 2716 2867 2810 2750 2835 2776 2804 2733 2713 2814 2706 2758 2799 2876 2774 2757 2770 2750 2778 2880 2837 2743 2747 2751 2634 2760 2707 2795 2799 2758 2700 2635 2691 2755 2788 2854 2747 2867 2709 2711 2735 2800 2737 2751 2771 2828 2769 2838 2761 2879 2780 2834 3003 2869 2879 2892 2885 2912 2804 3001 2986 2927 2790 2931 2882 3137 2947 3029 2878 2825 2723 2214 384 70 33 31 27 24 19 18 10 14 14 14 10 14 10 12 11 11 6 10 11
79 11 9 7 14 9 14 16 10 12 19 18 14 24 26 34 53 278 1640 2403 2496 2366 2611 2604 2592 2861 2637 2642 2570 2631 2727 2722 2862 2575 2797 2771 2757 2821 2809 2760 2811 2765 2754 2750 2720 2807 2804 2820 2731 2776 2780 2769 2794 2766 2792 2828 2827 2737 2685 2796 2697 2770 2819 2928 2808 2797 2698 2735 2783 2670 2703 2735 2855 2772 2763 2735 2754 2766 2947 2864 2853 2781 2765 2747 2693 2757 2771 2941 2928 2916 2670 2860 2823 2832 2900 2975 2864 2911 2887 2845 2883 2806 2907 2932 3012 2855 2831 2807 2943 2809 2931 2940 2709 2642 2282 416 72 31 21 25 21 21 14 11 13 12 11 11 10 12 9 11 10 9 13 8
80 11 10 11 15 11 14 10 11 16 15 19 24 20 16 32 53 233 1511 2305 2417 2546 2623 2663 2639 2871 2488 2595 2514 2672 2760 2771 2789 2676 2767 2698 2835 2843 2761 2841 2793 2821 2802 2758 2731 2739 2794 2844 2923 2804 2710 2818 2771 2837 2897 2897 2792 2814 2763 2798 2776 2815 2938 2872 2794 2862 2762 2818 2760 2875 2796 2906 2781 2813 2694 2771 2771 2724 2792 2822 2828 2808 2764 2773 2773 2667 2658 2888 2894 2782 2775 2821 2823 2761 2848 2942 2848 2847 2821 2876 2966 2804 2857 3031 2846 2840 2787 2903 2973 2884 2909 2838 2688 2671 2241 453 71 35 25 26 29 23 15 13 13 11 15 12 13 12 12 12 10 12 11 12
81 11 12 11 12 10 10 12 15 12 14 19 24 20 24 24 46 237 1554 2446 2432 2582 2560 2631 2613 2834 2509 2603 2616 2826 2824 2728 2892 2739 2728 2779 2788 2873 2923 2877 2897 2954 2806 2540 2824 2832 2775 2864 2840 2819 2814 2802 2820 2818 2878 2949 2887 2857 2738 2853 2808 2795 2771 2919 2899 2786 2782 2796 2861 2758 2754 2736 2822 2720 2759 2770 2730 2633 2794 2786 2778 2711 2659 2717 2737 2705 2834 2813 2884 2814 2829 2683 2809 2746 2843 2959 2892 2798 2914 2783 2894 2772 2806 3045 2954 2866 2868 2798 3074 2837 2933 2927 2718 2629 2192 408 73 27 34 24 21 24 13 15 10 12 14 10 10 13 9 9 10 13 15 12
82 11 13 9 13 10 14 11 9 11 14 23 20 23 26 32 62 265 1547 2321 2421 2678 2677 2720 2672 2915 2543 2670 2646 2773 2812 2810 2844 2797 2776 2815 2815 2979 2872 2931 2907 3007 2885 2770 2894 2825 2785 2801 2896 2785 2804 2776 2807 2905 2728 2880 2851 2845 2734 2728 2727 2823 2734 2737 2809 2799 2762 2734 2822 2710 2660 2765 2821 2745 2661 2676 2791 2711 2687 2847 2915 2776 2656 2756 2789 2712 2796 2765 2837 2742 2747 2905 2816 2791 2848 2870 2915 2919 2862 2888 2902 2817 2900 2878 2911 2836 2822 2904 3007 2970 2995 2897 2803 2719 1991 323 61 33 31 28 26 21 16 14 11 11 13 11 8 12 17 11 6 8 10 11
83 11 13 10 8 12 9 12 11 15 13 18 19 29 22 36 43 248 1549 2455 2486 2653 2587 2694 2649 2951 2485 2574 2661 2781 2810 2822 2872 2755 2741 2744 2828 2836 2877 2858 2861 2918 2712 2851 2778 2815 2812 2810 2772 2744 2779 2756 2753 2732 2748 2857 2782 2899 2737 2699 2835 2845 2781 2767 2823 2771 2698 2764 2756 2806 2739 2808 2795 2855 2730 2666 2727 2752 2796 2851 2766 2753 2730 2715 2790 2727 2648 2803 2870 2899 2827 2869 2863 2811 2848 2996 2981 2941 2888 2802 2861 2801 2856 2937 2974 2900 2805 2849 3085 2904 2845 2857 2740 2619 2096 366 64 36 27 31 23 23 17 15 11 13 12 12 13 10 10 16 11 8 10 8
84 10 13 12 13 11 12 9 9 12 14 19 19 21 26 35 45 255 1511 2354 2435 2525 2581 2653 2645 2853 2450 2593 2652 2707 2659 2636 2823 2753 2816 2728 2798 2808 2854 2759 2898 2849 2803 2836 2849 2767 2815 2841 2822 2913 2736 2792 2849 2840 2808 2912 2853 2855 2827 2854 2660 2838 2852 2825 2884 2879 2761 2736 2780 2810 2763 2829 2781 2852 2773 2690 2809 2761 2761 2800 2788 2786 2830 2733 2725 2756 2788 2709 2789 2745 2754 2842 2811 2891 2758 2920 2858 2866 2848 2843 2965 2730 2792 2915 2793 2868 2826 2838 3074 2884 2803 2827 2772 2755 2311 463 79 34 27 24 26 22 14 16 14 9 11 10 13 12 13 12 11 12 12 11
85 11 9 12 10 13 12 9 12 14 18 26 19 25 20 30 41 263 1486 2347 2433 2558 2624 2529 2626 2798 2545 2638 2672 2806 2758 2787 2869 2752 2814 2840 2834 2834 2869 2769 2942 2984 2902 2800 2946 2819 2796 2892 2939 2882 2810 2745 2845 2808 2888 2888 2909 2748 2738 2834 2828 2792 2781 2829 2810 2832 2702 2745 2763 2819 2727 2815 2741 2736 2713 2656 2775 2768 2854 2742 2797 2745 2708 2741 2728 2681 2802 2758 2814 2739 2743 2663 2760 2876 2812 2951 2900 2790 2784 2778 2848 2807 2854 2972 2894 2984 2857 2799 3047 2854 2999 2835 2766 2681 2306 519 70 33 27 24 23 26 14 19 13 11 12 13 8 11 12 11 13 15 11 12
86 10 12 11 11 10 13 14 14 11 14 26 19 27 21 36 44 254 1443 2453 2459 2596 2732 2593 2560 2959 2601 2741 2618 2689 2706 2763 2859 2801 2788 2773 2716 2898 2904 2834 2903 2967 2819 2788 2793 2793 2769 2779 2832 2731 2770 2759 2834 2667 2819 2888 2829 2794 2731 2826 2690 2713 2831 2826 2764 2762 2674 2671 2658 2729 2691 2696 2708 2720 2718 2627 2733 2832 2756 2750 2779 2742 2759 2715 2768 2766 2690 2809 2918 2820 2746 2845 2814 2854 2846 2906 2953 2933 2835 2869 2904 2830 2839 2923 2931 2892 2851 2921 3016 2788 2883 2864 2774 2656 2277 495 78 34 25 23 27 22 19 14 12 11 10 11 13 9 9 15 12 13 11 9
87 8 13 10 10 7 12 11 13 15 11 27 19 21 23 28 43 227 1381 2442 2506 2669 2580 2705 2675 2906 2475 2682 2639 2704 2824 2697 2802 2786 2758 2753 2789 2888 2781 2811 2914 2856 2779 2814 2799 2753 2831 2855 2876 2789 2798 2804 2812 2748 2826 2932 2918 2831 2878 2765 2706 2824 2878 2869 2921 2846 2799 2691 2745 2797 2772 2843 2795 2844 2747 2742 2757 2753 2769 2789 2899 2798 2829 2719 2842 2767 2725 2846 2853 2899 2821 2812 2863 2893 2855 2958 2911 2938 2861 2786 2972 2741 2846 2935 2975 2874 2762 2761 3077 2770 2911 2861 2743 2633 2276 483 81 28 29 31 17 21 13 15 13 11 10 13 10 11 10 9 12 7 12 8
88 11 12 13 11 9 9 13 13 12 12 20 20 20 28 29 49 189 1298 2357 2358 2588 2659 2638 2562 2958 2556 2658 2593 2754 2741 2698 2870 2694 2774 2719 2769 2894 2840 2830 2923 2822 2834 2771 2754 2862 2786 2862 2830 2845 2859 2798 2803 2811 3010 2897 2843 2852 2767 2761 2804 2815 2828 2851 2995 2786 2777 2727 2747 2718 2769 2815 2814 2833 2821 2739 2687 2773 2764 2822 2824 2710 2738 2706 2676 2677 2663 2705 2786 2772 2743 2861 2649 2475 2810 2909 2965 2876 2796 2799 2821 2780 2826 2966 2858 2821 2851 2795 3090 2788 2835 2843 2710 2550 2202 453 73 34 28 20 29 20 15 13 16 12 13 11 11 10 10 14 11 13 8 9
89 9 9 10 12 8 10 8 12 13 15 24 19 23 18 33 39 198 1295 2397 2372 2531 2661 2668 2592 2944 2517 2584 2570 2768 2806 2797 2859 2708 2699 2733 2866 2844 2896 2934 2846 2948 2851 2745 2814 2820 2875 2835 2818 2905 2829 2848 2816 2913 2869 2885 2871 2860 2774 2718 2789 2783 2834 2768 2834 2784 2749 2699 2834 2757 2723 2680 2759 2816 2717 2657 2726 2683 2704 2682 2789 2639 2684 2728 2708 2696 2571 2709 2866 2732 2718 2736 2675 2674 2769 2812 2855 2739 2816 2729 2799 2746 2813 2916 2959 2798 2812 2769 3013 2870 2754 2854 2691 2640 2192 445 78 34 33 25 23 29 13 15 13 9 9 12 14 11 12 10 8 10 9 9
90 13 8 11 12 13 15 11 12 11 12 20 19 28 26 25 35 189 1349 2448 2466 2571 2689 2675 2688 2913 2595 2602 2600 2716 2778 2844 2852 2704 2792 2759 2836 2906 2855 2841 2841 2828 2790 2806 2806 2801 2792 2779 2857 2832 2841 2732 2648 2853 2771 2694 2775 2760 2772 2785 2802 2759 2772 2735 2843 2760 2785 2651 2719 2713 2725 2655 2734 2740 2674 2643 2712 2710 2743 2736 2835 2820 2741 2672 2709 2643 2785 2768 2833 2795 2741 2773 2801 2745 2808 3002 3035 2926 2850 2777 2970 2889 2827 2951 2993 2896 2812 2863 3096 2822 2964 2905 2837 2550 2269 493 71 32 25 20 26 25 16 15 10 12 12 10 16 13 12 9 12 10 8 10
91 8 10 10 13 8 11 15 12 16 13 16 19 20 25 31 39 217 1268 2327 2354 2533 2596 2629 2651 2803 2492 2568 2647 2669 2717 2654 2799 2673 2738 2707 2725 2779 2794 2752 2852 2788 2706 2725 2658 2695 2668 2757 2783 2770 2655 2664 2756 2837 2789 2795 2736 2871 2742 2789 2671 2749 2742 2811 2765 2781 2742 2700 2625 2745 2718 2698 2802 2753 2759 2647 2690 2697 2744 2777 2832 2750 2672 2653 2761 2800 2686 2815 2871 2870 2783 2798 2786 2836 2780 2922 2850 2798 2921 2770 2896 2844 2873 2868 2920 2863 2806 2739 2988 2870 2871 2784 2780 2683 2263 487 74 37 26 28 23 17 19 18 10 11 8 10 11 11 12 7 11 9 9 10
92 14 11 12 12 10 9 9 10 13 14 27 19 18 18 29 49 198 1193 2383 2249 2465 2573 2663 2506 2710 2451 2540 2603 2676 2684 2674 2774 2712 2758 2705 2750 2836 2777 2743 2873 2723 2818 2732 2733 2735 2705 2768 2883 2840 2783 2762 2889 2849 2820 2912 2846 2923 2796 2777 2755 2711 2722 2797 2856 2735 2832 2624 2735 2765 2763 2834 2839 2782 2741 2690 2710 2770 2823 2906 2835 2723 2793 2790 2768 2708 2791 2780 2845 2820 2850 2734 2845 2876 2880 2866 2852 2882 2917 2807 2910 2806 2742 2896 2876 2822 2822 2845 3059 2924 2868 2902 2810 2629 2416 519 75 25 30 22 15 20 13 16 13 11 11 11 9 13 12 14 10 10 9 9
93 10 9 9 14 8 8 11 10 15 18 22 26 21 19 26 33 204 1178 2354 2275 2493 2480 2513 2419 2779 2471 2559 2534 2696 2709 2567 2764 2778 2712 2753 2684 2778 2749 2765 2818 2822 2787 2744 2763 2779 2814 2819 2771 2808 2816 2615 2825 2806 2795 2873 2803 2817 2770 2688 2734 2790 2833 2877 2917 2842 2790 2630 2671 2766 2788 2812 2638 2764 2658 2674 2649 2726 2670 2784 2729 2706 2767 2656 2713 2720 2804 2717 2813 2828 2609 2679 2765 2825 2811 2827 2934 2905 2818 2794 2903 2802 2783 2948 2866 2915 2878 2712 3052 2839 2826 2927 2777 2643 2442 564 75 26 30 20 13 20 11 13 10 11 8 10 8 10 10 8 10 9 11 11
94 11 13 13 10 7 14 13 11 14 12 17 19 31 21 26 37 183 1128 2412 2318 2622 2596 2638 2598 2765 2550 2674 2715 2709 2733 2846 2886 2826 2776 2775 2789 2914 2901 2850 2842 2922 2808 2788 2796 2809 2704 2776 2911 2818 2835 2802 2798 2749 2785 2884 2844 2789 2813 2709 2716 2710 2799 2767 2774 2749 2777 2745 2696 2716 2774 2725 2826 2774 2814 2761 2658 2788 2792 2806 2772 2887 2806 2753 2769 2814 2750 2782 2931 2869 2852 2878 2842 2855 2876 2931 2939 2999 2910 2867 2992 2811 2854 2922 2948 2928 2831 2757 3062 2758 2847 2987 2903 2616 2389 533 84 34 30 20 23 23 19 15 11 12 12 10 10 12 11 10 12 12 10 10
95 12 11 13 11 10 11 13 8 13 16 20 16 21 25 25 39 164 1043 2299 2225 2520 2562 2620 2606 2766 2553 2511 2498 2661 2672 2649 2749 2706 2724 2666 2673 2765 2793 2742 2785 2805 2807 2773 2793 2789 2758 2734 2819 2725 2739 2696 2818 2764 2759 2873 2867 2759 2839 2761 2779 2851 2752 2835 2828 2841 2722 2757 2722 2755 2764 2826 2778 2866 2751 2688 2732 2747 2709 2797 2873 2761 2797 2657 2603 2791 2741 2760 2836 2765 2797 2715 2700 2824 2806 2729 2896 2869 2844 2735 2839 2802 2755 2941 2879 2835 2770 2666 3043 2782 2795 2854 2746 2535 2274 542 81 32 18 24 21 22 16 12 15 11 11 10 11 14 9 14 12 8 15 14
96 11 11 10 13 13 10 11 9 13 14 17 18 25 18 30 40 179 1135 2331 2276 2478 2463 2604 2582 2771 2531 2507 2575 2710 2672 2680 2808 2715 2792 2734 2719 2831 2886 2847 2842 2891 2818 2802 2797 2881 2826 2879 2895 2886 2881 2792 2820 2887 2906 2940 2900 2853 2809 2780 2875 2850 2841 2700 2829 2851 2750 2713 2713 2731 2696 2688 2807 2753 2727 2705 2783 2798 2671 2769 2862 2775 2679 2660 2718 2676 2705 2758 2797 2779 2691 2769 2782 2834 2718 2816 2912 2966 2844 2697 2817 2783 2725 2835 2890 2711 2770 2649 2979 2707 2673 2767 2638 2521 2325 512 72 28 25 19 18 19 16 18 7 11 14 13 9 13 10 10 12 12 10 14
97 9 12 13 12 7 13 11 10 12 14 20 20 16 22 25 38 184 1102 2295 2322 2496 2580 2601 2575 2815 2555 2579 2741 2673 2697 2817 2785 2728 2738 2671 2684 2795 2821 2872 2799 2931 2724 2663 2769 2845 2831 2871 2827 2822 2749 2778 2820 2830 2894 2829 2763 2790 2794 2744 2694 2868 2702 2684 2725 2747 2709 2691 2731 2748 2648 2663 2859 2802 2660 2700 2672 2660 2615 2720 2771 2859 2675 2739 2649 2713 2715 2691 2792 2856 2699 2705 2694 2707 2640 2702 2904 2888 2767 2736 2775 2711 2697 2823 2799 2822 2683 2624 2887 2852 2636 2721 2742 2542 2247 562 84 33 26 18 23 22 16 14 8 10 12 12 10 14 10 9 10 10 11 7
98 11 14 15 9 9 13 13 12 10 14 20 24 23 23 22 36 185 1101 2254 2340 2530 2515 2599 2536 2769 2626 2581 2501 2679 2699 2772 2739 2722 2688 2715 2703 2763 2841 2733 2765 2791 2682 2780 2696 2684 2803 2784 2697 2810 2798 2725 2688 2863 2711 2736 2796 2765 2627 2602 2728 2770 2713 2731 2741 2704 2658 2598 2638 2745 2715 2615 2726 2706 2732 2636 2687 2700 2603 2653 2740 2783 2715 2757 2689 2741 2665 2737 2690 2776 2785 2615 2685 2750 2694 2774 2800 2856 2854 2736 2794 2785 2747 2818 2821 2738 2700 2698 2958 2820 2744 2724 2686 2576 2326 542 85 36 26 22 25 24 15 14 9 13 12 14 12 12 9 11 10 9 12 12
99 9 8 10 10 8 11 12 12 13 9 18 18 23 17 24 39 185 1167 2210 2222 2420 2517 2575 2423 2694 2422 2445 2531 2612 2595 2639 2631 2572 2705 2743 2656 2701 2806 2682 2692 2783 2690 2680 2699 2758 2576 2700 2761 2705 2851 2612 2734 2737 2803 2669 2764 2818 2700 2691 2757 2714 2728 2702 2702 2818 2695 2640 2630 2717 2681 2714 2830 2778 2680 2710 2607 2727 2708 2766 2809 2791 2770 2691 2668 2779 2795 2726 2783 2814 2777 2798 2714 2789 2751 2779 2785 2815 2840 2730 2760 2736 2722 2757 2788 2794 2757 2663 2930 2772 2683 2651 2627 2512 2284 501 81 32 28 24 24 26 15 14 14 14 12 14 13 12 11 11 14 11 8 10
100 9 11 12 10 8 11 12 13 11 15 18 21 24 19 31 37 183 1101 2348 2205 2458 2548 2450 2373 2734 2501 2472 2521 2657 2634 2595 2605 2654 2610 2662 2663 2722 2801 2678 2656 2751 2750 2747 2680 2741 2750 2687 2851 2792 2824 2754 2743 2784 2769 2819 2787 2362 2793 2647 2802 2794 2684 2750 2763 2757 2741 2747 2692 2620 2807 2709 2717 2761 2694 2658 2051 2668 2691 2714 2803 2859 2668 2679 2730 2670 2692 2770 2807 2756 2698 2747 2764 2780 2777 2747 2765 2872 2742 2772 2834 2757 2743 2669 2833 2790 2781 2621 2944 2789 2658 2724 2712 2529 2258 528 83 30 26 26 21 19 17 14 12 13 14 12 9 11 7 10 8 10 10 9
101 12 13 8 13 10 9 12 10 12 12 23 17 19 21 18 28 160 1003 2190 2102 2339 2393 2407 2386 2559 2498 2436 2445 2468 2575 2619 2682 2570 2770 2547 2632 2609 2752 2675 2672 2794 2776 2709 2639 2643 2717 2724 2721 2698 2669 2666 2612 2751 2693 2651 2819 2741 2669 2647 2652 2682 2774 2771 2790 2825 2718 2672 2588 2640 2712 2705 2764 2654 2738 2605 2435 2654 2648 2594 2735 2765 2673 2723 2593 2617 2664 2637 2755 2798 2727 2641 2708 2813 2710 2690 2843 2826 2786 2650 2686 2718 2642 2717 2775 2757 2694 2692 2961 2826 2670 2676 2631 2473 2386 600 84 27 19 22 19 22 11 19 13 12 11 11 13 8 10 9 9 10 9 13
102 11 11 13 13 11 10 11 14 10 11 16 15 18 18 25 38 189 1074 2336 2376 2492 2634 2659 2571 2762 2679 2657 2627 2773 2831 2815 2923 2806 2943 2889 2820 2519 2974 2892 2985 2910 2895 2883 2948 3028 2911 2974 2944 2992 2940 2975 3040 3006 3005 2959 2940 2971 3006 2910 2934 2927 2944 2894 2911 2905 2947 2860 2786 2764 2858 2935 2913 2936 2995 2922 2894 2843 2873 2973 2971 3010 2824 2494 2894 2992 2942 2860 2921 2967 2947 2971 2882 2897 2961 2898 3008 3046 3023 2846 2971 2944 2862 2932 2992 2942 2709 2754 3065 2886 2747 2905 2833 2620 2271 587 84 24 21 19 22 18 11 16 16 12 10 14 11 12 10 10 10 7 12 6
103 11 11 13 12 10 13 13 16 15 11 15 16 20 21 20 28 176 900 2126 2166 2336 2461 2383 2468 2611 2443 2554 2478 2545 2660 2706 2688 2805 2701 2697 2673 2733 2762 2824 2847 2831 2789 2866 2777 2793 2738 2831 2773 2715 2885 2799 2893 2752 2867 2811 2854 2928 2892 2732 2797 2804 2884 2909 2819 2864 2795 2845 2782 2843 2808 2783 2831 2855 2833 2731 2786 2679 2673 2754 2716 2851 2735 2764 2723 2631 2663 2776 2878 2765 2740 2740 2641 2738 2596 2726 2904 2839 2724 2691 2761 2604 2651 2686 2790 2827 2677 2613 2827 2701 2603 2650 2573 2423 2154 553 79 29 22 24 15 22 17 14 9 11 9 8 11 10 10 8 9 10 11 12
104 13 15 14 10 11 15 11 12 12 11 14 17 20 19 19 27 169 965 2196 2297 2441 2488 2637 2530 2699 2592 2585 2226 2580 2773 2749 2877 2804 2870 2877 2815 2850 2919 2846 2937 2909 3004 2853 2900 2864 2897 2909 2886 2941 2954 2896 2897 3029 2905 2978 2991 2986 2999 2890 2837 2995 2862 2901 2880 2873 2845 2964 2828 2843 2931 2736 2852 2932 2649 2780 2848 2840 2754 2782 2868 2930 2859 2830 2799 2773 2738 2712 2204 2940 2822 2754 2802 2872 2725 2765 2850 2935 2858 2797 2829 2749 2674 2731 2859 2842 2701 2634 2782 2801 2612 2659 2564 2481 2190 528 80 28 28 23 27 12 12 13 10 12 12 8 11 10 14 12 14 12 7 10
105 10 10 10 12 9 12 12 16 8 12 16 10 17 17 20 32 162 928 2162 2199 2407 2531 2542 2484 2773 2496 2597 2220 2627 2707 2679 2757 2764 2888 2715 2686 2812 2903 2923 2817 2876 2782 2782 2762 2764 2786 2876 2787 2837 2879 2806 2817 2814 2886 2832 2837 2857 2852 2765 2782 2726 2824 2810 2823 2755 2737 2655 2706 2755 2738 2703 2799 2833 2599 2667 2645 2698 2677 2699 2742 2769 2718 2692 2655 2702 2601 2577 2642 2744 2709 2626 2656 2767 2604 2644 2632 2722 2706 2570 2675 2638 2581 2646 2715 2672 2652 2458 2724 2615 2516 2449 2463 2320 2087 513 84 27 26 15 18 19 18 16 12 12 11 12 13 11 14 11 8 11 10 11
106 10 11 12 11 9 12 14 10 12 10 12 13 18 19 24 37 169 897 2214 2230 2309 2524 2501 2454 2742 2510 2481 2485 2646 2670 2740 2745 2737 2818 2765 2664 2748 2933 2738 2724 2915 2787 2790 2738 2804 2759 2704 2843 2832 2851 2715 2786 2826 2803 2832 2890 2867 2849 2719 2688 2852 2751 2780 2762 2815 2773 2707 2725 2648 2673 2707 2772 2748 2767 2607 2563 2622 2633 2599 2648 2727 2709 2629 2578 2671 2561 2594 2697 2761 2720 2435 2614 2643 2662 2560 2710 2739 2720 2640 2661 2627 2643 2645 2609 2625 2492 2539 2682 2659 2519 2507 2441 2320 2139 563 82 25 19 18 17 18 11 11 11 10 8 7 10 8 12 12 9 15 9 10
107 9 7 8 10 10 7 11 11 9 13 17 15 15 15 20 32 150 921 2287 2304 2356 2466 2640 2477 2719 2586 2487 2505 2569 2688 2713 2796 2764 2823 2797 2777 2765 2949 2737 2779 2799 2835 2691 2754 2851 2820 2791 2848 2868 2759 2769 2743 2849 2771 2832 2835 2781 2714 2728 2698 2695 2683 2620 2668 2720 2693 2675 2590 2584 2674 2712 2710 2668 2722 2688 2559 2638 2744 2655 2699 2707 2722 2621 2625 2596 2669 2633 2662 2760 2731 2561 2739 2721 2655 2648 2698 2692 2633 2696 2704 2690 2602 2552 2650 2631 2562 2434 2743 2615 2525 2497 2466 2443 2265 608 66 25 20 22 13 18 15 12 9 9 12 9 11 10 10 10 14 8 10 11
108 11 12 11 10 13 9 10 8 10 9 12 14 15 19 20 22 162 876 2179 2098 2188 2261 2316 2303 2411 2309 2315 2393 2503 2385 2321 2440 2517 2509 2435 2401 2502 2489 2501 2412 2425 2351 2309 2406 2404 2384 2354 2298 2449 2451 2352 2341 2426 2416 2323 2391 2360 2254 2306 2257 2236 2237 2117 2014 2067 2114 2050 2023 1935 2128 2190 2101 2125 2112 2217 2061 2036 2216 2130 2121 2147 2075 2082 2152 2170 2150 2081 2136 2155 2162 2094 2189 2137 2063 2042 2027 2066 2006 1924 2049 2070 2066 1931 1968 1918 1841 1780 1901 1907 1840 1885 1848 1834 1654 561 61 17 17 22 14 15 13 12 12 8 13 10 8 11 11 12 9 11 13 8
109 10 8 13 10 7 10 11 8 10 10 11 11 17 17 15 20 78 316 699 712 798 799 824 798 818 733 775 813 890 855 798 786 815 765 767 745 816 818 835 774 755 685 709 793 787 739 684 711 762 751 758 742 690 738 725 717 674 646 665 693 654 639 602 509 514 570 544 570 513 554 632 565 569 616 550 557 589 583 552 559 554 549 521 526 548 588 539 523 551 527 552 595 584 542 484 499 495 448 474 502 500 548 511 494 454 437 405 430 431 416 411 426 432 371 156 29 16 15 10 10 14 11 13 13 12 8 10 11 13 9 9 10 11 11 10
110 9 9 10 8 11 8 12 11 11 9 11 11 10 11 14 11 18 25 40 53 50 46 59 63 59 50 47 71 69 52 56 58 55 48 44 48 54 55 48 50 74 47 59 60 68 53 52 56 52 64 66 62 52 51 56 52 57 43 56 59 59 53 45 42 45 61 45 40 45 37 44 44 47 40 44 46 50 46 47 42 43 43 38 44 58 46 45 34 49 41 36 48 46 45 47 45 42 39 43 42 43 40 47 33 43 31 33 36 29 34 26 34 24 24 16 16 16 14 11 11 9 9 11 10 12 12 14 9 8 10 11 8 12 16 10
111 10 9 12 14 11 8 8 12 11 13 13 11 8 15 14 12 13 15 21 26 18 22 24 29 28 29 28 29 24 33 32 31 35 30 27 28 32 32 35 36 38 33 29 41 37 37 39 33 40 34 39 40 34 33 40 30 33 37 35 33 33 41 37 34 33 32 37 33 34 38 33 34 36 37 35 36 34 34 42 24 38 35 33 33 32 31 36 32 32 30 37 35 21 31 34 32 33 36 40 35 32 34 29 31 26 27 31 26 30 28 23 22 23 22 15 12 14 10 12 14 8 12 10 10 8 12 10 10 8 13 7 11 10 9 9
112 9 14 15 13 11 11 12 12 10 10 12 12 13 14 14 13 10 15 18 24 17 23 19 21 27 23 25 29 22 25 21 23 27 30 27 27 37 28 25 25 26 33 25 26 29 21 24 23 30 28 33 27 33 22 22 27 29 27 29 21 25 28 28 31 29 30 30 20 27 38 24 25 34 25 27 26 29 32 25 19 26 27 22 28 31 26 25 25 27 27 32 23 26 26 26 21 22 30 28 25 26 22 29 29 24 16 26 22 20 22 22 16 23 17 13 10 10 11 12 16 10 9 9 12 8 8 12 14 8 10 10 10 10 11 7
113 10 9 10 8 10 10 8 11 12 12 11 9 14 13 14 10 12 13 17 14 18 19 19 14 20 27 25 23 21 16 21 24 16 21 23 21 20 25 25 22 19 22 26 24 26 20 25 26 20 28 27 28 25 28 29 27 22 25 25 20 26 21 26 24 33 23 25 21 22 25 28 25 20 20 22 25 25 23 29 21 22 21 20 24 23 21 24 22 24 26 24 22 29 26 25 20 18 32 24 19 25 27 19 21 20 19 22 20 21 18 14 18 17 15 12 9 7 14 10 16 9 12 9 9 8 7 12 12 10 8 10 12 10 11 9
114 12 7 11 11 8 11 12 9 11 8 8 13 11 12 13 10 12 16 12 18 19 17 15 22 18 19 18 20 20 16 18 28 16 23 28 24 26 17 20 20 19 26 21 20 25 23 25 23 23 27 19 17 22 27 25 23 25 27 30 22 20 26 19 29 22 27 27 21 18 15 20 18 24 23 26 33 22 24 26 20 21 23 24 19 24 20 19 23 17 21 19 18 22 23 14 21 25 20 24 19 15 25 17 18 18 21 22 19 16 17 18 13 18 18 16 10 10 11 9 8 10 13 9 13 9 11 8 10 12 10 7 10 10 10 8
115 9 11 10 8 9 11 10 11 11 12 13 13 9 10 13 10 12 19 14 11 10 14 14 15 18 18 15 14 17 19 18 17 16 24 16 20 22 20 17 19 20 21 18 18 23 20 18 21 24 19 18 23 17 21 20 17 21 17 25 21 25 18 21 19 20 18 17 13 20 22 19 16 16 17 21 18 19 19 14 19 20 20 19 18 18 23 19 21 19 16 19 17 15 17 22 18 20 28 20 22 19 15 18 17 15 16 16 19 12 18 13 16 15 11 9 9 10 12 11 11 12 8 11 8 13 8 11 8 12 12 12 8 10 11 11
116 11 14 10 10 9 11 11 8 9 10 12 11 11 11 12 11 11 10 15 13 17 12 13 16 13 17 15 14 16 17 21 18 15 25 19 17 18 18 18 20 14 21 18 13 22 18 14 20 23 18 21 23 15 22 20 20 19 18 16 14 16 18 19 16 21 14 21 26 19 16 17 15 19 22 17 24 15 14 18 20 19 16 17 15 18 18 13 20 15 14 19 16 19 17 22 14 20 20 19 22 16 13 18 19 12 13 15 17 16 13 19 13 15 16 10 12 12 7 11 10 12 12 8 10 11 11 10 11 9 9 11 10 10 10 9
117 8 8 8 10 12 9 12 9 13 13 13 11 13 9 11 10 10 13 11 14 13 12 14 11 12 12 16 13 12 12 16 14 14 15 15 13 16 16 12 11 14 14 11 17 13 17 19 11 12 14 12 16 18 14 16 12 10 13 16 17 16 14 15 14 11 14 14 15 19 16 14 14 13 15 19 13 14 17 18 14 16 12 11 15 17 12 12 14 14 13 14 14 12 10 11 13 11 13 15 16 9 13 15 12 16 14 14 14 12 12 12 9 13 10 7 10 10 9 11 12 12 9 7 12 7 14 9 8 9 11 9 8 7 11 10
118 11 10 10 9 12 10 9 11 10 12 9 11 13 17 13 12 10 11 12 14 15 14 13 12 11 11 13 11 9 14 13 15 14 12 12 9 12 10 13 10 13 17 10 14 16 14 12 15 11 15 12 12 12 12 16 15 14 15 10 11 13 15 14 12 11 12 13 14 12 13 12 16 17 14 10 15 12 9 11 14 12 14 15 10 11 14 15 13 11 16 16 15 14 11 19 9 12 14 16 9 15 11 11 7 15 9 11 12 10 9 11 11 13 12 10 9 11 10 11 10 8 12 7 10 9 7 9 10 9 10 9 8 7 11 11
119 8 7 10 11 11 11 7 11 10 11 12 10 15 11 10 12 12 11 10 9 14 11 10 8 11 11 13 14 14 10 9 15 12 14 14 10 9 12 14 10 13 17 10 13 14 12 11 11 14 10 16 14 12 10 10 14 12 15 10 10 12 12 12 16 11 11 11 11 9 12 13 8 11 13 12 11 10 12 13 13 9 18 9 9 12 11 12 14 12 9 13 10 12 10 13 13 11 11 10 8 13 13 14 10 12 10 12 9 13 12 11 10 11 11 9 13 9 11 10 11 12 11 12 9 10 11 11 13 11 9 6 12 9 13 9
120 11 6 9 9 9 10 10 11 10 10 11 9 13 13 10 11 13 15 10 11 10 11 14 10 11 16 9 10 13 14 9 15 6 13 11 12 11 13 12 11 10 10 11 14 14 14 12 14 12 13 10 10 8 11 13 16 15 8 10 12 11 10 10 12 13 9 13 12 12 10 12 11 11 8 10 11 15 13 14 12 14 10 11 11 13 14 11 16 11 14 7 13 12 7 14 13 13 12 11 9 14 14 13 9 13 13 13 14 12 12 10 13 14 12 10 13 10 11 9 10 12 11 10 11 14 8 11 8 12 10 7 11 10 13 7
121 11 8 9 10 13 9 9 10 11 10 8 10 8 9 7 14 9 11 9 12 10 11 9 12 8 11 11 10 11 14 14 10 11 12 4 11 13 15 10 10 13 10 12 13 12 11 10 12 11 9 13 13 14 13 12 12 13 13 12 13 11 13 13 10 15 11 8 12 8 7 10 13 11 11 16 14 10 14 10 10 10 9 13 11 13 11 13 10 14 13 12 9 12 12 10 12 10 17 12 11 9 15 9 12 13 12 8 12 12 12 12 13 13 14 11 11 10 12 12 12 12 9 10 10 8 9 7 12 10 8 9 6 9 10 9
122 12 13 8 9 11 13 9 8 9 10 8 11 13 11 10 9 11 11 13 10 11 13 10 14 12 14 14 10 9 8 10 12 11 14 14 12 12 13 12 12 15 11 9 9 13 12 10 11 12 11 11 14 14 12 10 14 11 13 13 10 13 10 10 11 12 9 9 10 13 12 12 11 11 9 11 10 11 15 11 13 10 10 13 14 13 7 11 12 14 9 10 10 13 16 10 8 10 13 10 8 12 12 14 11 13 11 12 14 11 11 9 10 10 10 9 13 9 12 12 12 10 11 11 9 11 9 10 12 9 10 8 10 10 9 9
123 11 12 14 8 10 8 9 9 12 15 16 9 7 10 8 13 7 14 11 12 10 14 11 13 11 9 12 11 12 10 8 14 10 10 9 10 11 10 11 12 15 11 12 12 13 7 12 9 8 12 12 13 11 11 14 15 9 12 13 12 10 17 12 10 11 12 11 11 11 15 10 12 11 9 12 12 15 13 13 13 14 11 10 12 13 12 11 9 14 11 12 12 11 12 11 14 11 10 12 11 13 10 9 12 10 11 9 8 6 11 12 12 15 11 10 11 10 11 9 11 8 11 12 5 12 8 11 11 9 11 9 6 8 13 9
124 11 6 10 6 11 9 14 8 11 8 8 10 11 12 9 10 12 7 12 11 8 9 10 11 11 12 15 10 9 11 12 9 12 11 14 17 10 8 9 10 8 12 11 11 11 11 10 15 14 11 15 12 11 13 11 14 10 9 15 7 14 9 9 13 13 13 14 11 10 12 13 15 10 10 14 13 8 13 7 12 10 11 12 13 9 9 12 8 10 9 8 11 9 13 14 14 11 12 11 10 14 11 12 11 14 11 12 12 10 10 10 13 12 8 9 10 11 12 12 12 11 11 9 9 10 10 9 11 12 11 10 7 8 9 11
125 9 11 14 11 10 10 7 8 13 11 11 8 10 11 11 10 11 9 12 10 12 11 12 11 12 14 12 11 10 9 11 9 11 10 13 11 8 13 11 9 8 11 10 12 10 9 12 10 11 9 11 11 14 14 13 9 11 11 10 10 14 12 13 12 13 10 10 12 8 13 11 13 10 13 10 12 11 10 9 14 11 11 9 10 12 8 11 13 12 11 10 12 11 10 11 6 15 10 11 12 14 10 8 10 8 11 13 12 7 9 9 11 9 10 7 10 9 10 9 10 6 9 9 11 5 12 12 8 8 11 10 13 6 11 10
126 9 11 8 11 8 11 9 9 12 12 9 11 9 14 10 9 11 8 9 12 13 9 11 12 8 9 12 10 11 10 15 8 11 8 9 12 9 15 8 12 7 10 11 9 12 12 11 7 10 7 12 12 14 10 14 11 11 11 12 13 12 12 14 11 11 11 12 11 14 12 8 11 10 11 9 10 12 14 12 12 10 9 10 13 8 9 8 11 10 9 10 8 8 9 10 14 11 10 11 10 11 12 10 8 15 8 14 13 12 9 11 14 9 10 13 10 12 12 9 14 13 9 8 9 12 11 11 12 7 10 12 13 11 10 12
127 9 6 8 8 9 11 10 8 11 11 7 10 12 10 8 9 9 10 10 10 12 9 15 9 8 10 10 11 9 11 7 7 8 10 12 10 12 12 12 9 14 9 9 10 10 11 14 9 9 13 11 11 10 12 13 10 11 12 9 5 9 11 10 14 9 10 11 8 10 14 12 12 14 13 11 13 13 10 10 11 9 9 11 10 10 9 12 8 10 8 15 9 9 12 9 11 15 12 11 9 11 12 11 7 8 9 9 12 9 7 11 11 10 10 10 13 9 13 11 8 8 10 11 11 9 8 8 9 7 8 10 11 7 12 7
128 7 7 8 10 7 13 7 11 11 9 10 9 11 8 12 9 12 11 8 9 9 11 9 13 11 9 11 12 9 14 9 9 10 12 11 10 9 8 10 8 10 10 11 8 10 10 11 10 11 11 12 9 12 11 11 9 10 10 8 12 11 10 8 10 10 12 11 11 10 12 8 6 9 10 11 12 8 10 9 9 10 11 9 13 10 14 11 10 12 9 10 9 12 11 12 13 10 10 11 11 8 12 8 12 10 12 11 10 10 14 10 11 11 12 9 10 9 12 8 10 11 7 11 13 9 15 9 9 9 10 10 11 9 11 10
129 9 12 14 12 8 11 10 11 8 10 8 10 9 11 11 13 10 8 12 10 9 11 14 9 9 12 9 10 12 11 10 9 9 9 15 11 12 8 11 10 10 6 13 12 10 10 13 12 11 10 15 9 8 11 9 8 11 15 7 12 11 11 13 9 10 4 12 10 11 10 10 11 11 11 11 13 9 8 8 11 11 11 10 8 9 12 10 9 13 11 12 9 10 11 11 11 11 11 10 13 12 9 12 13 13 12 15 10 11 11 11 9 13 11 9 8 11 9 9 10 12 11 13 9 11 9 12 10 12 10 8 11 8 6 13
130 8 8 8 12 9 10 10 9 9 9 8 11 7 12 9 12 11 9 8 9 11 9 9 9 10 8 8 11 10 11 10 12 10 12 9 12 6 12 13 9 10 10 13 11 11 9 11 11 10 10 6 10 11 10 9 11 10 12 11 10 11 12 11 9 8 11 8 11 12 12 11 13 8 9 9 11 9 10 13 11 10 7 12 15 9 11 13 8 11 11 11 12 12 12 10 9 7 11 11 9 13 13 12 10 13 12 11 12 9 14 10 6 8 10 11 9 10 12 14 9 12 10 11 9 11 9 10 9 8 13 12 9 12 8 10
131 9 10 8 7 9 8 8 10 10 10 15 9 6 10 11 10 11 9 12 9 9 9 10 13 15 9 7 11 7 9 13 8 9 11 9 8 13 9 11 10 12 10 10 11 12 10 12 12 12 11 12 10 10 11 9 6 9 9 11 8 9 11 9 12 13 14 10 12 10 12 10 9 8 10 8 9 8 11 10 9 8 9 16 12 12 10 10 12 9 9 11 10 9 10 11 10 8 12 8 9 8 9 7 14 11 10 10 11 9 12 8 11 10 11 10 14 8 11 9 10 12 11 8 8 11 10 9 14 12 9 14 10 8 9 10
132 14 12 10 10 10 12 8 12 9 9 7 11 8 8 10 15 8 10 11 8 10 7 11 11 10 12 9 16 9 14 12 13 10 11 11 8 7 11 12 11 12 10 7 10 12 7 10 10 12 11 10 8 13 14 13 9 12 11 10 8 9 7 7 10 13 13 10 13 13 8 16 11 9 12 11 10 11 7 13 12 7 11 11 13 9 13 9 14 10 8 12 13 12 8 9 12 8 12 11 12 11 10 7 10 9 8 10 10 11 14 7 10 12 6 10 12 11 9 9 10 9 13 10 11 10 9 9 10 10 12 13 9 10 10 9
133 7 10 9 14 10 10 11 10 8 10 8 10 9 9 11 12 7 11 9 10 12 10 8 10 10 11 13 12 10 11 10 9 9 12 10 9 12 9 13 11 11 12 13 12 10 12 10 13 11 12 13 10 10 6 10 14 9 7 7 8 8 9 10 10 10 15 10 13 9 7 10 10 8 9 10 12 11 14 11 11 10 6 10 10 11 10 12 11 11 14 11 12 7 12 9 11 10 10 10 10 12 9 9 12 9 9 12 13 9 13 11 9 12 9 10 11 9 10 8 8 9 7 14 9 11 6 11 11 9 9 7 10 10 9 9
134 9 9 12 10 13 13 10 11 10 12 10 12 11 9 10 10 10 12 10 12 11 9 14 9 9 15 12 12 8 13 9 10 11 9 11 8 9 11 12 9 8 11 9 10 8 11 10 10 10 11 7 12 10 10 8 9 11 6 10 13 10 12 10 10 11 10 11 9 11 10 10 9 9 9 10 10 14 10 10 8 12 8 11 10 11 10 11 10 9 12 8 10 9 13 10 11 7 6 9 8 6 13 9 13 14 9 9 12 10 10 11 8 10 9 10 8 10 11 13 10 7 10 11 9 9 11 10 11 13 6 8 9 9 9 9
135 9 10 11 11 6 9 9 8 7 11 12 8 9 10 9 13 10 12 9 10 7 12 12 8 11 9 14 12 10 12 11 8 10 10 11 9 10 12 12 10 8 11 11 7 12 9 9 11 12 11 10 7 11 7 8 11 10 10 11 9 12 12 15 13 15 11 11 9 11 11 9 10 10 12 12 11 9 9 10 12 10 11 11 7 10 11 9 12 12 10 10 8 12 10 10 12 13 6 7 11 13 11 15 10 12 11 10 9 10 10 10 10 13 12 11 8 7 9 10 10 8 11 11 13 12 6 12 10 10 13 10 9 10 8 10

File diff suppressed because one or more lines are too long

@ -0,0 +1,106 @@
// CcdDataImageProcessing.cpp : 定义应用程序的类行为。
//
#include "stdafx.h"
#include "CcdDataImageProcessing.h"
#include "CcdDataImageProcessingDlg.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#endif
// CCcdDataImageProcessingApp
BEGIN_MESSAGE_MAP(CCcdDataImageProcessingApp, CWinApp)
ON_COMMAND(ID_HELP, &CWinApp::OnHelp)
END_MESSAGE_MAP()
// CCcdDataImageProcessingApp 构造
CCcdDataImageProcessingApp::CCcdDataImageProcessingApp()
{
// 支持重新启动管理器
m_dwRestartManagerSupportFlags = AFX_RESTART_MANAGER_SUPPORT_RESTART;
// TODO: 在此处添加构造代码,
// 将所有重要的初始化放置在 InitInstance 中
}
// 唯一的一个 CCcdDataImageProcessingApp 对象
CCcdDataImageProcessingApp theApp;
// CCcdDataImageProcessingApp 初始化
BOOL CCcdDataImageProcessingApp::InitInstance()
{
// 如果一个运行在 Windows XP 上的应用程序清单指定要
// 使用 ComCtl32.dll 版本 6 或更高版本来启用可视化方式,
//则需要 InitCommonControlsEx()。 否则,将无法创建窗口。
INITCOMMONCONTROLSEX InitCtrls;
InitCtrls.dwSize = sizeof(InitCtrls);
// 将它设置为包括所有要在应用程序中使用的
// 公共控件类。
InitCtrls.dwICC = ICC_WIN95_CLASSES;
InitCommonControlsEx(&InitCtrls);
CWinApp::InitInstance();
AfxEnableControlContainer();
// 创建 shell 管理器,以防对话框包含
// 任何 shell 树视图控件或 shell 列表视图控件。
CShellManager *pShellManager = new CShellManager;
// 激活“Windows Native”视觉管理器以便在 MFC 控件中启用主题
CMFCVisualManager::SetDefaultManager(RUNTIME_CLASS(CMFCVisualManagerWindows));
// 标准初始化
// 如果未使用这些功能并希望减小
// 最终可执行文件的大小,则应移除下列
// 不需要的特定初始化例程
// 更改用于存储设置的注册表项
// TODO: 应适当修改该字符串,
// 例如修改为公司或组织名
SetRegistryKey(_T("应用程序向导生成的本地应用程序"));
CCcdDataImageProcessingDlg dlg;
m_pMainWnd = &dlg;
INT_PTR nResponse = dlg.DoModal();
if (nResponse == IDOK)
{
// TODO: 在此放置处理何时用
// “确定”来关闭对话框的代码
}
else if (nResponse == IDCANCEL)
{
// TODO: 在此放置处理何时用
// “取消”来关闭对话框的代码
}
else if (nResponse == -1)
{
TRACE(traceAppMsg, 0, "警告: 对话框创建失败,应用程序将意外终止。\n");
TRACE(traceAppMsg, 0, "警告: 如果您在对话框上使用 MFC 控件,则无法 #define _AFX_NO_MFC_CONTROLS_IN_DIALOGS。\n");
}
// 删除上面创建的 shell 管理器。
if (pShellManager != NULL)
{
delete pShellManager;
}
#ifndef _AFXDLL
ControlBarCleanUp();
#endif
// 由于对话框已关闭,所以将返回 FALSE 以便退出应用程序,
// 而不是启动应用程序的消息泵。
return FALSE;
}

@ -0,0 +1,32 @@
// CcdDataImageProcessing.h : PROJECT_NAME 应用程序的主头文件
//
#pragma once
#ifndef __AFXWIN_H__
#error "在包含此文件之前包含“stdafx.h”以生成 PCH 文件"
#endif
#include "resource.h" // 主符号
// CCcdDataImageProcessingApp:
// 有关此类的实现,请参阅 CcdDataImageProcessing.cpp
//
class CCcdDataImageProcessingApp : public CWinApp
{
public:
CCcdDataImageProcessingApp();
// 重写
public:
virtual BOOL InitInstance();
// 实现
DECLARE_MESSAGE_MAP()
};
extern CCcdDataImageProcessingApp theApp;

@ -0,0 +1,223 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup Label="ProjectConfigurations">
<ProjectConfiguration Include="Debug|Win32">
<Configuration>Debug</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|Win32">
<Configuration>Release</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Debug|x64">
<Configuration>Debug</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|x64">
<Configuration>Release</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
</ItemGroup>
<PropertyGroup Label="Globals">
<ProjectGuid>{FACDB1E7-DFA5-43A8-96CA-ACC06868E306}</ProjectGuid>
<RootNamespace>CcdDataImageProcessing</RootNamespace>
<WindowsTargetPlatformVersion>8.1</WindowsTargetPlatformVersion>
<Keyword>MFCProj</Keyword>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries>
<PlatformToolset>v140</PlatformToolset>
<CharacterSet>Unicode</CharacterSet>
<UseOfMfc>Dynamic</UseOfMfc>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries>
<PlatformToolset>v140</PlatformToolset>
<WholeProgramOptimization>true</WholeProgramOptimization>
<CharacterSet>Unicode</CharacterSet>
<UseOfMfc>Dynamic</UseOfMfc>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries>
<PlatformToolset>v140</PlatformToolset>
<CharacterSet>Unicode</CharacterSet>
<UseOfMfc>Dynamic</UseOfMfc>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries>
<PlatformToolset>v140</PlatformToolset>
<WholeProgramOptimization>true</WholeProgramOptimization>
<CharacterSet>Unicode</CharacterSet>
<UseOfMfc>Dynamic</UseOfMfc>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings">
</ImportGroup>
<ImportGroup Label="Shared">
</ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<PropertyGroup Label="UserMacros" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<LinkIncremental>true</LinkIncremental>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<LinkIncremental>true</LinkIncremental>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<LinkIncremental>false</LinkIncremental>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<LinkIncremental>false</LinkIncremental>
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<ClCompile>
<PrecompiledHeader>Use</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<Optimization>Disabled</Optimization>
<PreprocessorDefinitions>WIN32;_WINDOWS;_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<SDLCheck>true</SDLCheck>
</ClCompile>
<Link>
<SubSystem>Windows</SubSystem>
</Link>
<Midl>
<MkTypLibCompatible>false</MkTypLibCompatible>
<ValidateAllParameters>true</ValidateAllParameters>
<PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</Midl>
<ResourceCompile>
<Culture>0x0804</Culture>
<PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<AdditionalIncludeDirectories>$(IntDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
</ResourceCompile>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<ClCompile>
<PrecompiledHeader>Use</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<Optimization>Disabled</Optimization>
<PreprocessorDefinitions>_WINDOWS;_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<SDLCheck>true</SDLCheck>
</ClCompile>
<Link>
<SubSystem>Windows</SubSystem>
</Link>
<Midl>
<MkTypLibCompatible>false</MkTypLibCompatible>
<ValidateAllParameters>true</ValidateAllParameters>
<PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</Midl>
<ResourceCompile>
<Culture>0x0804</Culture>
<PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<AdditionalIncludeDirectories>$(IntDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
</ResourceCompile>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<ClCompile>
<WarningLevel>Level3</WarningLevel>
<PrecompiledHeader>Use</PrecompiledHeader>
<Optimization>MaxSpeed</Optimization>
<FunctionLevelLinking>true</FunctionLevelLinking>
<IntrinsicFunctions>true</IntrinsicFunctions>
<PreprocessorDefinitions>WIN32;_WINDOWS;NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<SDLCheck>true</SDLCheck>
</ClCompile>
<Link>
<SubSystem>Windows</SubSystem>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<OptimizeReferences>true</OptimizeReferences>
</Link>
<Midl>
<MkTypLibCompatible>false</MkTypLibCompatible>
<ValidateAllParameters>true</ValidateAllParameters>
<PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</Midl>
<ResourceCompile>
<Culture>0x0804</Culture>
<PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<AdditionalIncludeDirectories>$(IntDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
</ResourceCompile>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<ClCompile>
<WarningLevel>Level3</WarningLevel>
<PrecompiledHeader>Use</PrecompiledHeader>
<Optimization>MaxSpeed</Optimization>
<FunctionLevelLinking>true</FunctionLevelLinking>
<IntrinsicFunctions>true</IntrinsicFunctions>
<PreprocessorDefinitions>_WINDOWS;NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<SDLCheck>true</SDLCheck>
</ClCompile>
<Link>
<SubSystem>Windows</SubSystem>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<OptimizeReferences>true</OptimizeReferences>
</Link>
<Midl>
<MkTypLibCompatible>false</MkTypLibCompatible>
<ValidateAllParameters>true</ValidateAllParameters>
<PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</Midl>
<ResourceCompile>
<Culture>0x0804</Culture>
<PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<AdditionalIncludeDirectories>$(IntDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
</ResourceCompile>
</ItemDefinitionGroup>
<ItemGroup>
<Text Include="ReadMe.txt" />
</ItemGroup>
<ItemGroup>
<ClInclude Include="CcdDataImageProcessing.h" />
<ClInclude Include="CcdDataImageProcessingDlg.h" />
<ClInclude Include="FileMgr.h" />
<ClInclude Include="Resource.h" />
<ClInclude Include="stdafx.h" />
<ClInclude Include="targetver.h" />
</ItemGroup>
<ItemGroup>
<ClCompile Include="CcdDataImageProcessing.cpp" />
<ClCompile Include="CcdDataImageProcessingDlg.cpp" />
<ClCompile Include="FileMgr.cpp" />
<ClCompile Include="stdafx.cpp">
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Create</PrecompiledHeader>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">Create</PrecompiledHeader>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Create</PrecompiledHeader>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|x64'">Create</PrecompiledHeader>
</ClCompile>
</ItemGroup>
<ItemGroup>
<ResourceCompile Include="CcdDataImageProcessing.rc" />
</ItemGroup>
<ItemGroup>
<None Include="res\CcdDataImageProcessing.rc2" />
</ItemGroup>
<ItemGroup>
<Image Include="res\CcdDataImageProcessing.ico" />
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
</ImportGroup>
<ProjectExtensions>
<VisualStudio>
<UserProperties RESOURCE_FILE="CcdDataImageProcessing.rc" />
</VisualStudio>
</ProjectExtensions>
</Project>

@ -0,0 +1,69 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<Filter Include="源文件">
<UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
<Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
</Filter>
<Filter Include="头文件">
<UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
<Extensions>h;hh;hpp;hxx;hm;inl;inc;xsd</Extensions>
</Filter>
<Filter Include="资源文件">
<UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
<Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms</Extensions>
</Filter>
</ItemGroup>
<ItemGroup>
<Text Include="ReadMe.txt" />
</ItemGroup>
<ItemGroup>
<ClInclude Include="CcdDataImageProcessing.h">
<Filter>头文件</Filter>
</ClInclude>
<ClInclude Include="CcdDataImageProcessingDlg.h">
<Filter>头文件</Filter>
</ClInclude>
<ClInclude Include="stdafx.h">
<Filter>头文件</Filter>
</ClInclude>
<ClInclude Include="targetver.h">
<Filter>头文件</Filter>
</ClInclude>
<ClInclude Include="Resource.h">
<Filter>头文件</Filter>
</ClInclude>
<ClInclude Include="FileMgr.h">
<Filter>头文件</Filter>
</ClInclude>
</ItemGroup>
<ItemGroup>
<ClCompile Include="CcdDataImageProcessing.cpp">
<Filter>源文件</Filter>
</ClCompile>
<ClCompile Include="CcdDataImageProcessingDlg.cpp">
<Filter>源文件</Filter>
</ClCompile>
<ClCompile Include="stdafx.cpp">
<Filter>源文件</Filter>
</ClCompile>
<ClCompile Include="FileMgr.cpp">
<Filter>源文件</Filter>
</ClCompile>
</ItemGroup>
<ItemGroup>
<ResourceCompile Include="CcdDataImageProcessing.rc">
<Filter>资源文件</Filter>
</ResourceCompile>
</ItemGroup>
<ItemGroup>
<None Include="res\CcdDataImageProcessing.rc2">
<Filter>资源文件</Filter>
</None>
</ItemGroup>
<ItemGroup>
<Image Include="res\CcdDataImageProcessing.ico">
<Filter>资源文件</Filter>
</Image>
</ItemGroup>
</Project>

@ -0,0 +1,853 @@
// CcdDataImageProcessingDlg.cpp : 实现文件
//
#include "stdafx.h"
#include "CcdDataImageProcessing.h"
#include "CcdDataImageProcessingDlg.h"
#include "afxdialogex.h"
// 定义文件路径宏
#define FILE_CCD_IMAGE_INFO_PATH _T("ccd_image_info.csv")
#define FILE_CCD_DATAT_PATH _T("ccd_data_path.csv")
// 颜色定义
#define RED RGB(255, 0, 0)
#define ORANGE RGB(255, 165, 0)
#define YELLOW RGB(255, 255, 0)
#define GREEN RGB(0, 255, 0)
#define CYAN RGB(0, 255, 255)
#define BLUE RGB(0, 0, 255)
#define PURPLE RGB(128, 0, 128)
#define GREY RGB(169, 169, 169)
#define PINK RGB(255, 192, 203)
#define BLACK RGB(0, 0, 0)
#define WHITE RGB(255, 255, 255)
#define BROWN RGB(165, 42, 42)
// 控件ID映射
const int minEnergyCtrlIds[] = { IDC_MIN_ENERGY_EDIT1, IDC_MIN_ENERGY_EDIT2, IDC_MIN_ENERGY_EDIT3,
IDC_MIN_ENERGY_EDIT4, IDC_MIN_ENERGY_EDIT5, IDC_MIN_ENERGY_EDIT6,
IDC_MIN_ENERGY_EDIT7, IDC_MIN_ENERGY_EDIT8, IDC_MIN_ENERGY_EDIT9, IDC_MIN_ENERGY_EDIT10 };
const int maxEnergyCtrlIds[] = { IDC_MAX_ENERGY_EDIT1, IDC_MAX_ENERGY_EDIT2, IDC_MAX_ENERGY_EDIT3,
IDC_MAX_ENERGY_EDIT4, IDC_MAX_ENERGY_EDIT5, IDC_MAX_ENERGY_EDIT6,
IDC_MAX_ENERGY_EDIT7, IDC_MAX_ENERGY_EDIT8, IDC_MAX_ENERGY_EDIT9, IDC_MAX_ENERGY_EDIT10 };
const int proportionEnergyCtrlIds[] = { IDC_PROPORTION_ENERGY_EDIT1, IDC_PROPORTION_ENERGY_EDIT2, IDC_PROPORTION_ENERGY_EDIT3,
IDC_PROPORTION_ENERGY_EDIT4, IDC_PROPORTION_ENERGY_EDIT5, IDC_PROPORTION_ENERGY_EDIT6,
IDC_PROPORTION_ENERGY_EDIT7, IDC_PROPORTION_ENERGY_EDIT8, IDC_PROPORTION_ENERGY_EDIT9, IDC_PROPORTION_ENERGY_EDIT10 };
const int colorComboCtrlIds[] = { IDC_COLOR_COMBO1, IDC_COLOR_COMBO2, IDC_COLOR_COMBO3,
IDC_COLOR_COMBO4, IDC_COLOR_COMBO5, IDC_COLOR_COMBO6,
IDC_COLOR_COMBO7, IDC_COLOR_COMBO8, IDC_COLOR_COMBO9, IDC_COLOR_COMBO10 };
const int energyComboCtrlIds[] = { IDC_ENERGY_COMBO1, IDC_ENERGY_COMBO2, IDC_ENERGY_COMBO3,
IDC_ENERGY_COMBO4, IDC_ENERGY_COMBO5, IDC_ENERGY_COMBO6,
IDC_ENERGY_COMBO7, IDC_ENERGY_COMBO8, IDC_ENERGY_COMBO9, IDC_ENERGY_COMBO10 };
const TCHAR* colorNames[] = {
_T("Red"), _T("Orange"), _T("Yellow"), _T("Green"), _T("Cyan"), _T("Blue"),
_T("Purple"), _T("Grey"), _T("Pink"), _T("Black"), _T("White"), _T("Brown")
};
#ifdef _DEBUG
#define new DEBUG_NEW
#endif
ColorSchemeManager m_colorSchemeManager;
std::map<const int, int> m_proportionEnergy;
// 用于应用程序“关于”菜单项的 CAboutDlg 对话框
class CAboutDlg : public CDialogEx
{
public:
CAboutDlg();
// 对话框数据
#ifdef AFX_DESIGN_TIME
enum { IDD = IDD_ABOUTBOX };
#endif
protected:
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV 支持
// 实现
protected:
DECLARE_MESSAGE_MAP()
};
CAboutDlg::CAboutDlg() : CDialogEx(IDD_ABOUTBOX)
{
}
void CAboutDlg::DoDataExchange(CDataExchange* pDX)
{
CDialogEx::DoDataExchange(pDX);
}
BEGIN_MESSAGE_MAP(CAboutDlg, CDialogEx)
END_MESSAGE_MAP()
// CCcdDataImageProcessingDlg 对话框
CCcdDataImageProcessingDlg::CCcdDataImageProcessingDlg(CWnd* pParent /*=NULL*/)
: CDialogEx(IDD_CCDDATAIMAGEPROCESSING_DIALOG, pParent)
{
m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);
m_SumEnergy = 0;
m_NumEnergy = 0;
m_Scheme1 = 0;
m_Scheme2 = 0;
m_Scheme3 = 0;
m_Scheme4 = 0;
m_Scheme5 = 0;
m_Scheme6 = 0;
m_Scheme7 = 0;
m_Scheme8 = 0;
m_Scheme9 = 0;
m_Scheme10 = 0;
}
void CCcdDataImageProcessingDlg::DoDataExchange(CDataExchange* pDX)
{
CDialogEx::DoDataExchange(pDX);
DDX_Control(pDX, IDC_MIN_ENERGY_EDIT1, m_MinEnergy1);
DDX_Control(pDX, IDC_MAX_ENERGY_EDIT1, m_MaxEnergy1);
DDX_Control(pDX, IDC_MIN_ENERGY_EDIT2, m_MinEnergy2);
DDX_Control(pDX, IDC_MAX_ENERGY_EDIT2, m_MaxEnergy2);
DDX_Control(pDX, IDC_MIN_ENERGY_EDIT3, m_MinEnergy3);
DDX_Control(pDX, IDC_MAX_ENERGY_EDIT3, m_MaxEnergy3);
DDX_Control(pDX, IDC_MIN_ENERGY_EDIT4, m_MinEnergy4);
DDX_Control(pDX, IDC_MAX_ENERGY_EDIT4, m_MaxEnergy4);
DDX_Control(pDX, IDC_MIN_ENERGY_EDIT5, m_MinEnergy5);
DDX_Control(pDX, IDC_MAX_ENERGY_EDIT5, m_MaxEnergy5);
DDX_Control(pDX, IDC_MIN_ENERGY_EDIT6, m_MinEnergy6);
DDX_Control(pDX, IDC_MAX_ENERGY_EDIT6, m_MaxEnergy6);
DDX_Control(pDX, IDC_MIN_ENERGY_EDIT7, m_MinEnergy7);
DDX_Control(pDX, IDC_MAX_ENERGY_EDIT7, m_MaxEnergy7);
DDX_Control(pDX, IDC_MIN_ENERGY_EDIT8, m_MinEnergy8);
DDX_Control(pDX, IDC_MAX_ENERGY_EDIT8, m_MaxEnergy8);
DDX_Control(pDX, IDC_MIN_ENERGY_EDIT9, m_MinEnergy9);
DDX_Control(pDX, IDC_MAX_ENERGY_EDIT9, m_MaxEnergy9);
DDX_Control(pDX, IDC_MIN_ENERGY_EDIT10, m_MinEnergy10);
DDX_Control(pDX, IDC_MAX_ENERGY_EDIT10, m_MaxEnergy10);
DDX_Control(pDX, IDC_ENERGY_COMBO1, m_bEnergy1);
DDX_Control(pDX, IDC_ENERGY_COMBO2, m_bEnergy2);
DDX_Control(pDX, IDC_ENERGY_COMBO3, m_bEnergy3);
DDX_Control(pDX, IDC_ENERGY_COMBO4, m_bEnergy4);
DDX_Control(pDX, IDC_ENERGY_COMBO5, m_bEnergy5);
DDX_Control(pDX, IDC_ENERGY_COMBO6, m_bEnergy6);
DDX_Control(pDX, IDC_ENERGY_COMBO7, m_bEnergy7);
DDX_Control(pDX, IDC_ENERGY_COMBO8, m_bEnergy8);
DDX_Control(pDX, IDC_ENERGY_COMBO9, m_bEnergy9);
DDX_Control(pDX, IDC_ENERGY_COMBO10, m_bEnergy10);
DDX_Control(pDX, IDC_PROPORTION_ENERGY_EDIT1, m_ProportionEnergy1);
DDX_Control(pDX, IDC_PROPORTION_ENERGY_EDIT2, m_ProportionEnergy2);
DDX_Control(pDX, IDC_PROPORTION_ENERGY_EDIT3, m_ProportionEnergy3);
DDX_Control(pDX, IDC_PROPORTION_ENERGY_EDIT4, m_ProportionEnergy4);
DDX_Control(pDX, IDC_PROPORTION_ENERGY_EDIT5, m_ProportionEnergy5);
DDX_Control(pDX, IDC_PROPORTION_ENERGY_EDIT6, m_ProportionEnergy6);
DDX_Control(pDX, IDC_PROPORTION_ENERGY_EDIT7, m_ProportionEnergy7);
DDX_Control(pDX, IDC_PROPORTION_ENERGY_EDIT8, m_ProportionEnergy8);
DDX_Control(pDX, IDC_PROPORTION_ENERGY_EDIT9, m_ProportionEnergy9);
DDX_Control(pDX, IDC_PROPORTION_ENERGY_EDIT10, m_ProportionEnergy10);
DDX_Control(pDX, IDC_COLOR_COMBO1, m_Color1);
DDX_Control(pDX, IDC_COLOR_COMBO2, m_Color2);
DDX_Control(pDX, IDC_COLOR_COMBO3, m_Color3);
DDX_Control(pDX, IDC_COLOR_COMBO4, m_Color4);
DDX_Control(pDX, IDC_COLOR_COMBO5, m_Color5);
DDX_Control(pDX, IDC_COLOR_COMBO6, m_Color6);
DDX_Control(pDX, IDC_COLOR_COMBO7, m_Color7);
DDX_Control(pDX, IDC_COLOR_COMBO8, m_Color8);
DDX_Control(pDX, IDC_COLOR_COMBO9, m_Color9);
DDX_Control(pDX, IDC_COLOR_COMBO10, m_Color10);
DDX_Control(pDX, IDC_CCD_DATA_PATH_EDIT, m_CddDataPath);
}
BEGIN_MESSAGE_MAP(CCcdDataImageProcessingDlg, CDialogEx)
ON_WM_SYSCOMMAND()
ON_WM_PAINT()
ON_WM_QUERYDRAGICON()
ON_BN_CLICKED(IDC_IMAGE_INFO_SAVE_BUTTON, &CCcdDataImageProcessingDlg::OnBnClickedImageInfoSaveButton)
ON_BN_CLICKED(IDC_DLG_MIN_BUTTON, &CCcdDataImageProcessingDlg::OnBnClickedDlgMinButton)
ON_BN_CLICKED(IDC_DLG_MAX_BUTTON, &CCcdDataImageProcessingDlg::OnBnClickedDlgMaxButton)
ON_BN_CLICKED(IDC_IMAGE_GENERATE_BUTTON, &CCcdDataImageProcessingDlg::OnBnClickedImageGenerateButton)
ON_BN_CLICKED(IDC_SLECT_PATH_BUTTON, &CCcdDataImageProcessingDlg::OnBnClickedSlectPathButton)
ON_WM_PAINT()
ON_BN_CLICKED(IDC_SAVE_IMAGE_BUTTON, &CCcdDataImageProcessingDlg::OnBnClickedSaveImageButton)
END_MESSAGE_MAP()
// CCcdDataImageProcessingDlg 消息处理程序
BOOL CCcdDataImageProcessingDlg::OnInitDialog()
{
CDialogEx::OnInitDialog();
// 将“关于...”菜单项添加到系统菜单中。
// IDM_ABOUTBOX 必须在系统命令范围内。
ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX);
ASSERT(IDM_ABOUTBOX < 0xF000);
CMenu* pSysMenu = GetSystemMenu(FALSE);
if (pSysMenu != NULL)
{
BOOL bNameValid;
CString strAboutMenu;
bNameValid = strAboutMenu.LoadString(IDS_ABOUTBOX);
ASSERT(bNameValid);
if (!strAboutMenu.IsEmpty())
{
pSysMenu->AppendMenu(MF_SEPARATOR);
pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu);
}
}
// 设置此对话框的图标。 当应用程序主窗口不是对话框时,框架将自动
// 执行此操作
SetIcon(m_hIcon, TRUE); // 设置大图标
SetIcon(m_hIcon, FALSE); // 设置小图标
// TODO: 在此添加额外的初始化代码
OnInitEnergyCombo();
OnInitEnergyInfo();
OnInitCcdDataPath();
OnInitAll();
return TRUE; // 除非将焦点设置到控件,否则返回 TRUE
}
void CCcdDataImageProcessingDlg::OnSysCommand(UINT nID, LPARAM lParam)
{
if ((nID & 0xFFF0) == IDM_ABOUTBOX)
{
CAboutDlg dlgAbout;
dlgAbout.DoModal();
}
else
{
CDialogEx::OnSysCommand(nID, lParam);
}
}
//当用户拖动最小化窗口时系统调用此函数取得光标
//显示。
HCURSOR CCcdDataImageProcessingDlg::OnQueryDragIcon()
{
return static_cast<HCURSOR>(m_hIcon);
}
void CCcdDataImageProcessingDlg::OnBnClickedImageInfoSaveButton()
{
// 创建一个文件来保存信息
CString strFilePath = FILE_CCD_IMAGE_INFO_PATH;
CString ccdFilePath = FILE_CCD_DATAT_PATH;
// 创建 CStdioFile 对象,确保文件以 UTF-8 编码打开
CStdioFile file,ccdDataFilePath;
if (!file.Open(strFilePath, CFile::modeCreate | CFile::modeWrite | CFile::typeText)) {
AfxMessageBox(_T("无法创建文件!"));
return;
}
if (!ccdDataFilePath.Open(ccdFilePath, CFile::modeCreate | CFile::modeWrite | CFile::typeText)) {
AfxMessageBox(_T("无法创建文件!"));
return;
}
// 写入表头(列名),使用逗号分隔
file.WriteString(_T("Plan,MinEnergy,MaxEnergy,Color,TF,Proportion(%)\n"));
// 映射控件ID
CString cddDataPathInfo;
GetDlgItemText(IDC_CCD_DATA_PATH_EDIT, cddDataPathInfo);
ccdDataFilePath.WriteString(cddDataPathInfo);
// 循环处理每一组控件
for (int i = 0; i < 10; ++i) {
CString strPlan;
strPlan.Format(_T("%d"), i + 1);
// 获取编辑框内容
CString minEnergy, maxEnergy, proportionEnergy, energyCombo, colorCombo;
GetDlgItemText(minEnergyCtrlIds[i], minEnergy);
GetDlgItemText(maxEnergyCtrlIds[i], maxEnergy);
GetDlgItemText(proportionEnergyCtrlIds[i], proportionEnergy);
// 获取颜色组合框内容
CComboBox* pColorComboBox = (CComboBox*)GetDlgItem(colorComboCtrlIds[i]);
int colorSel = pColorComboBox->GetCurSel(); // 获取当前选择的索引
if (colorSel != CB_ERR) {
pColorComboBox->GetLBText(colorSel, colorCombo); // 获取颜色名称
}
else {
colorCombo = _T(""); // 如果没有选择,设置为空
}
// 获取TF组合框内容
CComboBox* pComboBox = (CComboBox*)GetDlgItem(energyComboCtrlIds[i]);
int energySel = pComboBox->GetCurSel(); // 获取当前选择的索引
if (energySel != CB_ERR) {
pComboBox->GetLBText(energySel, energyCombo); // 获取True/False
}
else {
energyCombo = _T(""); // 如果没有选择,设置为空
}
// 按照要求写入数据(包括颜色列),使用逗号分隔
file.WriteString(strPlan + _T(",") + minEnergy + _T(",") + maxEnergy +
_T(",") + colorCombo + _T(",") + energyCombo +
_T(",") + proportionEnergy + _T("\n"));
}
// 提示保存成功
AfxMessageBox(_T("CCD图像颜色方案配比信息已保存"));
}
void CCcdDataImageProcessingDlg::OnBnClickedDlgMinButton()
{
// 最小化窗口并显示在任务栏
ShowWindow(SW_MINIMIZE);
}
void CCcdDataImageProcessingDlg::OnBnClickedDlgMaxButton()
{
}
void CCcdDataImageProcessingDlg::OnInitEnergyCombo()
{
// 初始化ComboBox控件添加True和False选项
CComboBox* energyCombos[] = {
&m_bEnergy1, &m_bEnergy2, &m_bEnergy3, &m_bEnergy4, &m_bEnergy5,
&m_bEnergy6, &m_bEnergy7, &m_bEnergy8, &m_bEnergy9, &m_bEnergy10
};
// 循环初始化所有Energy ComboBox控件
for (int i = 0; i < 10; ++i)
{
TRACE(_T("Initializing ComboBox %d\n"), i); // 打印调试信息
energyCombos[i]->AddString(_T("True"));
energyCombos[i]->AddString(_T("False"));
energyCombos[i]->SetCurSel(0); // 默认选择False
energyCombos[i]->ModifyStyle(CBS_SIMPLE, CBS_DROPDOWNLIST); // 设置为下拉列表框模式,不能编辑
}
// 初始化颜色 ComboBox控件
CComboBox* colorCombos[] = {
&m_Color1, &m_Color2, &m_Color3, &m_Color4, &m_Color5,
&m_Color6, &m_Color7, &m_Color8, &m_Color9, &m_Color10
};
// 循环初始化所有颜色 ComboBox控件
for (int i = 0; i < 10; ++i)
{
// 添加颜色名称到每个颜色控件
for (int j = 0; j < sizeof(colorNames) / sizeof(colorNames[0]); ++j)
{
colorCombos[i]->AddString(colorNames[j]);
}
colorCombos[i]->SetCurSel(0); // 默认选择第一个颜色
colorCombos[i]->ModifyStyle(0, CBS_DROPDOWNLIST); // 设置为下拉列表框模式,不能编辑
}
}
void CCcdDataImageProcessingDlg::OnInitEnergyInfo()
{
// 初始化 CEdit 控件,将其内容设置为 0
m_MinEnergy1.SetWindowText(_T("0"));
m_MaxEnergy1.SetWindowText(_T("0"));
m_MinEnergy2.SetWindowText(_T("0"));
m_MaxEnergy2.SetWindowText(_T("0"));
m_MinEnergy3.SetWindowText(_T("0"));
m_MaxEnergy3.SetWindowText(_T("0"));
m_MinEnergy4.SetWindowText(_T("0"));
m_MaxEnergy4.SetWindowText(_T("0"));
m_MinEnergy5.SetWindowText(_T("0"));
m_MaxEnergy5.SetWindowText(_T("0"));
m_MinEnergy6.SetWindowText(_T("0"));
m_MaxEnergy6.SetWindowText(_T("0"));
m_MinEnergy7.SetWindowText(_T("0"));
m_MaxEnergy7.SetWindowText(_T("0"));
m_MinEnergy8.SetWindowText(_T("0"));
m_MaxEnergy8.SetWindowText(_T("0"));
m_MinEnergy9.SetWindowText(_T("0"));
m_MaxEnergy9.SetWindowText(_T("0"));
m_MinEnergy10.SetWindowText(_T("0"));
m_MaxEnergy10.SetWindowText(_T("0"));
// 初始化 CEdit 控件中的配比值为 0
m_ProportionEnergy1.SetWindowText(_T("0"));
m_ProportionEnergy2.SetWindowText(_T("0"));
m_ProportionEnergy3.SetWindowText(_T("0"));
m_ProportionEnergy4.SetWindowText(_T("0"));
m_ProportionEnergy5.SetWindowText(_T("0"));
m_ProportionEnergy6.SetWindowText(_T("0"));
m_ProportionEnergy7.SetWindowText(_T("0"));
m_ProportionEnergy8.SetWindowText(_T("0"));
m_ProportionEnergy9.SetWindowText(_T("0"));
m_ProportionEnergy10.SetWindowText(_T("0"));
}
void CCcdDataImageProcessingDlg::OnInitCcdDataPath()
{
// 这里FILE_CCD_DATAT_PATH是宏定义你可以替换为具体的路径
CString strFilePath = FILE_CCD_DATAT_PATH;
CStdioFile file;
CString filePath;
// 打开文件进行读取
if (!file.Open(strFilePath, CFile::modeRead | CFile::typeText))
{
AfxMessageBox(_T("无法打开文件!"));
return;
}
// 读取第一行的数据
if (file.ReadString(filePath))
{
// 将读取到的数据设置到控件中
m_CddDataPath.SetWindowText(filePath);
}
else
{
AfxMessageBox(_T("文件为空或无法读取数据"));
}
// 关闭文件
file.Close();
}
void CCcdDataImageProcessingDlg::UpProportionEnergy()
{
// 获取总数
int totalEnergy = m_NumEnergy; // 假设 m_NumEnergy 存储总数
// 遍历 m_proportionEnergy 中的每个键值对
for (const auto& pair : m_proportionEnergy) {
int key = pair.first; // 获取键控件ID
int value = pair.second; // 获取值(每种能量的数量)
// 计算比例
double proportion = (static_cast<double>(value) * 100) / totalEnergy;
// 格式化比例为字符串
CString strProportion;
strProportion.Format(_T("%.2f%%"), proportion);
// 获取控件 ID 对应的控件指针
SetDlgItemText(key, strProportion); // 将比例设置到控件中
}
}
void CCcdDataImageProcessingDlg::OnInitAll()
{
// 定义文件路径
CString strFilePath = FILE_CCD_IMAGE_INFO_PATH;
// 检查文件是否存在
if (FileExists(strFilePath))
{
// 文件存在,从文件中加载数据
LoadEnergyDataFromFile(strFilePath);
}
}
// 检查文件是否存在的辅助函数
BOOL CCcdDataImageProcessingDlg::FileExists(const CString& strFilePath)
{
DWORD dwFileAttrib = GetFileAttributes(strFilePath);
return (dwFileAttrib != INVALID_FILE_ATTRIBUTES && !(dwFileAttrib & FILE_ATTRIBUTE_DIRECTORY));
}
void CCcdDataImageProcessingDlg::LoadEnergyDataFromFile(const CString& strFilePath)
{
CStdioFile file;
CString line;
CString minEnergy, maxEnergy, proportionEnergy, colorCombo, energyCombo;
// 打开文件进行读取
if (!file.Open(strFilePath, CFile::modeRead | CFile::typeText))
{
AfxMessageBox(_T("无法打开文件!"));
return;
}
// 跳过表头
file.ReadString(line);
// 循环读取每一行并更新控件
for (int i = 0; i < 10; ++i)
{
// 读取每一行数据
if (file.ReadString(line))
{
// 分析行内容,假设以逗号分隔
CStringArray fields;
int start = 0;
int end = line.Find(_T(','));
// 解析每一行的数据
while (end != -1)
{
fields.Add(line.Mid(start, end - start));
start = end + 1;
end = line.Find(_T(','), start);
}
fields.Add(line.Mid(start));
// 设置控件的值
if (fields.GetSize() >= 6)
{
// 设置MinEnergy和MaxEnergy
SetDlgItemText(minEnergyCtrlIds[i], fields[1]);
SetDlgItemText(maxEnergyCtrlIds[i], fields[2]);
// 设置Proportion
SetDlgItemText(proportionEnergyCtrlIds[i], fields[5]);
// 设置颜色
CComboBox* pColorCombo = (CComboBox*)GetDlgItem(colorComboCtrlIds[i]);
int colorIndex = pColorCombo->FindStringExact(-1, fields[3]);
if (colorIndex != CB_ERR)
{
pColorCombo->SetCurSel(colorIndex);
}
// 设置TF
CComboBox* pEnergyCombo = (CComboBox*)GetDlgItem(energyComboCtrlIds[i]);
int tfIndex = pEnergyCombo->FindStringExact(-1, fields[4]);
if (tfIndex != CB_ERR)
{
pEnergyCombo->SetCurSel(tfIndex);
}
}
}
}
// 关闭文件
file.Close();
}
void CCcdDataImageProcessingDlg::OnBnClickedSlectPathButton()
{
// 打开文件选择对话框
CFileDialog fileDlg(TRUE, _T("csv"), NULL, OFN_FILEMUSTEXIST | OFN_PATHMUSTEXIST, _T("Text Files (*.csv)|*.csv|All Files (*.*)|*.*||"));
// 显示文件选择对话框
if (fileDlg.DoModal() == IDOK)
{
// 获取选择的文件路径
CString filePath = fileDlg.GetPathName();
// 设置路径到 m_CddDataPath 控件
m_CddDataPath.SetWindowText(filePath);
}
}
void CCcdDataImageProcessingDlg::OnBnClickedImageGenerateButton()
{
// TODO: 执行
// 清除上一次的绘制内容
m_data.clear(); // 清空之前的数据
CString cddDataPathInfo;
GetDlgItemText(IDC_CCD_DATA_PATH_EDIT, cddDataPathInfo);
CStringA cstrA(cddDataPathInfo); // 将 CString 转换为 CStringA
std::string stdStr = cstrA.GetString(); // 将 CStringA 转换为 std::string
CFileMgr fileMgr;
fileMgr.ReadFileToStrVec(stdStr, m_data); // 假设文件名是 energy_data.csv
m_colorSchemeManager.addScheme("Scheme1"); // 添加多个颜色方案
//---获取所有方案参数--------------------------------------------
// 循环处理每一组控件
for (int i = 0; i < 10; ++i) {
CString strPlan;
strPlan.Format(_T("%d"), i + 1);
// 获取编辑框内容
CString minEnergy, maxEnergy, proportionEnergy, energyCombo, colorCombo;
GetDlgItemText(minEnergyCtrlIds[i], minEnergy);
GetDlgItemText(maxEnergyCtrlIds[i], maxEnergy);
//GetDlgItemText(proportionEnergyCtrlIds[i], proportionEnergy);
// 获取颜色组合框内容
CComboBox* pColorComboBox = (CComboBox*)GetDlgItem(colorComboCtrlIds[i]);
int colorSel = pColorComboBox->GetCurSel(); // 获取当前选择的索引
if (colorSel != CB_ERR) {
pColorComboBox->GetLBText(colorSel, colorCombo); // 获取颜色名称
}
else {
colorCombo = _T(""); // 如果没有选择,设置为空
}
// 获取TF组合框内容
CComboBox* pComboBox = (CComboBox*)GetDlgItem(energyComboCtrlIds[i]);
int energySel = pComboBox->GetCurSel(); // 获取当前选择的索引
if (energySel != CB_ERR) {
pComboBox->GetLBText(energySel, energyCombo); // 获取True/False
}
else {
energyCombo = _T(""); // 如果没有选择,设置为空
}
// 转换最小能量和最大能量
float minEnergyValue = _tstof(minEnergy); // 转换为 float
float maxEnergyValue = _tstof(maxEnergy); // 转换为 float
// 设置颜色
COLORREF color = WHITE; // 默认颜色为白色
if (colorCombo == colorNames[0]) { // Red
color = RED;
}
else if (colorCombo == colorNames[1]) { // Orange
color = ORANGE;
}
else if (colorCombo == colorNames[2]) { // Yellow
color = YELLOW;
}
else if (colorCombo == colorNames[3]) { // Green
color = GREEN;
}
else if (colorCombo == colorNames[4]) { // Cyan
color = CYAN;
}
else if (colorCombo == colorNames[5]) { // Blue
color = BLUE;
}
else if (colorCombo == colorNames[6]) { // Purple
color = PURPLE;
}
else if (colorCombo == colorNames[7]) { // Grey
color = GREY;
}
else if (colorCombo == colorNames[8]) { // Pink
color = PINK;
}
else if (colorCombo == colorNames[9]) { // Black
color = BLACK;
}
else if (colorCombo == colorNames[10]) { // White
color = WHITE;
}
else if (colorCombo == colorNames[11]) { // Brown
color = BROWN;
}
// 根据选择的能量区间添加范围
if (energyCombo == _T("True")) {
m_colorSchemeManager.schemes["Scheme1"].addRange(minEnergyValue, maxEnergyValue, color, proportionEnergyCtrlIds[i]); // 添加颜色范围
m_proportionEnergy[proportionEnergyCtrlIds[i]] = 0;
}
}
//---画图--------------------------------------------------------
m_colorSchemeManager.setCurrentScheme("Scheme1"); // 设置当前颜色方案为 Scheme1
// 重绘对话框并强制刷新
Invalidate(); // 标记窗口为无效区域
UpdateWindow(); // 立即刷新窗口
printf("11");
}
// 根据能量值设置颜色
COLORREF CCcdDataImageProcessingDlg::GetColorFromEnergy(float energy)
{
if (m_colorSchemeManager.currentScheme == nullptr) {
return WHITE;
}
return m_colorSchemeManager.currentScheme->getColor(energy);
}
void CCcdDataImageProcessingDlg::OnPaint()
{
CPaintDC dc(this); // 设备上下文
CRect clientRect;
GetClientRect(&clientRect); // 获取客户区域矩形
// 设置背景色
dc.FillSolidRect(clientRect, RGB(255, 255, 255));
// 设置字体
CFont font;
font.CreatePointFont(120, _T("Arial"));
dc.SelectObject(&font);
// 计算矩阵的行数和列数
int numRows = m_data.size();
int numCols = (numRows > 0) ? m_data[0].size() : 0;
// 如果数据为空,提前返回
if (numRows == 0 || numCols == 0) {
dc.TextOut(10, 10, _T("No data available"));
return;
}
// 获取窗口的宽度和高度
int maxImageWidth = clientRect.Width(); // 使用窗口的宽度
int maxImageHeight = clientRect.Height(); // 使用窗口的高度
// 计算每个数据块的大小(正方形)
float pointSize;
if (numCols > 0) {
// 根据列数和窗口宽度动态计算每个数据块的大小
float maxPointSizeWidth = static_cast<float>(maxImageWidth) / numCols; // 计算每个数据块在宽度上的最大大小
pointSize = static_cast<int>(maxPointSizeWidth); // 选择宽度限制的大小
}
else {
pointSize = 10; // 默认大小
}
// 计算最大高度可用空间,动态计算每个数据块的高度
int pointSizeHeight;
if (numRows > 0) {
// 根据行数和窗口高度动态计算每个数据块的大小
float maxPointSizeHeight = static_cast<float>(maxImageHeight) / numRows; // 计算每个数据块在高度上的最大大小
pointSizeHeight = static_cast<int>(maxPointSizeHeight); // 选择高度限制的大小
}
else {
pointSizeHeight = 10; // 默认大小
}
// 取最小值,确保数据点能够适应窗口
if (pointSize > pointSizeHeight)pointSize = pointSizeHeight;
// 如果计算出的 pointSize 太小,设置一个最小值
if (pointSize < 0.5) {
pointSize = 0.5; // 确保每个数据点至少为 1
}
// 计算偏移量,使图像右贴右边,上边贴上边
int offsetX = 0;
int offsetY = 0;
// 遍历并绘制每个数据点
for (int row = 0; row < numRows; ++row) {
for (int col = 0; col < numCols; ++col) {
// 确保每个元素都有效
if (row < m_data.size() && col < m_data[row].size()) {
try {
float energy = std::stof(m_data[row][col]); // 将字符串转换为浮动数
// 数据统计
if (energy < m_minEnergy) m_minEnergy = energy; // 更新最小值
if (energy > m_maxEnergy) m_maxEnergy = energy; // 更新最大值
m_NumEnergy++;
// 获取能量值对应的颜色
COLORREF color = GetColorFromEnergy(energy);
dc.SetDCBrushColor(color); // 设置画刷颜色
// 计算当前数据点位置(添加偏移量)
float scaledX = col * pointSize + offsetX;
float scaledY = row * pointSize + offsetY;
// 绘制正方形数据块
CRect rect(scaledX, scaledY, scaledX + pointSize, scaledY + pointSize);
dc.FillSolidRect(rect, color);
}
catch (const std::invalid_argument& e) {
// 处理无效的字符串,设置默认值或跳过
continue; // 如果数据无法转换为 float跳过当前元素
}
}
}
}
// 显示最大最小能量值
CString str;
str.Format(_T("Min Energy: %.2f, Max Energy: %.2f"), m_minEnergy, m_maxEnergy);
dc.TextOut(0, 1300, str);
UpProportionEnergy();
}
COLORREF ColorScheme::getColor(float energy)
{
for (const auto& range : ranges) {
if (energy >= range.minEnergy && energy <= range.maxEnergy) {
//HWND hwd = (HWND)range.proportionEnergy;
//CString str;
//GetDlgItemText(range.proportionEnergy, str); // 获取控件指针
m_proportionEnergy[range.proportionEnergy]++;
return range.color;
}
}
return WHITE; // 默认返回白色
}
void CCcdDataImageProcessingDlg::OnBnClickedSaveImageButton()
{
// 1. 使用文件对话框选择保存位置和文件名
CFileDialog saveFileDlg(FALSE, _T("png"), _T("saved_image.png"), OFN_OVERWRITEPROMPT, _T("PNG Files (*.png)|*.png|All Files (*.*)|*.*||"));
if (saveFileDlg.DoModal() == IDOK) {
// 获取用户选择的文件路径
CString savePath = saveFileDlg.GetPathName();
// 2. 调用图像保存函数
SaveImage(savePath);
}
}
void CCcdDataImageProcessingDlg::SaveImage(const CString& savePath)
{
// 创建一个 CImage 对象
CImage image;
// 获取当前绘图区域的尺寸
CClientDC dc(this); // 获取设备上下文
CRect rect;
GetClientRect(&rect);
// 创建图像24位颜色
image.Create(rect.Width(), rect.Height(), 24);
// 创建一个内存设备上下文,用于绘制到图像
CDC* pMemDC = CDC::FromHandle(image.GetDC());
// 将窗口内容复制到内存设备上下文
pMemDC->BitBlt(0, 0, rect.Width(), rect.Height(), &dc, 0, 0, SRCCOPY);
// 释放设备上下文
image.ReleaseDC();
// 3. 保存图像到文件
HRESULT hr = image.Save(savePath, Gdiplus::ImageFormatPNG); // 保存为 PNG 格式
if (FAILED(hr)) {
AfxMessageBox(_T("保存图像失败"));
}
else {
AfxMessageBox(_T("图像已保存"));
}
}

@ -0,0 +1,175 @@
// CcdDataImageProcessingDlg.h : 头文件
//
#pragma once
#include "afxwin.h"
#include <windows.h>
#include "FileMgr.h"
#include <map>
#include <vector>
#define WHITE RGB(255, 255, 255) // 定义 WHITE 颜色
// CCcdDataImageProcessingDlg 对话框
class CCcdDataImageProcessingDlg : public CDialogEx
{
// 构造
public:
CCcdDataImageProcessingDlg(CWnd* pParent = NULL); // 标准构造函数
// 对话框数据
#ifdef AFX_DESIGN_TIME
enum { IDD = IDD_CCDDATAIMAGEPROCESSING_DIALOG };
#endif
protected:
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV 支持
// 实现
protected:
HICON m_hIcon;
// 生成的消息映射函数
virtual BOOL OnInitDialog();
afx_msg void OnSysCommand(UINT nID, LPARAM lParam);
afx_msg void OnPaint();
afx_msg HCURSOR OnQueryDragIcon();
DECLARE_MESSAGE_MAP()
public:
CEdit m_MinEnergy1;
CEdit m_MaxEnergy1;
CEdit m_MinEnergy2;
CEdit m_MaxEnergy2;
CEdit m_MinEnergy3;
CEdit m_MaxEnergy3;
CEdit m_MinEnergy4;
CEdit m_MaxEnergy4;
CEdit m_MinEnergy5;
CEdit m_MaxEnergy5;
CEdit m_MinEnergy6;
CEdit m_MaxEnergy6;
CEdit m_MinEnergy7;
CEdit m_MaxEnergy7;
CEdit m_MinEnergy8;
CEdit m_MaxEnergy8;
CEdit m_MinEnergy9;
CEdit m_MaxEnergy9;
CEdit m_MinEnergy10;
CEdit m_MaxEnergy10;
CComboBox m_bEnergy1;
CComboBox m_bEnergy2;
CComboBox m_bEnergy3;
CComboBox m_bEnergy4;
CComboBox m_bEnergy5;
CComboBox m_bEnergy6;
CComboBox m_bEnergy7;
CComboBox m_bEnergy8;
CComboBox m_bEnergy9;
CComboBox m_bEnergy10;
CEdit m_ProportionEnergy1;
CEdit m_ProportionEnergy2;
CEdit m_ProportionEnergy3;
CEdit m_ProportionEnergy4;
CEdit m_ProportionEnergy5;
CEdit m_ProportionEnergy6;
CEdit m_ProportionEnergy7;
CEdit m_ProportionEnergy8;
CEdit m_ProportionEnergy9;
CEdit m_ProportionEnergy10;
CComboBox m_Color1;
CComboBox m_Color2;
CComboBox m_Color3;
CComboBox m_Color4;
CComboBox m_Color5;
CComboBox m_Color6;
CComboBox m_Color7;
CComboBox m_Color8;
CComboBox m_Color9;
CComboBox m_Color10;
CEdit m_CddDataPath;
CStatic m_StaticCtrl;
// 数据成员
std::vector<std::vector<std::string>> m_data; // 存储读取的数据
float m_minEnergy, m_maxEnergy;
float m_SumEnergy, m_NumEnergy;
float m_Scheme1, m_Scheme2, m_Scheme3, m_Scheme4, m_Scheme5, m_Scheme6, m_Scheme7, m_Scheme8, m_Scheme9, m_Scheme10;
public:
afx_msg void OnBnClickedImageInfoSaveButton();
afx_msg void OnBnClickedDlgMinButton();
afx_msg void OnBnClickedDlgMaxButton();
afx_msg void OnBnClickedImageGenerateButton();
afx_msg void OnBnClickedSlectPathButton();
afx_msg void OnBnClickedSaveImageButton();
public:
void OnInitEnergyCombo();
void OnInitEnergyInfo();
void OnInitCcdDataPath();
void UpProportionEnergy();
void OnInitAll();
void LoadEnergyDataFromFile(const CString& strFilePath);
void LoadData(CString cddDataPath);
void OnPaintCcd();
void SaveImage(const CString& savePath);
BOOL FileExists(const CString& strFilePath);
COLORREF GetColorFromEnergy(float energy);// 根据能量值设置颜色
};
// 颜色范围结构体
struct ColorRange {
float minEnergy;
float maxEnergy;
COLORREF color;
const int proportionEnergy;
ColorRange(float minE, float maxE, COLORREF col, const int proportionE)
: minEnergy(minE), maxEnergy(maxE), color(col), proportionEnergy(proportionE){}
};
// 颜色方案类
class ColorScheme {
public:
std::string name; // 方案的名称
std::vector<ColorRange> ranges; // 存储能量范围和对应的颜色
// 默认构造函数
ColorScheme() : name("") {}
// 带参数构造函数
ColorScheme(std::string schemeName) : name(schemeName) {}
// 添加能量范围
void addRange(float minEnergy, float maxEnergy, COLORREF color, const int proportionEnergy) {
ranges.push_back(ColorRange{ minEnergy, maxEnergy, color ,proportionEnergy});
}
// 根据能量值返回对应的颜色
COLORREF getColor(float energy);
};
// 颜色方案管理类
class ColorSchemeManager {
public:
std::map<std::string, ColorScheme> schemes;
ColorScheme* currentScheme;
ColorSchemeManager() : currentScheme(nullptr) {}
void addScheme(const std::string& name) {
schemes[name] = ColorScheme(name);
}
void setCurrentScheme(const std::string& name) {
currentScheme = &schemes[name];
}
};
extern ColorSchemeManager m_colorSchemeManager;
extern std::map<const int, int> m_proportionEnergy;

@ -0,0 +1,59 @@
#include "stdafx.h"
#include "FileMgr.h"
CFileMgr::CFileMgr()
{
}
CFileMgr::~CFileMgr()
{
}
void CFileMgr::ReadFileToStrVec(const std::string& filePath, std::vector<std::vector<std::string>>& data) {
std::ifstream file(filePath, std::ios::in | std::ios::binary);
if (!file.is_open()) {
return;
}
// 获取文件的大小
file.seekg(0, std::ios::end);
size_t fileSize = file.tellg();
file.seekg(0, std::ios::beg);
// 将文件内容映射到内存
char* fileBuffer = new char[fileSize];
file.read(fileBuffer, fileSize);
// 解析数据
char* lineStart = fileBuffer;
char* lineEnd = nullptr;
size_t rowIndex = 0;
while ((lineEnd = std::find(lineStart, fileBuffer + fileSize, '\n')) != fileBuffer + fileSize) {
std::vector<std::string> row;
char* valueStart = lineStart;
char* valueEnd = nullptr;
// 分割当前行
while ((valueEnd = std::find(valueStart, lineEnd, ',')) != lineEnd) {
row.push_back(std::string(valueStart, valueEnd));
valueStart = valueEnd + 1;
}
// 添加最后一个字段
row.push_back(std::string(valueStart, lineEnd));
// 将行数据添加到结果中
data.push_back(row);
// 移动到下一行
lineStart = lineEnd + 1;
++rowIndex;
}
// 清理
delete[] fileBuffer;
file.close();
}

@ -0,0 +1,15 @@
#pragma once
#include <vector>
#include <string>
#include <fstream>
#include <sstream>
class CFileMgr
{
public:
CFileMgr();
virtual ~CFileMgr();
void ReadFileToStrVec(const std::string& filePath, std::vector<std::vector<std::string>>& data);
};

@ -0,0 +1,67 @@
================================================================================
MICROSOFT 基础类库 : CcdDataImageProcessing 项目概述
===============================================================================
应用程序向导已为您创建了此 CcdDataImageProcessing 应用程序。此应用程序不仅演示 Microsoft 基础类的基本使用方法,还可作为您编写应用程序的起点。
本文件概要介绍组成 CcdDataImageProcessing 应用程序的每个文件的内容。
CcdDataImageProcessing.vcxproj
这是使用应用程序向导生成的 VC++ 项目的主项目文件,其中包含生成该文件的 Visual C++ 的版本信息,以及有关使用应用程序向导选择的平台、配置和项目功能的信息。
CcdDataImageProcessing.vcxproj.filters
这是使用“应用程序向导”生成的 VC++ 项目筛选器文件。它包含有关项目文件与筛选器之间的关联信息。在 IDE 中,通过这种关联,在特定节点下以分组形式显示具有相似扩展名的文件。例如,“.cpp”文件与“源文件”筛选器关联。
CcdDataImageProcessing.h
这是应用程序的主头文件。
其中包括其他项目特定的标头(包括 Resource.h并声明 CCcdDataImageProcessingApp 应用程序类。
CcdDataImageProcessing.cpp
这是包含应用程序类 CCcdDataImageProcessingApp 的主应用程序源文件。
CcdDataImageProcessing.rc
这是程序使用的所有 Microsoft Windows 资源的列表。它包括 RES 子目录中存储的图标、位图和光标。此文件可以直接在 Microsoft Visual C++ 中进行编辑。项目资源包含在 2052 中。
res\CcdDataImageProcessing.ico
这是用作应用程序图标的图标文件。此图标包括在主资源文件 CcdDataImageProcessing.rc 中。
res\CcdDataImageProcessing.rc2
此文件包含不在 Microsoft Visual C++ 中进行编辑的资源。您应该将不可由资源编辑器编辑的所有资源放在此文件中。
/////////////////////////////////////////////////////////////////////////////
应用程序向导创建一个对话框类:
CcdDataImageProcessingDlg.h、CcdDataImageProcessingDlg.cpp - 对话框
这些文件包含 CCcdDataImageProcessingDlg 类。此类定义应用程序的主对话框的行为。对话框模板包含在 CcdDataImageProcessing.rc 中,该文件可以在 Microsoft Visual C++ 中编辑。
/////////////////////////////////////////////////////////////////////////////
其他功能:
ActiveX 控件
该应用程序包含对使用 ActiveX 控件的支持。
/////////////////////////////////////////////////////////////////////////////
其他标准文件:
StdAfx.h, StdAfx.cpp
这些文件用于生成名为 CcdDataImageProcessing.pch 的预编译头 (PCH) 文件和名为 StdAfx.obj 的预编译类型文件。
Resource.h
这是标准头文件,可用于定义新的资源 ID。Microsoft Visual C++ 将读取并更新此文件。
CcdDataImageProcessing.manifest
Windows XP 使用应用程序清单文件来描述特定版本的并行程序集的应用程序依赖项。加载程序使用这些信息来从程序集缓存中加载相应的程序集,并保护其不被应用程序访问。应用程序清单可能会包含在内,以作为与应用程序可执行文件安装在同一文件夹中的外部 .manifest 文件进行重新分发,它还可能以资源的形式包含在可执行文件中。
/////////////////////////////////////////////////////////////////////////////
其他注释:
应用程序向导使用“TODO:”来指示应添加或自定义的源代码部分。
如果应用程序使用共享 DLL 中的 MFC您将需要重新分发 MFC DLL。如果应用程序所使用的语言与操作系统的区域设置不同则还需要重新分发相应的本地化资源 mfc110XXX.DLL。
有关上述话题的更多信息,请参见 MSDN 文档中有关重新分发 Visual C++ 应用程序的部分。
/////////////////////////////////////////////////////////////////////////////

@ -0,0 +1 @@
D:\programTest\
1 D:\programTest\

@ -0,0 +1,11 @@
Plan,MinEnergy,MaxEnergy,Color,TF,Proportion(%)
1,0,400,Black,True,47.46%
2,400,800,Blue,True,0.94%
3,800,1200,Brown,True,0.65%
4,1200,1600,Cyan,True,0.27%
5,1600,2000,Green,True,0.27%
6,2000,2400,Orange,True,1.28%
7,2400,2800,Pink,True,32.12%
8,2800,3200,Purple,True,17.00%
9,3200,3600,Red,True,0.00%
10,3600,6000,White,True,0.00%
1 Plan MinEnergy MaxEnergy Color TF Proportion(%)
2 1 0 400 Black True 47.46%
3 2 400 800 Blue True 0.94%
4 3 800 1200 Brown True 0.65%
5 4 1200 1600 Cyan True 0.27%
6 5 1600 2000 Green True 0.27%
7 6 2000 2400 Orange True 1.28%
8 7 2400 2800 Pink True 32.12%
9 8 2800 3200 Purple True 17.00%
10 9 3200 3600 Red True 0.00%
11 10 3600 6000 White True 0.00%

Binary file not shown.

After

Width:  |  Height:  |  Size: 66 KiB

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 40 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 54 KiB

@ -0,0 +1,8 @@
// stdafx.cpp : 只包括标准包含文件的源文件
// CcdDataImageProcessing.pch 将作为预编译头
// stdafx.obj 将包含预编译类型信息
#include "stdafx.h"

@ -0,0 +1,54 @@
// stdafx.h : 标准系统包含文件的包含文件,
// 或是经常使用但不常更改的
// 特定于项目的包含文件
#pragma once
#ifndef VC_EXTRALEAN
#define VC_EXTRALEAN // 从 Windows 头中排除极少使用的资料
#endif
#include "targetver.h"
#define _ATL_CSTRING_EXPLICIT_CONSTRUCTORS // 某些 CString 构造函数将是显式的
// 关闭 MFC 对某些常见但经常可放心忽略的警告消息的隐藏
#define _AFX_ALL_WARNINGS
#include <afxwin.h> // MFC 核心组件和标准组件
#include <afxext.h> // MFC 扩展
#include <afxdisp.h> // MFC 自动化类
#ifndef _AFX_NO_OLE_SUPPORT
#include <afxdtctl.h> // MFC 对 Internet Explorer 4 公共控件的支持
#endif
#ifndef _AFX_NO_AFXCMN_SUPPORT
#include <afxcmn.h> // MFC 对 Windows 公共控件的支持
#endif // _AFX_NO_AFXCMN_SUPPORT
#include <afxcontrolbars.h> // 功能区和控件条的 MFC 支持
#ifdef _UNICODE
#if defined _M_IX86
#pragma comment(linker,"/manifestdependency:\"type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='x86' publicKeyToken='6595b64144ccf1df' language='*'\"")
#elif defined _M_X64
#pragma comment(linker,"/manifestdependency:\"type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='amd64' publicKeyToken='6595b64144ccf1df' language='*'\"")
#else
#pragma comment(linker,"/manifestdependency:\"type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='*' publicKeyToken='6595b64144ccf1df' language='*'\"")
#endif
#endif

@ -0,0 +1,8 @@
#pragma once
// 包括 SDKDDKVer.h 将定义可用的最高版本的 Windows 平台。
// 如果要为以前的 Windows 平台生成应用程序,请包括 WinSDKVer.h并将
// 将 _WIN32_WINNT 宏设置为要支持的平台,然后再包括 SDKDDKVer.h。
#include <SDKDDKVer.h>

File diff suppressed because one or more lines are too long
Loading…
Cancel
Save