1a2415724fb3466168b2af5b08bd94ba732c0e753Vikas Arora// Copyright 2011 Google Inc. All Rights Reserved. 27c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora// 30406ce1417f76f2034833414dcecc9f56253640cVikas Arora// Use of this source code is governed by a BSD-style license 40406ce1417f76f2034833414dcecc9f56253640cVikas Arora// that can be found in the COPYING file in the root of the source 50406ce1417f76f2034833414dcecc9f56253640cVikas Arora// tree. An additional intellectual property rights grant can be found 60406ce1417f76f2034833414dcecc9f56253640cVikas Arora// in the file PATENTS. All contributing project authors may 70406ce1417f76f2034833414dcecc9f56253640cVikas Arora// be found in the AUTHORS file in the root of the source tree. 87c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora// ----------------------------------------------------------------------------- 97c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora// 107c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora// Cost tables for level and modes 117c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora// 127c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora// Author: Skal (pascal.massimino@gmail.com) 137c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora 14a2415724fb3466168b2af5b08bd94ba732c0e753Vikas Arora#include "./cost.h" 157c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora 167c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora#if defined(__cplusplus) || defined(c_plusplus) 177c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Aroraextern "C" { 187c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora#endif 197c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora 20a2415724fb3466168b2af5b08bd94ba732c0e753Vikas Arora//------------------------------------------------------------------------------ 217c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora// Boolean-cost cost table 227c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora 237c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Aroraconst uint16_t VP8EntropyCost[256] = { 247c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora 1792, 1792, 1792, 1536, 1536, 1408, 1366, 1280, 1280, 1216, 257c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora 1178, 1152, 1110, 1076, 1061, 1024, 1024, 992, 968, 951, 267c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora 939, 911, 896, 878, 871, 854, 838, 820, 811, 794, 277c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora 786, 768, 768, 752, 740, 732, 720, 709, 704, 690, 287c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora 683, 672, 666, 655, 647, 640, 631, 622, 615, 607, 297c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora 598, 592, 586, 576, 572, 564, 559, 555, 547, 541, 307c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora 534, 528, 522, 512, 512, 504, 500, 494, 488, 483, 317c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora 477, 473, 467, 461, 458, 452, 448, 443, 438, 434, 327c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora 427, 424, 419, 415, 410, 406, 403, 399, 394, 390, 337c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora 384, 384, 377, 374, 370, 366, 362, 359, 355, 351, 347c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora 347, 342, 342, 336, 333, 330, 326, 323, 320, 316, 357c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora 312, 308, 305, 302, 299, 296, 293, 288, 287, 283, 367c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora 280, 277, 274, 272, 268, 266, 262, 256, 256, 256, 377c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora 251, 248, 245, 242, 240, 237, 234, 232, 228, 226, 387c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora 223, 221, 218, 216, 214, 211, 208, 205, 203, 201, 397c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora 198, 196, 192, 191, 188, 187, 183, 181, 179, 176, 407c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora 175, 171, 171, 168, 165, 163, 160, 159, 156, 154, 417c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora 152, 150, 148, 146, 144, 142, 139, 138, 135, 133, 427c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora 131, 128, 128, 125, 123, 121, 119, 117, 115, 113, 437c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora 111, 110, 107, 105, 103, 102, 100, 98, 96, 94, 447c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora 92, 91, 89, 86, 86, 83, 82, 80, 77, 76, 457c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora 74, 73, 71, 69, 67, 66, 64, 63, 61, 59, 467c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora 57, 55, 54, 52, 51, 49, 47, 46, 44, 43, 477c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora 41, 40, 38, 36, 35, 33, 32, 30, 29, 27, 487c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora 25, 24, 22, 21, 19, 18, 16, 15, 13, 12, 497c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora 10, 9, 7, 6, 4, 3 507c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora}; 517c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora 52a2415724fb3466168b2af5b08bd94ba732c0e753Vikas Arora//------------------------------------------------------------------------------ 537c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora// Level cost tables 547c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora 55a2415724fb3466168b2af5b08bd94ba732c0e753Vikas Arora// For each given level, the following table gives the pattern of contexts to 56a2415724fb3466168b2af5b08bd94ba732c0e753Vikas Arora// use for coding it (in [][0]) as well as the bit value to use for each 57a2415724fb3466168b2af5b08bd94ba732c0e753Vikas Arora// context (in [][1]). 58466727975bcc57c0c5597bcd0747a2fe4777b303Vikas Aroraconst uint16_t VP8LevelCodes[MAX_VARIABLE_LEVEL][2] = { 597c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora {0x001, 0x000}, {0x007, 0x001}, {0x00f, 0x005}, 607c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora {0x00f, 0x00d}, {0x033, 0x003}, {0x033, 0x003}, {0x033, 0x023}, 617c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora {0x033, 0x023}, {0x033, 0x023}, {0x033, 0x023}, {0x0d3, 0x013}, 627c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora {0x0d3, 0x013}, {0x0d3, 0x013}, {0x0d3, 0x013}, {0x0d3, 0x013}, 637c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora {0x0d3, 0x013}, {0x0d3, 0x013}, {0x0d3, 0x013}, {0x0d3, 0x093}, 647c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora {0x0d3, 0x093}, {0x0d3, 0x093}, {0x0d3, 0x093}, {0x0d3, 0x093}, 657c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora {0x0d3, 0x093}, {0x0d3, 0x093}, {0x0d3, 0x093}, {0x0d3, 0x093}, 667c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora {0x0d3, 0x093}, {0x0d3, 0x093}, {0x0d3, 0x093}, {0x0d3, 0x093}, 677c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora {0x0d3, 0x093}, {0x0d3, 0x093}, {0x0d3, 0x093}, {0x153, 0x053}, 687c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora {0x153, 0x053}, {0x153, 0x053}, {0x153, 0x053}, {0x153, 0x053}, 697c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora {0x153, 0x053}, {0x153, 0x053}, {0x153, 0x053}, {0x153, 0x053}, 707c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora {0x153, 0x053}, {0x153, 0x053}, {0x153, 0x053}, {0x153, 0x053}, 717c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora {0x153, 0x053}, {0x153, 0x053}, {0x153, 0x053}, {0x153, 0x053}, 727c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora {0x153, 0x053}, {0x153, 0x053}, {0x153, 0x053}, {0x153, 0x053}, 737c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora {0x153, 0x053}, {0x153, 0x053}, {0x153, 0x053}, {0x153, 0x053}, 747c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora {0x153, 0x053}, {0x153, 0x053}, {0x153, 0x053}, {0x153, 0x053}, 757c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora {0x153, 0x053}, {0x153, 0x053}, {0x153, 0x053}, {0x153, 0x153} 767c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora}; 777c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora 787c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora// fixed costs for coding levels, deduce from the coding tree. 797c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora// This is only the part that doesn't depend on the probability state. 800406ce1417f76f2034833414dcecc9f56253640cVikas Aroraconst uint16_t VP8LevelFixedCosts[MAX_LEVEL + 1] = { 817c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora 0, 256, 256, 256, 256, 432, 618, 630, 827c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora 731, 640, 640, 828, 901, 948, 1021, 1101, 837c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora 1174, 1221, 1294, 1042, 1085, 1115, 1158, 1202, 847c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora 1245, 1275, 1318, 1337, 1380, 1410, 1453, 1497, 857c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora 1540, 1570, 1613, 1280, 1295, 1317, 1332, 1358, 867c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora 1373, 1395, 1410, 1454, 1469, 1491, 1506, 1532, 877c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora 1547, 1569, 1584, 1601, 1616, 1638, 1653, 1679, 887c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora 1694, 1716, 1731, 1775, 1790, 1812, 1827, 1853, 897c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora 1868, 1890, 1905, 1727, 1733, 1742, 1748, 1759, 907c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora 1765, 1774, 1780, 1800, 1806, 1815, 1821, 1832, 917c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora 1838, 1847, 1853, 1878, 1884, 1893, 1899, 1910, 927c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora 1916, 1925, 1931, 1951, 1957, 1966, 1972, 1983, 937c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora 1989, 1998, 2004, 2027, 2033, 2042, 2048, 2059, 947c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora 2065, 2074, 2080, 2100, 2106, 2115, 2121, 2132, 957c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora 2138, 2147, 2153, 2178, 2184, 2193, 2199, 2210, 967c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora 2216, 2225, 2231, 2251, 2257, 2266, 2272, 2283, 977c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora 2289, 2298, 2304, 2168, 2174, 2183, 2189, 2200, 987c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora 2206, 2215, 2221, 2241, 2247, 2256, 2262, 2273, 997c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora 2279, 2288, 2294, 2319, 2325, 2334, 2340, 2351, 1007c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora 2357, 2366, 2372, 2392, 2398, 2407, 2413, 2424, 1017c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora 2430, 2439, 2445, 2468, 2474, 2483, 2489, 2500, 1027c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora 2506, 2515, 2521, 2541, 2547, 2556, 2562, 2573, 1037c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora 2579, 2588, 2594, 2619, 2625, 2634, 2640, 2651, 1047c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora 2657, 2666, 2672, 2692, 2698, 2707, 2713, 2724, 1057c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora 2730, 2739, 2745, 2540, 2546, 2555, 2561, 2572, 1067c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora 2578, 2587, 2593, 2613, 2619, 2628, 2634, 2645, 1077c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora 2651, 2660, 2666, 2691, 2697, 2706, 2712, 2723, 1087c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora 2729, 2738, 2744, 2764, 2770, 2779, 2785, 2796, 1097c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora 2802, 2811, 2817, 2840, 2846, 2855, 2861, 2872, 1107c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora 2878, 2887, 2893, 2913, 2919, 2928, 2934, 2945, 1117c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora 2951, 2960, 2966, 2991, 2997, 3006, 3012, 3023, 1127c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora 3029, 3038, 3044, 3064, 3070, 3079, 3085, 3096, 1137c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora 3102, 3111, 3117, 2981, 2987, 2996, 3002, 3013, 1147c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora 3019, 3028, 3034, 3054, 3060, 3069, 3075, 3086, 1157c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora 3092, 3101, 3107, 3132, 3138, 3147, 3153, 3164, 1167c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora 3170, 3179, 3185, 3205, 3211, 3220, 3226, 3237, 1177c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora 3243, 3252, 3258, 3281, 3287, 3296, 3302, 3313, 1187c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora 3319, 3328, 3334, 3354, 3360, 3369, 3375, 3386, 1197c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora 3392, 3401, 3407, 3432, 3438, 3447, 3453, 3464, 1207c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora 3470, 3479, 3485, 3505, 3511, 3520, 3526, 3537, 1217c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora 3543, 3552, 3558, 2816, 2822, 2831, 2837, 2848, 1227c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora 2854, 2863, 2869, 2889, 2895, 2904, 2910, 2921, 1237c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora 2927, 2936, 2942, 2967, 2973, 2982, 2988, 2999, 1247c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora 3005, 3014, 3020, 3040, 3046, 3055, 3061, 3072, 1257c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora 3078, 3087, 3093, 3116, 3122, 3131, 3137, 3148, 1267c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora 3154, 3163, 3169, 3189, 3195, 3204, 3210, 3221, 1277c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora 3227, 3236, 3242, 3267, 3273, 3282, 3288, 3299, 1287c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora 3305, 3314, 3320, 3340, 3346, 3355, 3361, 3372, 1297c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora 3378, 3387, 3393, 3257, 3263, 3272, 3278, 3289, 1307c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora 3295, 3304, 3310, 3330, 3336, 3345, 3351, 3362, 1317c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora 3368, 3377, 3383, 3408, 3414, 3423, 3429, 3440, 1327c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora 3446, 3455, 3461, 3481, 3487, 3496, 3502, 3513, 1337c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora 3519, 3528, 3534, 3557, 3563, 3572, 3578, 3589, 1347c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora 3595, 3604, 3610, 3630, 3636, 3645, 3651, 3662, 1357c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora 3668, 3677, 3683, 3708, 3714, 3723, 3729, 3740, 1367c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora 3746, 3755, 3761, 3781, 3787, 3796, 3802, 3813, 1377c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora 3819, 3828, 3834, 3629, 3635, 3644, 3650, 3661, 1387c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora 3667, 3676, 3682, 3702, 3708, 3717, 3723, 3734, 1397c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora 3740, 3749, 3755, 3780, 3786, 3795, 3801, 3812, 1407c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora 3818, 3827, 3833, 3853, 3859, 3868, 3874, 3885, 1417c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora 3891, 3900, 3906, 3929, 3935, 3944, 3950, 3961, 1427c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora 3967, 3976, 3982, 4002, 4008, 4017, 4023, 4034, 1437c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora 4040, 4049, 4055, 4080, 4086, 4095, 4101, 4112, 1447c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora 4118, 4127, 4133, 4153, 4159, 4168, 4174, 4185, 1457c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora 4191, 4200, 4206, 4070, 4076, 4085, 4091, 4102, 1467c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora 4108, 4117, 4123, 4143, 4149, 4158, 4164, 4175, 1477c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora 4181, 4190, 4196, 4221, 4227, 4236, 4242, 4253, 1487c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora 4259, 4268, 4274, 4294, 4300, 4309, 4315, 4326, 1497c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora 4332, 4341, 4347, 4370, 4376, 4385, 4391, 4402, 1507c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora 4408, 4417, 4423, 4443, 4449, 4458, 4464, 4475, 1517c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora 4481, 4490, 4496, 4521, 4527, 4536, 4542, 4553, 1527c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora 4559, 4568, 4574, 4594, 4600, 4609, 4615, 4626, 1537c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora 4632, 4641, 4647, 3515, 3521, 3530, 3536, 3547, 1547c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora 3553, 3562, 3568, 3588, 3594, 3603, 3609, 3620, 1557c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora 3626, 3635, 3641, 3666, 3672, 3681, 3687, 3698, 1567c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora 3704, 3713, 3719, 3739, 3745, 3754, 3760, 3771, 1577c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora 3777, 3786, 3792, 3815, 3821, 3830, 3836, 3847, 1587c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora 3853, 3862, 3868, 3888, 3894, 3903, 3909, 3920, 1597c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora 3926, 3935, 3941, 3966, 3972, 3981, 3987, 3998, 1607c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora 4004, 4013, 4019, 4039, 4045, 4054, 4060, 4071, 1617c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora 4077, 4086, 4092, 3956, 3962, 3971, 3977, 3988, 1627c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora 3994, 4003, 4009, 4029, 4035, 4044, 4050, 4061, 1637c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora 4067, 4076, 4082, 4107, 4113, 4122, 4128, 4139, 1647c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora 4145, 4154, 4160, 4180, 4186, 4195, 4201, 4212, 1657c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora 4218, 4227, 4233, 4256, 4262, 4271, 4277, 4288, 1667c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora 4294, 4303, 4309, 4329, 4335, 4344, 4350, 4361, 1677c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora 4367, 4376, 4382, 4407, 4413, 4422, 4428, 4439, 1687c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora 4445, 4454, 4460, 4480, 4486, 4495, 4501, 4512, 1697c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora 4518, 4527, 4533, 4328, 4334, 4343, 4349, 4360, 1707c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora 4366, 4375, 4381, 4401, 4407, 4416, 4422, 4433, 1717c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora 4439, 4448, 4454, 4479, 4485, 4494, 4500, 4511, 1727c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora 4517, 4526, 4532, 4552, 4558, 4567, 4573, 4584, 1737c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora 4590, 4599, 4605, 4628, 4634, 4643, 4649, 4660, 1747c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora 4666, 4675, 4681, 4701, 4707, 4716, 4722, 4733, 1757c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora 4739, 4748, 4754, 4779, 4785, 4794, 4800, 4811, 1767c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora 4817, 4826, 4832, 4852, 4858, 4867, 4873, 4884, 1777c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora 4890, 4899, 4905, 4769, 4775, 4784, 4790, 4801, 1787c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora 4807, 4816, 4822, 4842, 4848, 4857, 4863, 4874, 1797c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora 4880, 4889, 4895, 4920, 4926, 4935, 4941, 4952, 1807c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora 4958, 4967, 4973, 4993, 4999, 5008, 5014, 5025, 1817c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora 5031, 5040, 5046, 5069, 5075, 5084, 5090, 5101, 1827c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora 5107, 5116, 5122, 5142, 5148, 5157, 5163, 5174, 1837c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora 5180, 5189, 5195, 5220, 5226, 5235, 5241, 5252, 1847c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora 5258, 5267, 5273, 5293, 5299, 5308, 5314, 5325, 1857c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora 5331, 5340, 5346, 4604, 4610, 4619, 4625, 4636, 1867c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora 4642, 4651, 4657, 4677, 4683, 4692, 4698, 4709, 1877c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora 4715, 4724, 4730, 4755, 4761, 4770, 4776, 4787, 1887c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora 4793, 4802, 4808, 4828, 4834, 4843, 4849, 4860, 1897c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora 4866, 4875, 4881, 4904, 4910, 4919, 4925, 4936, 1907c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora 4942, 4951, 4957, 4977, 4983, 4992, 4998, 5009, 1917c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora 5015, 5024, 5030, 5055, 5061, 5070, 5076, 5087, 1927c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora 5093, 5102, 5108, 5128, 5134, 5143, 5149, 5160, 1937c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora 5166, 5175, 5181, 5045, 5051, 5060, 5066, 5077, 1947c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora 5083, 5092, 5098, 5118, 5124, 5133, 5139, 5150, 1957c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora 5156, 5165, 5171, 5196, 5202, 5211, 5217, 5228, 1967c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora 5234, 5243, 5249, 5269, 5275, 5284, 5290, 5301, 1977c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora 5307, 5316, 5322, 5345, 5351, 5360, 5366, 5377, 1987c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora 5383, 5392, 5398, 5418, 5424, 5433, 5439, 5450, 1997c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora 5456, 5465, 5471, 5496, 5502, 5511, 5517, 5528, 2007c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora 5534, 5543, 5549, 5569, 5575, 5584, 5590, 5601, 2017c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora 5607, 5616, 5622, 5417, 5423, 5432, 5438, 5449, 2027c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora 5455, 5464, 5470, 5490, 5496, 5505, 5511, 5522, 2037c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora 5528, 5537, 5543, 5568, 5574, 5583, 5589, 5600, 2047c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora 5606, 5615, 5621, 5641, 5647, 5656, 5662, 5673, 2057c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora 5679, 5688, 5694, 5717, 5723, 5732, 5738, 5749, 2067c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora 5755, 5764, 5770, 5790, 5796, 5805, 5811, 5822, 2077c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora 5828, 5837, 5843, 5868, 5874, 5883, 5889, 5900, 2087c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora 5906, 5915, 5921, 5941, 5947, 5956, 5962, 5973, 2097c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora 5979, 5988, 5994, 5858, 5864, 5873, 5879, 5890, 2107c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora 5896, 5905, 5911, 5931, 5937, 5946, 5952, 5963, 2117c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora 5969, 5978, 5984, 6009, 6015, 6024, 6030, 6041, 2127c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora 6047, 6056, 6062, 6082, 6088, 6097, 6103, 6114, 2137c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora 6120, 6129, 6135, 6158, 6164, 6173, 6179, 6190, 2147c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora 6196, 6205, 6211, 6231, 6237, 6246, 6252, 6263, 2157c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora 6269, 6278, 6284, 6309, 6315, 6324, 6330, 6341, 2167c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora 6347, 6356, 6362, 6382, 6388, 6397, 6403, 6414, 2177c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora 6420, 6429, 6435, 3515, 3521, 3530, 3536, 3547, 2187c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora 3553, 3562, 3568, 3588, 3594, 3603, 3609, 3620, 2197c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora 3626, 3635, 3641, 3666, 3672, 3681, 3687, 3698, 2207c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora 3704, 3713, 3719, 3739, 3745, 3754, 3760, 3771, 2217c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora 3777, 3786, 3792, 3815, 3821, 3830, 3836, 3847, 2227c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora 3853, 3862, 3868, 3888, 3894, 3903, 3909, 3920, 2237c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora 3926, 3935, 3941, 3966, 3972, 3981, 3987, 3998, 2247c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora 4004, 4013, 4019, 4039, 4045, 4054, 4060, 4071, 2257c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora 4077, 4086, 4092, 3956, 3962, 3971, 3977, 3988, 2267c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora 3994, 4003, 4009, 4029, 4035, 4044, 4050, 4061, 2277c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora 4067, 4076, 4082, 4107, 4113, 4122, 4128, 4139, 2287c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora 4145, 4154, 4160, 4180, 4186, 4195, 4201, 4212, 2297c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora 4218, 4227, 4233, 4256, 4262, 4271, 4277, 4288, 2307c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora 4294, 4303, 4309, 4329, 4335, 4344, 4350, 4361, 2317c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora 4367, 4376, 4382, 4407, 4413, 4422, 4428, 4439, 2327c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora 4445, 4454, 4460, 4480, 4486, 4495, 4501, 4512, 2337c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora 4518, 4527, 4533, 4328, 4334, 4343, 4349, 4360, 2347c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora 4366, 4375, 4381, 4401, 4407, 4416, 4422, 4433, 2357c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora 4439, 4448, 4454, 4479, 4485, 4494, 4500, 4511, 2367c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora 4517, 4526, 4532, 4552, 4558, 4567, 4573, 4584, 2377c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora 4590, 4599, 4605, 4628, 4634, 4643, 4649, 4660, 2387c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora 4666, 4675, 4681, 4701, 4707, 4716, 4722, 4733, 2397c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora 4739, 4748, 4754, 4779, 4785, 4794, 4800, 4811, 2407c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora 4817, 4826, 4832, 4852, 4858, 4867, 4873, 4884, 2417c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora 4890, 4899, 4905, 4769, 4775, 4784, 4790, 4801, 2427c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora 4807, 4816, 4822, 4842, 4848, 4857, 4863, 4874, 2437c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora 4880, 4889, 4895, 4920, 4926, 4935, 4941, 4952, 2447c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora 4958, 4967, 4973, 4993, 4999, 5008, 5014, 5025, 2457c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora 5031, 5040, 5046, 5069, 5075, 5084, 5090, 5101, 2467c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora 5107, 5116, 5122, 5142, 5148, 5157, 5163, 5174, 2477c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora 5180, 5189, 5195, 5220, 5226, 5235, 5241, 5252, 2487c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora 5258, 5267, 5273, 5293, 5299, 5308, 5314, 5325, 2497c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora 5331, 5340, 5346, 4604, 4610, 4619, 4625, 4636, 2507c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora 4642, 4651, 4657, 4677, 4683, 4692, 4698, 4709, 2517c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora 4715, 4724, 4730, 4755, 4761, 4770, 4776, 4787, 2527c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora 4793, 4802, 4808, 4828, 4834, 4843, 4849, 4860, 2537c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora 4866, 4875, 4881, 4904, 4910, 4919, 4925, 4936, 2547c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora 4942, 4951, 4957, 4977, 4983, 4992, 4998, 5009, 2557c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora 5015, 5024, 5030, 5055, 5061, 5070, 5076, 5087, 2567c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora 5093, 5102, 5108, 5128, 5134, 5143, 5149, 5160, 2577c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora 5166, 5175, 5181, 5045, 5051, 5060, 5066, 5077, 2587c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora 5083, 5092, 5098, 5118, 5124, 5133, 5139, 5150, 2597c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora 5156, 5165, 5171, 5196, 5202, 5211, 5217, 5228, 2607c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora 5234, 5243, 5249, 5269, 5275, 5284, 5290, 5301, 2617c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora 5307, 5316, 5322, 5345, 5351, 5360, 5366, 5377, 2627c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora 5383, 5392, 5398, 5418, 5424, 5433, 5439, 5450, 2637c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora 5456, 5465, 5471, 5496, 5502, 5511, 5517, 5528, 2647c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora 5534, 5543, 5549, 5569, 5575, 5584, 5590, 5601, 2657c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora 5607, 5616, 5622, 5417, 5423, 5432, 5438, 5449, 2667c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora 5455, 5464, 5470, 5490, 5496, 5505, 5511, 5522, 2677c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora 5528, 5537, 5543, 5568, 5574, 5583, 5589, 5600, 2687c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora 5606, 5615, 5621, 5641, 5647, 5656, 5662, 5673, 2697c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora 5679, 5688, 5694, 5717, 5723, 5732, 5738, 5749, 2707c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora 5755, 5764, 5770, 5790, 5796, 5805, 5811, 5822, 2717c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora 5828, 5837, 5843, 5868, 5874, 5883, 5889, 5900, 2727c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora 5906, 5915, 5921, 5941, 5947, 5956, 5962, 5973, 2737c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora 5979, 5988, 5994, 5858, 5864, 5873, 5879, 5890, 2747c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora 5896, 5905, 5911, 5931, 5937, 5946, 5952, 5963, 2757c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora 5969, 5978, 5984, 6009, 6015, 6024, 6030, 6041, 2767c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora 6047, 6056, 6062, 6082, 6088, 6097, 6103, 6114, 2777c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora 6120, 6129, 6135, 6158, 6164, 6173, 6179, 6190, 2787c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora 6196, 6205, 6211, 6231, 6237, 6246, 6252, 6263, 2797c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora 6269, 6278, 6284, 6309, 6315, 6324, 6330, 6341, 2807c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora 6347, 6356, 6362, 6382, 6388, 6397, 6403, 6414, 2817c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora 6420, 6429, 6435, 5303, 5309, 5318, 5324, 5335, 2827c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora 5341, 5350, 5356, 5376, 5382, 5391, 5397, 5408, 2837c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora 5414, 5423, 5429, 5454, 5460, 5469, 5475, 5486, 2847c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora 5492, 5501, 5507, 5527, 5533, 5542, 5548, 5559, 2857c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora 5565, 5574, 5580, 5603, 5609, 5618, 5624, 5635, 2867c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora 5641, 5650, 5656, 5676, 5682, 5691, 5697, 5708, 2877c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora 5714, 5723, 5729, 5754, 5760, 5769, 5775, 5786, 2887c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora 5792, 5801, 5807, 5827, 5833, 5842, 5848, 5859, 2897c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora 5865, 5874, 5880, 5744, 5750, 5759, 5765, 5776, 2907c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora 5782, 5791, 5797, 5817, 5823, 5832, 5838, 5849, 2917c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora 5855, 5864, 5870, 5895, 5901, 5910, 5916, 5927, 2927c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora 5933, 5942, 5948, 5968, 5974, 5983, 5989, 6000, 2937c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora 6006, 6015, 6021, 6044, 6050, 6059, 6065, 6076, 2947c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora 6082, 6091, 6097, 6117, 6123, 6132, 6138, 6149, 2957c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora 6155, 6164, 6170, 6195, 6201, 6210, 6216, 6227, 2967c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora 6233, 6242, 6248, 6268, 6274, 6283, 6289, 6300, 2977c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora 6306, 6315, 6321, 6116, 6122, 6131, 6137, 6148, 2987c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora 6154, 6163, 6169, 6189, 6195, 6204, 6210, 6221, 2997c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora 6227, 6236, 6242, 6267, 6273, 6282, 6288, 6299, 3007c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora 6305, 6314, 6320, 6340, 6346, 6355, 6361, 6372, 3017c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora 6378, 6387, 6393, 6416, 6422, 6431, 6437, 6448, 3027c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora 6454, 6463, 6469, 6489, 6495, 6504, 6510, 6521, 3037c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora 6527, 6536, 6542, 6567, 6573, 6582, 6588, 6599, 3047c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora 6605, 6614, 6620, 6640, 6646, 6655, 6661, 6672, 3057c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora 6678, 6687, 6693, 6557, 6563, 6572, 6578, 6589, 3067c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora 6595, 6604, 6610, 6630, 6636, 6645, 6651, 6662, 3077c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora 6668, 6677, 6683, 6708, 6714, 6723, 6729, 6740, 3087c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora 6746, 6755, 6761, 6781, 6787, 6796, 6802, 6813, 3097c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora 6819, 6828, 6834, 6857, 6863, 6872, 6878, 6889, 3107c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora 6895, 6904, 6910, 6930, 6936, 6945, 6951, 6962, 3117c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora 6968, 6977, 6983, 7008, 7014, 7023, 7029, 7040, 3127c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora 7046, 7055, 7061, 7081, 7087, 7096, 7102, 7113, 3137c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora 7119, 7128, 7134, 6392, 6398, 6407, 6413, 6424, 3147c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora 6430, 6439, 6445, 6465, 6471, 6480, 6486, 6497, 3157c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora 6503, 6512, 6518, 6543, 6549, 6558, 6564, 6575, 3167c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora 6581, 6590, 6596, 6616, 6622, 6631, 6637, 6648, 3177c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora 6654, 6663, 6669, 6692, 6698, 6707, 6713, 6724, 3187c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora 6730, 6739, 6745, 6765, 6771, 6780, 6786, 6797, 3197c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora 6803, 6812, 6818, 6843, 6849, 6858, 6864, 6875, 3207c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora 6881, 6890, 6896, 6916, 6922, 6931, 6937, 6948, 3217c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora 6954, 6963, 6969, 6833, 6839, 6848, 6854, 6865, 3227c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora 6871, 6880, 6886, 6906, 6912, 6921, 6927, 6938, 3237c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora 6944, 6953, 6959, 6984, 6990, 6999, 7005, 7016, 3247c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora 7022, 7031, 7037, 7057, 7063, 7072, 7078, 7089, 3257c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora 7095, 7104, 7110, 7133, 7139, 7148, 7154, 7165, 3267c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora 7171, 7180, 7186, 7206, 7212, 7221, 7227, 7238, 3277c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora 7244, 7253, 7259, 7284, 7290, 7299, 7305, 7316, 3287c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora 7322, 7331, 7337, 7357, 7363, 7372, 7378, 7389, 3297c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora 7395, 7404, 7410, 7205, 7211, 7220, 7226, 7237, 3307c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora 7243, 7252, 7258, 7278, 7284, 7293, 7299, 7310, 3317c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora 7316, 7325, 7331, 7356, 7362, 7371, 7377, 7388, 3327c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora 7394, 7403, 7409, 7429, 7435, 7444, 7450, 7461, 3337c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora 7467, 7476, 7482, 7505, 7511, 7520, 7526, 7537, 3347c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora 7543, 7552, 7558, 7578, 7584, 7593, 7599, 7610, 3357c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora 7616, 7625, 7631, 7656, 7662, 7671, 7677, 7688, 3367c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora 7694, 7703, 7709, 7729, 7735, 7744, 7750, 7761 3377c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora}; 3387c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora 3397c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arorastatic int VariableLevelCost(int level, const uint8_t probas[NUM_PROBAS]) { 340466727975bcc57c0c5597bcd0747a2fe4777b303Vikas Arora int pattern = VP8LevelCodes[level - 1][0]; 341466727975bcc57c0c5597bcd0747a2fe4777b303Vikas Arora int bits = VP8LevelCodes[level - 1][1]; 3427c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora int cost = 0; 3437c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora int i; 3447c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora for (i = 2; pattern; ++i) { 3457c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora if (pattern & 1) { 3467c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora cost += VP8BitCost(bits & 1, probas[i]); 3477c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora } 3487c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora bits >>= 1; 3497c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora pattern >>= 1; 3507c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora } 3517c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora return cost; 3527c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora} 3537c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora 354a2415724fb3466168b2af5b08bd94ba732c0e753Vikas Arora//------------------------------------------------------------------------------ 3557c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora// Pre-calc level costs once for all 3567c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora 3577c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Aroravoid VP8CalculateLevelCosts(VP8Proba* const proba) { 3587c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora int ctype, band, ctx; 359a2415724fb3466168b2af5b08bd94ba732c0e753Vikas Arora 360a2415724fb3466168b2af5b08bd94ba732c0e753Vikas Arora if (!proba->dirty_) return; // nothing to do. 361a2415724fb3466168b2af5b08bd94ba732c0e753Vikas Arora 3627c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora for (ctype = 0; ctype < NUM_TYPES; ++ctype) { 3637c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora for (band = 0; band < NUM_BANDS; ++band) { 3640406ce1417f76f2034833414dcecc9f56253640cVikas Arora for (ctx = 0; ctx < NUM_CTX; ++ctx) { 3657c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora const uint8_t* const p = proba->coeffs_[ctype][band][ctx]; 3667c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora uint16_t* const table = proba->level_cost_[ctype][band][ctx]; 3677c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora const int cost_base = VP8BitCost(1, p[1]); 3687c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora int v; 3697c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora table[0] = VP8BitCost(0, p[1]); 3707c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora for (v = 1; v <= MAX_VARIABLE_LEVEL; ++v) { 3717c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora table[v] = cost_base + VariableLevelCost(v, p); 3727c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora } 3737c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora // Starting at level 67 and up, the variable part of the cost is 3747c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora // actually constant. 3757c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora } 3767c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora } 3777c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora } 378a2415724fb3466168b2af5b08bd94ba732c0e753Vikas Arora proba->dirty_ = 0; 3797c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora} 3807c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora 381a2415724fb3466168b2af5b08bd94ba732c0e753Vikas Arora//------------------------------------------------------------------------------ 3827c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora// Mode cost tables. 3837c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora 3847c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora// These are the fixed probabilities (in the coding trees) turned into bit-cost 3857c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora// by calling VP8BitCost(). 3867c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Aroraconst uint16_t VP8FixedCostsUV[4] = { 302, 984, 439, 642 }; 387a2415724fb3466168b2af5b08bd94ba732c0e753Vikas Arora// note: these values include the fixed VP8BitCost(1, 145) mode selection cost. 3887c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Aroraconst uint16_t VP8FixedCostsI16[4] = { 663, 919, 872, 919 }; 3897c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Aroraconst uint16_t VP8FixedCostsI4[NUM_BMODES][NUM_BMODES][NUM_BMODES] = { 3907c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora { { 251, 1362, 1934, 2085, 2314, 2230, 1839, 1988, 2437, 2348 }, 3917c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora { 403, 680, 1507, 1519, 2060, 2005, 1992, 1914, 1924, 1733 }, 3927c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora { 353, 1121, 973, 1895, 2060, 1787, 1671, 1516, 2012, 1868 }, 3937c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora { 770, 852, 1581, 632, 1393, 1780, 1823, 1936, 1074, 1218 }, 3947c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora { 510, 1270, 1467, 1319, 847, 1279, 1792, 2094, 1080, 1353 }, 3957c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora { 488, 1322, 918, 1573, 1300, 883, 1814, 1752, 1756, 1502 }, 3967c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora { 425, 992, 1820, 1514, 1843, 2440, 937, 1771, 1924, 1129 }, 3977c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora { 363, 1248, 1257, 1970, 2194, 2385, 1569, 953, 1951, 1601 }, 3987c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora { 723, 1257, 1631, 964, 963, 1508, 1697, 1824, 671, 1418 }, 3997c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora { 635, 1038, 1573, 930, 1673, 1413, 1410, 1687, 1410, 749 } }, 4007c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora { { 451, 613, 1345, 1702, 1870, 1716, 1728, 1766, 2190, 2310 }, 4017c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora { 678, 453, 1171, 1443, 1925, 1831, 2045, 1781, 1887, 1602 }, 4027c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora { 711, 666, 674, 1718, 1910, 1493, 1775, 1193, 2325, 2325 }, 4037c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora { 883, 854, 1583, 542, 1800, 1878, 1664, 2149, 1207, 1087 }, 4047c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora { 669, 994, 1248, 1122, 949, 1179, 1376, 1729, 1070, 1244 }, 4057c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora { 715, 1026, 715, 1350, 1430, 930, 1717, 1296, 1479, 1479 }, 4067c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora { 544, 841, 1656, 1450, 2094, 3883, 1010, 1759, 2076, 809 }, 4077c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora { 610, 855, 957, 1553, 2067, 1561, 1704, 824, 2066, 1226 }, 4087c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora { 833, 960, 1416, 819, 1277, 1619, 1501, 1617, 757, 1182 }, 4097c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora { 711, 964, 1252, 879, 1441, 1828, 1508, 1636, 1594, 734 } }, 4107c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora { { 605, 764, 734, 1713, 1747, 1192, 1819, 1353, 1877, 2392 }, 4117c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora { 866, 641, 586, 1622, 2072, 1431, 1888, 1346, 2189, 1764 }, 4127c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora { 901, 851, 456, 2165, 2281, 1405, 1739, 1193, 2183, 2443 }, 4137c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora { 770, 1045, 952, 1078, 1342, 1191, 1436, 1063, 1303, 995 }, 4147c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora { 901, 1086, 727, 1170, 884, 1105, 1267, 1401, 1739, 1337 }, 4157c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora { 951, 1162, 595, 1488, 1388, 703, 1790, 1366, 2057, 1724 }, 4167c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora { 534, 986, 1273, 1987, 3273, 1485, 1024, 1399, 1583, 866 }, 4177c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora { 699, 1182, 695, 1978, 1726, 1986, 1326, 714, 1750, 1672 }, 4187c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora { 951, 1217, 1209, 920, 1062, 1441, 1548, 999, 952, 932 }, 4197c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora { 733, 1284, 784, 1256, 1557, 1098, 1257, 1357, 1414, 908 } }, 4207c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora { { 316, 1075, 1653, 1220, 2145, 2051, 1730, 2131, 1884, 1790 }, 4217c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora { 745, 516, 1404, 894, 1599, 2375, 2013, 2105, 1475, 1381 }, 4227c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora { 516, 729, 1088, 1319, 1637, 3426, 1636, 1275, 1531, 1453 }, 4237c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora { 894, 943, 2138, 468, 1704, 2259, 2069, 1763, 1266, 1158 }, 4247c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora { 605, 1025, 1235, 871, 1170, 1767, 1493, 1500, 1104, 1258 }, 4257c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora { 739, 826, 1207, 1151, 1412, 846, 1305, 2726, 1014, 1569 }, 4267c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora { 558, 825, 1820, 1398, 3344, 1556, 1218, 1550, 1228, 878 }, 4277c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora { 429, 951, 1089, 1816, 3861, 3861, 1556, 969, 1568, 1828 }, 4287c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora { 883, 961, 1752, 769, 1468, 1810, 2081, 2346, 613, 1298 }, 4297c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora { 803, 895, 1372, 641, 1303, 1708, 1686, 1700, 1306, 1033 } }, 4307c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora { { 439, 1267, 1270, 1579, 963, 1193, 1723, 1729, 1198, 1993 }, 4317c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora { 705, 725, 1029, 1153, 1176, 1103, 1821, 1567, 1259, 1574 }, 4327c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora { 723, 859, 802, 1253, 972, 1202, 1407, 1665, 1520, 1674 }, 4337c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora { 894, 960, 1254, 887, 1052, 1607, 1344, 1349, 865, 1150 }, 4347c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora { 833, 1312, 1337, 1205, 572, 1288, 1414, 1529, 1088, 1430 }, 4357c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora { 842, 1279, 1068, 1861, 862, 688, 1861, 1630, 1039, 1381 }, 4367c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora { 766, 938, 1279, 1546, 3338, 1550, 1031, 1542, 1288, 640 }, 4377c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora { 715, 1090, 835, 1609, 1100, 1100, 1603, 1019, 1102, 1617 }, 4387c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora { 894, 1813, 1500, 1188, 789, 1194, 1491, 1919, 617, 1333 }, 4397c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora { 610, 1076, 1644, 1281, 1283, 975, 1179, 1688, 1434, 889 } }, 4407c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora { { 544, 971, 1146, 1849, 1221, 740, 1857, 1621, 1683, 2430 }, 4417c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora { 723, 705, 961, 1371, 1426, 821, 2081, 2079, 1839, 1380 }, 4427c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora { 783, 857, 703, 2145, 1419, 814, 1791, 1310, 1609, 2206 }, 4437c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora { 997, 1000, 1153, 792, 1229, 1162, 1810, 1418, 942, 979 }, 4447c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora { 901, 1226, 883, 1289, 793, 715, 1904, 1649, 1319, 3108 }, 4457c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora { 979, 1478, 782, 2216, 1454, 455, 3092, 1591, 1997, 1664 }, 4467c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora { 663, 1110, 1504, 1114, 1522, 3311, 676, 1522, 1530, 1024 }, 4477c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora { 605, 1138, 1153, 1314, 1569, 1315, 1157, 804, 1574, 1320 }, 4487c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora { 770, 1216, 1218, 1227, 869, 1384, 1232, 1375, 834, 1239 }, 4497c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora { 775, 1007, 843, 1216, 1225, 1074, 2527, 1479, 1149, 975 } }, 4507c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora { { 477, 817, 1309, 1439, 1708, 1454, 1159, 1241, 1945, 1672 }, 4517c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora { 577, 796, 1112, 1271, 1618, 1458, 1087, 1345, 1831, 1265 }, 4527c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora { 663, 776, 753, 1940, 1690, 1690, 1227, 1097, 3149, 1361 }, 4537c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora { 766, 1299, 1744, 1161, 1565, 1106, 1045, 1230, 1232, 707 }, 4547c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora { 915, 1026, 1404, 1182, 1184, 851, 1428, 2425, 1043, 789 }, 4557c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora { 883, 1456, 790, 1082, 1086, 985, 1083, 1484, 1238, 1160 }, 4567c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora { 507, 1345, 2261, 1995, 1847, 3636, 653, 1761, 2287, 933 }, 4577c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora { 553, 1193, 1470, 2057, 2059, 2059, 833, 779, 2058, 1263 }, 4587c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora { 766, 1275, 1515, 1039, 957, 1554, 1286, 1540, 1289, 705 }, 4597c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora { 499, 1378, 1496, 1385, 1850, 1850, 1044, 2465, 1515, 720 } }, 4607c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora { { 553, 930, 978, 2077, 1968, 1481, 1457, 761, 1957, 2362 }, 4617c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora { 694, 864, 905, 1720, 1670, 1621, 1429, 718, 2125, 1477 }, 4627c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora { 699, 968, 658, 3190, 2024, 1479, 1865, 750, 2060, 2320 }, 4637c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora { 733, 1308, 1296, 1062, 1576, 1322, 1062, 1112, 1172, 816 }, 4647c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora { 920, 927, 1052, 939, 947, 1156, 1152, 1073, 3056, 1268 }, 4657c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora { 723, 1534, 711, 1547, 1294, 892, 1553, 928, 1815, 1561 }, 4667c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora { 663, 1366, 1583, 2111, 1712, 3501, 522, 1155, 2130, 1133 }, 4677c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora { 614, 1731, 1188, 2343, 1944, 3733, 1287, 487, 3546, 1758 }, 4687c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora { 770, 1585, 1312, 826, 884, 2673, 1185, 1006, 1195, 1195 }, 4697c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora { 758, 1333, 1273, 1023, 1621, 1162, 1351, 833, 1479, 862 } }, 4707c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora { { 376, 1193, 1446, 1149, 1545, 1577, 1870, 1789, 1175, 1823 }, 4717c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora { 803, 633, 1136, 1058, 1350, 1323, 1598, 2247, 1072, 1252 }, 4727c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora { 614, 1048, 943, 981, 1152, 1869, 1461, 1020, 1618, 1618 }, 4737c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora { 1107, 1085, 1282, 592, 1779, 1933, 1648, 2403, 691, 1246 }, 4747c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora { 851, 1309, 1223, 1243, 895, 1593, 1792, 2317, 627, 1076 }, 4757c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora { 770, 1216, 1030, 1125, 921, 981, 1629, 1131, 1049, 1646 }, 4767c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora { 626, 1469, 1456, 1081, 1489, 3278, 981, 1232, 1498, 733 }, 4777c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora { 617, 1201, 812, 1220, 1476, 1476, 1478, 970, 1228, 1488 }, 4787c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora { 1179, 1393, 1540, 999, 1243, 1503, 1916, 1925, 414, 1614 }, 4797c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora { 943, 1088, 1490, 682, 1112, 1372, 1756, 1505, 966, 966 } }, 4807c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora { { 322, 1142, 1589, 1396, 2144, 1859, 1359, 1925, 2084, 1518 }, 4817c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora { 617, 625, 1241, 1234, 2121, 1615, 1524, 1858, 1720, 1004 }, 4827c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora { 553, 851, 786, 1299, 1452, 1560, 1372, 1561, 1967, 1713 }, 4837c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora { 770, 977, 1396, 568, 1893, 1639, 1540, 2108, 1430, 1013 }, 4847c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora { 684, 1120, 1375, 982, 930, 2719, 1638, 1643, 933, 993 }, 4857c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora { 553, 1103, 996, 1356, 1361, 1005, 1507, 1761, 1184, 1268 }, 4867c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora { 419, 1247, 1537, 1554, 1817, 3606, 1026, 1666, 1829, 923 }, 4877c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora { 439, 1139, 1101, 1257, 3710, 1922, 1205, 1040, 1931, 1529 }, 4887c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora { 979, 935, 1269, 847, 1202, 1286, 1530, 1535, 827, 1036 }, 4897c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora { 516, 1378, 1569, 1110, 1798, 1798, 1198, 2199, 1543, 712 } }, 4907c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora}; 4917c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora 492a2415724fb3466168b2af5b08bd94ba732c0e753Vikas Arora//------------------------------------------------------------------------------ 4937c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora 4947c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora#if defined(__cplusplus) || defined(c_plusplus) 4957c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora} // extern "C" 4967c970a0a679089e416c5887cf7fcece15a70bfa4Vikas Arora#endif 497