From 63a8eae8696c555e7bfa202c63e55d5fe5eb5a12 Mon Sep 17 00:00:00 2001 From: Lukasz Kasprzak Date: Tue, 18 Aug 2026 15:03:17 +0200 Subject: gen: regenerate the EF tables from corrected lectio gen/liturgy_ef.h is generated by lectio's clectio-gen, so it inherited the EF calendar errors colitur found and lectio has now fixed: ubaldus and didacus ranked as commemorations rather than III-class feasts, and both August vigils coloured from missalemeum rather than from RG 128. Regenerated with `go run ./cmd/clectio-gen old 2025 2054`, against lectio at 46653b2. Distinct days 661 -> 656. Verified: "St. Ubaldus" and "St. Didacus" are now in the name table and were absent before, so the two rank corrections are present and both saints now displace the ferias that previously held those days. NOT independently verified here: the vigil COLOURS. The days[] table is a deduplicated 656-entry set indexed from elsewhere, and decoding that encoding to read a colour back would be guesswork rather than a check. Those values come from lectio, where they are pinned by TestTridentineMissalOverrides and were mutation-tested. Saying so rather than implying a check that was not run. --- gen/liturgy_ef.h | 2634 +++++++++++++++++++++++++++--------------------------- 1 file changed, 1321 insertions(+), 1313 deletions(-) diff --git a/gen/liturgy_ef.h b/gen/liturgy_ef.h index c6f505e..828e993 100644 --- a/gen/liturgy_ef.h +++ b/gen/liturgy_ef.h @@ -137,7 +137,7 @@ static const char *const names[] = { "St. Robert Bellarmine", "Wednesday of the 4th Week of Easter", "St. John Baptist de la Salle", - "Friday of the 4th Week of Easter", + "St. Ubaldus", "St. Paschal Baylon", "5th Sunday of Easter", "St. Peter Celestine", @@ -318,7 +318,7 @@ static const char *const names[] = { "St. Andrew Avellino", "St. Martin of Tours", "St. Martin I", - "Thursday of the 22nd Week after Pentecost", + "St. Didacus", "St. Josaphat", "St. Albert the Great", "23rd Sunday after Pentecost", @@ -386,7 +386,6 @@ static const char *const names[] = { "St. Peter Canisius", "St. Monica", "Sts. Philip & James", - "Saturday of the 6th Week of Easter", "St. Venantius", "Thursday of the 7th Week of Easter", "Friday of the 7th Week of Easter", @@ -437,6 +436,7 @@ static const char *const names[] = { "St. Peter of Alcantara", "Monday of the 22nd Week after Pentecost", "Tuesday of the 22nd Week after Pentecost", + "Thursday of the 22nd Week after Pentecost", "Friday of the 22nd Week after Pentecost", "Saturday of the 22nd Week after Pentecost", "Tuesday of the 23rd Week after Pentecost", @@ -464,8 +464,10 @@ static const char *const names[] = { "Saturday of the 3rd Week of Easter", "Monday of the 4th Week of Easter", "Tuesday of the 4th Week of Easter", + "Friday of the 4th Week of Easter", "Sts. Cletus & Marcellinus", "Monday of the 6th Week of Easter", + "Saturday of the 6th Week of Easter", "St. Gregory VII", "St. Augustine of Canterbury", "St. Mary Magdalene de Pazzi", @@ -499,7 +501,6 @@ static const char *const names[] = { "Wednesday of the 23rd Week after Pentecost", "Wednesday of the 24th Week after Pentecost", "Monday of the 25th Week after Pentecost", - "Saturday of the 25th Week after Pentecost", "Saturday of the 27th Week after Pentecost", "Wednesday of the 1st Week of Advent", "Thursday of the 4th Week of Advent", @@ -510,7 +511,6 @@ static const char *const names[] = { "Monday of the 2nd Week of Septuagesima", "St. Peter Damien", "Wednesday of the 3rd Week of Easter", - "Tuesday of the 5th Week of Easter", "Tuesday of the 6th Week of Easter", "Thursday of the 4th Week after Pentecost", "Tuesday of the 5th Week after Pentecost", @@ -527,7 +527,6 @@ static const char *const names[] = { "Thursday of the 2nd Week after Epiphany", "Friday of the 2nd Week after Epiphany", "St. Leo the Great", - "Wednesday of the 7th Week of Easter", "Saturday of the 1st Week after Pentecost", "Saturday of the 2nd Week after Pentecost", "Wednesday of the 6th Week after Pentecost", @@ -546,20 +545,21 @@ static const char *const names[] = { "Monday of the 2nd Week of Advent", "Wednesday of the 6th Week after Epiphany", "Thursday of the 2nd Week of Septuagesima", - "Thursday of the 4th Week of Easter", + "Tuesday of the 5th Week of Easter", "Thursday of the 3rd Week after Pentecost", "Saturday of the 7th Week after Pentecost", "Monday of the 11th Week after Pentecost", "Friday of the 13th Week after Pentecost", "Saturday of the 17th Week after Pentecost", "Thursday of the 1st Week of Advent", + "Thursday of the 4th Week of Easter", "Friday of the 5th Week after Pentecost", "Wednesday of the 8th Week after Pentecost", "Wednesday of the 17th Week after Pentecost", "Saturday of the 20th Week after Pentecost", "Thursday of the 25th Week after Pentecost", + "Saturday of the 25th Week after Pentecost", "Saturday of the 4th Week of Easter", - "Monday of the 5th Week of Easter", "Monday of the 4th Week after Pentecost", "Monday of the 5th Week after Pentecost", "Thursday of the 10th Week after Pentecost", @@ -567,6 +567,8 @@ static const char *const names[] = { "Friday of the 4th Week of Advent", "Friday of the 5th Week after Epiphany", "Monday of the 2nd Week of Easter", + "Monday of the 5th Week of Easter", + "Wednesday of the 7th Week of Easter", "Tuesday of the 6th Week after Pentecost", "Tuesday of the 17th Week after Pentecost", "Thursday of the 19th Week after Pentecost", @@ -865,7 +867,7 @@ static const char *const cites_en[] = { "1 Cor 10:6-13", "Lk 19:41-47", "Sir 24:23-31", - "Jdt 13:22-25,15,10", + "Jdt 13:22-25; 15:10", "Lk 1:41-50", "Matt 1:1-16", "1 Cor 12:2-11", @@ -884,7 +886,7 @@ static const char *const cites_en[] = { "Lk 17:11-19", "Prov 8:22-35", "Jn 12:31-36", - "Jdt 13:22,25", + "Jdt 13:22,23-25", "Gal 5:16-24", "1 Cor 13:1-8", "Matt 22:1-14", @@ -894,8 +896,8 @@ static const char *const cites_en[] = { "Neh 8:1-10", "Mk 9:16-28", "Hos 14:2-10", - "Ezek 1:10-14", - "Matt 9:9-13", + "Heb 9:2-12", + "Lk 13:6-17", "Eph 3:13-21", "Lk 14:1-11", "Rev 1:1-5", @@ -930,8 +932,6 @@ static const char *const cites_en[] = { "Rev 21:2-5", "Lk 19:1-10", "Lk 11:33-36", - "Phil 1:6-11", - "Matt 22:15-21", "Heb 5:1-6", "Phil 3:17-21; 4:1-3", "Matt 9:18-26", @@ -951,10 +951,9 @@ static const char *const cites_en[] = { "Jn 1:19-28", "2 Cor 1:3-7", "Isa 11:1-5", - "Eph 2:19-22", - "Jn 20:24-29", - "1 Cor 4:1-5", + "2 Thess 2:1-8", "Lk 3:1-6", + "1 Cor 4:1-5", "Rom 1:1-6", "Heb 1:1-12", "Jn 1:1-14", @@ -970,6 +969,7 @@ static const char *const cites_en[] = { "Matt 18:15-22", "1 Cor 1:18-25,30", "Lk 12:2-8", + "Ezek 1:10-14", "Jn 14:1-13", "Acts 11:21-26; 13:1-3", "2 Cor 8:9-15", @@ -978,15 +978,20 @@ static const char *const cites_en[] = { "2 Cor 9:6-10", "1 Cor 12:27-31", "Lk 6:12-19", + "Matt 9:9-13", "Eph 5:15-21", "1 Thess 1:2-10", "Matt 13:31-35", "Matt 4:18-22", + "Eph 2:19-22", + "Jn 20:24-29", "Rev 14:1-5", "Matt 2:13-18", "1 Thess 2:2-9", "Lk 14:26-35", "Wis 5:16-20", + "Phil 1:6-11", + "Matt 22:15-21", }; static const char *const cites_la[] = { @@ -1249,7 +1254,7 @@ static const char *const cites_la[] = { "1 Cor 10:6-13", "Luc 19:41-47", "Eccli 24:23-31", - "Idt 13:22-25,15,10", + "Idt 13:22-25; 15:10", "Luc 1:41-50", "Matt 1:1-16", "1 Cor 12:2-11", @@ -1268,7 +1273,7 @@ static const char *const cites_la[] = { "Luc 17:11-19", "Prov 8:22-35", "Ioann 12:31-36", - "Idt 13:22,25", + "Idt 13:22,23-25", "Gal 5:16-24", "1 Cor 13:1-8", "Matt 22:1-14", @@ -1278,8 +1283,8 @@ static const char *const cites_la[] = { "Neh 8:1-10", "Marc 9:16-28", "Os 14:2-10", - "Ez 1:10-14", - "Matt 9:9-13", + "Hebr 9:2-12", + "Luc 13:6-17", "Eph 3:13-21", "Luc 14:1-11", "Apoc 1:1-5", @@ -1314,8 +1319,6 @@ static const char *const cites_la[] = { "Apoc 21:2-5", "Luc 19:1-10", "Luc 11:33-36", - "Phil 1:6-11", - "Matt 22:15-21", "Hebr 5:1-6", "Phil 3:17-21; 4:1-3", "Matt 9:18-26", @@ -1335,10 +1338,9 @@ static const char *const cites_la[] = { "Ioann 1:19-28", "2 Cor 1:3-7", "Is 11:1-5", - "Eph 2:19-22", - "Ioann 20:24-29", - "1 Cor 4:1-5", + "2 Thess 2:1-8", "Luc 3:1-6", + "1 Cor 4:1-5", "Rom 1:1-6", "Hebr 1:1-12", "Ioann 1:1-14", @@ -1354,6 +1356,7 @@ static const char *const cites_la[] = { "Matt 18:15-22", "1 Cor 1:18-25,30", "Luc 12:2-8", + "Ez 1:10-14", "Ioann 14:1-13", "Act 11:21-26; 13:1-3", "2 Cor 8:9-15", @@ -1362,15 +1365,20 @@ static const char *const cites_la[] = { "2 Cor 9:6-10", "1 Cor 12:27-31", "Luc 6:12-19", + "Matt 9:9-13", "Eph 5:15-21", "1 Thess 1:2-10", "Matt 13:31-35", "Matt 4:18-22", + "Eph 2:19-22", + "Ioann 20:24-29", "Apoc 14:1-5", "Matt 2:13-18", "1 Thess 2:2-9", "Luc 14:26-35", "Sap 5:16-20", + "Phil 1:6-11", + "Matt 22:15-21", }; static const unsigned short vpool[] = { @@ -1534,65 +1542,67 @@ static const unsigned short vpool[] = { 2408,2409,2410,883,884,2411,2412,2413,2414,2415,2416,2417,2418,2419,2420,2421, 2422,2423,2424,2425,2426,2427,2428,2429,2430,2431,2432,2433,2434,2435,2436,2437, 2438,2439,2440,2441,2442,2443,2444,2445,2446,2447,2448,2449,2450,1949,1950,2451, - 2452,2453,2454,2455,2456,2221,2222,2223,2224,2225,2226,2227,2457,2458,2459,2460, + 2452,2453,2454,2455,2221,2222,2223,2224,2225,2226,2227,2456,2457,2458,2459,2460, 2461,2462,2463,2464,2465,2466,2467,2468,2469,2470,2471,2472,2473,2474,2475,2476, 2477,2478,2479,2480,2481,2482,2483,2484,2485,2486,2487,2488,2489,2490,2491,2492, 2493,2494,2495,2496,2497,2498,2499,2500,2501,2502,2503,2504,2505,2506,2507,2508, 2509,2510,2511,2512,2513,2514,2515,2516,2517,2518,2519,2520,2521,2522,2523,2524, 2525,2526,2527,2528,2529,2530,2531,2532,2533,2534,2535,2536,2537,2538,2539,2540, 2541,2542,2543,2544,2545,2546,2547,2548,2549,2550,2551,2552,2553,2554,2555,2556, - 2557,2558,2559,2560,2561,2562,2563,2564,2565,2566,2567,2568,2569,2570,2571,2572, - 2173,2174,2175,2573,2574,2575,2576,2577,2578,2579,2580,2581,2582,2583,2584,2585, + 2557,2558,2559,2560,2561,2562,2563,2564,2565,2566,2567,2568,2569,2570,2571,2173, + 2174,2175,2572,2573,2574,2575,2576,2577,2578,2579,2580,2581,2582,2583,2584,2585, 2586,2587,2588,2589,2590,2591,2592,2593,2594,2595,2596,2597,2598,2599,2600,2601, - 2602,1497,1498,1499,1500,1501,1502,2451,2454,2603,2604,2605,2606,2607,2608,2609, - 2610,2611,492,493,494,495,496,497,498,499,2612,2613,2614,2615,2616,2617, - 2618,2619,2620,2621,2622,2623,2624,2625,2626,2627,2628,2629,2630,2631,2632,2633, - 2634,2635,2636,2637,2638,2639,2640,2641,2642,2643,2644,2645,2646,2647,2648,2649, - 2650,2651,2652,2653,2654,2655,2656,2657,2658,2659,2660,2661,2662,2663,2664,2665, - 2666,2667,2668,2669,2670,2671,2672,2673,2674,2675,2676,2677,2678,2679,2680,2681, - 2682,2683,2684,2685,2686,2687,2688,2689,2690,2691,2692,2693,2694,2695,2696,2697, - 2698,2699,2700,2701,2702,2703,2704,2705,2706,2707,2708,2709,2710,2711,2712,2713, - 2714,2715,2716,2717,2718,2719,2720,2721,2722,267,268,269,270,271,2723,2724, - 2725,2726,2727,2728,2729,2730,2731,2732,2733,2734,267,268,269,270,2735,2736, - 2737,2738,2739,2740,2741,2742,2743,2744,2745,2095,2096,2097,2098,2099,2100,2101, - 2746,2747,2748,2749,2750,2751,2589,2590,2591,2599,2600,2601,2602,2752,2753,2754, - 2755,2756,2757,2758,2759,2760,2761,2762,2763,1793,1794,2764,2765,2766,2767,46, - 47,48,49,50,51,52,53,54,2768,2769,2770,2771,2772,2773,2774,2775, - 2776,2777,2778,2779,2780,2781,2782,2699,2700,2701,2702,2703,2704,2783,2784,2785, - 2786,2787,2788,2789,2790,2791,2792,2793,2794,2795,2796,2797,2798,2799,2800,2801, - 2802,2803,2804,2805,2806,2807,2808,2809,2810,2811,2812,2813,2814,2815,2816,2817, - 2818,674,675,676,677,2819,2820,2821,2822,2823,2824,2825,2826,2827,2828,2829, - 2830,2831,2832,2833,2834,2835,2836,2837,2838,2839,2840,2841,2842,2843,2844,2845, - 2846,2847,2848,2849,2850,2851,2852,2853,2854,2855,2856,2857,2858,2859,2860,2861, - 2862,2863,2864,2865,2866,2867,2868,2869,2870,2871,2872,2873,2874,2875,2876,2877, - 2878,2879,2880,2881,2882,2883,2884,2885,2886,2887,2888,2889,2890,2891,2892,2893, - 2894,2895,2896,2897,2898,2899,2900,2901,2902,2903,2904,2905,2906,2907,2908,2909, - 2910,2911,2912,2913,2914,2915,2916,2917,2918,2919,2920,2921,2922,2923,2924,2925, - 2926,2927,2928,2929,2930,2931,2932,2933,2934,2935,2936,2937,2938,2939,2940,2941, - 2942,2943,2944,2945,2946,2947,2948,2949,2950,2819,2820,2821,2951,2952,2953,2954, - 2955,2956,2957,2958,2959,2960,2961,2962,2963,2964,2965,2966,2967,2968,2969,2970, - 2971,2972,2973,2974,2975,2976,2977,2978,2979,2980,2981,2982,2983,2984,2985,2986, - 2987,2988,2989,2990,2991,2992,2993,1938,1939,1940,1941,2994,2995,2996,2997,2998, - 2999,3000,3001,3002,3003,3004,3005,3006,3007,3008,3009,3010,3011,3012,3013,3014, - 3015,3016,3017,3018,3019,3020,3021,3022,3023,378,379,380,261,262,263,264, - 3024,3025,3026,3027,3028,3029,3030,3031,3032,3033,3034,3035,3036,3037,3038,3039, - 3040,3041,3042,3043,3044,3045,3046,3047,1754,1755,1756,1757,1758,1759,3048,3049, - 3050,3051,3052,3053,3054,3055,3056,3057,3058,3059,3060,3061,3062,3063,3064,3065, - 3066,3067,3068,3069,3070,3071,3072,3073,3074,3075,3076,3077,3078,3079,3080,3081, - 3082,3083,3084,3085,3086,3087,3088,3089,3090,3091,3092,3093,3094,3095,3096,3097, - 3098,3099,3100,3101,3102,3103,3104,3105,3106,3107,3108,3109,3110,3111,2177,3112, - 3113,3114,3115,3116,3117,3118,3119,2102,2103,2104,2105,1806,1807,1808,2232,2233, - 2234,2235,3120,3121,3122,3123,3124,3125,3126,3127,3128,3129,2364,2365,2366,2367, - 3130,3131,3132,3133,3134,3135,3136,3137,3138,3139,3140,3141,3142,3143,3144,3145, - 3146,3147,3148,3149,1763,1764,1765,1766,1767,1768,1769,1770,343,2156,2157,2158, - 2159,2160,2161,2162,3150,3151,3152,3153,3154,3155,3156,3157,3158,3159,3160,3161, - 3162,3163,3164,3165,3166,3167,3168,3169,3170,3171,3172,3173,3174,3175,3176,3177, - 3178,544,545,546,557,558,3179,3180,3181,3182,3183,3184,3185,3186,3187,3188, - 3189,3190,3191,3192,3193,3194,3195,3196,3197,3198,3199,3200,3201,3202,143,144, - 145,3203,3204,3205,3206,3207,3208,3209,3210,3211,3212,3213,3214,3215,3216,3217, - 3218,3219,3220,3221,3222,3223,3224,3225,3226,3227,3228,3229,3230,3231,3232,3233, - 3234,3235,3236,3237,3238,3239,2566,2567,2568,2569,2570,2571,2572,3240,201,202, - 203,204,205,206,207,208,3241,3242,3243,3244,3245,3246,3247, + 1497,1498,1499,1500,1501,1502,2451,2452,2453,2454,2602,2603,2604,2605,2606,2607, + 2608,2609,2610,492,493,494,495,496,497,498,499,2611,2612,2613,2614,2615, + 2616,2617,2618,2619,2620,2621,2622,2623,2624,2625,2626,2627,2628,2629,2630,2631, + 2632,2633,2634,2635,2636,2637,2638,2639,2640,2641,2642,2643,2644,2645,2646,2647, + 2648,2649,2650,2651,2652,2653,2654,2655,2656,2657,2658,2659,2660,2661,2662,2663, + 2664,2665,2666,2667,2668,2669,2670,2671,2672,2673,2674,2675,2676,2677,2678,2679, + 2680,2681,2682,2683,2684,2685,2686,2687,2688,2689,2690,2691,2692,2693,2694,2695, + 1290,1291,2696,2697,2698,2699,2700,2701,2702,2703,2704,2705,2706,2707,2708,2709, + 2710,2711,2712,2713,2714,2715,2716,2717,2718,2719,2720,2721,2722,2723,2724,2725, + 2726,2727,2728,2729,2730,2731,2732,267,268,269,270,271,2733,2734,2735,2736, + 2737,2738,2739,2740,2741,2742,2743,2744,267,268,269,270,2745,2746,2747,2748, + 2749,2750,2751,2752,2753,2754,2755,2095,2096,2097,2098,2099,2100,2101,2756,2757, + 2758,2759,2760,2761,2588,2589,2590,2598,2599,2600,2601,2762,2763,2764,2765,2766, + 2767,2768,2769,2770,2771,2772,2773,1793,1794,2774,2775,2776,2777,46,47,48, + 49,50,51,52,53,54,2778,2779,2780,2781,2782,2783,2784,2785,2786,2787, + 2788,2789,2790,2791,2792,2709,2710,2711,2712,2713,2714,2793,2794,2795,2796,2797, + 2798,2799,2800,2801,2802,2803,2804,2805,2806,2807,2808,2809,2810,2811,2812,2813, + 2814,2815,2816,2817,2818,2819,2820,2821,2822,2823,2824,2825,2826,2827,2828,674, + 675,676,677,2829,2830,2831,2832,2833,2834,2835,2836,2837,2838,2839,2840,2841, + 2842,2843,2844,2845,2846,2847,2848,2849,2850,2851,2852,2853,2854,2855,2856,2857, + 2858,2859,2860,2861,2862,2863,2864,2865,2866,2867,2868,2869,2870,2871,2872,2873, + 2874,2875,2876,2877,2878,2879,2880,2881,2882,2883,2884,2885,2886,2887,2888,2889, + 2890,2891,2892,2893,2894,2895,2896,2897,2898,2899,2900,2901,2902,2903,2904,2905, + 2906,2907,2908,2909,2910,2911,2912,2913,2914,2915,2916,2917,2918,2919,2920,2921, + 2922,2923,2924,2925,2926,2927,2928,2929,2930,2931,2932,2933,2934,2935,2936,2937, + 2938,2939,2940,2941,2942,2943,2944,2945,2946,2947,2829,2830,2831,2948,2949,2950, + 2951,2952,2953,2954,2955,2956,2957,2958,2959,2960,2961,2962,2963,2964,2965,2966, + 2967,2968,2969,2970,2971,2972,2973,2974,2975,2976,2977,2978,2979,2980,2981,2982, + 2983,2984,2985,2986,2987,2988,2989,2990,1938,1939,1940,1941,2991,2992,2993,2994, + 2995,2996,2997,2998,2999,3000,3001,3002,3003,3004,3005,3006,3007,3008,3009,3010, + 3011,3012,3013,3014,3015,3016,3017,3018,3019,3020,378,379,380,261,262,263, + 264,3021,3022,3023,3024,3025,3026,3027,3028,3029,3030,3031,3032,3033,3034,3035, + 3036,3037,3038,3039,3040,3041,3042,3043,3044,3045,3046,3047,3048,3049,3050,3051, + 3052,3053,3054,3055,3056,3057,3058,3059,3060,3061,3062,3063,3064,3065,3066,3067, + 3068,3069,3070,3071,3072,3073,3074,3075,3076,3077,3078,3079,3080,3081,3082,3083, + 3084,3085,3086,3087,3088,3089,3090,3091,3092,3093,3094,3095,3096,3097,3098,3099, + 3100,3101,3102,3103,3104,3105,3106,3107,3108,3109,3110,3111,3112,2177,3113,3114, + 3115,3116,3117,3118,3119,3120,2102,2103,2104,2105,1806,1807,1808,2232,2233,2234, + 2235,3121,3122,3123,3124,3125,3126,3127,3128,3129,3130,2364,2365,2366,2367,3131, + 3132,3133,3134,3135,3136,3137,3138,3139,3140,3141,3142,3143,3144,3145,3146,3147, + 3148,3149,3150,1763,1764,1765,1766,1767,1768,1769,1770,343,2156,2157,2158,2159, + 2160,2161,2162,3151,3152,3153,3154,3155,3156,3157,3158,3159,3160,3161,3162,3163, + 3164,3165,3166,3167,3168,3169,3170,3171,3172,3173,3174,3175,3176,3177,3178,3179, + 3180,3181,3182,3183,3184,544,545,546,557,558,3185,3186,3187,3188,3189,3190, + 3191,3192,3193,3194,3195,3196,3197,3198,3199,3200,3201,3202,3203,3204,3205,3206, + 3207,3208,143,144,145,3209,3210,3211,3212,3213,3214,3215,3216,3217,3218,3219, + 3220,3221,3222,3223,3224,3225,3226,3227,3228,3229,3230,3231,3232,3233,3234,3235, + 3236,3237,3238,3239,3240,3241,3242,3243,1754,1755,1756,1757,1758,1759,3244,3245, + 3246,3247,3248,3249,3250,3251,3252,3253,3254,2565,2566,2567,2568,2569,2570,2571, + 3255,201,202,203,204,205,206,207,208,3256,3257,3258,3259,3260,3261,3262, + 3263,3264,3265,3266,3267,3268,3269,3270,3271,3272,3273,3274,3275, }; typedef struct { unsigned short part, cite, voff, vlen; } Reading; @@ -1856,128 +1866,131 @@ static const Reading readings[] = { {0,256,2535,8}, {1,257,2543,7}, {0,258,2550,9}, - {0,259,2559,6}, - {1,260,2565,10}, - {1,261,2575,16}, - {0,262,2591,10}, - {1,263,2601,6}, - {0,264,2607,10}, - {1,265,2617,7}, - {0,266,2624,5}, - {1,267,2629,15}, - {0,268,2644,3}, - {1,269,2647,13}, - {0,270,2660,6}, - {1,271,2666,15}, - {0,272,2681,7}, - {1,273,2688,3}, - {0,274,2691,7}, - {1,275,2698,9}, - {0,276,2707,14}, - {1,277,2721,6}, - {0,278,2727,2}, - {0,279,2729,9}, - {0,280,2738,8}, - {1,281,2746,14}, - {0,282,2760,7}, - {1,283,2767,11}, - {0,284,2778,12}, - {0,285,2790,10}, - {1,286,2800,13}, - {0,287,2813,9}, - {0,288,2822,5}, - {1,289,2827,5}, - {0,290,2832,9}, - {1,291,2841,11}, - {0,292,2852,5}, - {1,293,2857,10}, - {0,294,2867,4}, - {0,295,2871,3}, - {1,296,2874,4}, - {0,297,2878,5}, - {0,298,2883,6}, - {1,299,2889,13}, - {0,300,2902,7}, - {0,301,2909,8}, - {0,302,2917,10}, - {1,303,2927,9}, - {0,304,2936,5}, - {1,305,2941,8}, - {0,306,2949,8}, - {0,307,2957,9}, - {0,308,2966,6}, - {0,309,2972,6}, - {1,310,2978,6}, - {0,311,2984,9}, - {1,312,2993,4}, - {0,313,2997,9}, - {1,314,3006,5}, - {1,315,3011,9}, - {0,316,3020,11}, - {0,317,3031,8}, - {1,318,3039,13}, - {0,319,3052,7}, - {1,320,3059,5}, - {0,321,3064,4}, - {1,322,3068,10}, - {1,323,3078,4}, - {0,324,3082,6}, - {1,325,3088,7}, - {0,326,3095,6}, - {0,327,3101,8}, - {1,328,3109,9}, - {1,329,3118,3}, - {0,330,3121,5}, - {0,331,3126,6}, - {1,332,3132,21}, - {0,333,3153,4}, - {1,334,3157,9}, - {0,335,3166,9}, - {1,336,3175,4}, - {0,337,3179,11}, - {0,338,3190,10}, - {1,339,3200,9}, - {1,340,3209,3}, - {0,341,3212,4}, - {1,342,3216,10}, - {0,343,3226,5}, - {0,344,3231,5}, - {0,345,3236,4}, - {1,346,3240,6}, - {0,347,3246,5}, - {1,348,3251,6}, - {0,349,3257,6}, - {0,350,3263,12}, - {1,351,3275,14}, - {0,352,3289,9}, - {1,353,3298,6}, - {0,354,3304,6}, - {1,355,3310,6}, - {0,356,3316,7}, - {1,357,3323,7}, - {0,358,3330,7}, - {1,359,3337,12}, - {0,360,3349,7}, - {1,361,3356,8}, - {0,362,3364,9}, - {1,363,3373,7}, - {1,364,3380,13}, - {0,365,3393,9}, - {0,366,3402,7}, - {0,367,3409,5}, - {1,368,3414,9}, - {0,369,3423,5}, - {0,370,3428,5}, - {1,371,3433,8}, - {0,372,3441,7}, - {0,373,3448,9}, - {1,374,3457,5}, - {1,375,3462,5}, - {0,376,3467,5}, - {1,377,3472,6}, - {0,378,3478,8}, - {1,379,3486,10}, - {0,380,3496,5}, + {0,259,2559,5}, + {1,260,2564,10}, + {1,261,2574,16}, + {0,262,2590,10}, + {1,263,2600,6}, + {0,264,2606,10}, + {1,265,2616,7}, + {0,266,2623,5}, + {1,267,2628,15}, + {0,268,2643,3}, + {1,269,2646,13}, + {0,270,2659,6}, + {1,271,2665,15}, + {0,272,2680,7}, + {1,273,2687,3}, + {0,274,2690,7}, + {1,275,2697,9}, + {0,276,2706,14}, + {1,277,2720,6}, + {0,278,2726,4}, + {0,279,2730,9}, + {0,280,2739,8}, + {1,281,2747,14}, + {0,282,2761,7}, + {1,283,2768,11}, + {0,284,2779,12}, + {0,285,2791,10}, + {1,286,2801,13}, + {0,287,2814,9}, + {0,288,2823,11}, + {1,289,2834,12}, + {0,290,2846,9}, + {1,291,2855,11}, + {0,292,2866,5}, + {1,293,2871,10}, + {0,294,2881,4}, + {0,295,2885,3}, + {1,296,2888,4}, + {0,297,2892,5}, + {0,298,2897,6}, + {1,299,2903,13}, + {0,300,2916,7}, + {0,301,2923,8}, + {0,302,2931,10}, + {1,303,2941,9}, + {0,304,2950,5}, + {1,305,2955,8}, + {0,306,2963,8}, + {0,307,2971,9}, + {0,308,2980,6}, + {0,309,2986,6}, + {1,310,2992,6}, + {0,311,2998,9}, + {1,312,3007,4}, + {0,313,3011,9}, + {1,314,3020,5}, + {1,315,3025,9}, + {0,316,3034,11}, + {0,317,3045,8}, + {1,318,3053,13}, + {0,319,3066,7}, + {1,320,3073,5}, + {0,321,3078,4}, + {1,322,3082,10}, + {1,323,3092,4}, + {0,324,3096,6}, + {0,325,3102,8}, + {1,326,3110,9}, + {1,327,3119,3}, + {0,328,3122,5}, + {0,329,3127,6}, + {1,330,3133,21}, + {0,331,3154,4}, + {1,332,3158,9}, + {0,333,3167,9}, + {1,334,3176,4}, + {0,335,3180,11}, + {0,336,3191,10}, + {1,337,3201,9}, + {1,338,3210,3}, + {0,339,3213,4}, + {1,340,3217,10}, + {0,341,3227,5}, + {0,342,3232,5}, + {0,343,3237,8}, + {1,344,3245,6}, + {0,345,3251,5}, + {0,346,3256,6}, + {0,347,3262,12}, + {1,348,3274,14}, + {0,349,3288,9}, + {1,350,3297,6}, + {0,351,3303,6}, + {1,352,3309,6}, + {0,353,3315,7}, + {1,354,3322,7}, + {0,355,3329,7}, + {1,356,3336,12}, + {0,357,3348,7}, + {1,358,3355,8}, + {0,359,3363,9}, + {1,360,3372,7}, + {0,361,3379,5}, + {1,362,3384,13}, + {0,363,3397,9}, + {0,364,3406,7}, + {0,365,3413,5}, + {1,366,3418,9}, + {0,367,3427,5}, + {0,368,3432,5}, + {1,369,3437,8}, + {1,370,3445,5}, + {0,371,3450,7}, + {0,372,3457,9}, + {1,373,3466,5}, + {1,374,3471,5}, + {0,375,3476,4}, + {1,376,3480,6}, + {0,377,3486,5}, + {1,378,3491,6}, + {0,379,3497,8}, + {1,380,3505,10}, + {0,381,3515,5}, + {0,382,3520,6}, + {1,383,3526,7}, }; static const unsigned short readings_cite_la[] = { @@ -2004,7 +2017,7 @@ static const unsigned short readings_cite_la[] = { 320,321,322,323,324,325,326,327,328,329,330,331,332,333,334,335, 336,337,338,339,340,341,342,343,344,345,346,347,348,349,350,351, 352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367, - 368,369,370,371,372,373,374,375,376,377,378,379,380, + 368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383, }; static const unsigned short rpool[] = { @@ -2024,72 +2037,72 @@ static const unsigned short rpool[] = { 140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155, 156,46,157,158,48,22,159,160,161,162,163,164,165,166,13,14, 165,166,167,168,165,166,169,10,42,43,170,171,167,172,173,10, - 170,171,25,35,170,171,25,16,174,175,13,14,25,29,174,175, - 174,175,174,175,163,164,176,177,173,16,9,10,178,179,180,181, - 176,177,182,183,184,185,184,185,184,185,186,16,51,187,42,43, - 188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,105, - 203,204,203,204,42,43,9,10,203,204,203,204,25,205,206,207, - 208,209,210,211,15,29,212,213,206,207,214,215,216,14,217,218, - 124,219,220,221,222,223,224,225,226,227,228,229,230,46,231,232, - 228,229,231,233,228,229,15,234,235,236,9,10,25,16,235,236, - 235,236,206,237,32,46,238,239,9,10,240,133,241,242,238,239, - 243,244,231,232,245,246,247,24,48,248,245,246,157,46,245,246, - 249,46,250,251,9,16,163,252,253,83,25,254,25,16,21,255, - 256,257,256,257,48,22,256,257,258,252,259,260,25,261,262,263, - 262,263,25,16,169,10,231,232,258,164,32,33,264,265,266,267, - 264,265,266,35,9,10,268,269,48,22,270,271,270,271,25,267, - 272,273,270,271,42,43,270,271,274,275,276,261,274,275,32,33, - 274,275,258,101,274,275,138,277,278,164,23,24,279,254,280,281, - 282,283,279,254,284,119,42,43,13,14,285,286,284,119,287,133, - 288,289,290,291,292,293,9,10,290,291,294,293,295,296,297,12, - 298,299,25,16,300,101,301,232,302,46,15,29,258,303,304,305, - 25,16,13,14,48,22,231,232,306,12,307,46,308,281,309,16, - 308,281,308,281,230,310,311,312,308,281,313,314,313,314,178,315, - 313,314,313,314,313,314,316,187,317,318,319,320,42,43,317,318, - 317,318,317,318,317,318,321,322,25,16,42,323,13,14,324,325, - 326,166,9,10,327,328,42,329,321,322,231,232,32,33,163,252, - 330,22,331,332,9,10,21,22,15,29,331,332,331,332,331,332, - 333,334,333,334,330,232,335,336,9,10,333,334,337,43,338,339, - 276,340,338,339,338,339,13,14,338,339,48,232,341,342,341,342, - 343,255,100,101,341,342,344,221,345,346,347,348,347,348,347,348, - 349,89,350,351,352,353,354,355,2,3,2,3,2,3,6,7, - 17,18,356,357,9,10,60,61,358,359,360,361,266,27,362,363, - 154,155,154,155,154,155,165,166,9,10,13,14,167,168,288,46, - 9,10,301,119,167,364,163,164,167,168,184,185,184,185,48,22, - 203,204,203,204,206,207,206,207,231,232,365,218,9,10,224,225, - 224,225,224,225,48,22,224,225,366,33,228,229,235,236,238,239, - 238,239,245,246,245,246,367,368,250,251,256,257,256,257,369,37, - 264,265,25,16,270,271,370,371,274,275,279,254,25,16,279,254, - 279,254,284,119,284,119,284,119,290,291,288,289,298,299,266,158, - 304,305,308,281,372,172,372,172,11,33,313,314,313,314,313,314, - 313,314,313,314,327,328,327,328,327,328,327,328,6,47,373,374, - 48,22,327,14,331,332,331,332,335,375,333,334,333,334,9,10, - 338,339,338,339,341,342,345,346,347,348,376,377,6,7,17,18, - 154,155,165,166,163,164,170,171,170,171,13,14,176,177,13,14, - 378,46,48,22,206,207,206,207,224,225,25,16,9,379,228,229, - 245,246,250,251,250,251,262,263,262,263,270,271,270,271,279,254, - 284,119,290,291,290,291,290,291,298,299,298,299,304,305,380,20, - 308,281,372,172,317,318,324,325,324,325,327,328,327,328,313,314, - 313,314,313,314,6,47,6,47,331,332,333,334,347,348,6,7, - 17,18,40,41,40,41,52,53,55,56,9,10,165,166,174,175, - 176,177,228,229,235,236,250,251,256,257,264,265,274,275,279,254, - 372,172,372,172,372,172,313,314,313,314,313,314,324,325,324,325, - 324,325,331,332,331,332,331,332,331,332,347,348,347,348,6,7, - 6,7,17,18,17,18,13,14,184,185,203,204,206,207,238,239, - 238,239,250,251,256,257,262,263,284,119,304,305,304,305,324,325, - 313,314,313,314,313,314,313,314,40,41,40,41,40,41,40,41, - 6,47,331,332,331,332,331,332,338,339,4,5,4,5,4,5, - 4,5,4,5,4,5,17,18,373,374,373,374,373,374,373,374, - 55,56,170,171,224,225,245,246,264,265,274,275,298,299,313,314, - 331,332,333,334,235,236,250,251,298,299,372,172,313,314,313,314, - 331,332,331,332,170,171,174,175,228,229,235,236,262,263,264,265, - 313,314,347,348,350,351,350,351,350,351,0,1,0,1,0,1, - 0,1,0,1,40,41,154,155,238,239,298,299,308,281,6,47, - 331,332,331,332,331,332,264,265,290,291,313,314,313,314,40,41, - 40,41,40,41,40,41,6,47,331,332,331,332,331,332,331,332, - 40,41,373,374,373,374,373,374,373,374,373,374,373,374,304,305, - 313,314,317,318,331,332,262,263,313,314,6,47,331,332,313,314, - 313,314,40,41,40,41,6,47,331,332,304,305,331,332,40,41, + 170,171,25,35,25,16,174,175,13,14,25,29,174,175,174,175, + 174,175,163,164,176,177,173,16,9,10,178,179,180,181,176,177, + 182,183,184,185,184,185,184,185,186,16,51,187,42,43,188,189, + 190,191,192,193,194,195,196,197,198,199,200,201,202,105,203,204, + 203,204,42,43,9,10,203,204,203,204,25,205,206,207,208,209, + 210,211,15,29,212,213,206,207,214,215,216,14,217,218,124,219, + 220,221,222,223,224,225,226,227,228,229,230,46,231,232,228,229, + 231,233,228,229,15,234,235,236,9,10,25,16,235,236,235,236, + 206,237,32,46,238,239,9,10,240,133,241,242,238,239,243,244, + 231,232,245,246,247,24,48,248,245,246,157,46,245,246,249,46, + 250,251,9,16,163,252,253,83,25,254,25,16,21,255,256,257, + 256,257,48,22,256,257,258,252,259,260,25,261,262,263,262,263, + 25,16,169,10,231,232,258,164,32,33,264,265,266,267,264,265, + 266,35,9,10,268,269,48,22,270,271,270,271,25,267,272,273, + 270,271,42,43,270,271,274,275,276,261,274,275,32,33,274,275, + 258,101,274,275,138,277,278,164,23,24,279,254,280,281,282,283, + 279,254,284,119,42,43,13,14,285,286,284,119,287,133,288,289, + 290,291,292,293,9,10,290,291,294,293,295,296,297,12,298,299, + 25,16,300,101,301,232,302,46,15,29,258,303,304,305,25,16, + 13,14,48,22,231,232,306,12,307,46,308,281,309,16,308,281, + 308,281,230,310,311,312,308,281,313,314,313,314,178,315,313,314, + 313,314,313,314,316,187,317,318,319,320,42,43,317,318,317,318, + 317,318,317,318,321,322,25,16,42,323,13,14,324,166,9,10, + 325,326,42,327,321,322,231,232,32,33,163,252,328,22,329,330, + 9,10,21,22,15,29,329,330,329,330,329,330,331,332,331,332, + 328,232,333,334,9,10,331,332,335,43,336,337,276,338,336,337, + 336,337,13,14,336,337,48,232,339,340,339,340,341,255,100,101, + 339,340,342,221,343,344,345,344,345,344,345,344,346,89,347,348, + 349,350,351,352,2,3,2,3,2,3,6,7,17,18,353,354, + 9,10,60,61,355,356,357,358,266,27,359,360,154,155,154,155, + 154,155,165,166,9,10,13,14,167,168,361,46,9,10,301,119, + 167,362,167,168,184,185,184,185,48,22,203,204,203,204,206,207, + 206,207,231,232,363,218,9,10,224,225,224,225,224,225,48,22, + 224,225,364,33,228,229,235,236,238,239,238,239,245,246,245,246, + 365,366,250,251,256,257,256,257,367,37,264,265,25,16,270,271, + 368,369,274,275,279,254,25,16,279,254,279,254,284,119,284,119, + 284,119,290,291,361,370,298,299,266,158,304,305,308,281,371,172, + 371,172,11,33,313,314,313,314,313,314,313,314,313,314,325,326, + 325,326,325,326,325,326,372,373,48,22,325,14,329,330,329,330, + 333,374,331,332,331,332,9,10,336,337,336,337,339,340,375,376, + 345,344,377,378,6,7,17,18,154,155,165,166,163,164,170,171, + 170,171,170,171,13,14,176,177,163,164,13,14,379,46,48,22, + 206,207,206,207,224,225,25,16,9,380,228,229,245,246,250,251, + 250,251,262,263,262,263,270,271,270,271,279,254,284,119,290,291, + 290,291,290,291,298,299,298,299,304,305,381,20,308,281,371,172, + 317,318,382,383,382,383,382,383,325,326,325,326,313,314,313,314, + 313,314,6,47,329,330,331,332,345,344,6,7,17,18,40,41, + 40,41,52,53,55,56,9,10,165,166,176,177,228,229,235,236, + 250,251,256,257,264,265,274,275,279,254,371,172,371,172,371,172, + 313,314,313,314,313,314,382,383,382,383,382,383,329,330,329,330, + 329,330,329,330,345,344,345,344,6,7,6,7,17,18,17,18, + 13,14,203,204,206,207,238,239,238,239,250,251,256,257,262,263, + 284,119,304,305,304,305,382,383,313,314,313,314,313,314,313,314, + 40,41,40,41,40,41,40,41,329,330,329,330,329,330,336,337, + 4,5,4,5,4,5,4,5,4,5,4,5,17,18,372,373, + 372,373,372,373,372,373,55,56,174,175,224,225,245,246,264,265, + 274,275,298,299,313,314,329,330,331,332,170,171,235,236,250,251, + 298,299,371,172,313,314,313,314,329,330,329,330,170,171,228,229, + 235,236,262,263,264,265,313,314,345,344,347,348,347,348,347,348, + 0,1,0,1,0,1,0,1,0,1,40,41,154,155,174,175, + 184,185,238,239,298,299,308,281,329,330,329,330,329,330,264,265, + 290,291,313,314,313,314,40,41,40,41,40,41,40,41,329,330, + 329,330,329,330,329,330,40,41,372,373,372,373,372,373,372,373, + 372,373,372,373,304,305,313,314,317,318,329,330,262,263,313,314, + 329,330,313,314,313,314,40,41,40,41,329,330,304,305,329,330, + 40,41, }; typedef struct { unsigned short name; unsigned char colour; unsigned short roff, rlen; } Day; @@ -2224,537 +2237,532 @@ static const Day days[] = { {126,1,254,2}, {127,1,256,2}, {128,1,258,2}, - {129,1,260,2}, - {130,1,262,2}, - {131,1,264,2}, - {132,1,266,2}, - {133,1,268,2}, - {134,1,270,2}, - {135,1,272,2}, - {136,1,274,2}, - {137,1,276,2}, - {138,1,278,2}, - {139,1,280,2}, - {140,1,282,2}, - {141,1,284,2}, - {142,1,286,2}, - {143,1,288,2}, - {144,1,290,2}, - {145,1,292,2}, - {146,1,294,2}, - {147,1,296,2}, - {148,1,298,2}, - {149,2,300,2}, - {150,1,302,2}, - {151,2,304,2}, - {152,2,306,2}, - {153,2,308,2}, - {154,2,310,2}, - {155,2,312,2}, - {156,2,314,2}, - {157,2,316,2}, - {158,2,318,2}, - {159,1,320,2}, - {160,0,322,2}, - {161,1,324,2}, - {162,2,326,2}, - {163,1,328,2}, - {164,0,330,2}, - {165,1,332,2}, - {166,0,334,2}, - {167,3,336,2}, - {168,1,338,2}, - {169,1,340,2}, - {170,2,342,2}, - {171,1,344,2}, - {172,3,346,2}, - {173,2,348,2}, - {174,2,350,2}, - {175,2,352,2}, - {176,1,354,2}, - {177,2,356,2}, - {178,0,358,2}, - {179,1,360,2}, - {180,0,362,2}, - {181,1,364,2}, - {182,1,366,2}, - {183,0,368,2}, - {184,2,370,2}, - {185,0,372,2}, - {186,2,374,2}, - {187,0,376,2}, - {188,1,378,2}, - {189,1,380,2}, - {190,0,382,2}, - {191,0,384,2}, - {192,2,386,2}, - {193,1,388,2}, - {194,0,390,2}, - {195,1,392,2}, - {196,1,394,2}, - {197,1,396,2}, - {198,0,398,2}, - {199,2,400,2}, - {200,1,402,2}, - {201,0,404,2}, - {202,2,406,2}, - {203,2,408,2}, - {204,0,410,2}, - {205,1,412,2}, - {206,0,414,2}, - {207,2,416,2}, - {208,0,418,2}, - {209,1,420,2}, - {210,1,422,2}, - {211,1,424,2}, - {212,1,426,2}, - {213,1,428,2}, - {214,2,430,2}, - {215,0,432,2}, - {216,0,434,2}, - {217,1,436,2}, - {218,0,438,2}, - {219,1,440,2}, - {220,1,442,2}, - {221,1,444,2}, - {222,0,446,2}, - {223,0,448,2}, - {224,1,450,2}, - {225,1,452,2}, - {226,1,454,2}, - {227,1,456,2}, - {228,1,458,2}, - {229,0,460,2}, - {230,1,462,2}, - {231,0,464,2}, - {232,1,466,2}, - {233,2,468,2}, - {234,2,470,2}, - {235,2,472,2}, - {236,0,474,2}, - {237,0,476,2}, - {238,1,478,2}, - {239,1,480,2}, - {240,0,482,2}, - {241,1,484,2}, - {242,0,486,2}, - {243,0,488,2}, - {244,1,490,2}, - {245,0,492,2}, - {246,1,494,2}, - {247,0,496,2}, - {248,1,498,2}, - {249,0,500,2}, - {250,2,502,2}, - {251,1,504,2}, - {252,2,506,2}, - {253,0,508,2}, - {254,1,510,2}, - {255,2,512,2}, - {256,0,514,2}, - {257,0,516,2}, - {258,1,518,2}, - {259,2,520,2}, - {260,3,522,2}, - {261,0,524,2}, - {262,3,526,2}, - {263,3,528,2}, - {264,0,530,2}, - {265,1,532,2}, - {266,1,534,2}, - {267,0,536,2}, - {268,1,538,2}, - {269,1,540,2}, - {270,1,542,2}, - {271,0,544,2}, - {272,1,546,2}, - {273,1,548,2}, - {274,1,550,2}, - {275,1,552,2}, - {276,1,554,2}, - {277,1,556,2}, - {278,0,558,2}, - {279,1,560,2}, - {280,2,562,2}, - {281,1,564,2}, - {282,1,566,2}, - {283,1,568,2}, - {284,2,570,2}, - {285,0,572,2}, - {286,1,574,2}, - {287,0,576,2}, - {288,0,578,2}, - {289,1,580,2}, - {290,1,582,2}, - {291,0,584,2}, - {292,1,586,2}, - {293,0,588,2}, - {294,2,590,2}, - {295,0,592,2}, - {296,0,594,2}, - {297,0,596,2}, - {298,1,598,2}, - {299,0,600,2}, - {300,5,602,2}, - {301,1,604,2}, - {302,0,606,2}, - {303,0,608,2}, - {304,0,610,2}, - {305,0,612,2}, - {306,1,614,2}, - {307,1,616,2}, - {308,1,618,2}, - {309,2,620,2}, - {310,0,622,2}, - {311,1,624,2}, - {312,1,626,2}, - {313,0,628,2}, - {314,1,630,2}, - {315,1,632,2}, - {316,1,634,2}, - {317,1,636,2}, - {318,1,638,2}, - {319,2,640,2}, - {320,0,642,2}, - {321,1,644,2}, - {322,2,646,2}, - {323,1,648,2}, - {324,0,650,2}, - {325,0,652,2}, - {326,0,654,2}, - {327,3,656,2}, - {328,3,658,2}, - {329,2,660,2}, - {330,1,662,2}, - {331,1,664,2}, - {332,3,666,2}, - {333,1,668,2}, - {334,3,670,2}, - {335,1,672,2}, - {336,3,674,2}, - {337,3,676,2}, - {338,1,678,2}, - {339,3,680,2}, - {340,2,682,2}, - {341,4,684,2}, - {342,3,686,2}, - {343,2,688,2}, - {344,3,690,2}, - {345,3,692,2}, - {346,3,694,2}, - {347,3,696,2}, - {348,3,698,2}, - {349,3,700,2}, - {350,3,702,2}, - {351,3,704,2}, - {352,1,706,2}, - {353,2,708,2}, - {354,1,710,2}, - {355,1,712,2}, - {356,1,714,2}, - {357,1,716,2}, - {358,0,718,2}, - {359,0,720,2}, - {360,2,722,2}, - {361,1,724,2}, - {362,3,726,2}, - {363,3,728,2}, - {364,3,730,2}, - {365,2,732,2}, - {366,2,734,2}, - {367,1,736,2}, - {368,1,738,2}, - {369,1,740,2}, - {370,1,742,2}, - {371,1,744,2}, - {372,2,746,2}, - {373,2,748,2}, - {374,2,750,2}, - {375,1,752,2}, - {376,1,754,2}, - {377,2,756,2}, - {378,1,758,2}, - {379,2,760,2}, - {380,1,762,2}, - {381,1,764,2}, - {382,1,766,2}, - {383,0,768,2}, - {384,0,770,2}, - {385,0,772,2}, - {386,0,774,2}, - {387,1,776,2}, - {388,2,778,2}, - {389,1,780,2}, - {390,0,782,2}, - {391,0,784,2}, - {392,0,786,2}, - {393,2,788,2}, - {394,0,790,2}, - {395,1,792,2}, - {396,0,794,2}, - {397,0,796,2}, - {398,0,798,2}, - {399,0,800,2}, - {400,0,802,2}, - {401,0,804,2}, - {402,2,806,2}, - {403,0,808,2}, - {404,0,810,2}, - {405,0,812,2}, - {406,2,814,2}, - {407,0,816,2}, - {408,1,818,2}, - {409,0,820,2}, - {410,2,822,2}, - {411,0,824,2}, - {412,0,826,2}, - {413,1,828,2}, - {414,0,830,2}, - {415,0,832,2}, - {416,0,834,2}, - {417,0,836,2}, - {418,0,838,2}, - {419,0,840,2}, - {420,2,842,2}, - {421,0,844,2}, - {422,2,846,2}, - {423,0,848,2}, - {424,0,850,2}, - {425,0,852,2}, - {293,0,854,2}, - {426,1,856,2}, - {427,0,858,2}, - {428,0,860,2}, - {310,0,862,2}, - {429,0,864,2}, - {430,0,866,2}, - {431,0,868,2}, - {432,0,870,2}, - {433,0,872,2}, - {434,0,874,2}, - {325,0,876,2}, - {435,0,878,2}, - {436,1,880,2}, - {437,2,882,2}, - {438,0,884,2}, - {439,0,886,2}, - {440,2,888,2}, - {441,3,890,2}, - {442,3,892,2}, - {443,1,894,2}, - {444,3,896,2}, - {445,3,898,2}, - {446,3,900,2}, - {447,2,902,2}, - {448,3,904,2}, - {449,2,906,2}, - {6,0,908,2}, - {450,0,910,2}, - {451,1,912,2}, - {452,1,914,2}, - {453,1,916,2}, - {454,1,918,2}, - {455,1,920,2}, - {456,2,922,2}, - {457,1,924,2}, - {458,1,926,2}, - {459,1,928,2}, - {460,1,930,2}, - {461,0,932,2}, - {462,0,934,2}, - {463,0,936,2}, - {464,2,938,2}, - {465,1,940,2}, - {466,0,942,2}, - {467,0,944,2}, - {468,0,946,2}, - {469,0,948,2}, - {470,0,950,2}, - {471,0,952,2}, - {472,0,954,2}, - {473,0,956,2}, - {474,0,958,2}, - {475,0,960,2}, - {476,0,962,2}, - {477,0,964,2}, - {478,0,966,2}, - {479,0,968,2}, - {480,0,970,2}, - {481,0,972,2}, - {482,2,974,2}, - {483,0,976,2}, - {484,0,978,2}, - {485,0,980,2}, - {486,0,982,2}, - {429,0,984,2}, - {487,0,986,2}, - {488,0,988,2}, - {489,0,990,2}, - {325,0,992,2}, - {326,0,994,2}, - {490,0,996,2}, - {491,0,998,2}, - {492,0,1000,2}, - {493,3,1002,2}, - {494,3,1004,2}, - {7,0,1006,2}, - {495,0,1008,2}, - {496,0,1010,2}, - {497,0,1012,2}, - {498,3,1014,2}, - {499,3,1016,2}, - {500,1,1018,2}, - {501,1,1020,2}, - {502,1,1022,2}, - {503,1,1024,2}, - {504,0,1026,2}, - {505,0,1028,2}, - {506,0,1030,2}, - {507,0,1032,2}, - {508,0,1034,2}, - {509,0,1036,2}, - {510,0,1038,2}, - {295,0,1040,2}, - {296,0,1042,2}, - {297,0,1044,2}, - {511,0,1046,2}, - {485,0,1048,2}, - {304,0,1050,2}, - {427,0,1052,2}, - {428,0,1054,2}, - {512,0,1056,2}, - {490,0,1058,2}, - {513,0,1060,2}, - {514,0,1062,2}, - {515,0,1064,2}, - {2,1,1066,2}, - {3,1,1068,2}, - {8,0,1070,2}, - {9,0,1072,2}, - {516,0,1074,2}, - {517,0,1076,2}, - {518,1,1078,2}, - {519,1,1080,2}, - {520,0,1082,2}, - {521,0,1084,2}, - {522,0,1086,2}, - {523,0,1088,2}, - {524,0,1090,2}, - {525,0,1092,2}, - {526,0,1094,2}, - {527,0,1096,2}, - {528,0,1098,2}, - {529,0,1100,2}, - {430,0,1102,2}, - {487,0,1104,2}, - {431,0,1106,2}, - {488,0,1108,2}, - {434,0,1110,2}, - {530,0,1112,2}, - {531,0,1114,2}, - {489,0,1116,2}, - {324,0,1118,2}, - {513,0,1120,2}, - {532,0,1122,2}, - {533,0,1124,2}, - {534,0,1126,2}, - {535,3,1128,2}, - {358,0,1130,2}, - {6,0,1132,2}, - {7,0,1134,2}, - {8,0,1136,2}, - {9,0,1138,2}, - {10,0,1140,2}, - {17,0,1142,2}, - {536,0,1144,2}, - {43,0,1146,2}, - {44,0,1148,2}, - {45,0,1150,2}, - {537,3,1152,2}, - {538,1,1154,2}, - {539,0,1156,2}, - {540,0,1158,2}, - {541,0,1160,2}, - {542,0,1162,2}, - {543,0,1164,2}, - {484,0,1166,2}, - {489,0,1168,2}, - {544,3,1170,2}, - {545,0,1172,2}, - {546,0,1174,2}, - {547,0,1176,2}, - {548,0,1178,2}, - {302,0,1180,2}, - {303,0,1182,2}, - {549,0,1184,2}, - {491,0,1186,2}, - {550,1,1188,2}, - {551,1,1190,2}, - {552,0,1192,2}, - {553,0,1194,2}, - {554,0,1196,2}, - {555,0,1198,2}, - {305,0,1200,2}, - {556,3,1202,2}, - {1,1,1204,2}, - {2,1,1206,2}, - {3,1,1208,2}, - {355,1,1210,2}, - {356,1,1212,2}, - {357,1,1214,2}, - {1,1,1216,2}, - {10,0,1218,2}, - {557,0,1220,2}, - {558,1,1222,2}, - {559,0,1224,2}, - {560,0,1226,2}, - {561,0,1228,2}, - {530,0,1230,2}, - {562,0,1232,2}, - {563,0,1234,2}, - {564,0,1236,2}, - {565,1,1238,0}, - {566,1,1238,0}, - {567,0,1238,2}, - {568,0,1240,2}, - {530,0,1242,2}, - {531,0,1244,2}, - {490,0,1246,2}, - {513,0,1248,2}, - {514,0,1250,2}, - {549,0,1252,2}, - {563,0,1254,2}, - {569,0,1256,2}, - {570,0,1258,2}, - {571,0,1260,2}, - {572,0,1262,2}, - {573,0,1264,2}, - {574,0,1266,2}, - {575,0,1268,2}, - {576,0,1270,2}, - {577,0,1272,2}, - {578,0,1274,2}, - {579,0,1276,2}, - {580,2,1278,0}, - {581,1,1278,0}, - {582,1,1278,0}, - {583,0,1278,2}, - {548,0,1280,2}, - {511,0,1282,2}, - {434,0,1284,2}, - {584,0,1286,2}, - {512,0,1288,2}, - {324,0,1290,2}, - {585,0,1292,2}, - {432,0,1294,2}, - {433,0,1296,2}, - {325,0,1298,2}, - {326,0,1300,2}, - {515,0,1302,2}, - {586,0,1304,2}, - {587,0,1306,2}, - {588,0,1308,2}, - {589,0,1310,2}, + {129,1,260,0}, + {130,1,260,2}, + {131,1,262,2}, + {132,1,264,2}, + {133,1,266,2}, + {134,1,268,2}, + {135,1,270,2}, + {136,1,272,2}, + {137,1,274,2}, + {138,1,276,2}, + {139,1,278,2}, + {140,1,280,2}, + {141,1,282,2}, + {142,1,284,2}, + {143,1,286,2}, + {144,1,288,2}, + {145,1,290,2}, + {146,1,292,2}, + {147,1,294,2}, + {148,1,296,2}, + {149,2,298,2}, + {150,1,300,2}, + {151,2,302,2}, + {152,2,304,2}, + {153,2,306,2}, + {154,2,308,2}, + {155,2,310,2}, + {156,2,312,2}, + {157,2,314,2}, + {158,2,316,2}, + {159,1,318,2}, + {160,0,320,2}, + {161,1,322,2}, + {162,2,324,2}, + {163,1,326,2}, + {164,0,328,2}, + {165,1,330,2}, + {166,0,332,2}, + {167,3,334,2}, + {168,1,336,2}, + {169,1,338,2}, + {170,2,340,2}, + {171,1,342,2}, + {172,3,344,2}, + {173,2,346,2}, + {174,2,348,2}, + {175,2,350,2}, + {176,1,352,2}, + {177,2,354,2}, + {178,0,356,2}, + {179,1,358,2}, + {180,0,360,2}, + {181,1,362,2}, + {182,1,364,2}, + {183,0,366,2}, + {184,2,368,2}, + {185,0,370,2}, + {186,2,372,2}, + {187,0,374,2}, + {188,1,376,2}, + {189,1,378,2}, + {190,0,380,2}, + {191,0,382,2}, + {192,2,384,2}, + {193,1,386,2}, + {194,0,388,2}, + {195,1,390,2}, + {196,1,392,2}, + {197,1,394,2}, + {198,0,396,2}, + {199,2,398,2}, + {200,1,400,2}, + {201,0,402,2}, + {202,2,404,2}, + {203,2,406,2}, + {204,0,408,2}, + {205,1,410,2}, + {206,0,412,2}, + {207,2,414,2}, + {208,0,416,2}, + {209,1,418,2}, + {210,1,420,2}, + {211,1,422,2}, + {212,1,424,2}, + {213,1,426,2}, + {214,3,428,2}, + {215,0,430,2}, + {216,0,432,2}, + {217,1,434,2}, + {218,0,436,2}, + {219,3,438,2}, + {220,1,440,2}, + {221,1,442,2}, + {222,0,444,2}, + {223,0,446,2}, + {224,1,448,2}, + {225,1,450,2}, + {226,1,452,2}, + {227,1,454,2}, + {228,1,456,2}, + {229,0,458,2}, + {230,1,460,2}, + {231,0,462,2}, + {232,1,464,2}, + {233,2,466,2}, + {234,2,468,2}, + {235,2,470,2}, + {236,0,472,2}, + {237,0,474,2}, + {238,1,476,2}, + {239,1,478,2}, + {240,0,480,2}, + {241,1,482,2}, + {242,0,484,2}, + {243,0,486,2}, + {244,1,488,2}, + {245,0,490,2}, + {246,1,492,2}, + {247,0,494,2}, + {248,1,496,2}, + {249,0,498,2}, + {250,2,500,2}, + {251,1,502,2}, + {252,2,504,2}, + {253,0,506,2}, + {254,1,508,2}, + {255,2,510,2}, + {256,0,512,2}, + {257,0,514,2}, + {258,1,516,2}, + {259,2,518,2}, + {260,3,520,2}, + {261,0,522,2}, + {262,3,524,2}, + {263,3,526,2}, + {264,0,528,2}, + {265,1,530,2}, + {266,1,532,2}, + {267,0,534,2}, + {268,1,536,2}, + {269,1,538,2}, + {270,1,540,2}, + {271,0,542,2}, + {272,1,544,2}, + {273,1,546,2}, + {274,1,548,2}, + {275,1,550,2}, + {276,1,552,2}, + {277,1,554,2}, + {278,0,556,2}, + {279,1,558,2}, + {280,2,560,2}, + {281,1,562,2}, + {282,1,564,2}, + {283,1,566,2}, + {284,2,568,2}, + {285,0,570,2}, + {286,1,572,2}, + {287,0,574,2}, + {288,0,576,2}, + {289,1,578,2}, + {290,1,580,2}, + {291,0,582,2}, + {292,1,584,2}, + {293,0,586,2}, + {294,2,588,2}, + {295,0,590,2}, + {296,0,592,2}, + {297,0,594,2}, + {298,1,596,2}, + {299,0,598,2}, + {300,5,600,2}, + {301,1,602,2}, + {302,0,604,2}, + {303,0,606,2}, + {304,0,608,2}, + {305,0,610,2}, + {306,1,612,2}, + {307,1,614,2}, + {308,1,616,2}, + {309,2,618,2}, + {310,1,620,0}, + {311,1,620,2}, + {312,1,622,2}, + {313,0,624,2}, + {314,1,626,2}, + {315,1,628,2}, + {316,1,630,2}, + {317,1,632,2}, + {318,1,634,2}, + {319,2,636,2}, + {320,0,638,2}, + {321,1,640,2}, + {322,2,642,2}, + {323,1,644,2}, + {324,0,646,2}, + {325,0,648,2}, + {326,0,650,2}, + {327,3,652,2}, + {328,3,654,2}, + {329,2,656,2}, + {330,1,658,2}, + {331,1,660,2}, + {332,3,662,2}, + {333,1,664,2}, + {334,3,666,2}, + {335,1,668,2}, + {336,3,670,2}, + {337,3,672,2}, + {338,1,674,2}, + {339,3,676,2}, + {340,2,678,2}, + {341,4,680,2}, + {342,3,682,2}, + {343,2,684,2}, + {344,3,686,2}, + {345,3,688,2}, + {346,3,690,2}, + {347,3,692,2}, + {348,3,694,2}, + {349,3,696,2}, + {350,3,698,2}, + {351,3,700,2}, + {352,1,702,2}, + {353,2,704,2}, + {354,1,706,2}, + {355,1,708,2}, + {356,1,710,2}, + {357,1,712,2}, + {358,0,714,2}, + {359,0,716,2}, + {360,2,718,2}, + {361,1,720,2}, + {362,3,722,2}, + {363,3,724,2}, + {364,3,726,2}, + {365,2,728,2}, + {366,2,730,2}, + {367,1,732,2}, + {368,1,734,2}, + {369,1,736,2}, + {370,1,738,2}, + {371,1,740,2}, + {372,2,742,2}, + {373,2,744,2}, + {374,2,746,2}, + {375,1,748,2}, + {376,1,750,2}, + {377,2,752,2}, + {378,2,754,2}, + {379,1,756,2}, + {380,1,758,2}, + {381,1,760,2}, + {382,0,762,2}, + {383,0,764,2}, + {384,0,766,2}, + {385,0,768,2}, + {386,1,770,2}, + {387,2,772,2}, + {388,1,774,2}, + {389,0,776,2}, + {390,0,778,2}, + {391,0,780,2}, + {392,2,782,2}, + {393,0,784,2}, + {394,1,786,2}, + {395,0,788,2}, + {396,0,790,2}, + {397,0,792,2}, + {398,0,794,2}, + {399,0,796,2}, + {400,0,798,2}, + {401,2,800,2}, + {402,0,802,2}, + {403,0,804,2}, + {404,0,806,2}, + {405,2,808,2}, + {406,0,810,2}, + {407,1,812,2}, + {408,0,814,2}, + {409,2,816,2}, + {410,0,818,2}, + {411,0,820,2}, + {412,1,822,2}, + {413,0,824,2}, + {414,0,826,2}, + {415,0,828,2}, + {416,0,830,2}, + {417,0,832,2}, + {418,0,834,2}, + {419,2,836,2}, + {420,0,838,2}, + {421,2,840,2}, + {422,0,842,2}, + {423,0,844,2}, + {424,0,846,2}, + {293,0,848,2}, + {425,1,850,2}, + {426,0,852,2}, + {427,0,854,2}, + {428,0,856,2}, + {429,0,858,2}, + {430,0,860,2}, + {431,0,862,2}, + {432,0,864,2}, + {433,0,866,2}, + {434,0,868,2}, + {435,0,870,2}, + {436,1,872,2}, + {437,2,874,2}, + {438,0,876,2}, + {439,0,878,2}, + {440,2,880,2}, + {441,3,882,2}, + {442,3,884,2}, + {443,1,886,2}, + {444,3,888,2}, + {445,3,890,2}, + {446,3,892,2}, + {447,2,894,2}, + {448,3,896,2}, + {449,2,898,2}, + {6,0,900,2}, + {450,0,902,2}, + {451,1,904,2}, + {452,1,906,2}, + {453,1,908,2}, + {454,1,910,2}, + {455,1,912,2}, + {456,1,914,2}, + {457,2,916,2}, + {458,1,918,2}, + {459,1,920,2}, + {460,1,922,2}, + {461,1,924,2}, + {462,1,926,2}, + {463,0,928,2}, + {464,0,930,2}, + {465,0,932,2}, + {466,2,934,2}, + {467,1,936,2}, + {468,0,938,2}, + {469,0,940,2}, + {470,0,942,2}, + {471,0,944,2}, + {472,0,946,2}, + {473,0,948,2}, + {474,0,950,2}, + {475,0,952,2}, + {476,0,954,2}, + {477,0,956,2}, + {478,0,958,2}, + {479,0,960,2}, + {480,0,962,2}, + {481,0,964,2}, + {482,0,966,2}, + {483,0,968,2}, + {484,2,970,2}, + {485,0,972,2}, + {486,0,974,2}, + {487,0,976,2}, + {488,0,978,2}, + {428,0,980,2}, + {429,0,982,2}, + {489,0,984,2}, + {490,0,986,2}, + {491,0,988,2}, + {325,0,990,2}, + {326,0,992,2}, + {492,0,994,2}, + {493,0,996,2}, + {494,3,998,2}, + {495,3,1000,2}, + {7,0,1002,2}, + {496,0,1004,2}, + {497,0,1006,2}, + {498,0,1008,2}, + {499,3,1010,2}, + {500,3,1012,2}, + {501,1,1014,2}, + {502,1,1016,2}, + {503,1,1018,2}, + {504,0,1020,2}, + {505,0,1022,2}, + {506,0,1024,2}, + {507,0,1026,2}, + {508,0,1028,2}, + {509,0,1030,2}, + {510,0,1032,2}, + {295,0,1034,2}, + {296,0,1036,2}, + {297,0,1038,2}, + {511,0,1040,2}, + {487,0,1042,2}, + {304,0,1044,2}, + {426,0,1046,2}, + {427,0,1048,2}, + {512,0,1050,2}, + {492,0,1052,2}, + {513,0,1054,2}, + {514,0,1056,2}, + {515,0,1058,2}, + {2,1,1060,2}, + {3,1,1062,2}, + {8,0,1064,2}, + {9,0,1066,2}, + {516,0,1068,2}, + {517,0,1070,2}, + {518,1,1072,2}, + {519,0,1074,2}, + {520,0,1076,2}, + {521,0,1078,2}, + {522,0,1080,2}, + {523,0,1082,2}, + {524,0,1084,2}, + {525,0,1086,2}, + {526,0,1088,2}, + {527,0,1090,2}, + {528,0,1092,2}, + {430,0,1094,2}, + {489,0,1096,2}, + {431,0,1098,2}, + {490,0,1100,2}, + {434,0,1102,2}, + {529,0,1104,2}, + {530,0,1106,2}, + {491,0,1108,2}, + {324,0,1110,2}, + {531,0,1112,2}, + {532,0,1114,2}, + {533,0,1116,2}, + {534,3,1118,2}, + {358,0,1120,2}, + {6,0,1122,2}, + {7,0,1124,2}, + {8,0,1126,2}, + {9,0,1128,2}, + {10,0,1130,2}, + {17,0,1132,2}, + {535,0,1134,2}, + {43,0,1136,2}, + {44,0,1138,2}, + {45,0,1140,2}, + {536,3,1142,2}, + {537,1,1144,2}, + {538,0,1146,2}, + {539,0,1148,2}, + {540,0,1150,2}, + {541,0,1152,2}, + {542,0,1154,2}, + {486,0,1156,2}, + {491,0,1158,2}, + {543,3,1160,2}, + {544,1,1162,2}, + {545,0,1164,2}, + {546,0,1166,2}, + {547,0,1168,2}, + {548,0,1170,2}, + {302,0,1172,2}, + {303,0,1174,2}, + {549,0,1176,2}, + {550,0,1178,2}, + {551,1,1180,2}, + {552,0,1182,2}, + {553,0,1184,2}, + {554,0,1186,2}, + {555,0,1188,2}, + {305,0,1190,2}, + {556,3,1192,2}, + {1,1,1194,2}, + {2,1,1196,2}, + {3,1,1198,2}, + {355,1,1200,2}, + {356,1,1202,2}, + {357,1,1204,2}, + {1,1,1206,2}, + {10,0,1208,2}, + {557,0,1210,2}, + {558,1,1212,2}, + {559,1,1214,2}, + {560,1,1216,2}, + {561,0,1218,2}, + {562,0,1220,2}, + {563,0,1222,2}, + {564,0,1224,2}, + {565,0,1226,2}, + {566,0,1228,2}, + {567,1,1230,0}, + {568,1,1230,0}, + {569,0,1230,2}, + {570,0,1232,2}, + {529,0,1234,2}, + {530,0,1236,2}, + {492,0,1238,2}, + {513,0,1240,2}, + {514,0,1242,2}, + {549,0,1244,2}, + {571,0,1246,2}, + {572,0,1248,2}, + {573,0,1250,2}, + {574,0,1252,2}, + {575,0,1254,2}, + {576,0,1256,2}, + {577,0,1258,2}, + {578,0,1260,2}, + {579,0,1262,2}, + {580,0,1264,2}, + {581,0,1266,2}, + {582,2,1268,0}, + {583,1,1268,0}, + {584,1,1268,0}, + {585,0,1268,2}, + {548,0,1270,2}, + {511,0,1272,2}, + {434,0,1274,2}, + {586,0,1276,2}, + {512,0,1278,2}, + {587,0,1280,2}, + {432,0,1282,2}, + {433,0,1284,2}, + {325,0,1286,2}, + {326,0,1288,2}, + {588,0,1290,2}, + {589,0,1292,2}, + {590,0,1294,2}, + {591,0,1296,2}, }; static const unsigned short cal[NDAYS] = { @@ -2789,133 +2797,133 @@ static const unsigned short cal[NDAYS] = { 83,99,100,101,102,96,97,98,103,100,101,104,105,106,107,108, 109,110,111,366,367,368,369,370,117,118,371,372,373,122,374,375, 125,376,112,113,114,115,116,132,377,119,135,121,137,123,139,378, - 126,142,143,129,379,146,380,133,134,381,382,152,153,154,155,156, - 157,158,159,160,383,384,385,164,150,151,167,386,387,388,389,172, - 390,391,392,393,162,163,394,395,181,396,168,169,170,171,397,188, - 174,175,176,177,178,398,195,399,182,183,199,185,400,202,401,189, - 190,402,207,193,209,403,196,197,198,404,200,216,217,203,204,405, - 206,406,223,224,210,211,212,213,214,230,407,232,218,408,220,221, - 237,409,410,225,226,227,228,244,411,231,412,233,234,235,413,414, - 415,239,240,416,242,258,417,245,418,247,419,249,265,251,252,253, - 420,255,256,272,421,259,261,422,263,264,279,423,266,267,424,269, - 270,286,425,273,274,275,276,277,426,427,280,281,282,283,284,300, - 428,287,303,304,290,291,293,429,430,295,431,432,433,299,301,434, - 302,435,436,437,39,307,308,309,310,438,312,439,440,315,316,317, - 318,319,321,441,322,323,324,442,443,328,444,445,330,331,332,446, - 335,447,336,338,448,339,449,342,343,450,345,346,347,348,349,451, - 351,452,352,353,354,4,453,357,358,1,0,3,4,356,357,5, - 8,9,10,11,359,454,12,13,14,15,18,360,455,19,20,21, + 126,142,143,129,130,146,379,133,134,380,381,152,153,154,155,156, + 157,158,159,160,382,383,384,164,150,151,167,385,386,387,388,172, + 389,390,391,392,162,163,393,394,181,395,168,169,170,171,396,188, + 174,175,176,177,178,397,195,398,182,183,199,185,399,202,400,189, + 190,401,207,193,209,402,196,197,198,403,200,216,217,203,204,404, + 206,405,223,224,210,211,212,213,214,230,406,232,218,407,220,221, + 237,408,409,225,226,227,228,244,410,231,411,233,234,235,412,413, + 414,239,240,415,242,258,416,245,417,247,418,249,265,251,252,253, + 419,255,256,272,420,259,261,421,263,264,279,422,266,267,423,269, + 270,286,424,273,274,275,276,277,425,426,280,281,282,283,284,300, + 427,287,303,304,290,291,293,428,429,295,430,431,432,299,301,433, + 302,434,435,436,39,307,308,309,310,311,312,437,438,315,316,317, + 318,319,321,439,322,323,324,440,441,328,442,443,330,331,332,444, + 335,445,336,338,446,339,447,342,343,448,345,346,347,348,349,449, + 351,450,352,353,354,4,451,357,358,1,0,3,4,356,357,5, + 8,9,10,11,359,452,12,13,14,15,18,360,453,19,20,21, 22,46,24,361,26,27,28,29,53,31,32,56,34,35,36,60, 38,362,63,64,65,66,67,68,69,70,71,72,73,74,52,76, 54,78,79,80,81,82,365,84,85,86,87,88,89,90,91,92, 93,94,95,96,97,98,99,77,101,102,96,97,98,103,100,101, - 104,105,106,107,108,109,110,111,83,456,368,369,370,117,118,371, - 366,367,122,457,458,125,459,460,372,373,130,374,132,461,376,112, - 113,114,115,139,462,377,142,143,121,379,146,124,378,126,127,382, + 104,105,106,107,108,109,110,111,83,454,368,369,370,117,118,371, + 366,367,122,455,456,125,457,458,372,373,459,374,132,460,376,112, + 113,114,115,139,461,377,142,143,121,462,146,124,378,126,127,381, 152,153,154,155,156,157,158,159,160,161,463,140,164,464,465,167, - 145,383,466,467,172,150,391,392,393,468,388,389,469,181,470,471, - 184,162,163,394,188,166,396,168,169,170,171,195,173,174,175,176, - 177,178,202,180,472,182,183,207,185,209,187,473,189,190,404,474, - 216,194,403,196,197,198,406,223,201,475,203,204,476,206,230,208, - 232,210,211,212,213,237,215,407,477,218,478,220,221,222,409,412, - 225,226,227,413,229,411,231,479,233,234,258,236,414,418,239,240, - 480,265,481,482,245,420,247,483,272,484,251,252,253,485,255,279, - 486,421,261,260,263,264,286,487,423,266,267,488,269,426,271,489, - 273,274,275,276,300,278,490,280,281,282,283,491,285,428,287,311, - 492,290,314,493,434,494,295,436,437,293,299,301,495,302,496,497, - 39,498,307,308,309,310,499,439,313,440,315,316,317,318,321,320, - 441,322,323,324,500,328,329,444,501,330,331,332,335,334,447,336, - 448,340,339,342,341,450,345,344,347,348,349,350,451,452,502,352, - 353,4,355,453,358,1,2,0,4,356,357,358,5,9,10,11, - 359,454,503,12,13,14,18,16,455,504,19,20,21,25,23,24, + 145,382,466,467,172,150,390,391,392,468,387,388,469,181,470,471, + 184,162,163,393,188,166,395,168,169,170,171,195,173,174,175,176, + 177,178,202,180,472,182,183,207,185,209,187,473,189,190,403,474, + 216,194,402,196,197,198,405,223,201,475,203,204,476,206,230,208, + 232,210,211,212,213,237,215,406,477,218,478,220,221,222,408,411, + 225,226,227,412,229,410,231,479,233,234,258,236,413,417,239,240, + 480,265,481,482,245,419,247,483,272,484,251,252,253,485,255,279, + 486,420,261,260,263,264,286,487,422,266,267,488,269,425,271,489, + 273,274,275,276,300,278,490,280,281,282,283,491,285,427,287,492, + 493,290,314,494,433,495,295,435,436,293,299,301,496,302,497,498, + 39,499,307,308,309,310,311,437,313,438,315,316,317,318,321,320, + 439,322,323,324,500,328,329,442,501,330,331,332,335,334,445,336, + 446,340,339,342,341,448,345,344,347,348,349,350,449,450,502,352, + 353,4,355,451,358,1,2,0,4,356,357,358,5,9,10,11, + 359,452,503,12,13,14,18,16,453,504,19,20,21,25,23,24, 361,26,27,28,505,30,31,32,506,34,35,39,37,38,362,40, 41,42,46,47,48,49,50,51,507,53,508,52,509,54,58,59, 60,61,363,63,64,65,66,67,68,69,70,71,72,73,74,75, 76,364,78,79,80,81,77,365,84,85,86,83,88,89,90,91, 92,93,94,95,96,97,98,99,100,101,102,96,97,98,103,100, - 101,104,105,106,107,108,109,110,111,374,375,461,376,112,113,118, - 115,116,510,377,119,458,125,459,123,124,378,126,127,132,129,511, - 131,380,133,134,139,462,512,142,143,140,141,146,465,148,145,383, - 382,152,153,154,155,156,157,158,159,160,469,390,470,164,165,162, - 167,394,387,166,396,172,169,391,171,393,173,174,175,176,181,178, - 471,180,513,182,183,188,185,514,187,192,189,190,195,399,193,194, - 403,196,197,202,401,200,201,402,203,204,209,206,473,208,515,210, - 211,212,213,214,215,407,516,218,223,220,221,222,409,476,225,230, - 227,228,229,411,231,517,237,234,235,236,414,478,239,244,518,242, - 412,248,245,250,413,519,249,254,251,252,253,258,255,256,261,421, - 263,264,265,481,482,487,423,266,267,272,269,270,271,422,273,274, - 279,276,277,278,424,280,281,286,283,284,285,428,287,292,426,290, - 291,520,521,522,295,293,523,524,299,301,525,302,491,526,527,528, - 307,308,309,314,493,312,313,440,315,316,439,318,319,320,441,322, - 323,321,529,530,531,444,532,330,328,332,445,334,447,336,446,335, - 339,337,341,448,340,344,342,343,450,345,451,347,348,352,353,354, - 355,453,533,534,4,0,357,358,1,2,5,11,359,454,503,535, - 536,12,18,14,15,16,537,538,19,25,21,22,23,24,361,26, + 101,104,105,106,107,108,109,110,111,374,375,460,376,112,113,118, + 115,116,510,377,119,456,125,457,123,124,378,126,127,132,129,130, + 131,379,133,134,139,461,511,142,143,140,141,146,465,148,145,382, + 381,152,153,154,155,156,157,158,159,160,469,389,470,164,165,162, + 167,393,386,166,395,172,169,390,171,392,173,174,175,176,181,178, + 471,180,512,182,183,188,185,513,187,192,189,190,195,398,193,194, + 402,196,197,202,400,200,201,401,203,204,209,206,473,208,514,210, + 211,212,213,214,215,406,515,218,223,220,221,222,408,476,225,230, + 227,228,229,410,231,516,237,234,235,236,413,478,239,244,517,242, + 411,248,245,250,412,518,249,254,251,252,253,258,255,256,261,420, + 263,264,265,481,482,487,422,266,267,272,269,270,271,421,273,274, + 279,276,277,278,423,280,281,286,283,284,285,427,287,292,425,290, + 291,519,520,521,295,293,522,523,299,301,524,302,491,525,526,527, + 307,308,309,314,311,312,313,438,315,316,437,318,319,320,439,322, + 323,321,528,529,530,442,531,330,328,332,443,334,445,336,444,335, + 339,337,341,446,340,344,342,343,448,345,449,347,348,352,353,354, + 355,451,532,533,4,0,357,358,1,2,5,11,359,452,503,534, + 535,12,18,14,15,16,536,537,19,25,21,22,23,24,361,26, 46,28,29,30,31,32,507,53,35,36,37,38,362,40,60,42, 363,63,64,65,66,67,68,69,70,52,72,54,74,75,76,364, 78,79,80,81,82,365,84,85,86,87,88,89,90,91,92,93, 94,95,77,97,98,99,100,101,102,96,97,98,103,100,101,104, - 105,106,107,108,109,110,111,83,456,539,369,366,367,118,371,120, - 510,122,457,372,125,459,374,375,461,376,112,132,114,115,116,136, - 377,119,139,121,512,142,143,378,126,146,147,129,540,131,380,152, - 153,154,155,156,157,158,159,160,464,465,385,164,383,541,167,149, - 150,151,467,172,542,391,389,469,390,470,179,395,181,163,394,184, - 166,396,168,169,170,171,191,173,174,175,176,177,178,543,180,544, - 182,202,401,185,205,187,207,189,209,545,473,193,194,403,196,216, - 198,546,200,201,516,203,223,224,206,547,208,476,210,230,212,213, - 214,215,407,517,237,238,220,221,222,409,243,244,226,227,228,229, - 411,231,413,233,234,235,236,414,257,258,240,548,242,262,419,245, - 265,247,482,249,420,251,252,272,484,255,261,422,421,264,279,486, - 549,550,487,423,266,286,425,269,270,271,488,273,426,275,276,277, - 278,522,280,300,282,283,284,285,428,287,491,526,290,291,311,492, - 551,293,552,553,554,299,301,555,505,556,557,558,559,307,308,39, - 310,560,312,313,440,315,439,317,318,319,320,441,322,321,324,561, - 562,563,444,500,328,331,332,501,334,447,336,335,564,339,338,341, - 340,449,342,343,450,345,346,451,348,349,352,353,354,355,453,534, - 4,356,0,358,1,2,3,5,565,566,567,568,569,570,12,13, - 14,15,16,538,571,25,20,21,22,23,24,361,505,27,28,29, - 30,31,32,39,34,35,36,37,38,362,439,41,42,572,573,574, - 575,46,47,48,49,50,52,509,53,508,55,57,576,58,59,60, + 105,106,107,108,109,110,111,83,454,538,369,366,367,118,371,120, + 510,122,455,372,125,457,374,375,460,376,112,132,114,115,116,136, + 377,119,139,121,511,142,143,378,126,146,147,129,130,131,379,152, + 153,154,155,156,157,158,159,160,464,465,384,164,382,539,167,149, + 150,151,467,172,540,390,388,469,389,470,179,394,181,163,393,184, + 166,395,168,169,170,171,191,173,174,175,176,177,178,541,180,542, + 182,202,400,185,205,187,207,189,209,543,473,193,194,402,196,216, + 198,544,200,201,515,203,223,224,206,545,208,476,210,230,212,213, + 214,215,406,516,237,238,220,221,222,408,243,244,226,227,228,229, + 410,231,412,233,234,235,236,413,257,258,240,546,242,262,418,245, + 265,247,482,249,419,251,252,272,484,255,261,421,420,264,279,486, + 547,548,487,422,266,286,424,269,270,271,488,273,425,275,276,277, + 278,521,280,300,282,283,284,285,427,287,491,525,290,291,492,493, + 549,293,550,551,552,299,301,553,505,554,555,556,557,307,308,39, + 310,311,312,313,438,315,437,317,318,319,320,439,322,321,324,558, + 559,560,442,500,328,331,332,501,334,445,336,335,561,339,338,341, + 340,447,342,343,448,345,346,449,348,349,352,353,354,355,451,533, + 4,356,0,358,1,2,3,5,562,563,564,565,566,567,12,13, + 14,15,16,537,568,25,20,21,22,23,24,361,505,27,28,29, + 30,31,32,39,34,35,36,37,38,362,437,41,42,569,570,571, + 572,46,47,48,49,50,52,509,53,508,55,57,573,58,59,60, 62,363,63,64,65,66,67,68,69,70,71,72,73,74,75,77, 364,78,79,80,81,83,365,84,85,86,87,88,89,90,91,92, 93,94,95,96,97,98,99,100,101,102,96,97,98,103,100,101, 104,105,106,107,108,109,110,111,113,114,115,116,370,377,118,371, - 121,510,123,124,378,125,127,460,129,577,131,380,132,134,511,135, - 136,137,463,139,141,464,142,143,145,383,146,147,149,150,151,382, - 152,153,154,155,156,157,158,159,160,162,163,394,164,166,396,167, - 169,170,171,467,172,174,391,176,177,178,578,180,395,181,183,471, - 185,513,187,397,188,190,514,191,193,194,403,195,197,198,543,200, - 201,400,202,204,472,206,402,208,579,209,211,212,213,214,215,407, - 216,218,546,220,221,222,409,223,225,226,227,228,229,411,230,580, - 233,234,235,236,414,237,239,240,477,242,478,243,244,518,247,412, - 249,581,251,413,253,415,261,256,263,421,258,260,548,418,262,487, - 423,266,267,482,269,270,271,483,272,274,275,276,277,278,582,279, - 281,282,283,284,285,428,286,425,288,290,291,488,292,293,295,583, - 296,297,299,301,300,302,490,303,304,305,307,491,309,310,528,312, - 313,440,314,316,317,318,319,320,441,321,323,324,584,325,326,444, - 328,330,331,332,585,334,447,336,564,337,339,448,341,449,342,344, - 450,345,346,347,451,349,350,352,353,354,355,453,4,356,357,0, + 121,510,123,124,378,125,127,458,129,130,131,379,132,134,574,135, + 136,137,463,139,141,464,142,143,145,382,146,147,149,150,151,381, + 152,153,154,155,156,157,158,159,160,162,163,393,164,166,395,167, + 169,170,171,467,172,174,390,176,177,178,575,180,394,181,183,471, + 185,512,187,396,188,190,513,191,193,194,402,195,197,198,541,200, + 201,399,202,204,472,206,401,208,576,209,211,212,213,214,215,406, + 216,218,544,220,221,222,408,223,225,226,227,228,229,410,230,577, + 233,234,235,236,413,237,239,240,477,242,478,243,244,517,247,411, + 249,578,251,412,253,414,261,256,263,420,258,260,546,417,262,487, + 422,266,267,482,269,270,271,483,272,274,275,276,277,278,579,279, + 281,282,283,284,285,427,286,424,288,290,291,488,292,293,295,580, + 296,297,299,301,300,302,490,303,304,305,307,491,309,310,311,312, + 313,438,314,316,317,318,319,320,439,321,323,324,581,325,326,442, + 328,330,331,332,582,334,445,336,561,337,339,446,341,447,342,344, + 448,345,346,347,449,349,350,352,353,354,355,451,4,356,357,0, 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16, 17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32, 33,34,35,36,37,38,46,40,41,42,50,51,507,53,508,55, - 56,576,58,52,60,54,363,63,64,65,66,67,68,69,70,71, + 56,573,58,52,60,54,363,63,64,65,66,67,68,69,70,71, 72,73,74,75,76,364,78,79,80,81,82,365,77,85,86,87, 88,89,83,91,92,93,94,95,96,97,98,99,100,101,102,96, 97,98,103,100,101,104,105,106,107,108,109,110,111,372,373,368, - 374,375,461,118,112,113,114,115,116,458,125,119,460,121,577,123, - 124,132,126,127,135,129,137,131,139,133,134,142,143,144,379,146, - 140,141,464,465,382,152,153,154,155,156,157,158,159,160,161,388, - 389,164,390,470,167,386,162,163,394,172,166,391,168,169,170,171, - 179,173,174,175,176,177,178,186,180,188,182,183,191,185,586,187, - 195,189,190,543,199,193,194,202,196,197,198,402,200,201,209,203, - 204,587,206,404,208,216,210,211,212,213,214,215,223,224,218,547, - 220,221,222,230,580,225,226,227,228,229,237,231,410,233,234,235, - 236,244,518,239,240,248,242,250,413,245,415,247,479,249,257,251, - 252,253,418,255,256,480,265,259,260,261,420,263,264,272,266,267, - 588,269,270,271,279,273,274,275,276,277,278,286,280,281,282,283, - 284,285,426,287,489,520,290,291,589,293,523,295,590,591,525,299, - 491,301,302,528,311,492,551,307,308,309,310,435,312,313,439,315, - 316,317,318,319,320,321,322,323,324,592,532,593,328,329,330,331, + 374,375,460,118,112,113,114,115,116,456,125,119,458,121,583,123, + 124,132,126,127,135,129,130,131,139,133,134,142,143,144,462,146, + 140,141,464,465,381,152,153,154,155,156,157,158,159,160,161,387, + 388,164,389,470,167,385,162,163,393,172,166,390,168,169,170,171, + 179,173,174,175,176,177,178,186,180,188,182,183,191,185,584,187, + 195,189,190,541,199,193,194,202,196,197,198,401,200,201,209,203, + 204,585,206,403,208,216,210,211,212,213,214,215,223,224,218,545, + 220,221,222,230,577,225,226,227,228,229,237,231,409,233,234,235, + 236,244,517,239,240,248,242,250,412,245,414,247,479,249,257,251, + 252,253,417,255,256,480,265,259,260,261,419,263,264,272,266,267, + 586,269,270,271,279,273,274,275,276,277,278,286,280,281,282,283, + 284,285,425,287,489,519,290,291,587,293,522,295,588,589,524,299, + 491,301,302,527,492,493,549,307,308,309,310,311,312,313,437,315, + 316,317,318,319,320,321,322,323,324,590,531,591,328,329,330,331, 332,333,334,335,336,337,338,339,340,341,342,343,344,345,346,347, 348,349,350,351,352,353,354,355,4,356,357,358,0,2,3,4, 356,5,7,8,9,10,11,359,12,13,14,15,16,18,360,19, @@ -2923,113 +2931,113 @@ static const unsigned short cal[NDAYS] = { 36,37,60,362,40,63,64,65,66,67,68,69,70,71,72,73, 74,75,54,364,78,79,80,81,82,365,84,85,86,87,88,89, 90,91,92,93,94,95,96,97,98,99,77,101,102,96,97,98, - 103,100,101,104,105,106,107,108,109,110,111,83,456,368,369,370, - 117,118,371,366,367,122,457,458,125,459,460,372,373,130,374,132, - 461,376,112,113,114,115,139,462,377,142,143,121,379,146,124,378, - 126,127,382,152,153,154,155,156,157,158,159,160,161,463,140,164, - 464,465,167,145,383,466,467,172,150,391,392,393,468,388,389,469, - 181,470,471,184,162,163,394,188,166,396,168,169,170,171,195,173, + 103,100,101,104,105,106,107,108,109,110,111,83,454,368,369,370, + 117,118,371,366,367,122,455,456,125,457,458,372,373,459,374,132, + 460,376,112,113,114,115,139,461,377,142,143,121,462,146,124,378, + 126,127,381,152,153,154,155,156,157,158,159,160,161,463,140,164, + 464,465,167,145,382,466,467,172,150,390,391,392,468,387,388,469, + 181,470,471,184,162,163,393,188,166,395,168,169,170,171,195,173, 174,175,176,177,178,202,180,472,182,183,207,185,209,187,473,189, - 190,404,474,216,194,403,196,197,198,406,223,201,475,203,204,476, - 206,230,208,232,210,211,212,213,237,215,407,477,218,478,220,221, - 222,409,412,225,226,227,413,229,411,231,479,233,234,258,236,414, - 418,239,240,480,265,481,482,245,420,247,483,272,484,251,252,253, - 485,255,279,486,421,261,260,263,264,286,487,423,266,267,488,269, - 426,271,489,273,274,275,276,300,278,490,280,281,282,283,491,285, - 428,287,311,492,290,314,493,434,494,295,436,437,293,299,301,495, - 302,496,497,39,498,307,308,309,310,499,439,313,440,315,316,317, - 318,321,320,441,322,323,324,500,328,329,444,501,330,331,332,335, - 334,447,336,448,340,339,342,341,450,345,344,347,348,349,350,451, - 452,502,352,353,4,355,453,358,1,2,0,4,356,357,358,5, - 9,10,11,359,454,503,12,13,14,18,16,455,504,19,20,21, + 190,403,474,216,194,402,196,197,198,405,223,201,475,203,204,476, + 206,230,208,232,210,211,212,213,237,215,406,477,218,478,220,221, + 222,408,411,225,226,227,412,229,410,231,479,233,234,258,236,413, + 417,239,240,480,265,481,482,245,419,247,483,272,484,251,252,253, + 485,255,279,486,420,261,260,263,264,286,487,422,266,267,488,269, + 425,271,489,273,274,275,276,300,278,490,280,281,282,283,491,285, + 427,287,492,493,290,314,494,433,495,295,435,436,293,299,301,496, + 302,497,498,39,499,307,308,309,310,311,437,313,438,315,316,317, + 318,321,320,439,322,323,324,500,328,329,442,501,330,331,332,335, + 334,445,336,446,340,339,342,341,448,345,344,347,348,349,350,449, + 450,502,352,353,4,355,451,358,1,2,0,4,356,357,358,5, + 9,10,11,359,452,503,12,13,14,18,16,453,504,19,20,21, 25,23,24,361,26,27,28,505,30,31,32,506,34,35,39,37, 38,362,40,41,42,46,47,48,49,50,51,507,53,508,52,509, 54,58,59,60,61,363,63,64,65,66,67,68,69,70,71,72, 73,74,75,76,364,78,79,77,81,82,365,84,85,83,87,88, 89,90,91,92,93,94,95,96,97,98,99,100,101,102,96,97, - 98,103,100,101,104,105,106,107,108,109,110,111,375,461,376,112, - 113,114,115,116,120,377,119,457,121,125,123,124,378,126,127,594, - 132,595,131,380,133,134,138,139,462,512,142,143,141,464,146,147, - 145,383,381,382,152,153,154,155,156,157,158,159,160,390,470,385, - 164,162,163,167,386,166,396,168,172,169,391,392,173,174,175,176, - 177,181,596,180,184,182,183,397,188,597,187,191,189,190,398,195, - 193,194,403,196,197,198,202,200,201,205,203,204,579,209,545,208, - 587,210,211,212,216,214,215,407,405,218,406,223,221,222,409,598, - 225,226,230,228,229,411,231,599,233,237,235,236,414,241,239,240, - 244,242,246,412,245,581,247,413,249,415,251,252,253,257,258,256, - 548,421,259,263,264,265,481,487,423,266,267,483,272,270,271,588, - 273,274,275,279,277,278,550,280,281,282,286,284,285,428,287,488, - 292,426,291,489,520,521,295,589,293,523,299,301,591,302,600,491, - 526,527,307,308,309,310,314,312,313,440,315,316,317,321,319,320, - 441,322,323,324,328,329,445,444,585,330,331,335,564,334,447,336, - 340,449,342,343,341,345,346,347,348,349,350,351,451,502,601,352, - 353,354,355,453,602,603,604,0,605,606,607,608,5,609,11,359, - 454,503,535,12,13,18,15,16,504,537,19,20,25,22,23,24, - 361,26,27,505,29,30,31,32,610,34,46,36,37,38,362,40, - 41,53,508,55,56,576,58,59,60,61,363,63,64,54,66,67, + 98,103,100,101,104,105,106,107,108,109,110,111,375,460,376,112, + 113,114,115,116,120,377,119,455,121,125,123,124,378,126,127,592, + 132,130,131,379,133,134,138,139,461,511,142,143,141,464,146,147, + 145,382,380,381,152,153,154,155,156,157,158,159,160,389,470,384, + 164,162,163,167,385,166,395,168,172,169,390,391,173,174,175,176, + 177,181,593,180,184,182,183,396,188,594,187,191,189,190,397,195, + 193,194,402,196,197,198,202,200,201,205,203,204,576,209,543,208, + 585,210,211,212,216,214,215,406,404,218,405,223,221,222,408,595, + 225,226,230,228,229,410,231,596,233,237,235,236,413,241,239,240, + 244,242,246,411,245,578,247,412,249,414,251,252,253,257,258,256, + 546,420,259,263,264,265,481,487,422,266,267,483,272,270,271,586, + 273,274,275,279,277,278,548,280,281,282,286,284,285,427,287,488, + 292,425,291,489,519,520,295,587,293,522,299,301,589,302,597,491, + 525,526,307,308,309,310,314,312,313,438,315,316,317,321,319,320, + 439,322,323,324,328,329,443,442,582,330,331,335,561,334,445,336, + 340,447,342,343,341,345,346,347,348,349,350,351,449,502,598,352, + 353,354,355,451,599,600,601,0,602,603,604,605,5,606,11,359, + 452,503,534,12,13,18,15,16,504,536,19,20,25,22,23,24, + 361,26,27,505,29,30,31,32,607,34,46,36,37,38,362,40, + 41,53,508,55,56,573,58,59,60,61,363,63,64,54,66,67, 68,69,70,71,72,73,74,75,76,364,78,79,80,81,82,365, 84,85,86,87,88,77,90,91,92,93,83,95,96,97,98,99, 100,101,102,96,97,98,103,100,101,104,105,106,107,108,109,110, - 111,611,456,368,369,372,373,118,374,375,461,376,112,113,125,115, - 116,128,377,119,594,132,595,123,124,378,126,127,139,129,512,142, - 143,133,134,146,147,148,540,463,140,152,153,154,155,156,157,158, - 159,160,150,151,385,164,165,388,167,469,390,470,467,172,162,391, - 394,393,166,396,168,169,181,171,471,173,174,175,176,188,178,514, - 180,192,182,183,195,185,612,187,199,189,190,202,401,193,194,403, - 196,197,209,545,200,201,515,203,204,216,206,546,208,405,210,211, - 212,213,214,215,407,476,218,230,220,221,222,409,599,225,237,227, - 228,229,411,231,243,244,234,235,236,414,581,239,413,519,242,254, - 479,245,257,258,417,249,418,251,252,253,265,255,256,261,421,263, - 264,272,484,613,487,423,266,267,279,269,270,271,424,273,274,286, - 276,277,278,614,280,281,426,283,284,285,428,287,589,300,290,291, - 303,304,305,295,293,429,430,299,301,432,302,314,493,434,494,307, - 308,309,39,615,312,313,440,315,316,439,318,319,320,441,322,323, - 321,616,617,618,444,442,330,328,332,445,334,447,336,446,335,339, - 337,341,448,340,344,342,343,450,345,451,347,348,352,353,354,355, - 453,533,534,4,0,357,358,1,2,5,11,359,454,503,535,536, - 12,18,14,15,16,537,538,19,46,21,22,23,24,361,26,53, + 111,608,454,368,369,372,373,118,374,375,460,376,112,113,125,115, + 116,128,377,119,592,132,609,123,124,378,126,127,139,129,130,142, + 143,133,134,146,147,148,610,463,140,152,153,154,155,156,157,158, + 159,160,150,151,384,164,165,387,167,469,389,470,467,172,162,390, + 393,392,166,395,168,169,181,171,471,173,174,175,176,188,178,513, + 180,192,182,183,195,185,611,187,199,189,190,202,400,193,194,402, + 196,197,209,543,200,201,514,203,204,216,206,544,208,404,210,211, + 212,213,214,215,406,476,218,230,220,221,222,408,596,225,237,227, + 228,229,410,231,243,244,234,235,236,413,578,239,412,518,242,254, + 479,245,257,258,416,249,417,251,252,253,265,255,256,261,420,263, + 264,272,484,612,487,422,266,267,279,269,270,271,423,273,274,286, + 276,277,278,613,280,281,425,283,284,285,427,287,587,300,290,291, + 303,304,305,295,293,428,429,299,301,431,302,314,494,433,495,307, + 308,309,39,311,312,313,438,315,316,437,318,319,320,439,322,323, + 321,614,615,616,442,440,330,328,332,443,334,445,336,444,335,339, + 337,341,446,340,344,342,343,448,345,449,347,348,352,353,354,355, + 451,532,533,4,0,357,358,1,2,5,11,359,452,503,534,535, + 12,18,14,15,16,536,537,19,46,21,22,23,24,361,26,53, 28,29,30,31,32,59,60,35,36,63,64,65,66,67,68,69, 70,71,72,73,74,75,76,364,52,79,54,81,82,365,84,85, 86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101, 102,96,97,98,103,100,101,104,105,106,107,108,109,110,111,83, - 456,619,620,370,117,118,371,120,539,122,366,367,125,459,460,128, - 577,130,372,132,595,374,375,461,376,112,139,114,115,142,143,377, + 454,617,618,370,117,118,371,120,538,122,366,367,125,457,458,128, + 583,459,372,132,609,374,375,460,376,112,139,114,115,142,143,377, 119,146,121,148,123,124,378,152,153,154,155,156,157,158,159,160, - 161,384,385,164,463,140,167,464,465,466,145,172,542,391,149,150, - 151,578,179,395,181,389,469,390,470,186,397,188,163,394,191,166, - 396,168,169,170,171,543,173,174,175,176,177,178,205,180,207,182, - 209,545,185,587,187,404,189,216,217,546,193,194,403,196,223,198, - 475,200,201,476,203,230,580,206,621,208,599,210,237,212,213,214, - 215,407,243,244,518,220,221,222,409,250,413,226,227,228,229,411, - 231,258,233,234,235,236,414,480,265,240,482,242,420,622,245,272, - 247,613,249,422,251,252,279,486,255,261,424,421,264,286,425,288, - 289,487,423,266,426,427,269,270,271,522,273,300,275,276,277,278, - 305,280,491,282,283,284,285,428,287,314,493,290,291,435,436,437, - 293,623,624,495,299,301,497,505,625,626,627,628,307,308,39,310, - 629,312,313,440,315,439,317,318,319,320,441,322,321,324,630,631, - 632,444,633,328,331,332,501,334,447,336,335,564,339,338,341,340, - 449,342,343,450,345,346,451,348,349,352,353,354,355,453,534,4, - 356,0,358,1,2,3,5,565,566,567,568,569,570,12,13,14, - 15,16,538,571,25,20,21,22,23,24,361,505,27,28,29,30, + 161,383,384,164,463,140,167,464,465,466,145,172,540,390,149,150, + 151,575,179,394,181,388,469,389,470,186,396,188,163,393,191,166, + 395,168,169,170,171,541,173,174,175,176,177,178,205,180,207,182, + 209,543,185,585,187,403,189,216,217,544,193,194,402,196,223,198, + 475,200,201,476,203,230,577,206,619,208,596,210,237,212,213,214, + 215,406,243,244,517,220,221,222,408,250,412,226,227,228,229,410, + 231,258,233,234,235,236,413,480,265,240,482,242,419,620,245,272, + 247,612,249,421,251,252,279,486,255,261,423,420,264,286,424,288, + 289,487,422,266,425,426,269,270,271,521,273,300,275,276,277,278, + 305,280,491,282,283,284,285,427,287,314,494,290,291,434,435,436, + 293,621,622,496,299,301,498,505,623,624,625,626,307,308,39,310, + 311,312,313,438,315,437,317,318,319,320,439,322,321,324,627,628, + 629,442,630,328,331,332,501,334,445,336,335,561,339,338,341,340, + 447,342,343,448,345,346,449,348,349,352,353,354,355,451,533,4, + 356,0,358,1,2,3,5,562,563,564,565,566,567,12,13,14, + 15,16,537,568,25,20,21,22,23,24,361,505,27,28,29,30, 31,32,39,34,35,36,37,38,362,46,41,42,49,50,51,507, - 53,508,55,56,576,52,509,60,61,363,63,64,65,66,67,68, + 53,508,55,56,573,52,509,60,61,363,63,64,65,66,67,68, 69,70,71,72,73,74,75,76,364,78,79,80,81,82,365,77, 85,86,87,88,89,83,91,92,93,94,95,96,97,98,99,100, 101,102,96,97,98,103,100,101,104,105,106,107,108,109,110,111, - 372,373,368,374,375,461,118,112,113,114,115,116,458,125,119,460, - 121,577,123,124,132,126,127,135,129,137,131,139,133,134,142,143, - 144,379,146,140,141,464,465,382,152,153,154,155,156,157,158,159, - 160,161,388,389,164,390,470,167,386,162,163,394,172,166,391,168, + 372,373,368,374,375,460,118,112,113,114,115,116,456,125,119,458, + 121,583,123,124,132,126,127,135,129,130,131,139,133,134,142,143, + 144,462,146,140,141,464,465,381,152,153,154,155,156,157,158,159, + 160,161,387,388,164,389,470,167,385,162,163,393,172,166,390,168, 169,170,171,179,173,174,175,176,177,178,186,180,188,182,183,191, - 185,586,187,195,189,190,543,199,193,194,202,196,197,198,402,200, - 201,209,203,204,587,206,404,208,216,210,211,212,213,214,215,223, - 224,218,547,220,221,222,230,580,225,226,227,228,229,237,231,410, - 233,234,235,236,244,518,239,240,248,242,250,413,245,415,247,479, - 249,257,251,252,253,418,255,256,480,265,259,260,261,420,263,264, - 272,266,267,588,269,270,271,279,273,274,275,276,277,278,286,280, - 281,282,283,284,285,426,287,489,520,290,291,589,293,523,295,590, - 591,525,299,491,301,302,528,311,492,551,307,308,309,310,435,312, - 313,439,315,316,317,318,319,320,321,322,323,324,592,532,593,328, + 185,584,187,195,189,190,541,199,193,194,202,196,197,198,401,200, + 201,209,203,204,585,206,403,208,216,210,211,212,213,214,215,223, + 224,218,545,220,221,222,230,577,225,226,227,228,229,237,231,409, + 233,234,235,236,244,517,239,240,248,242,250,412,245,414,247,479, + 249,257,251,252,253,417,255,256,480,265,259,260,261,419,263,264, + 272,266,267,586,269,270,271,279,273,274,275,276,277,278,286,280, + 281,282,283,284,285,425,287,489,519,290,291,587,293,522,295,588, + 589,524,299,491,301,302,527,492,493,549,307,308,309,310,311,312, + 313,437,315,316,317,318,319,320,321,322,323,324,590,531,591,328, 329,330,331,332,333,334,335,336,337,338,339,340,341,342,343,344, 345,346,347,348,349,350,351,352,353,354,355,4,356,357,358,0, 2,3,4,356,5,7,8,9,10,11,359,12,13,14,15,16, @@ -3040,133 +3048,133 @@ static const unsigned short cal[NDAYS] = { 96,97,83,99,100,101,102,96,97,98,103,100,101,104,105,106, 107,108,109,110,111,366,367,368,369,370,117,118,371,372,373,122, 374,375,125,376,112,113,114,115,116,132,377,119,135,121,137,123, - 139,378,126,142,143,129,379,146,380,133,134,381,382,152,153,154, - 155,156,157,158,159,160,383,384,385,164,150,151,167,386,387,388, - 389,172,390,391,392,393,162,163,394,395,181,396,168,169,170,171, - 397,188,174,175,176,177,178,398,195,399,182,183,199,185,400,202, - 401,189,190,402,207,193,209,403,196,197,198,404,200,216,217,203, - 204,405,206,406,223,224,210,211,212,213,214,230,407,232,218,408, - 220,221,237,409,410,225,226,227,228,244,411,231,412,233,234,235, - 413,414,415,239,240,416,242,258,417,245,418,247,419,249,265,251, - 252,253,420,255,256,272,421,259,261,422,263,264,279,423,266,267, - 424,269,270,286,425,273,274,275,276,277,426,427,280,281,282,283, - 284,300,428,287,303,304,290,291,293,429,430,295,431,432,433,299, - 301,434,302,435,436,437,39,307,308,309,310,438,312,439,440,315, - 316,317,318,319,321,441,322,323,324,442,443,328,444,445,330,331, - 332,446,335,447,336,338,448,339,449,342,343,450,345,346,347,348, - 349,451,351,452,352,353,354,4,453,357,358,1,0,3,4,356, - 357,5,8,9,10,11,359,454,12,13,14,15,18,360,455,19, - 20,21,22,25,24,361,26,27,28,29,505,31,32,634,34,35, - 36,39,38,362,40,41,42,45,439,635,636,637,638,639,640,46, - 52,509,54,50,51,57,53,508,55,56,62,58,641,60,642,643, + 139,378,126,142,143,129,130,146,379,133,134,380,381,152,153,154, + 155,156,157,158,159,160,382,383,384,164,150,151,167,385,386,387, + 388,172,389,390,391,392,162,163,393,394,181,395,168,169,170,171, + 396,188,174,175,176,177,178,397,195,398,182,183,199,185,399,202, + 400,189,190,401,207,193,209,402,196,197,198,403,200,216,217,203, + 204,404,206,405,223,224,210,211,212,213,214,230,406,232,218,407, + 220,221,237,408,409,225,226,227,228,244,410,231,411,233,234,235, + 412,413,414,239,240,415,242,258,416,245,417,247,418,249,265,251, + 252,253,419,255,256,272,420,259,261,421,263,264,279,422,266,267, + 423,269,270,286,424,273,274,275,276,277,425,426,280,281,282,283, + 284,300,427,287,303,304,290,291,293,428,429,295,430,431,432,299, + 301,433,302,434,435,436,39,307,308,309,310,311,312,437,438,315, + 316,317,318,319,321,439,322,323,324,440,441,328,442,443,330,331, + 332,444,335,445,336,338,446,339,447,342,343,448,345,346,347,348, + 349,449,351,450,352,353,354,4,451,357,358,1,0,3,4,356, + 357,5,8,9,10,11,359,452,12,13,14,15,18,360,453,19, + 20,21,22,25,24,361,26,27,28,29,505,31,32,631,34,35, + 36,39,38,362,40,41,42,45,437,632,633,634,635,636,637,46, + 52,509,54,50,51,57,53,508,55,56,62,58,638,60,639,640, 63,64,65,66,67,68,69,70,71,77,73,74,75,76,364,83, 79,80,81,82,365,84,85,86,87,88,89,90,91,92,93,94, 95,96,97,98,99,100,101,102,96,97,98,103,100,101,104,105, 106,107,108,109,110,111,115,377,119,369,121,117,118,124,378,126, - 127,457,129,125,131,380,133,134,130,594,132,595,463,140,141,464, - 465,139,145,383,142,143,149,150,146,147,148,540,388,389,152,153, - 154,155,156,157,158,159,160,166,396,168,164,169,171,167,173,174, - 175,176,172,178,391,180,393,182,183,179,185,181,187,471,189,190, - 186,397,188,194,403,196,197,198,398,195,201,612,203,204,544,206, - 202,208,472,210,211,212,213,209,215,407,587,218,404,220,221,222, - 409,219,225,226,227,223,229,411,231,598,233,234,230,236,414,621, - 239,240,517,237,238,410,245,241,247,243,244,518,251,252,253,581, - 255,413,519,421,261,260,263,264,258,487,423,266,267,419,269,265, - 271,482,273,274,275,276,272,278,613,280,281,282,283,279,285,428, - 287,424,644,290,286,425,288,289,295,488,292,293,299,301,296,302, - 298,645,300,646,307,308,309,310,306,491,313,440,315,316,317,318, - 321,320,441,322,323,324,647,328,329,444,501,330,331,332,335,334, - 447,336,448,340,339,342,341,450,345,344,347,348,349,350,451,452, - 502,352,353,4,355,453,358,1,2,0,4,356,357,358,5,9, - 10,11,359,454,503,12,13,14,18,16,455,504,19,20,21,25, + 127,455,129,125,131,379,133,134,459,592,132,609,463,140,141,464, + 465,139,145,382,142,143,149,150,146,147,148,610,387,388,152,153, + 154,155,156,157,158,159,160,166,395,168,164,169,171,167,173,174, + 175,176,172,178,390,180,392,182,183,179,185,181,187,471,189,190, + 186,396,188,194,402,196,197,198,397,195,201,611,203,204,542,206, + 202,208,472,210,211,212,213,209,215,406,585,218,403,220,221,222, + 408,219,225,226,227,223,229,410,231,595,233,234,230,236,413,619, + 239,240,516,237,238,409,245,241,247,243,244,517,251,252,253,578, + 255,412,518,420,261,260,263,264,258,487,422,266,267,418,269,265, + 271,482,273,274,275,276,272,278,612,280,281,282,283,279,285,427, + 287,423,641,290,286,424,288,289,295,488,292,293,299,301,296,302, + 298,642,300,643,307,308,309,310,311,491,313,438,315,316,317,318, + 321,320,439,322,323,324,644,328,329,442,501,330,331,332,335,334, + 445,336,446,340,339,342,341,448,345,344,347,348,349,350,449,450, + 502,352,353,4,355,451,358,1,2,0,4,356,357,358,5,9, + 10,11,359,452,503,12,13,14,18,16,453,504,19,20,21,25, 23,24,361,26,27,28,505,30,31,32,506,34,35,46,37,38, - 362,40,41,42,53,508,55,56,576,58,59,60,61,52,63,54, + 362,40,41,42,53,508,55,56,573,58,59,60,61,52,63,54, 65,66,67,68,69,70,71,72,73,74,75,76,364,78,79,80, 81,82,365,84,85,86,77,88,89,90,91,92,83,94,95,96, 97,98,99,100,101,102,96,97,98,103,100,101,104,105,106,107, - 108,109,110,111,611,456,368,372,373,117,118,375,461,376,112,113, - 114,115,116,460,377,119,130,121,132,123,124,378,126,127,138,139, - 462,131,142,143,134,379,146,147,148,463,140,141,152,153,154,155, - 156,157,158,159,160,151,384,385,164,388,389,167,390,470,466,467, - 172,163,391,392,166,396,168,169,170,181,596,173,174,175,176,177, - 188,597,180,191,182,183,398,195,399,187,543,189,190,400,202,193, - 194,403,196,197,198,209,200,201,587,203,204,474,216,217,208,219, - 210,211,212,223,214,215,407,598,218,648,230,221,222,409,408,225, - 226,237,228,229,411,231,478,233,244,235,236,414,248,239,240,413, - 242,415,254,245,416,247,258,249,548,251,252,253,480,265,256,482, - 421,259,263,264,272,484,487,423,266,267,582,279,270,271,550,273, - 274,275,286,277,278,289,280,281,282,426,284,285,428,287,522,589, - 300,291,490,303,304,295,306,293,429,299,301,431,302,433,314,493, - 434,307,308,309,310,439,312,313,440,315,316,317,321,319,320,441, - 322,323,324,328,329,445,444,585,330,331,335,564,334,447,336,340, - 449,342,343,341,345,346,347,348,349,350,351,451,502,601,352,353, - 354,355,453,602,603,604,0,605,606,607,608,5,609,11,359,454, - 503,535,12,13,18,15,16,504,537,19,20,25,22,23,24,361, + 108,109,110,111,608,454,368,372,373,117,118,375,460,376,112,113, + 114,115,116,458,377,119,459,121,132,123,124,378,126,127,138,139, + 130,131,142,143,134,462,146,147,148,463,140,141,152,153,154,155, + 156,157,158,159,160,151,383,384,164,387,388,167,389,470,466,467, + 172,163,390,391,166,395,168,169,170,181,593,173,174,175,176,177, + 188,594,180,191,182,183,397,195,398,187,541,189,190,399,202,193, + 194,402,196,197,198,209,200,201,585,203,204,474,216,217,208,219, + 210,211,212,223,214,215,406,595,218,645,230,221,222,408,407,225, + 226,237,228,229,410,231,478,233,244,235,236,413,248,239,240,412, + 242,414,254,245,415,247,258,249,546,251,252,253,480,265,256,482, + 420,259,263,264,272,484,487,422,266,267,579,279,270,271,548,273, + 274,275,286,277,278,289,280,281,282,425,284,285,427,287,521,587, + 300,291,490,303,304,295,306,293,428,299,301,430,302,432,314,494, + 433,307,308,309,310,437,312,313,438,315,316,317,321,319,320,439, + 322,323,324,328,329,443,442,582,330,331,335,561,334,445,336,340, + 447,342,343,341,345,346,347,348,349,350,351,449,502,598,352,353, + 354,355,451,599,600,601,0,602,603,604,605,5,606,11,359,452, + 503,534,12,13,18,15,16,504,536,19,20,25,22,23,24,361, 26,27,46,29,30,31,32,51,34,53,36,37,38,362,40,41, 60,61,363,63,64,65,66,67,68,69,52,71,54,73,74,75, 76,364,78,79,80,81,82,365,84,85,86,87,88,89,90,91, 92,93,94,95,77,97,98,99,100,101,102,96,97,98,103,100, - 101,104,105,106,107,108,109,110,111,83,456,539,369,366,367,118, - 371,120,510,122,457,372,125,459,374,375,461,376,112,132,114,115, - 116,136,377,119,139,121,512,142,143,378,126,146,147,129,540,131, - 380,152,153,154,155,156,157,158,159,160,464,465,385,164,383,541, - 167,149,150,151,467,172,542,391,389,469,390,470,179,395,181,163, - 394,184,166,396,168,169,170,171,191,173,174,175,176,177,178,543, - 180,544,182,202,401,185,205,187,207,189,209,545,473,193,194,403, - 196,216,198,546,200,201,516,203,223,224,206,547,208,476,210,230, - 212,213,214,215,407,517,237,238,220,221,222,409,243,244,226,227, - 228,229,411,231,413,233,234,235,236,414,257,258,240,548,242,262, - 419,245,265,247,482,249,420,251,252,272,484,255,261,422,421,264, - 279,486,549,550,487,423,266,286,425,269,270,271,488,273,426,275, - 276,277,278,522,280,300,282,283,284,285,428,287,491,526,290,291, - 311,492,551,293,552,553,554,299,301,555,505,556,557,558,559,307, - 308,39,310,560,312,313,440,315,439,317,318,319,320,441,322,321, - 324,561,562,563,444,500,328,331,332,501,334,447,336,335,564,339, - 338,341,340,449,342,343,450,345,346,451,348,349,352,353,354,355, - 453,534,4,356,0,358,1,2,3,5,565,566,567,568,569,570, - 12,13,14,15,16,538,571,25,20,21,22,23,24,361,505,27, - 28,29,30,31,32,39,34,35,36,37,38,362,439,41,42,572, - 573,574,575,46,47,48,49,50,52,509,53,508,55,57,576,58, + 101,104,105,106,107,108,109,110,111,83,454,538,369,366,367,118, + 371,120,510,122,455,372,125,457,374,375,460,376,112,132,114,115, + 116,136,377,119,139,121,511,142,143,378,126,146,147,129,130,131, + 379,152,153,154,155,156,157,158,159,160,464,465,384,164,382,539, + 167,149,150,151,467,172,540,390,388,469,389,470,179,394,181,163, + 393,184,166,395,168,169,170,171,191,173,174,175,176,177,178,541, + 180,542,182,202,400,185,205,187,207,189,209,543,473,193,194,402, + 196,216,198,544,200,201,515,203,223,224,206,545,208,476,210,230, + 212,213,214,215,406,516,237,238,220,221,222,408,243,244,226,227, + 228,229,410,231,412,233,234,235,236,413,257,258,240,546,242,262, + 418,245,265,247,482,249,419,251,252,272,484,255,261,421,420,264, + 279,486,547,548,487,422,266,286,424,269,270,271,488,273,425,275, + 276,277,278,521,280,300,282,283,284,285,427,287,491,525,290,291, + 492,493,549,293,550,551,552,299,301,553,505,554,555,556,557,307, + 308,39,310,311,312,313,438,315,437,317,318,319,320,439,322,321, + 324,558,559,560,442,500,328,331,332,501,334,445,336,335,561,339, + 338,341,340,447,342,343,448,345,346,449,348,349,352,353,354,355, + 451,533,4,356,0,358,1,2,3,5,562,563,564,565,566,567, + 12,13,14,15,16,537,568,25,20,21,22,23,24,361,505,27, + 28,29,30,31,32,39,34,35,36,37,38,362,437,41,42,569, + 570,571,572,46,47,48,49,50,52,509,53,508,55,57,573,58, 59,60,62,363,63,64,65,66,67,68,69,70,71,72,73,74, 75,77,364,78,79,80,81,83,365,84,85,86,87,88,89,90, 91,92,93,94,95,96,97,98,99,100,101,102,96,97,98,103, 100,101,104,105,106,107,108,109,110,111,113,114,115,116,370,377, - 118,371,121,510,123,124,378,125,127,460,129,577,131,380,132,134, - 511,135,136,137,463,139,141,464,142,143,145,383,146,147,149,150, - 151,382,152,153,154,155,156,157,158,159,160,162,163,394,164,166, - 396,167,169,170,171,467,172,174,391,176,177,178,578,180,395,181, - 183,471,185,513,187,397,188,190,514,191,193,194,403,195,197,198, - 543,200,201,400,202,204,472,206,402,208,579,209,211,212,213,214, - 215,407,216,218,546,220,221,222,409,223,225,226,227,228,229,411, - 230,580,233,234,235,236,414,237,239,240,477,242,478,243,244,518, - 247,412,249,581,251,413,253,415,261,256,263,421,258,260,548,418, - 262,487,423,266,267,482,269,270,271,483,272,274,275,276,277,278, - 582,279,281,282,283,284,285,428,286,425,288,290,291,488,292,293, - 295,583,296,297,299,301,300,302,490,303,304,305,307,491,309,310, - 528,312,313,440,314,316,317,318,319,320,441,321,323,324,584,325, - 326,444,328,330,331,332,585,334,447,336,564,337,339,448,341,449, - 342,344,450,345,346,347,451,349,350,352,353,354,355,453,4,356, + 118,371,121,510,123,124,378,125,127,458,129,130,131,379,132,134, + 574,135,136,137,463,139,141,464,142,143,145,382,146,147,149,150, + 151,381,152,153,154,155,156,157,158,159,160,162,163,393,164,166, + 395,167,169,170,171,467,172,174,390,176,177,178,575,180,394,181, + 183,471,185,512,187,396,188,190,513,191,193,194,402,195,197,198, + 541,200,201,399,202,204,472,206,401,208,576,209,211,212,213,214, + 215,406,216,218,544,220,221,222,408,223,225,226,227,228,229,410, + 230,577,233,234,235,236,413,237,239,240,477,242,478,243,244,517, + 247,411,249,578,251,412,253,414,261,256,263,420,258,260,546,417, + 262,487,422,266,267,482,269,270,271,483,272,274,275,276,277,278, + 579,279,281,282,283,284,285,427,286,424,288,290,291,488,292,293, + 295,580,296,297,299,301,300,302,490,303,304,305,307,491,309,310, + 311,312,313,438,314,316,317,318,319,320,439,321,323,324,581,325, + 326,442,328,330,331,332,582,334,445,336,561,337,339,446,341,447, + 342,344,448,345,346,347,449,349,350,352,353,354,355,451,4,356, 357,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14, 15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30, - 31,32,47,34,35,36,37,38,53,40,41,42,576,58,59,60, + 31,32,47,34,35,36,37,38,53,40,41,42,573,58,59,60, 61,363,63,64,65,52,67,54,69,70,71,72,73,74,75,76, 364,78,79,80,81,82,365,84,85,86,87,88,89,90,77,92, 93,94,95,96,83,98,99,100,101,102,96,97,98,103,100,101, - 104,105,106,107,108,109,110,111,367,456,368,369,370,117,118,372, - 373,510,374,375,461,125,112,113,114,115,116,594,132,119,511,121, - 136,123,124,139,126,127,142,143,144,131,146,133,134,540,381,382, - 152,153,154,155,156,157,158,159,160,161,384,149,164,151,541,167, - 386,388,389,469,172,470,391,392,162,163,394,179,166,181,168,169, - 170,171,186,173,174,175,176,177,178,586,180,195,182,183,543,185, - 544,187,202,189,190,205,402,193,194,209,196,197,198,515,200,201, - 216,203,204,219,206,516,208,223,210,211,212,213,214,215,230,580, - 218,621,220,221,222,237,238,225,226,227,228,229,244,231,246,233, - 234,235,236,413,519,239,240,479,242,257,258,245,548,247,262,249, - 480,251,252,253,268,255,256,483,272,259,260,261,422,263,264,279, - 266,267,550,269,270,271,286,273,274,275,276,277,278,426,280,281, - 282,283,284,285,300,287,490,303,290,291,306,293,429,295,649,431, - 432,299,314,301,302,494,435,436,437,307,308,309,310,650,312,313, - 439,315,316,317,318,319,320,321,322,323,324,651,442,443,328,329, + 104,105,106,107,108,109,110,111,367,454,368,369,370,117,118,372, + 373,510,374,375,460,125,112,113,114,115,116,592,132,119,574,121, + 136,123,124,139,126,127,142,143,130,131,146,133,134,610,380,381, + 152,153,154,155,156,157,158,159,160,161,383,149,164,151,539,167, + 385,387,388,469,172,470,390,391,162,163,393,179,166,181,168,169, + 170,171,186,173,174,175,176,177,178,584,180,195,182,183,541,185, + 542,187,202,189,190,205,401,193,194,209,196,197,198,514,200,201, + 216,203,204,219,206,515,208,223,210,211,212,213,214,215,230,577, + 218,619,220,221,222,237,238,225,226,227,228,229,244,231,246,233, + 234,235,236,412,518,239,240,479,242,257,258,245,546,247,262,249, + 480,251,252,253,268,255,256,483,272,259,260,261,421,263,264,279, + 266,267,548,269,270,271,286,273,274,275,276,277,278,425,280,281, + 282,283,284,285,300,287,490,303,290,291,306,293,428,295,646,430, + 431,299,314,301,302,495,434,435,436,307,308,309,310,311,312,313, + 437,315,316,317,318,319,320,321,322,323,324,647,440,441,328,329, 330,331,332,333,334,335,336,337,338,339,340,341,342,343,344,345, 346,347,348,349,350,351,352,353,354,355,4,356,357,358,0,2, 3,4,356,5,7,8,9,10,11,359,12,13,14,15,16,18, @@ -3174,250 +3182,250 @@ static const unsigned short cal[NDAYS] = { 34,35,36,37,60,362,40,63,64,65,66,67,68,69,70,71, 72,73,74,75,54,364,78,79,80,81,82,365,84,85,86,87, 88,89,90,91,92,93,94,95,96,97,98,77,100,101,102,96, - 97,98,103,100,101,104,105,106,107,108,109,110,111,83,456,368, - 369,370,539,118,366,367,510,122,457,458,125,459,372,373,577,374, + 97,98,103,100,101,104,105,106,107,108,109,110,111,83,454,368, + 369,370,538,118,366,367,510,122,455,456,125,457,372,373,583,374, 375,132,376,112,113,114,115,116,139,377,119,142,143,144,123,146, - 378,126,127,381,129,152,153,154,155,156,157,158,159,160,463,140, - 141,164,465,541,167,383,387,466,149,172,151,391,392,393,388,389, - 469,390,181,596,471,162,163,394,397,188,396,168,169,170,171,398, - 195,174,175,176,177,178,400,202,401,182,183,402,185,579,209,545, - 189,190,515,404,193,216,403,196,197,198,516,200,223,224,203,204, - 598,206,648,230,580,210,211,212,213,214,237,407,410,218,241,220, - 221,244,409,246,225,226,227,228,413,411,231,254,233,234,235,258, - 414,548,239,240,419,242,265,481,245,268,247,622,249,272,251,252, - 253,422,255,256,279,421,259,261,424,263,264,286,423,266,267,614, - 269,270,426,427,273,274,275,276,277,300,646,280,281,282,283,284, - 491,428,287,528,311,290,291,293,552,553,295,652,653,555,299,301, - 557,302,559,654,655,39,307,308,309,310,656,312,439,440,315,316, - 317,318,319,321,441,322,323,324,657,500,328,444,445,330,331,332, - 446,335,447,336,338,448,339,449,342,343,450,345,346,347,348,349, - 451,351,452,352,353,354,4,453,357,358,1,0,3,4,356,357, - 5,8,9,10,11,359,454,12,13,14,15,18,360,455,19,20, - 21,22,25,24,361,26,27,28,29,505,31,32,634,34,35,36, + 378,126,127,380,129,152,153,154,155,156,157,158,159,160,463,140, + 141,164,465,539,167,382,386,466,149,172,151,390,391,392,387,388, + 469,389,181,593,471,162,163,393,396,188,395,168,169,170,171,397, + 195,174,175,176,177,178,399,202,400,182,183,401,185,576,209,543, + 189,190,514,403,193,216,402,196,197,198,515,200,223,224,203,204, + 595,206,645,230,577,210,211,212,213,214,237,406,409,218,241,220, + 221,244,408,246,225,226,227,228,412,410,231,254,233,234,235,258, + 413,546,239,240,418,242,265,481,245,268,247,620,249,272,251,252, + 253,421,255,256,279,420,259,261,423,263,264,286,422,266,267,613, + 269,270,425,426,273,274,275,276,277,300,643,280,281,282,283,284, + 491,427,287,527,492,290,291,293,550,551,295,648,649,553,299,301, + 555,302,557,650,651,39,307,308,309,310,311,312,437,438,315,316, + 317,318,319,321,439,322,323,324,652,500,328,442,443,330,331,332, + 444,335,445,336,338,446,339,447,342,343,448,345,346,347,348,349, + 449,351,450,352,353,354,4,451,357,358,1,0,3,4,356,357, + 5,8,9,10,11,359,452,12,13,14,15,18,360,453,19,20, + 21,22,25,24,361,26,27,28,29,505,31,32,631,34,35,36, 39,38,362,40,41,42,45,46,47,48,49,50,51,507,53,52, - 509,54,576,58,57,60,61,363,63,64,65,66,67,68,69,70, + 509,54,573,58,57,60,61,363,63,64,65,66,67,68,69,70, 71,72,73,74,75,76,364,78,79,77,81,82,365,84,85,83, 87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102, - 96,97,98,103,100,101,104,105,106,107,108,109,110,111,375,461, - 376,112,113,114,115,116,120,377,119,457,121,125,123,124,378,126, - 127,594,132,595,131,380,133,134,138,139,462,512,142,143,141,464, - 146,147,145,383,381,382,152,153,154,155,156,157,158,159,160,390, - 470,385,164,162,163,167,386,166,396,168,172,169,391,392,173,174, - 175,176,177,181,596,180,184,182,183,397,188,597,187,191,189,190, - 398,195,193,194,403,196,197,198,202,200,201,205,203,204,579,209, - 545,208,587,210,211,212,216,214,215,407,405,218,406,223,221,222, - 409,598,225,226,230,228,229,411,231,599,233,237,235,236,414,241, - 239,240,244,242,246,412,245,581,247,413,249,415,251,252,253,257, - 258,256,548,421,259,263,264,265,481,487,423,266,267,483,272,270, - 271,588,273,274,275,279,277,278,550,280,281,282,286,284,285,428, - 287,488,292,426,291,489,520,521,295,589,293,523,299,301,591,302, - 600,491,526,527,307,308,309,310,314,312,313,440,315,316,317,321, - 319,320,441,322,323,324,328,329,445,444,585,330,331,335,564,334, - 447,336,340,449,342,343,341,345,346,347,348,349,350,351,451,502, - 601,352,353,354,355,453,602,603,604,0,605,606,607,608,5,609, - 11,359,454,503,535,12,13,18,15,16,504,537,19,20,25,22, - 23,24,361,26,27,505,29,30,31,32,610,34,46,36,37,38, - 362,40,41,53,508,55,56,576,58,59,60,61,363,63,64,54, + 96,97,98,103,100,101,104,105,106,107,108,109,110,111,375,460, + 376,112,113,114,115,116,120,377,119,455,121,125,123,124,378,126, + 127,592,132,130,131,379,133,134,138,139,461,511,142,143,141,464, + 146,147,145,382,380,381,152,153,154,155,156,157,158,159,160,389, + 470,384,164,162,163,167,385,166,395,168,172,169,390,391,173,174, + 175,176,177,181,593,180,184,182,183,396,188,594,187,191,189,190, + 397,195,193,194,402,196,197,198,202,200,201,205,203,204,576,209, + 543,208,585,210,211,212,216,214,215,406,404,218,405,223,221,222, + 408,595,225,226,230,228,229,410,231,596,233,237,235,236,413,241, + 239,240,244,242,246,411,245,578,247,412,249,414,251,252,253,257, + 258,256,546,420,259,263,264,265,481,487,422,266,267,483,272,270, + 271,586,273,274,275,279,277,278,548,280,281,282,286,284,285,427, + 287,488,292,425,291,489,519,520,295,587,293,522,299,301,589,302, + 597,491,525,526,307,308,309,310,314,312,313,438,315,316,317,321, + 319,320,439,322,323,324,328,329,443,442,582,330,331,335,561,334, + 445,336,340,447,342,343,341,345,346,347,348,349,350,351,449,502, + 598,352,353,354,355,451,599,600,601,0,602,603,604,605,5,606, + 11,359,452,503,534,12,13,18,15,16,504,536,19,20,25,22, + 23,24,361,26,27,505,29,30,31,32,607,34,46,36,37,38, + 362,40,41,53,508,55,56,573,58,59,60,61,363,63,64,54, 66,67,68,69,70,71,72,73,74,75,76,364,78,79,80,81, 82,365,84,85,86,87,88,77,90,91,92,93,83,95,96,97, 98,99,100,101,102,96,97,98,103,100,101,104,105,106,107,108, - 109,110,111,611,456,368,369,372,373,118,374,375,461,376,112,113, - 125,115,116,128,377,119,594,132,595,123,124,378,126,127,139,129, - 512,142,143,133,134,146,147,148,540,463,140,152,153,154,155,156, - 157,158,159,160,150,151,385,164,165,388,167,469,390,470,467,172, - 162,391,394,393,166,396,168,169,181,171,471,173,174,175,176,188, - 178,514,180,192,182,183,195,185,612,187,199,189,190,202,401,193, - 194,403,196,197,209,545,200,201,515,203,204,216,206,546,208,405, - 210,211,212,213,214,215,407,476,218,230,220,221,222,409,599,225, - 237,227,228,229,411,231,243,244,234,235,236,414,581,239,413,519, - 242,254,479,245,257,258,417,249,418,251,252,253,265,255,256,261, - 421,263,264,272,484,613,487,423,266,267,279,269,270,271,424,273, - 274,286,276,277,278,614,280,281,426,283,284,285,428,287,589,300, - 290,291,303,304,305,295,293,429,430,299,301,432,302,314,493,434, - 494,307,308,309,39,615,312,313,440,315,316,439,318,319,320,441, - 322,323,321,616,617,618,444,442,330,328,332,445,334,447,336,446, - 335,339,337,341,448,340,344,342,343,450,345,451,347,348,352,353, - 354,355,453,533,534,4,0,357,358,1,2,5,11,359,454,503, - 535,536,12,18,14,15,16,537,538,19,46,21,22,23,24,361, + 109,110,111,608,454,368,369,372,373,118,374,375,460,376,112,113, + 125,115,116,128,377,119,592,132,609,123,124,378,126,127,139,129, + 130,142,143,133,134,146,147,148,610,463,140,152,153,154,155,156, + 157,158,159,160,150,151,384,164,165,387,167,469,389,470,467,172, + 162,390,393,392,166,395,168,169,181,171,471,173,174,175,176,188, + 178,513,180,192,182,183,195,185,611,187,199,189,190,202,400,193, + 194,402,196,197,209,543,200,201,514,203,204,216,206,544,208,404, + 210,211,212,213,214,215,406,476,218,230,220,221,222,408,596,225, + 237,227,228,229,410,231,243,244,234,235,236,413,578,239,412,518, + 242,254,479,245,257,258,416,249,417,251,252,253,265,255,256,261, + 420,263,264,272,484,612,487,422,266,267,279,269,270,271,423,273, + 274,286,276,277,278,613,280,281,425,283,284,285,427,287,587,300, + 290,291,303,304,305,295,293,428,429,299,301,431,302,314,494,433, + 495,307,308,309,39,311,312,313,438,315,316,437,318,319,320,439, + 322,323,321,614,615,616,442,440,330,328,332,443,334,445,336,444, + 335,339,337,341,446,340,344,342,343,448,345,449,347,348,352,353, + 354,355,451,532,533,4,0,357,358,1,2,5,11,359,452,503, + 534,535,12,18,14,15,16,536,537,19,46,21,22,23,24,361, 26,53,28,29,30,31,32,59,60,35,36,63,64,65,66,67, 68,69,70,71,72,73,74,75,76,364,52,79,54,81,82,365, 84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99, 100,101,102,96,97,98,103,100,101,104,105,106,107,108,109,110, - 111,83,456,619,620,370,117,118,371,120,539,122,366,367,125,459, - 460,128,577,130,372,132,595,374,375,461,376,112,139,114,115,142, + 111,83,454,617,618,370,117,118,371,120,538,122,366,367,125,457, + 458,128,583,459,372,132,609,374,375,460,376,112,139,114,115,142, 143,377,119,146,121,148,123,124,378,152,153,154,155,156,157,158, - 159,160,161,384,385,164,463,140,167,464,465,466,145,172,542,391, - 149,150,151,578,179,395,181,389,469,390,470,186,397,188,163,394, - 191,166,396,168,169,170,171,543,173,174,175,176,177,178,205,180, - 207,182,209,545,185,587,187,404,189,216,217,546,193,194,403,196, - 223,198,475,200,201,476,203,230,580,206,621,208,599,210,237,212, - 213,214,215,407,243,244,518,220,221,222,409,250,413,226,227,228, - 229,411,231,258,233,234,235,236,414,480,265,240,482,242,420,622, - 245,272,247,613,249,422,251,252,279,486,255,261,424,421,264,286, - 425,288,289,487,423,266,426,427,269,270,271,522,273,300,275,276, - 277,278,305,280,491,282,283,284,285,428,287,314,493,290,291,435, - 436,437,293,623,624,495,299,301,497,505,625,626,627,628,307,308, - 39,310,629,312,313,440,315,439,317,318,319,320,441,322,321,324, - 630,631,632,444,633,328,331,332,501,334,447,336,335,564,339,338, - 341,340,449,342,343,450,345,346,451,348,349,352,353,354,355,453, - 534,4,356,0,358,1,2,3,5,565,566,567,568,569,570,12, - 13,14,15,16,538,571,25,20,21,22,23,24,361,505,27,28, + 159,160,161,383,384,164,463,140,167,464,465,466,145,172,540,390, + 149,150,151,575,179,394,181,388,469,389,470,186,396,188,163,393, + 191,166,395,168,169,170,171,541,173,174,175,176,177,178,205,180, + 207,182,209,543,185,585,187,403,189,216,217,544,193,194,402,196, + 223,198,475,200,201,476,203,230,577,206,619,208,596,210,237,212, + 213,214,215,406,243,244,517,220,221,222,408,250,412,226,227,228, + 229,410,231,258,233,234,235,236,413,480,265,240,482,242,419,620, + 245,272,247,612,249,421,251,252,279,486,255,261,423,420,264,286, + 424,288,289,487,422,266,425,426,269,270,271,521,273,300,275,276, + 277,278,305,280,491,282,283,284,285,427,287,314,494,290,291,434, + 435,436,293,621,622,496,299,301,498,505,623,624,625,626,307,308, + 39,310,311,312,313,438,315,437,317,318,319,320,439,322,321,324, + 627,628,629,442,630,328,331,332,501,334,445,336,335,561,339,338, + 341,340,447,342,343,448,345,346,449,348,349,352,353,354,355,451, + 533,4,356,0,358,1,2,3,5,562,563,564,565,566,567,12, + 13,14,15,16,537,568,25,20,21,22,23,24,361,505,27,28, 29,30,31,32,39,34,35,36,37,38,362,46,41,42,49,50, - 51,507,53,508,55,56,576,52,509,60,61,363,63,64,65,66, + 51,507,53,508,55,56,573,52,509,60,61,363,63,64,65,66, 67,68,69,70,71,72,73,74,75,76,364,78,79,80,81,82, 77,84,85,86,87,88,83,90,91,92,93,94,95,96,97,98, 99,100,101,102,96,97,98,103,100,101,104,105,106,107,108,109, - 110,111,373,456,374,375,461,376,118,113,114,115,116,457,377,125, - 459,121,128,123,124,378,132,127,511,129,136,131,380,139,134,512, - 142,143,144,463,146,141,464,465,381,145,152,153,154,155,156,157, - 158,159,160,388,389,469,164,470,541,167,162,163,394,467,172,396, - 391,169,170,171,578,173,174,181,176,177,178,513,180,397,188,183, - 514,185,192,187,398,195,190,612,543,193,194,403,202,197,198,205, - 200,201,579,209,204,473,206,515,208,474,216,211,212,213,214,215, - 407,223,218,475,220,221,222,409,230,225,226,227,228,229,411,237, - 238,233,234,235,236,414,244,239,240,412,242,581,250,413,519,247, - 254,249,416,251,258,253,548,261,256,263,421,265,260,482,268,420, - 487,423,266,267,613,269,270,271,582,279,274,275,276,277,278,658, - 286,281,282,283,284,285,428,426,427,489,290,291,522,589,293,295, - 524,590,591,299,301,491,302,527,528,311,492,307,314,309,310,494, - 312,313,440,439,316,317,318,319,320,441,321,323,324,531,592,532, - 444,328,330,331,332,585,334,447,336,564,337,339,448,341,449,342, - 344,450,345,346,347,451,349,350,352,353,354,355,453,4,356,357, + 110,111,373,454,374,375,460,376,118,113,114,115,116,455,377,125, + 457,121,128,123,124,378,132,127,574,129,130,131,379,139,134,511, + 142,143,144,463,146,141,464,465,380,145,152,153,154,155,156,157, + 158,159,160,387,388,469,164,470,539,167,162,163,393,467,172,395, + 390,169,170,171,575,173,174,181,176,177,178,512,180,396,188,183, + 513,185,192,187,397,195,190,611,541,193,194,402,202,197,198,205, + 200,201,576,209,204,473,206,514,208,474,216,211,212,213,214,215, + 406,223,218,475,220,221,222,408,230,225,226,227,228,229,410,237, + 238,233,234,235,236,413,244,239,240,411,242,578,250,412,518,247, + 254,249,415,251,258,253,546,261,256,263,420,265,260,482,268,419, + 487,422,266,267,612,269,270,271,579,279,274,275,276,277,278,653, + 286,281,282,283,284,285,427,425,426,489,290,291,521,587,293,295, + 523,588,589,299,301,491,302,526,527,492,493,307,314,309,310,311, + 312,313,438,437,316,317,318,319,320,439,321,323,324,530,590,531, + 442,328,330,331,332,582,334,445,336,561,337,339,446,341,447,342, + 344,448,345,346,347,449,349,350,352,353,354,355,451,4,356,357, 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15, 16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31, - 32,47,34,35,36,37,38,53,40,41,42,576,58,59,60,61, + 32,47,34,35,36,37,38,53,40,41,42,573,58,59,60,61, 363,63,64,65,52,67,54,69,70,71,72,73,74,75,76,364, 78,79,80,81,82,365,84,85,86,87,88,89,90,91,77,93, 94,95,96,97,83,99,100,101,102,96,97,98,103,100,101,104, 105,106,107,108,109,110,111,366,367,368,369,370,117,118,371,372, 373,122,374,375,125,376,112,113,114,115,116,132,377,119,135,121, - 137,123,139,378,126,142,143,129,379,146,380,133,134,381,382,152, - 153,154,155,156,157,158,159,160,383,384,385,164,150,151,167,386, - 387,388,389,172,390,391,392,393,162,163,394,395,181,396,168,169, - 170,171,397,188,174,175,176,177,178,398,195,399,182,183,199,185, - 400,202,401,189,190,402,207,193,209,403,196,197,198,404,200,216, - 217,203,204,405,206,406,223,224,210,211,212,213,214,230,407,232, - 218,408,220,221,237,409,410,225,226,227,228,244,411,231,412,233, - 234,235,413,414,415,239,240,416,242,258,417,245,418,247,419,249, - 265,251,252,253,420,255,256,272,421,259,261,422,263,264,279,423, - 266,267,424,269,270,286,425,273,274,275,276,277,426,427,280,281, - 282,283,284,300,428,287,303,304,290,291,293,429,430,295,431,432, - 433,299,301,434,302,435,436,437,39,307,308,309,310,438,312,439, - 440,315,316,317,318,319,321,441,322,323,324,442,443,328,444,445, - 330,331,332,446,335,447,336,338,448,339,449,342,343,450,345,346, - 347,348,349,451,351,452,352,353,354,4,453,357,358,1,0,3, - 4,356,357,5,8,9,10,11,359,454,12,13,14,15,18,360, - 455,19,20,21,22,25,24,361,26,27,28,29,505,31,32,634, + 137,123,139,378,126,142,143,129,130,146,379,133,134,380,381,152, + 153,154,155,156,157,158,159,160,382,383,384,164,150,151,167,385, + 386,387,388,172,389,390,391,392,162,163,393,394,181,395,168,169, + 170,171,396,188,174,175,176,177,178,397,195,398,182,183,199,185, + 399,202,400,189,190,401,207,193,209,402,196,197,198,403,200,216, + 217,203,204,404,206,405,223,224,210,211,212,213,214,230,406,232, + 218,407,220,221,237,408,409,225,226,227,228,244,410,231,411,233, + 234,235,412,413,414,239,240,415,242,258,416,245,417,247,418,249, + 265,251,252,253,419,255,256,272,420,259,261,421,263,264,279,422, + 266,267,423,269,270,286,424,273,274,275,276,277,425,426,280,281, + 282,283,284,300,427,287,303,304,290,291,293,428,429,295,430,431, + 432,299,301,433,302,434,435,436,39,307,308,309,310,311,312,437, + 438,315,316,317,318,319,321,439,322,323,324,440,441,328,442,443, + 330,331,332,444,335,445,336,338,446,339,447,342,343,448,345,346, + 347,348,349,449,351,450,352,353,354,4,451,357,358,1,0,3, + 4,356,357,5,8,9,10,11,359,452,12,13,14,15,18,360, + 453,19,20,21,22,25,24,361,26,27,28,29,505,31,32,631, 34,35,36,39,38,362,40,41,42,45,46,47,48,49,50,51, - 507,53,52,509,54,576,58,57,60,61,363,63,64,65,66,67, + 507,53,52,509,54,573,58,57,60,61,363,63,64,65,66,67, 68,69,70,71,72,73,74,75,76,364,78,77,80,81,82,365, 84,83,86,87,88,89,90,91,92,93,94,95,96,97,98,99, 100,101,102,96,97,98,103,100,101,104,105,106,107,108,109,110, - 111,461,376,112,113,114,115,118,371,377,119,122,121,458,125,124, - 378,126,127,130,129,132,131,380,133,134,137,138,139,462,463,142, - 143,464,465,146,145,383,540,381,149,152,153,154,155,156,157,158, - 159,160,470,384,385,164,163,394,167,166,396,168,169,172,171,391, - 173,174,175,176,177,178,181,180,471,182,183,186,185,188,187,514, - 189,190,586,398,195,194,403,196,197,198,400,202,201,472,203,204, - 207,206,209,208,473,210,211,212,213,216,215,407,219,218,516,220, - 221,222,409,547,225,226,227,230,229,411,231,408,233,234,237,236, - 414,477,239,240,243,244,518,246,245,248,247,250,413,519,251,252, - 253,416,255,258,417,421,261,260,263,264,265,487,423,266,267,622, - 269,272,271,613,273,274,275,276,279,278,549,280,281,282,283,286, - 285,428,287,614,488,290,426,427,489,520,295,522,589,293,299,301, - 590,302,525,600,491,526,307,308,309,310,551,314,313,440,315,316, - 317,318,321,320,441,322,323,324,327,328,329,444,501,330,331,332, - 335,334,447,336,448,340,339,342,341,450,345,344,347,348,349,350, - 451,452,502,352,353,4,355,453,358,1,2,0,4,356,357,358, - 5,9,10,11,359,454,503,12,13,14,18,16,455,504,19,20, + 111,460,376,112,113,114,115,118,371,377,119,122,121,456,125,124, + 378,126,127,459,129,132,131,379,133,134,137,138,139,461,463,142, + 143,464,465,146,145,382,610,380,149,152,153,154,155,156,157,158, + 159,160,470,383,384,164,163,393,167,166,395,168,169,172,171,390, + 173,174,175,176,177,178,181,180,471,182,183,186,185,188,187,513, + 189,190,584,397,195,194,402,196,197,198,399,202,201,472,203,204, + 207,206,209,208,473,210,211,212,213,216,215,406,219,218,515,220, + 221,222,408,545,225,226,227,230,229,410,231,407,233,234,237,236, + 413,477,239,240,243,244,517,246,245,248,247,250,412,518,251,252, + 253,415,255,258,416,420,261,260,263,264,265,487,422,266,267,620, + 269,272,271,612,273,274,275,276,279,278,547,280,281,282,283,286, + 285,427,287,613,488,290,425,426,489,519,295,521,587,293,299,301, + 588,302,524,597,491,525,307,308,309,310,311,314,313,438,315,316, + 317,318,321,320,439,322,323,324,327,328,329,442,501,330,331,332, + 335,334,445,336,446,340,339,342,341,448,345,344,347,348,349,350, + 449,450,502,352,353,4,355,451,358,1,2,0,4,356,357,358, + 5,9,10,11,359,452,503,12,13,14,18,16,453,504,19,20, 21,25,23,24,361,26,27,28,505,30,31,32,506,34,35,46, - 37,38,362,40,41,42,53,508,55,56,576,58,59,60,61,52, + 37,38,362,40,41,42,53,508,55,56,573,58,59,60,61,52, 63,54,65,66,67,68,69,70,71,72,73,74,75,76,364,78, 79,80,81,82,365,84,85,86,77,88,89,90,91,92,83,94, 95,96,97,98,99,100,101,102,96,97,98,103,100,101,104,105, - 106,107,108,109,110,111,611,456,368,372,373,117,118,375,461,376, - 112,113,114,115,116,460,377,119,130,121,132,123,124,378,126,127, - 138,139,462,131,142,143,134,379,146,147,148,463,140,141,152,153, - 154,155,156,157,158,159,160,151,384,385,164,388,389,167,390,470, - 466,467,172,163,391,392,166,396,168,169,170,181,596,173,174,175, - 176,177,188,597,180,191,182,183,398,195,399,187,543,189,190,400, - 202,193,194,403,196,197,198,209,200,201,587,203,204,474,216,217, - 208,219,210,211,212,223,214,215,407,598,218,648,230,221,222,409, - 408,225,226,237,228,229,411,231,478,233,244,235,236,414,248,239, - 240,413,242,415,254,245,416,247,258,249,548,251,252,253,480,265, - 256,482,421,259,263,264,272,484,487,423,266,267,582,279,270,271, - 550,273,274,275,286,277,278,289,280,281,282,426,284,285,428,287, - 522,589,300,291,490,303,304,295,306,293,429,299,301,431,302,433, - 314,493,434,307,308,309,310,439,312,313,440,315,316,317,321,319, - 320,441,322,323,324,328,329,445,444,585,330,331,335,564,334,447, - 336,340,449,342,343,341,345,346,347,348,349,350,351,451,502,601, - 352,353,354,355,453,602,603,604,0,605,606,607,608,5,609,11, - 359,454,503,535,12,13,18,15,16,504,537,19,20,25,22,23, + 106,107,108,109,110,111,608,454,368,372,373,117,118,375,460,376, + 112,113,114,115,116,458,377,119,459,121,132,123,124,378,126,127, + 138,139,130,131,142,143,134,462,146,147,148,463,140,141,152,153, + 154,155,156,157,158,159,160,151,383,384,164,387,388,167,389,470, + 466,467,172,163,390,391,166,395,168,169,170,181,593,173,174,175, + 176,177,188,594,180,191,182,183,397,195,398,187,541,189,190,399, + 202,193,194,402,196,197,198,209,200,201,585,203,204,474,216,217, + 208,219,210,211,212,223,214,215,406,595,218,645,230,221,222,408, + 407,225,226,237,228,229,410,231,478,233,244,235,236,413,248,239, + 240,412,242,414,254,245,415,247,258,249,546,251,252,253,480,265, + 256,482,420,259,263,264,272,484,487,422,266,267,579,279,270,271, + 548,273,274,275,286,277,278,289,280,281,282,425,284,285,427,287, + 521,587,300,291,490,303,304,295,306,293,428,299,301,430,302,432, + 314,494,433,307,308,309,310,437,312,313,438,315,316,317,321,319, + 320,439,322,323,324,328,329,443,442,582,330,331,335,561,334,445, + 336,340,447,342,343,341,345,346,347,348,349,350,351,449,502,598, + 352,353,354,355,451,599,600,601,0,602,603,604,605,5,606,11, + 359,452,503,534,12,13,18,15,16,504,536,19,20,25,22,23, 24,361,26,27,46,29,30,31,32,51,34,53,36,37,38,362, 40,41,60,61,363,63,64,65,66,67,68,69,52,71,54,73, 74,75,76,364,78,79,80,81,82,365,84,85,86,87,88,89, 90,91,92,93,94,95,77,97,98,99,100,83,102,96,97,98, - 103,100,101,104,105,106,107,108,109,110,111,611,539,368,366,367, - 117,118,371,120,510,122,372,373,125,374,375,461,376,112,113,132, - 115,116,135,377,119,138,139,462,123,142,143,126,127,146,129,148, - 131,380,133,152,153,154,155,156,157,158,159,160,465,384,145,164, - 165,541,167,150,151,466,467,172,388,391,469,390,470,578,179,162, - 181,394,471,166,396,168,169,188,171,514,173,174,175,176,195,178, - 612,180,199,182,183,202,185,472,187,402,189,190,209,545,193,194, - 403,196,197,216,217,200,201,405,203,204,223,206,475,208,598,210, - 211,212,213,214,215,407,599,218,237,220,221,222,409,478,225,244, - 227,228,229,411,231,250,413,234,235,236,414,416,239,258,417,242, - 418,262,245,480,265,481,249,268,251,252,253,272,255,256,261,421, - 263,264,279,486,549,487,423,266,267,286,269,270,271,614,273,274, - 426,276,277,278,521,280,281,300,283,284,285,428,287,306,491,290, - 291,528,311,492,295,293,552,553,299,301,653,302,505,556,557,558, - 307,308,309,39,498,312,313,440,315,316,439,318,319,320,441,322, - 323,321,659,561,562,444,657,330,328,332,445,334,447,336,446,335, - 339,337,341,448,340,344,342,343,450,345,451,347,348,352,353,354, - 355,453,533,534,4,0,357,358,1,2,5,11,359,454,503,535, - 536,12,18,14,15,16,537,538,19,25,21,22,23,24,361,26, - 505,28,29,30,31,32,660,39,35,36,37,38,362,40,439,42, - 636,572,573,574,640,46,47,48,49,52,509,54,53,508,57,56, - 576,58,59,60,62,363,63,64,65,66,67,68,69,70,71,72, + 103,100,101,104,105,106,107,108,109,110,111,608,538,368,366,367, + 117,118,371,120,510,122,372,373,125,374,375,460,376,112,113,132, + 115,116,135,377,119,138,139,461,123,142,143,126,127,146,129,130, + 131,379,133,152,153,154,155,156,157,158,159,160,465,383,145,164, + 165,539,167,150,151,466,467,172,387,390,469,389,470,575,179,162, + 181,393,471,166,395,168,169,188,171,513,173,174,175,176,195,178, + 611,180,199,182,183,202,185,472,187,401,189,190,209,543,193,194, + 402,196,197,216,217,200,201,404,203,204,223,206,475,208,595,210, + 211,212,213,214,215,406,596,218,237,220,221,222,408,478,225,244, + 227,228,229,410,231,250,412,234,235,236,413,415,239,258,416,242, + 417,262,245,480,265,481,249,268,251,252,253,272,255,256,261,420, + 263,264,279,486,547,487,422,266,267,286,269,270,271,613,273,274, + 425,276,277,278,520,280,281,300,283,284,285,427,287,306,491,290, + 291,527,492,493,295,293,550,551,299,301,649,302,505,554,555,556, + 307,308,309,39,311,312,313,438,315,316,437,318,319,320,439,322, + 323,321,654,558,559,442,652,330,328,332,443,334,445,336,444,335, + 339,337,341,446,340,344,342,343,448,345,449,347,348,352,353,354, + 355,451,532,533,4,0,357,358,1,2,5,11,359,452,503,534, + 535,12,18,14,15,16,536,537,19,25,21,22,23,24,361,26, + 505,28,29,30,31,32,655,39,35,36,37,38,362,40,437,42, + 633,569,570,571,637,46,47,48,49,52,509,54,53,508,57,56, + 573,58,59,60,62,363,63,64,65,66,67,68,69,70,71,72, 73,74,75,77,364,78,79,80,81,83,365,84,85,86,87,88, 89,90,91,92,93,94,95,96,97,98,99,100,101,102,96,97, 98,103,100,101,104,105,106,107,108,109,110,111,113,114,115,116, - 370,377,118,371,121,510,123,124,378,125,127,460,129,577,131,380, - 132,134,511,135,136,137,463,139,141,464,142,143,145,383,146,147, - 149,150,151,382,152,153,154,155,156,157,158,159,160,162,163,394, - 164,166,396,167,169,170,171,467,172,174,391,176,177,178,578,180, - 395,181,183,471,185,513,187,397,188,190,514,191,193,194,403,195, - 197,198,543,200,201,400,202,204,472,206,402,208,579,209,211,212, - 213,214,215,407,216,218,546,220,221,222,409,223,225,226,227,228, - 229,411,230,580,233,234,235,236,414,237,239,240,477,242,478,243, - 244,518,247,412,249,581,251,413,253,415,261,256,263,421,258,260, - 548,418,262,487,423,266,267,482,269,270,271,483,272,274,275,276, - 277,278,582,279,281,282,283,284,285,428,286,425,288,290,291,488, - 292,293,295,583,296,297,299,301,300,302,490,303,304,305,307,491, - 309,310,528,312,313,440,314,316,317,318,319,320,441,321,323,324, - 584,325,326,444,328,330,331,332,585,334,447,336,564,337,339,448, - 341,449,342,344,450,345,346,347,451,349,350,352,353,354,355,453, + 370,377,118,371,121,510,123,124,378,125,127,458,129,130,131,379, + 132,134,574,135,136,137,463,139,141,464,142,143,145,382,146,147, + 149,150,151,381,152,153,154,155,156,157,158,159,160,162,163,393, + 164,166,395,167,169,170,171,467,172,174,390,176,177,178,575,180, + 394,181,183,471,185,512,187,396,188,190,513,191,193,194,402,195, + 197,198,541,200,201,399,202,204,472,206,401,208,576,209,211,212, + 213,214,215,406,216,218,544,220,221,222,408,223,225,226,227,228, + 229,410,230,577,233,234,235,236,413,237,239,240,477,242,478,243, + 244,517,247,411,249,578,251,412,253,414,261,256,263,420,258,260, + 546,417,262,487,422,266,267,482,269,270,271,483,272,274,275,276, + 277,278,579,279,281,282,283,284,285,427,286,424,288,290,291,488, + 292,293,295,580,296,297,299,301,300,302,490,303,304,305,307,491, + 309,310,311,312,313,438,314,316,317,318,319,320,439,321,323,324, + 581,325,326,442,328,330,331,332,582,334,445,336,561,337,339,446, + 341,447,342,344,448,345,346,347,449,349,350,352,353,354,355,451, 4,356,357,0,1,2,3,4,5,6,7,8,9,10,11,12, 13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28, - 29,30,31,32,47,34,35,36,37,38,53,40,41,42,576,58, + 29,30,31,32,47,34,35,36,37,38,53,40,41,42,573,58, 59,60,61,363,63,64,65,52,67,54,69,70,71,72,73,74, 75,76,364,78,79,80,81,82,365,84,85,86,87,88,89,90, 77,92,93,94,95,96,83,98,99,100,101,102,96,97,98,103, - 100,101,104,105,106,107,108,109,110,111,367,456,368,369,370,117, - 118,372,373,510,374,375,461,125,112,113,114,115,116,594,132,119, - 511,121,136,123,124,139,126,127,142,143,144,131,146,133,134,540, - 381,382,152,153,154,155,156,157,158,159,160,161,384,149,164,151, - 541,167,386,388,389,469,172,470,391,392,162,163,394,179,166,181, - 168,169,170,171,186,173,174,175,176,177,178,586,180,195,182,183, - 543,185,544,187,202,189,190,205,402,193,194,209,196,197,198,515, - 200,201,216,203,204,219,206,516,208,223,210,211,212,213,214,215, - 230,580,218,621,220,221,222,237,238,225,226,227,228,229,244,231, - 246,233,234,235,236,413,519,239,240,479,242,257,258,245,548,247, - 262,249,480,251,252,253,268,255,256,483,272,259,260,261,422,263, - 264,279,266,267,550,269,270,271,286,273,274,275,276,277,278,426, - 280,281,282,283,284,285,300,287,490,303,290,291,306,293,429,295, - 649,431,432,299,314,301,302,494,435,436,437,307,308,309,310,650, - 312,313,439,315,316,317,318,319,320,321,322,323,324,651,442,443, + 100,101,104,105,106,107,108,109,110,111,367,454,368,369,370,117, + 118,372,373,510,374,375,460,125,112,113,114,115,116,592,132,119, + 574,121,136,123,124,139,126,127,142,143,130,131,146,133,134,610, + 380,381,152,153,154,155,156,157,158,159,160,161,383,149,164,151, + 539,167,385,387,388,469,172,470,390,391,162,163,393,179,166,181, + 168,169,170,171,186,173,174,175,176,177,178,584,180,195,182,183, + 541,185,542,187,202,189,190,205,401,193,194,209,196,197,198,514, + 200,201,216,203,204,219,206,515,208,223,210,211,212,213,214,215, + 230,577,218,619,220,221,222,237,238,225,226,227,228,229,244,231, + 246,233,234,235,236,412,518,239,240,479,242,257,258,245,546,247, + 262,249,480,251,252,253,268,255,256,483,272,259,260,261,421,263, + 264,279,266,267,548,269,270,271,286,273,274,275,276,277,278,425, + 280,281,282,283,284,285,300,287,490,303,290,291,306,293,428,295, + 646,430,431,299,314,301,302,495,434,435,436,307,308,309,310,311, + 312,313,437,315,316,317,318,319,320,321,322,323,324,647,440,441, 328,329,330,331,332,333,334,335,336,337,338,339,340,341,342,343, 344,345,346,347,348,349,350,351,352,353,354,355,4,356,357,358, 0,2,3,4,356,5,7,8,9,10,11,359,12,13,14,15, @@ -3426,23 +3434,23 @@ static const unsigned short cal[NDAYS] = { 70,71,72,73,74,75,54,364,78,79,80,81,82,365,84,85, 86,87,88,89,90,91,92,93,94,95,96,97,98,77,100,101, 102,96,97,98,103,100,101,104,105,106,107,108,109,110,111,83, - 456,368,369,370,539,118,366,367,510,122,457,458,125,459,372,373, - 577,374,375,132,376,112,113,114,115,116,139,377,119,142,143,144, - 123,146,378,126,127,381,129,152,153,154,155,156,157,158,159,160, - 463,140,141,164,465,541,167,383,387,466,149,172,151,391,392,393, - 388,389,469,390,181,596,471,162,163,394,397,188,396,168,169,170, - 171,398,195,174,175,176,177,178,400,202,401,182,183,402,185,579, - 209,545,189,190,515,404,193,216,403,196,197,198,516,200,223,224, - 203,204,598,206,648,230,580,210,211,212,213,214,237,407,410,218, - 241,220,221,244,409,246,225,226,227,228,413,411,231,254,233,234, - 235,258,414,548,239,240,419,242,265,481,245,268,247,622,249,272, - 251,252,253,422,255,256,279,421,259,261,424,263,264,286,423,266, - 267,614,269,270,426,427,273,274,275,276,277,300,646,280,281,282, - 283,284,491,428,287,528,311,290,291,293,552,553,295,652,653,555, - 299,301,557,302,559,654,655,39,307,308,309,310,656,312,439,440, - 315,316,317,318,319,321,441,322,323,324,657,500,328,444,445,330, - 331,332,446,335,447,336,338,448,339,449,342,343,450,345,346,347, - 348,349,451,351,452,352,353,354,4,453,357,358,1, + 454,368,369,370,538,118,366,367,510,122,455,456,125,457,372,373, + 583,374,375,132,376,112,113,114,115,116,139,377,119,142,143,144, + 123,146,378,126,127,380,129,152,153,154,155,156,157,158,159,160, + 463,140,141,164,465,539,167,382,386,466,149,172,151,390,391,392, + 387,388,469,389,181,593,471,162,163,393,396,188,395,168,169,170, + 171,397,195,174,175,176,177,178,399,202,400,182,183,401,185,576, + 209,543,189,190,514,403,193,216,402,196,197,198,515,200,223,224, + 203,204,595,206,645,230,577,210,211,212,213,214,237,406,409,218, + 241,220,221,244,408,246,225,226,227,228,412,410,231,254,233,234, + 235,258,413,546,239,240,418,242,265,481,245,268,247,620,249,272, + 251,252,253,421,255,256,279,420,259,261,423,263,264,286,422,266, + 267,613,269,270,425,426,273,274,275,276,277,300,643,280,281,282, + 283,284,491,427,287,527,492,290,291,293,550,551,295,648,649,553, + 299,301,555,302,557,650,651,39,307,308,309,310,311,312,437,438, + 315,316,317,318,319,321,439,322,323,324,652,500,328,442,443,330, + 331,332,444,335,445,336,338,446,339,447,342,343,448,345,346,347, + 348,349,449,351,450,352,353,354,4,451,357,358,1, }; #endif -- cgit v1.3