/** * Nicolas Cage: The Game * By Raphael Rouvinov-Kats * For Brian's birthday * * P to pause * Dodge the bees * Lightbulbs give you health * Scrolls give you 3 seconds of invincibility * * Pauses after 3 times make you lose some health * Moving your mouse offscreen to move nick across the screen * also loses some health * */ var bees = []; var powerups = []; var gameMode = 0; var health = 100; var lucida = loadFont("lucida sans", 48); var tahoma = loadFont("tahoma", 48); var impact = loadFont("impact", 48); var verdana = loadFont("Verdana", 48); var beesDodged = 0; var beeDmgAmt = 2; var invincible = false; var invinciblestart = millis(); var mouseIsOut = false; var outTime = millis(); var pauseCount = 0; var cageX; var cageY; var cagew = 61; var cageh = 80; var cage = [16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,932741239,1920622162,2473085243,2841460013,3310037787,3460375573,3259509790,2790932015,2790932016,2740469553,2170638919,1149269871,61251481,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,1602644830,3193844511,3361287193,3093180963,4283903518,4284035873,4284036386,4283445020,4281999380,4281867796,4282328347,4282196761,4281538830,4281407502,4281539602,3560119057,3811184903,3191744287,1819172438,111582616,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,212179348,2422294589,3611434254,3411158806,4284296474,4284822560,4284625952,4284231966,4283706138,4283443736,4283247129,4282196243,4281933587,4281933844,4281802515,4281210636,4281998092,4282721301,4282130197,4282130199,4282985250,4282854177,2890675499,2790275888,1651860828,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,630622339,2371569472,3459324436,3760918792,4281866510,4282325518,4282850574,4283310095,4284296474,4284954658,4284626208,4283442451,4283442966,4283640859,4282786834,4282853142,4282787864,4282262035,4281801743,4282852370,4283509787,4282327574,4282526240,4282328860,4282723361,4282986791,4282460703,3309053724,3308856602,3091082787,1350003559,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,2538881337,3760984840,4281538571,4282130450,4282130195,4282195731,4282721046,4282917396,4283113746,4283310353,4284428061,4284888869,4283968023,4283441938,4283968283,4283838233,4283706905,4283115283,4282654991,4282786834,4283837468,4284166694,4282393369,4281408788,4281014542,4280948493,4280881673,4281014029,4281343251,4281540887,4282199330,2940416554,3308462362,1969378383,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,3409059351,3610056206,4281473293,4281866765,4282261007,4282261522,4281933073,4282261267,4282589460,4282917911,4282785553,4283968539,4284100380,4283968280,4283639315,4284231195,4284232220,4284363550,4283706392,4282982928,4283180821,4284231969,4283838244,4281998870,4281080081,4281080594,4280488199,4281145617,4281935133,4280290822,4280357384,4280883728,4281014802,4281015059,3358531608,3659600652,1969182032,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,881557113,3609728527,3660583693,4282326807,4282787100,4282984221,4282983450,4282129936,4282393880,4282459161,4281867022,4282458648,4282129166,4283312920,4283773470,4283904028,4283903511,4284166425,4284495394,4284298017,4284101409,4283377944,4283180566,4283641374,4283116318,4281736726,4280948241,4280948240,4280816652,4280948496,4280488202,4280093957,4280357642,4280028934,4280422664,4280620814,4280752915,4280687895,3558609936,3608744206,1149006447,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,2170703944,3609991182,4281539861,4282326293,4282654487,4282391572,4282128914,4282260502,4281999123,4282328087,4282590746,4282591002,4282393883,4282064915,4282985240,4283905827,4284102691,4283970076,4284232732,4284495652,4284101409,4284167973,4283379232,4282984988,4283051037,4282788381,4281539089,4281276432,4281144076,4281012747,4280882190,4281276948,4281145875,4280620302,4280621072,4280751374,4280488459,4280357643,4280687637,4280556309,4279767566,3659337484,2940415529,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,3040816165,3609728783,4281802518,4282326804,4282392855,4282261269,4281735440,4281539348,4280881935,4281144334,4282129939,4282786837,4283247129,4283445024,4282655764,4283511068,4283905056,4283772700,4284364066,4284561188,4284363812,4284101666,4283839523,4283117085,4283315236,4282853660,4282721304,4282523924,4282194959,4282129166,4281800203,4282392599,4282852638,4281603856,4280619273,4280686351,4280816915,4280619278,4280685582,4280488973,4280556050,4280490515,4280095246,3558937104,3509524499,312775824,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,1551722336,3460046612,3760656649,4281211924,4282065690,4282722076,4282262809,4281934360,4281277204,4281014547,4280817426,4281735954,4283180311,4284428572,4284755992,4284821783,4284822043,4284887582,4284493594,4284165399,4284494621,4285152809,4284956464,4284035874,4284628009,4284956716,4285219887,4284035101,4283969053,4283969053,4283508502,4283837468,4284100124,4284823077,4284428836,4283048985,4281670417,4280422921,4279568645,4279634695,4279503623,4279766539,4279963917,4280095755,4280293393,4280753432,4280686096,3309250332,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,2690334772,3410109463,4281669903,4280881419,4281671449,4282328605,4282130452,4281080076,4280554764,4280751888,4280750858,4281406987,4283442708,4285281564,4286990121,4287383331,4287580451,4287711784,4286725409,4287252525,4286793516,4286860338,4286335279,4286007348,4286270519,4286993469,4287913540,4287913024,4286531374,4286662962,4286202411,4285478944,4286399790,4286991411,4287187761,4286070056,4285216807,4283443739,4281341192,4279962882,4279438085,4279175432,4279175175,4279568647,4279963398,4280424463,4280491028,4280292878,3509394707,1551263583,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,1702650457,3661241357,4282788636,4281539086,4281539091,4281801752,4281538576,4281407500,4280883470,4280488974,4280356102,4281668101,4284230162,4286594591,4288565806,4289682740,4290076723,4290800447,4290801218,4290341440,4290276420,4290409036,4290541652,4290147923,4289687889,4290279769,4290476634,4290672985,4290080592,4289620298,4289620813,4289094212,4288436282,4288896833,4289160005,4288830271,4288238393,4287384372,4286203181,4284429084,4281997579,4280421381,4279568135,4279437062,4279896580,4280356612,4280423691,4279964171,4279963914,4281279000,3191416863,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,3761705993,4282195472,4283117601,4281736722,4281933335,4281670165,4281473040,4281145099,4280226058,4280225289,4281340424,4285084703,4288040234,4289747504,4290338611,4290929717,4291719232,4292114763,4292313425,4292643670,4292906845,4292972899,4293302125,4293170798,4292973675,4292973676,4292842092,4292776046,4292249447,4291987044,4291460957,4290934614,4291131992,4290539856,4290276685,4289750346,4289684040,4289092930,4288173625,4287122479,4284887840,4282588435,4280750094,4280027399,4280290051,4281144585,4281013517,4280883475,4280292109,4281015573,3358532120,1550739040,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,2639740981,3661043725,4283379491,4283182627,4281736208,4281802001,4281210892,4280817164,4280488973,4280423436,4281734150,4285806367,4289551674,4290536761,4290996283,4291456321,4291720005,4292115277,4292576342,4292708441,4293169504,4293695850,4293761644,4294024306,4294024564,4293893238,4294156412,4294024828,4294024831,4293827709,4293433720,4292711023,4291855458,4292184423,4291921507,4291459932,4290867283,4290275404,4289749572,4289355328,4288829497,4286990380,4284953373,4282719246,4281602829,4280880395,4281340682,4281604107,4281407501,4281211666,4280357387,4280554765,3358794008,16777215,16777215,16777215,16777215,16777215,16777215,16777215,379753870,3560512785,4282721819,4282918941,4282063888,4281735693,4281736464,4281473809,4280948495,4280553480,4281864705,4285872928,4289552445,4290997056,4291588420,4292048459,4292246095,4292575316,4292576087,4292839515,4293102943,4293498214,4293958766,4294090099,4294155894,4294419067,4294156668,4294354049,4294550916,4294419590,4294222212,4293828479,4293236598,4292776047,4292578668,4292644460,4292183398,4291656799,4291130711,4290604881,4290079051,4289619012,4289027392,4287121454,4284492567,4282916626,4281734928,4281669388,4282129936,4281933331,4281803034,4281278232,4280685838,3509525523,881361018,16777215,16777215,16777215,16777215,16777215,16777215,3041538342,4282788382,4282524697,4281997839,4282129423,4282129679,4281933073,4281340939,4281208581,4282391053,4286725404,4289682998,4291259713,4292113734,4292508750,4292443218,4292640598,4293101406,4293299811,4293497447,4293695338,4293761388,4294090098,4294287479,4294616446,4294813826,4294682755,4294616964,4294616965,4294551175,4294222212,4294025344,4293433720,4293170548,4293170548,4293038962,4292709741,4292315242,4291657569,4291263325,4291066459,4290605907,4290670160,4289421121,4286858024,4284164373,4282194185,4281471493,4281866252,4282591005,4282723878,4282133027,4281606940,4281935904,2421179709,16777215,16777215,16777215,16777215,16777215,16777215,3192269599,4282393624,4281932559,4282261011,4282721560,4282261008,4281471496,4281733381,4283440651,4286726695,4290207031,4291653443,4292376905,4292771407,4292771411,4292903514,4293232738,4293430372,4293431399,4293694828,4293958256,4293958769,4294155894,4294353275,4294682240,4294879621,4294945927,4294880393,4294748552,4294682762,4294353797,4294156673,4293827708,4293696122,4293564536,4293301364,4292906864,4292644465,4292118890,4291724388,4291527523,4291330145,4291131739,4290539344,4288961597,4286135588,4283507731,4282588690,4281800202,4281932817,4282460193,4281671963,4281540891,4280488973,3508869650,16777215,16777215,16777215,16777215,16777215,1032945267,3761313289,4282262038,4282590233,4282984734,4282984733,4281866251,4282326033,4283835925,4286396185,4289746735,4291455558,4292311377,4292509522,4292640852,4293100893,4293232225,4293561447,4293496167,4293760109,4294023281,4294286966,4294221943,4294353274,4294484862,4294813827,4294945671,4294946184,4294945929,4294814344,4294814347,4294551177,4294353539,4294156416,4294024830,4293827194,4293564279,4293170036,4292776564,4292448111,4292053610,4291856488,4291725417,4291265641,4291066717,4290408271,4288107836,4284624160,4282851093,4282655254,4282393112,4281999385,4280750605,4280290825,4280094474,3709538570,1031632756,16777215,16777215,16777215,16777215,3091541539,4281802771,4282393623,4282918424,4283312410,4282983189,4282720787,4283179282,4284294157,4287972384,4291060534,4292113486,4292640600,4292969819,4293101405,4293232736,4293232736,4293627493,4293825131,4294089074,4294352504,4294549883,4294615934,4294616191,4294616706,4294814086,4294946186,4294880650,4294880650,4294749323,4294617483,4294485897,4294354309,4294222723,4294025343,4293959551,4293893757,4293367929,4292973944,4292776821,4292448370,4292119662,4291988589,4291923312,4291528295,4290804316,4289291851,4287056178,4284033047,4282259466,4281998610,4282131998,4281606426,4280357387,4279766794,4279701000,2169784903,16777215,16777215,16777215,16777215,3760787976,4281868821,4281998864,4282852630,4283508760,4283113745,4283179540,4283572495,4285805594,4289682486,4291389756,4292376912,4292903771,4293101149,4293232736,4293298528,4293561699,4293890921,4294154095,4294286197,4294484091,4294615678,4294747521,4294748035,4294814086,4294880138,4294946446,4294946700,4294946701,4294880654,4294749069,4294551692,4294420105,4294354311,4294354311,4294288518,4294091139,4293631102,4293236860,4292908408,4292777079,4292383091,4292185456,4292185711,4291791468,4291068261,4290081879,4288239675,4284887322,4282850830,4281800717,4281737239,4281869851,4281212951,4280293394,4280161294,3090425636,16777215,16777215,16777215,1199928942,3911388675,4281145098,4282064657,4283313181,4283311381,4282981901,4283179023,4284360722,4287383337,4290405694,4291718980,4292574548,4293035356,4292969563,4293298528,4293495907,4293759079,4294088302,4294351476,4294286199,4294549885,4294681728,4294879621,4294945414,4294945931,4294946446,4294946704,4294946959,4294946960,4294946705,4294815120,4294683279,4294617741,4294617740,4294552204,4294420361,4293959810,4293696896,4293368446,4292908408,4292777079,4292383091,4292251505,4292185968,4291988846,4291463018,4290805345,4288897606,4285347359,4283179024,4282392339,4281736468,4281605908,4281343509,4280818710,4280555281,3458734612,16777215,16777215,16777215,3040948005,4280685063,4281868821,4282656794,4282721044,4283048209,4283376402,4284099093,4285543448,4288566064,4291128646,4291785031,4292574805,4293035612,4293166942,4293495907,4293693286,4294022253,4294219633,4294417271,4294549372,4294812801,4294813316,4294945673,4294880394,4294880654,4294947218,4294947732,4294881938,4294750353,4294881940,4294947479,4294552722,4294420877,4294618511,4294355339,4294092168,4293894789,4293631617,4293302653,4292908408,4292842872,4292383091,4292185712,4292185969,4292186225,4291726189,4291134311,4289489744,4286531376,4283507217,4282654739,4282393882,4281604880,4281539602,4281146390,4280686095,3559266064,16777215,16777215,16777215,3911192066,4281475092,4282131993,4282196243,4282326285,4283574553,4284034075,4284755993,4286463006,4289551671,4291391558,4291851338,4292574805,4293166942,4293298528,4293430114,4293824871,4294087790,4294087793,4294219894,4294483580,4294747010,4294879368,4294946188,4294946703,4294880912,4294881426,4294947733,4294750610,4294684561,4294750356,4294882201,4294816153,4294618514,4294552977,4294290061,4294158219,4293763461,4293500289,4293302653,4292908408,4292777079,4292383091,4292251505,4292185969,4292054896,4291660397,4290936932,4289884501,4288043588,4284164375,4282587918,4282458648,4282064659,4281736466,4281606170,4280948496,3659928845,931495288,16777215,16777215,3911060482,4282198302,4281868051,4281801486,4282918424,4284035105,4284099611,4284953114,4287646763,4290143291,4291194436,4291522890,4292443221,4293101150,4293298785,4293561701,4293693287,4293890668,4293956719,4294219894,4294549373,4294615424,4294879110,4294880395,4294880653,4294815632,4294881683,4294947990,4294816404,4294750612,4294882199,4294882199,4294553236,4294619027,4294553746,4294290061,4294158474,4293828996,4293565824,4293236861,4292908151,4292711029,4292382835,4292251505,4292383091,4292383348,4291791983,4291002981,4290148186,4288701772,4285084961,4283245333,4282721306,4282459676,4281934103,4281539606,4281079825,4280882960,1868847443,16777215,161914006,3659862540,4282328608,4281472525,4281406986,4282853402,4283509019,4283112717,4285150238,4287712043,4289945913,4290866243,4291392590,4292377942,4292838236,4293299044,4293496167,4293825131,4293825901,4293957487,4294220661,4294549629,4294615422,4294878852,4294945930,4294683530,4294684302,4294816660,4294817173,4294816918,4294816662,4294948248,4294816662,4294553234,4294356623,4294488208,4294224523,4294157703,4294025347,4293762432,4293236860,4292842359,4292711286,4292514164,4292317298,4292514421,4292252018,4291792495,4291003495,4290412129,4289623897,4286072621,4283310868,4283116064,4282328862,4282658597,4281605910,4280619529,4280685325,2638821941,16777215,1350266215,4281277719,4281539607,4281012745,4281670929,4282985503,4282654225,4283112974,4285281567,4287975215,4290143548,4291063622,4291261005,4292246870,4292641627,4293167971,4293431143,4293891694,4293891950,4293892207,4294286967,4294418555,4294747265,4294945159,4294748551,4294815116,4294684302,4294816403,4294882966,4294882454,4294750612,4294750869,4294684819,4294487697,4294356109,4294356108,4294290059,4294026630,4293828738,4293631360,4293302910,4293039994,4292843129,4292712056,4292712056,4292514677,4292120945,4291595373,4290806886,4290544229,4290084191,4287914311,4284626470,4282984220,4282131224,4282197789,4282329633,4281540374,4281343511,3141019426,16777215,2019841101,4280751118,4280947984,4281079567,4281671701,4282459930,4282457874,4283639833,4285018651,4288172594,4290209341,4291195208,4291195467,4292049747,4292707420,4292970592,4293365607,4293562986,4293695085,4293827185,4294287481,4294353276,4294748035,4294879622,4294814344,4294815116,4294750095,4294750866,4294751123,4294816405,4294882198,4294881942,4294881941,4294750356,4294618512,4294421132,4294421132,4294290059,4293829508,4293566337,4293303166,4293040508,4292909435,4292778362,4292713082,4292647033,4292186996,4291464301,4290741349,4290807658,4290347362,4288571726,4286007607,4283773478,4282196503,4281539857,4281671447,4281935133,4281014290,3458865428,16777215,2321370178,4280751118,4280620046,4280817167,4281606680,4282065944,4282326804,4283443225,4284887065,4287843629,4290275134,4291063622,4291392846,4291787345,4292576861,4292708447,4293234791,4293432170,4293432683,4293761648,4294156408,4294616705,4294879877,4294880136,4294748551,4294617737,4294684302,4294685074,4294751124,4294947478,4294947221,4294881429,4294947222,4294815636,4294552205,4294289032,4294355082,4294158473,4293961607,4293501313,4293172093,4292974971,4292909691,4292778875,4292779132,4292581753,4292187252,4291201386,4290938986,4290742378,4290215518,4289492057,4286665023,4283838756,4282656796,4282065944,4281145359,4281343253,4281343255,3458996756,16777215,2070304076,4280027652,4280028167,4280686095,4281344022,4281342736,4282327831,4282983188,4284426516,4287514922,4290274878,4291129415,4291590226,4291589968,4292313434,4292773984,4293102948,4293563756,4293629806,4293630062,4294024821,4294485119,4294616706,4294880136,4294814346,4294551687,4294750095,4294750866,4294685330,4294881171,4294880915,4294749585,4294815378,4294880915,4294749328,4294420362,4294421132,4294092937,4293764485,4293501571,4293172865,4293041278,4293041792,4292910719,4292647804,4292450168,4291990130,4291267692,4290873450,4290611048,4290018395,4289492055,4287783245,4284890929,4282985246,4282197273,4281474325,4281343252,4281474841,3459062549,16777215,831489148,3910403842,4279832073,4280358158,4281278231,4281145358,4281868051,4282327059,4284230938,4287647025,4290011453,4290603328,4291459154,4291524437,4292181082,4292904290,4293167716,4293497962,4293892722,4294024053,4294024568,4294353534,4294485635,4294682504,4294879115,4294945677,4294947217,4294816658,4294685329,4294882195,4294750609,4294619023,4294618767,4294750609,4294750609,4294355852,4294224524,4294027917,4293633418,4293304968,4293239945,4293174152,4293042566,4292845444,4292647808,4292253307,4291728502,4291137649,4290874477,4290939501,4290675815,4289623900,4288046671,4285483062,4283247901,4282788125,4281934104,4281540372,4281475093,3359122201,16777215,16777215,3860269573,4279963402,4280094987,4280883473,4281276944,4282197015,4282195730,4283902488,4286923304,4289682744,4290340158,4291196496,4291524694,4292115803,4292838755,4293036902,4293498478,4293959031,4294156155,4293893498,4294091391,4294289029,4294551433,4294550921,4294617484,4294947733,4294751124,4294685843,4294882710,4294882710,4294949016,4294751123,4294750867,4294488465,4294159245,4293962381,4293633931,4293371018,4293437068,4293437324,4293568909,4293502860,4293305481,4292910980,4292384895,4291794555,4291203701,4290940785,4291071088,4290873452,4290216293,4288507221,4285154095,4283511073,4282853662,4282065432,4281671701,4281672214,3309119260,111778968,16777215,3659797261,4280423439,4279897094,4281080339,4282065690,4282064660,4282195218,4283573782,4286134302,4289551418,4290603588,4290868301,4291065169,4291722072,4292510818,4293037674,4293630838,4294091647,4294289284,4293960577,4293895042,4294092936,4294026632,4294026635,4294355857,4294751128,4294488726,4294488983,4294751898,4294949277,4294554519,4294159761,4294488470,4294094738,4293963410,4293766288,4293305997,4293306512,4293767061,4293634959,4293503629,4293174665,4292977286,4293174665,4292648838,4291992448,4291335545,4290809457,4290940017,4290873452,4290545258,4289165152,4286009405,4283642403,4282787868,4282196503,4282066201,4281935128,3409650455,16777215,16777215,3609925646,4280357388,4280291339,4281737755,4282131226,4281998610,4281997838,4282850831,4286266660,4289749055,4290472518,4290605389,4290671693,4291394134,4292577382,4293432950,4293763455,4293632384,4294027398,4293764228,4293567364,4293567879,4293436552,4293896849,4294094228,4294160277,4294160278,4294094741,4294489499,4294555549,4293699983,4293371018,4293568397,4292779909,4292780423,4291925371,4291662715,4291531388,4291268215,4291005040,4291005041,4290347110,4289754973,4290346854,4291333493,4291861120,4291467646,4290809716,4290546030,4290873710,4290479209,4289230944,4286207041,4283510817,4282722331,4282393368,4282065686,4282065943,3409715734,16777215,16777215,3359056920,4280488204,4280554254,4281342741,4282196506,4282064146,4282063375,4282718989,4286135076,4289683777,4290341190,4290408267,4290606412,4291723612,4292841068,4292841328,4291658339,4291001179,4291198815,4291001952,4290476122,4290015829,4290805860,4292582531,4292187516,4291463794,4292713347,4293305484,4293437583,4293963927,4292911239,4291858551,4291595379,4290346339,4289754974,4288571216,4286531891,4285545254,4284953631,4285809455,4286796350,4286401592,4286861886,4287848780,4288175945,4289689953,4290875767,4290876280,4290414447,4291005552,4290610794,4289165151,4286601542,4283708196,4282787610,4282919454,4282262807,4282263320,2790472496,16777215,16777215,2890413355,4281014028,4280948493,4281341971,4281867542,4281604366,4281998608,4283639831,4286924589,4289749569,4290670667,4290408524,4290736975,4291460701,4290145359,4288962374,4288042559,4287057205,4286860853,4286729780,4285348128,4285347618,4286203184,4287914057,4288176457,4287846719,4288898635,4291397742,4292977032,4293503888,4292583043,4291662196,4290478179,4289754462,4288109897,4286663220,4285019167,4284033560,4284364321,4284760615,4285088298,4286271290,4287585869,4287848271,4287519817,4287388743,4288705372,4290415989,4290481524,4290940786,4290742894,4289231201,4287588435,4285155639,4283248673,4282591514,4282525206,3510641683,881951354,16777215,16777215,2221100870,4281474061,4281539855,4281539346,4282196506,4281801745,4282261778,4284626467,4287384881,4290078276,4290736459,4290409038,4290474065,4289027135,4287778612,4287713593,4287845439,4286597427,4286138415,4285349670,4284822814,4284690461,4285084706,4285413668,4286531889,4287320888,4287451958,4290215006,4292516479,4293569680,4292780677,4292649604,4291268208,4288966737,4288900431,4289753941,4290082138,4289687132,4290148710,4290149476,4289754718,4289755230,4290018146,4289755745,4288705118,4288508253,4288705373,4289889902,4290350452,4290940786,4290743150,4289626215,4287061833,4285023538,4283774759,4282591000,4282787091,3410700567,16777215,16777215,16777215,1351053671,4281669897,4281999634,4281341708,4281801745,4282129936,4282852630,4285087018,4287910969,4290604877,4291065424,4290475089,4289489228,4288371005,4289226571,4290213466,4291265898,4290082652,4288965970,4289493602,4289690727,4289097305,4288569678,4289095764,4290148707,4289754458,4288570951,4289886808,4292385146,4294095508,4293372299,4292583297,4289951834,4289492565,4291268204,4290871648,4289291594,4288700235,4287714373,4288109134,4289030745,4289294168,4289097296,4289360980,4289888618,4289691497,4290020460,4290283887,4290613107,4291071602,4290808430,4290152045,4287456078,4284826159,4284234282,4283049749,4283640856,2591050552,16777215,16777215,16777215,832801404,4282063109,4282195982,4281868049,4282130964,4282852372,4283377945,4284626211,4288042555,4291130964,4291328340,4290738261,4289752914,4289687122,4289950294,4290608481,4290016602,4288768334,4287257927,4286602057,4286470472,4286073400,4287583555,4289160529,4290147677,4290806374,4289622610,4289688143,4292713593,4294358420,4293766541,4292122233,4289688150,4290871657,4290739045,4289226320,4287716681,4287261272,4284634181,4282727730,4282790694,4285089849,4286994245,4288505427,4288571730,4289822052,4290611566,4290809200,4291269750,4291268466,4290873710,4290348911,4288442460,4285351990,4284890927,4286139707,4288638550,1453422947,16777215,16777215,16777215,313826447,3712491531,4282589711,4281670410,4282591512,4283970338,4283706139,4284758053,4288700742,4291394137,4291394390,4291132762,4291002206,4290147413,4289687635,4287122996,4285544736,4286469697,4284895040,4282924340,4282529584,4285026633,4288179548,4287977023,4290411104,4291068774,4289620555,4290212689,4293108091,4294424210,4293963919,4291200618,4289885273,4291200619,4291067748,4288896326,4288833621,4290879631,4286213984,4283320637,4283646518,4286734678,4286796872,4286202419,4288373579,4289886815,4290873965,4291137392,4291335026,4291465331,4291070832,4290611569,4288442204,4285417527,4285877564,4288572247,4288965715,784504446,16777215,16777215,16777215,16777215,3043835942,4283641884,4281933327,4283708449,4285744689,4284297501,4285350187,4289094984,4291591257,4291722840,4291593308,4291593053,4290738261,4288699454,4284818702,4286069543,4290218617,4287723370,4284765516,4284896845,4286999647,4289757550,4288765767,4289489488,4291791725,4290342478,4290868305,4293303926,4294488973,4293831304,4291134565,4290016344,4291399019,4291265633,4290407248,4290341974,4290016866,4289033058,4288967781,4288638044,4289492581,4289228894,4288110153,4288505418,4289623897,4291005293,4291662965,4291728757,4291662195,4291202161,4290743156,4289231463,4286206271,4287718226,4288175433,4287056946,583835526,16777215,16777215,16777215,16777215,2174052679,3260625437,4282721817,4285941810,4287123251,4284625433,4285481768,4289686861,4291919706,4292446046,4292448097,4292644965,4291065680,4288895031,4288302901,4288500282,4289684563,4289752413,4289294430,4289426270,4289686868,4289816655,4290671195,4291264612,4292712052,4290802252,4291327051,4293696373,4294750347,4293962117,4291529062,4289885011,4291134563,4293106300,4291787618,4290932055,4291131745,4290805091,4290344801,4290016092,4289622361,4290083682,4291071090,4290940270,4290676840,4291596916,4292319869,4292056440,4291595888,4291071087,4290678133,4288902498,4286797122,4288768854,4290805353,4290675047,483632522,16777215,16777215,16777215,16777215,16777215,3261085213,4282325256,4288439885,4291003494,4285610786,4285678634,4289950033,4291788121,4292314460,4292973672,4293368427,4291920984,4290868557,4291855714,4290934872,4290933337,4290802012,4291001447,4291199081,4291131229,4291065177,4291329632,4292646256,4292579945,4290999626,4291524685,4293762423,4294486919,4293501568,4291528808,4290345563,4291200611,4293106809,4292578413,4291460191,4291461989,4291990390,4291991421,4291333747,4291202419,4291465847,4291597690,4291597430,4291662966,4292057467,4292056697,4291925111,4291530866,4291137395,4290744183,4288441946,4287191878,4289426782,4291924341,4292253560,634758019,16777215,16777215,16777215,16777215,16777215,1654158427,3562481936,4290805856,4292514416,4287911998,4286795831,4289883984,4291591254,4292248410,4293367146,4293565291,4293039204,4292644707,4292842603,4292842605,4292580207,4292515189,4292515707,4292449915,4292054639,4292383087,4293238137,4293369459,4293039462,4291525454,4291590737,4293894011,4294552714,4293501570,4291923567,4290674274,4291858540,4292910712,4293764996,4293238396,4292844666,4293175176,4292913291,4292649863,4292518277,4292189055,4291991932,4291925110,4291859317,4291859575,4291727732,4291727989,4291465588,4291005812,4290415477,4288507481,4287849036,4290413416,4292056181,4291660393,534685831,16777215,16777215,16777215,16777215,16777215,16777215,2793754671,4292448361,4292643943,4289489487,4287255356,4289357640,4291394133,4292445533,4293432169,4293630573,4293236072,4292907622,4293236845,4293631861,4293305466,4293109378,4292977284,4292845443,4293437833,4293766283,4294488206,4294026361,4293301092,4291853395,4291787866,4293828221,4294684302,4294158988,4292055156,4290805605,4291924336,4292779642,4293766282,4293832077,4293568906,4293701008,4293768342,4293701523,4293438093,4293371531,4292976773,4292450428,4292187513,4292121977,4292188283,4291794038,4291268725,4290809463,4290349429,4288639067,4287322432,4290215779,4292845698,4291856746,685416322,16777215,16777215,16777215,16777215,16777215,16777215,1873901395,4292841831,4293432687,4291134055,4286925879,4288897345,4290868302,4292313434,4293234021,4293564014,4293498734,4293498991,4293499762,4293763191,4293962113,4294028426,4293961870,4294225044,4294620315,4294620569,4294290828,4293565041,4292774238,4292181852,4291853408,4293565050,4294684303,4294093197,4292383865,4291200364,4291792753,4292253302,4293438091,4293964180,4293898132,4293766289,4293701009,4294029460,4294094227,4294027407,4293501063,4293107075,4292844673,4292713600,4292385405,4291925624,4291268982,4290809720,4290218099,4287717964,4288637778,4290215523,4292713859,635936131,316516496,16777215,16777215,16777215,16777215,16777215,16777215,1154847855,4293500280,4294752407,4292518020,4287123512,4288634689,4290474575,4291986012,4292840035,4293825389,4294089075,4294024567,4294091132,4293894524,4294289537,4294684813,4294422932,4294490012,4294556062,4294686618,4294421640,4292907884,4292446562,4292380001,4291853403,4293432946,4294815119,4294093200,4292449919,4291332721,4291595376,4291792241,4292911236,4294161046,4294227098,4293963925,4294095766,4294292632,4294554264,4294552981,4294157966,4293763719,4293633159,4293108101,4292385406,4291925882,4291268983,4290744184,4289890674,4288442970,4289822564,4292188802,4292844681,166963861,16777215,16777215,16777215,16777215,16777215,16777215,16777215,1038063987,4294026111,4294950557,4292253561,4288504134,4289028935,4290079819,4291394133,4292577122,4293760111,4294155383,4294485119,4294222976,4294289284,4294618247,4294553227,4294423445,4294292633,4294621598,4294686359,4293763452,4292710249,4292709991,4292314465,4291985245,4293498482,4294354568,4293830029,4292581506,4291859065,4292121977,4292187256,4292253049,4293503116,4294490012,4294424475,4294358682,4294489754,4294488471,4294356116,4294289552,4294026892,4293567368,4293042309,4292451713,4291860604,4291203191,4290481268,4290088053,4289298279,4289427550,4292649094,4293041802,217164179,16777215,16777215,16777215,16777215,16777215,16777215,16777215,937269879,4294222462,4294948756,4293369982,4291001951,4289357385,4289553737,4290473550,4292051293,4293366381,4293959032,4294485121,4294551942,4294749579,4294749579,4294816402,4294620569,4294752927,4294950305,4294553745,4293302132,4292776042,4292775784,4292183649,4292512360,4293564532,4294288775,4293698443,4292976264,4292253823,4291661685,4291661427,4291924084,4292779393,4294226067,4294555290,4294687390,4294884256,4294751644,4294422165,4294158736,4293895821,4293238918,4292779395,4292386178,4291729277,4290875253,4290416246,4290088566,4290022002,4289624159,4291398512,4292252282,485007497,16777215,16777215,16777215,16777215,16777215,16777215,16777215,484353674,1039112564,4294485118,4294486403,4291723614,4288632891,4289225289,4289881931,4291788381,4292775271,4293367666,4294025342,4294354565,4294617482,4294815374,4294882454,4294817436,4294949792,4294816919,4293828737,4293761913,4292314721,4292117854,4291723611,4292184165,4293762167,4294617739,4294093201,4293042057,4292253823,4290938477,4290740841,4290937447,4293108101,4294028429,4294554773,4294620314,4294817693,4294686107,4294554265,4294225556,4293896335,4293173383,4292450945,4291728765,4291268984,4290546803,4290219380,4290154616,4289955696,4289426267,4290345053,1455652452,735549056,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,1206752366,4294286709,4293826928,4292774757,4289158465,4289160012,4289355846,4291130710,4292381284,4292907630,4293433719,4294025345,4294617483,4294947219,4294750869,4294751643,4294817435,4294289802,4294354309,4293234799,4292117085,4292710248,4291592282,4291526748,4293630325,4294815118,4294027407,4292778885,4292253823,4291267701,4291530872,4291069290,4293107842,4293962377,4294356623,4294751387,4294685594,4294422935,4294422935,4294160276,4293831056,4293107848,4292319874,4291531643,4291006071,4290481266,4290088307,4289957494,4290021489,4289754975,4290279003,1556249951,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,887987577,4294485118,4293760621,4293761136,4289948746,4288897862,4288831042,4290079053,4291526497,4292579182,4293170803,4293894013,4294551689,4294881682,4294882712,4294882974,4294619287,4294619283,4294157703,4291985763,4292578407,4293630835,4292709480,4291919455,4293433720,4294553230,4293896590,4292976775,4292188032,4292319362,4292253825,4291464306,4292384635,4294290833,4294487186,4294751385,4294751642,4294423190,4294160532,4293897360,4293305225,4292779397,4292057216,4291400572,4290809207,4290283890,4290284916,4290219125,4290217326,4290478181,4291331690,1505786722,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,635937668,587049862,4293431657,4293432171,4290606416,4288832066,4289029190,4289685323,4290671448,4291921253,4292973423,4293828474,4294354309,4294487181,4294685334,4294816411,4294816410,4294487698,4292513906,4291394912,4292775790,4293630582,4292840556,4292708461,4293697666,4294817946,4294028946,4293042825,4292385412,4292844166,4293106823,4291923831,4291726449,4293896335,4294553237,4294554005,4294422676,4294094224,4293634187,4293502601,4293173895,4292582530,4291662715,4291269500,4290612343,4290481526,4290613111,4290349940,4290019432,4290806888,4291463531,1204388717,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,737519232,4293629548,4292774498,4290737489,4288897089,4289292106,4289883215,4290277203,4291132251,4292447849,4293434230,4294025601,4294355851,4294619541,4294619288,4294553238,4293698182,4291724389,4290934103,4291789412,4292644464,4291920229,4291854695,4292974974,4293897618,4292976518,4291989882,4291201138,4291329387,4291459688,4291133032,4291265642,4293304710,4294027663,4294290577,4294159760,4293897102,4293699723,4293436808,4293108103,4292188286,4291663229,4291335550,4290678649,4290349940,4290481525,4290349940,4290216812,4290938730,1204521581,433889932,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,988191862,4293827955,4293630576,4292118629,4289027649,4289160264,4289884241,4290540631,4290869335,4292119397,4292974192,4293631356,4294026887,4294224783,4294487446,4294158481,4292777081,4291724388,4290934615,4289684296,4289355591,4289158212,4288895555,4290607459,4291594868,4291200111,4290410852,4288766285,4289750355,4289683790,4289225548,4291529328,4293107845,4293633161,4294027662,4294093968,4293831052,4293568394,4293305479,4292977286,4291991420,4291663485,4291336063,4290810492,4290284404,4290481525,4290349940,4290019689,4290938731,1254853228,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,65385882,787719805,938582391,4293039218,4289553223,4289094214,4289687375,4290672731,4290672470,4291659103,4292974192,4293631870,4293895300,4294027147,4293895309,4293369221,4291921772,4292185194,4292974197,4289619019,4288895816,4290146140,4289159756,4288108101,4289292888,4289555802,4289160787,4290739819,4290541925,4289489748,4290017117,4292451456,4292844930,4293369733,4293698696,4293765003,4293699466,4293305222,4293042306,4292583042,4291925884,4291598462,4291402113,4290679419,4290350197,4290481526,4290284147,4290151275,4291333232,1305053290,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,888382073,4293433463,4289816139,4289357128,4289555275,4290607193,4290672470,4291264602,4292448618,4293303161,4293567107,4293698696,4293698442,4292974461,4291724392,4292974454,4293698432,4292646010,4290672997,4289884253,4290740074,4289687904,4288635474,4289293146,4291135091,4291397491,4290148450,4290412649,4291267957,4292123006,4292450943,4292910465,4293436035,4293436038,4293436038,4293304710,4292976515,4292451714,4291991934,4291664255,4291467906,4290876541,4290481781,4290547318,4290152818,4290611827,4291596405,986813045,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,1406897254,988058997,4290671448,4289356873,4289554762,4290344022,4290804569,4291264858,4291987811,4292974453,4293567110,4293436296,4293435780,4292448114,4292053097,4293434748,4293435258,4293106811,4291989363,4290806378,4290806638,4290543725,4290478448,4290742133,4291399289,4290871913,4290872172,4290938227,4291332983,4292122752,4292386180,4292188283,4292779642,4293304450,4293040768,4293041539,4292648066,4292123263,4291926399,4291729535,4291533442,4290876027,4290481781,4290482295,4290021489,4289098587,1304593769,685022850,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,2025222478,2593542967,4288897866,4289292622,4290212694,4291001948,4291330651,4291856481,4292777074,4293238400,4293238915,4293107070,4292185196,4292711283,4293566333,4293368949,4292974452,4292843640,4292318328,4291989622,4291794046,4290939767,4290282609,4291006072,4291268725,4291333751,4291070582,4291267960,4291728252,4292518279,4292451970,4292055922,4293173121,4292975230,4292778879,4292253820,4291794299,4291729020,4291532412,4291270270,4290744697,4290547575,4290350452,4289692007,2542688314,985502070,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,2844151342,2375506751,4289161553,4290015315,4290870362,4291330651,4292053860,4292711280,4292777849,4292975998,4292975482,4292513904,4293040246,4293369208,4293171828,4293172087,4293040248,4292909178,4292712572,4292385666,4291137401,4290480502,4290481014,4291533184,4291597437,4291465340,4291531644,4291597179,4291860606,4292189311,4291924597,4292515706,4293107329,4292384633,4291925366,4291597175,4291597434,4291466620,4291138685,4290678904,4290416248,4290218610,1555136095,834902395,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,2744276018,4289161039,4289817936,4290673239,4291462237,4292053860,4292513902,4292646261,4292975739,4292909944,4292711538,4293435002,4293172087,4292909945,4292909690,4292975484,4292909436,4293041281,4293042568,4291859840,4290874489,4290809210,4291796101,4291597696,4291465597,4291400316,4291334776,4291202932,4291794554,4292122491,4291660911,4292778622,4292319094,4292057205,4291728761,4291400055,4291203448,4291138684,4290876283,4290350458,4290086768,1505527138,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,1605139294,2225233989,4289620557,4290541397,4291330138,4292053604,4292579438,4292712053,4293107324,4293041274,4292645487,4293303672,4292909688,4292385146,4292384634,4292384120,4292514679,4292842874,4293303684,4293239179,4292649101,4292320907,4291859840,4291202681,4290873716,4291268730,4291137141,4291137396,4291795069,4292122749,4291924341,4292253047,4292450937,4291925618,4291531639,4290939247,4291203447,4291204476,4290744697,4290284922,1253278828,1036752755,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,2375769919,4289029960,4290475606,4291460444,4292183910,4292513646,4292646513,4293435515,4293171576,4292711798,4292713853,4292254332,4291530355,4291134569,4291000672,4290998619,4290865492,4291193173,4292115047,4292511347,4291591016,4290473049,4290081122,4289686366,4289948766,4289620826,4289293657,4290018664,4291992450,4292451456,4292516218,4292911231,4291990903,4291203190,4290676331,4291399796,4291269497,4290809978,4289955956,1504870754,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,1605533534,2375703615,4290080853,4291131996,4291724129,4292119140,4292514922,4293369719,4293171832,4292843900,4292582273,4290411365,4288829516,4288433220,4287842113,4287912271,4288310110,4288830035,4288631373,4288434254,4288763733,4289816680,4288895315,4287447607,4287381556,4287382581,4288831823,4288768082,4289755231,4292254075,4293108354,4292911233,4291793784,4291006326,4290742382,4291268211,4291137655,4290678393,1152156527,381920142,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,2593346872,4289094988,4290607454,4291001435,4291461978,4292382820,4293501047,4293238650,4292252277,4290936936,4289687128,4289553234,4288956481,4288429629,4288632915,4289692536,4290219906,4290614152,4289758074,4290613128,4290086786,4289027671,4289485134,4289486931,4290211935,4290871404,4290543721,4290018144,4291004263,4292911745,4292451711,4291334262,4290809205,4291072118,4291466104,4290874998,4290283894,1252359787,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,1705998681,2542884153,4289885532,4290607967,4291067225,4291987297,4292908913,4293239422,4292187251,4290871396,4291069030,4291528036,4291587929,4291781462,4291979872,4290798936,4290407002,4290801761,4290801506,4290670178,4290407008,4290800226,4290932836,4291066988,4291068783,4291069294,4291399540,4291465844,4291267691,4292451708,4291926139,4291006325,4290481012,4290677619,4291137654,4290941306,1152352880,213688467,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,2743882802,4288307530,4289885277,4290672732,4291788899,4292579185,4292976509,4292516984,4292319091,4292054636,4291130971,4291523931,4291982172,4292177755,4292900452,4293295470,4293230448,4293428599,4293429371,4293035641,4292181106,4291722865,4290870891,4290544491,4291663483,4292057983,4291794807,4291530862,4291925621,4291203187,4290217838,4289823340,4290348912,4290940791,4290546805,1352890727,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,1203210862,2743684402,4288768084,4289687894,4290804316,4292186226,4292581752,4292450163,4292712819,4292777331,4292052588,4290144334,4290604628,4291327067,4292115557,4292709753,4293105282,4293106308,4292909443,4291923062,4291068012,4290344802,4290543463,4291596919,4292123775,4292254588,4291990643,4291465071,4291137394,4290217580,4289363558,4289232742,4290612595,4290808945,1403944550,431069324,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,2843625006,2274449731,4288505417,4289491025,4291135078,4291924080,4292186478,4292383085,4292448620,4292778102,4291790951,4289816652,4289487432,4290277207,4290212189,4290475875,4290673767,4290147935,4289555799,4289490776,4290412133,4291793527,4292122491,4292188796,4292253817,4292056179,4291728502,4290940788,4289626730,4288640606,4289298275,4290349681,4290283377,1872390739,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,3044622117,4287651136,4288308553,4289820506,4290937957,4291923819,4292186218,4292382824,4292514665,4292580976,4292054896,4290344797,4289292626,4289292117,4289423447,4289555546,4289819488,4290082917,4290806379,4291727735,4292056441,4291925112,4292056696,4292254074,4292188537,4291663480,4290809974,4289035365,4287983191,4289494113,4289758063,1202158446,733056384,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,582522245,2743028786,4287191620,4288439883,4290347104,4291529833,4292515696,4292580715,4292646249,4292449389,4292055151,4291595119,4290871657,4290475618,4290212703,4290147167,4290608488,4290937710,4291266414,4291792499,4291661169,4291990389,4292319095,4292451708,4292058237,4291467129,4290482038,4288246620,4287786584,4289494627,1303149930,1252030571,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,1402499942,2373669183,4287191359,4289624154,4291004003,4292055144,4292317544,4292646767,4292843891,4292514416,4291856232,4291658598,4291790188,4291527274,4291725167,4292252023,4292515196,4292318587,4292121464,4291726704,4292318583,4292779388,4291925107,4291335028,4290744178,4289824878,4287786584,4287524442,1503492194,1704882521,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,1753572440,2591575352,4287323202,4289887065,4291463520,4292252008,4292515185,4293106294,4293236854,4292973169,4293038965,4293368189,4293236603,4293171067,4293237116,4293368703,4293369987,4292778620,4292647291,4292845183,4292845438,4291860086,4290809712,4290414960,4289100646,4286537291,1920886353,1971545167,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,1920884306,2791851055,4287521094,4290675551,4291529059,4292317806,4293237108,4293367666,4293301877,4293434236,4293762687,4294025602,4293960066,4294025859,4294091395,4294025860,4293500287,4293106814,4292713342,4292451198,4291794809,4290481008,4289494634,4287258962,2372882496,1970823503,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,2171885384,3043114022,4288112203,4290675555,4291989355,4292777327,4293302129,4293433461,4293631357,4293829252,4294026632,4294158218,4294026375,4294026632,4293960583,4293697155,4293040510,4292186486,4291990392,4291596406,4290150762,4287983707,2691057972,1552510816,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,2272154179,2992913448,4288770135,4291004520,4292120941,4292711536,4293105525,4293434750,4293567368,4293764748,4293830541,4293764748,4293830541,4293830027,4293237635,4292383354,4291792758,4291004527,4290873457,1453946723,2540719929,631279747,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,1870553684,2892447532,1604679261,4290807915,4291463529,4292383604,4292712315,4292910724,4293108104,4293107847,4292910724,4292844674,4292844419,4291923832,4291266929,4290216040,4289756517,1403681894,2172607560,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,1971215951,2022925133,1655600476,4290675045,4291201135,4291858552,4291858552,4291661429,4291398258,4291135342,4291201393,4290610028,4290019176,4289033824,1754885463,1502507874,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,1352168552,2023056206,1655074907,4289820257,4290017637,4289623649,4289229404,4288900952,4289229922,4288769886,1871733331,1703634778,61906842,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,732400768,2273596484,2642167862,2591902520,2474528572,2474463036,2474069051,1753703768,263101073,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,1502900322,1201437550,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]; /** * Draws an array from (0, 0) to (w-1, h-1); * */ var drawArr = function(arr, w, h, s) { for(var y = 0; y < h; y++) { for(var x = 0; x < w; x++) { var color = arr[x + y * w] - 2147483647; var b = color % 256; var g = (color >> 8) % 256; var r = (color >> 16) % 256; var o = (color >> 24) % 256; stroke(r, g, b, o); strokeWeight(0.1); if(s !== 0) { fill(r, g, b, o); ellipse(x*s, y*s, s*2, s*2); } else { point(x, y); } } } }; var powerup = function(x, y, type) { this.x = x; this.y = y; this.type = type; var speed = 5; var r = 0; this.draw = function() { fill(255, 255, 255, 50); ellipse(x, y, 20, 20); if(type === 0) { // healthup, flashlight pushMatrix(); translate(x, y); rotate(45); fill(0, 0, 0); rect(-3, -7, 5, 10, 10); ellipse(0, 3, 10, 8); fill(238, 255, 0, 200); ellipse(0, 6, 4, 4); ellipse(0, 6, 6, 8); popMatrix(); } else if(type === 1){ // invincibility, scroll fill(122, 98, 51); rect(x-5, y+4, 10, 2, 10); pushMatrix(); translate(x, y); rotate(10); fill(179, 136, 89); rect(-5, -5, 10, 10, 0); popMatrix(); fill(122, 98, 51); rect(x-5, y-6, 10, 2, 10); } }; this.moveToward = function(xp, yp) { var xdiff = xp - x; var ydiff = yp - y; if(ydiff === 0 && xdiff !== 0) { x += xdiff / abs(xdiff) * speed; return; } if(xdiff === 0 && ydiff !== 0) { y += ydiff / abs(ydiff) * speed; return; } var sideAngle = atan(xdiff/ydiff); var bottAngle = atan(ydiff/xdiff); var bottom = cos(bottAngle); var side = cos(sideAngle); var xsig = xdiff / abs(xdiff); var ysig = ydiff / abs(ydiff); x += bottom * xsig * speed; y += side * ysig * speed; r = bottAngle; }; this.act = function() { if(type === 0) { health = min(100, health + 20); fill(0, 255, 30); ellipse(cageX, cageY, 61, 80); } else if(type === 1) { invincible = true; invinciblestart = millis(); } }; this.collidesWithCage = function() { if(dist(x, y, mouseX, mouseY) > 150) { return false; } var cex1 = cageX; //"cage ellipse x 1" var cey1 = cageY - 10; var cer1 = 60; var cex2 = cageX; var cey2 = cageY + 20; var cer2 = 30; var pex = x - 5; // powerup collision ellipses var pey = y; var per = 20; //fill(255, 0, 0, 100); // collision circles //ellipse(cex1, cey1, cer1, cer1); //ellipse(cex2, cey2, cer2, cer2); //ellipse(pex, pey, per, per); if(dist(cex1, cey1, pex, pey) < cer1/2 + per/2) { return true; } if(dist(cex2, cey2, pex, pey) < cer2/2 + per/2) { return true; } return false; }; this.getX = function() { return x; }; this.getY = function() { return y; }; this.getType = function() { return type; }; }; var bee = function(x, y) { this.x = x; this.y = y; var speed = random(1, 7 + 2*log(beesDodged+1)); var r = 0; this.draw = function() { pushMatrix(); translate(x, y); rotate(r); stroke(0, 0, 0); fill(255, 255, 0); ellipse(0, 0, 20, 10); // body fill(0, 0, 0); ellipse(0, 0, 1, 10); // stripes ellipse(5, 0, 1, 8); ellipse(9, 0, 1, 5); ellipse(-8, -2, 1, 1); //eyes ellipse(-8, 2, 1, 1); fill(156, 156, 156, 100); ellipse(0, 5, 5, 10); // wings ellipse(0, -5, 5, 10); popMatrix(); }; this.moveToward = function(xp, yp) { var xdiff = xp - x; var ydiff = yp - y; var sideAngle = atan(xdiff/ydiff); var bottAngle = atan(ydiff/xdiff); var bottom = cos(bottAngle); var side = cos(sideAngle); var xsig = xdiff / abs(xdiff); var ysig = ydiff / abs(ydiff); x += bottom * xsig * speed; y += side * ysig * speed; r = bottAngle; }; this.getX = function() { return x; }; this.getY = function() { return y; }; this.collidesWithCage = function() { if(dist(x, y, mouseX, mouseY) > 150) { return false; } var cex1 = cageX; //"cage ellipse x 1" var cey1 = cageY - 10; var cer1 = 60; var cex2 = cageX; var cey2 = cageY + 20; var cer2 = 30; var bex1 = x - 5; // bee collision ellipses var bey1 = y; var ber1 = 10; var bex2 = x + 5; var bey2 = y; var ber2 = 10; //fill(255, 0, 0, 100); // collision circles //ellipse(cex1, cey1, cer1, cer1); //ellipse(cex2, cey2, cer2, cer2); //ellipse(bex1, bey1, ber1, ber1); //ellipse(bex2, bey2, ber2, ber2); if(dist(cex1, cey1, bex1, bey1) < cer1/2 + ber1/2) { return true; } if(dist(cex2, cey2, bex1, bey1) < cer2/2 + ber1/2) { return true; } if(dist(cex1, cey1, bex2, bey2) < cer1/2 + ber2/2) { return true; } if(dist(cex2, cey2, bex2, bey2) < cer2/2 + ber2/2) { return true; } return false; }; }; var defRectFill = color(116, 219, 116); var hoverRectFill = color(98, 186, 98); var drawMainMenu = function() { background(176, 140, 255); pushMatrix(); translate(random(0, 400), random(0, 400)); drawArr(cage, cagew, cageh, 0); popMatrix(); strokeWeight(1); fill(255, 255, 255); textFont(impact, 48); text("Nicolas Cage:\n The Game", 70, 80); stroke(255, 255, 255); fill(defRectFill); if(mouseX>100 && mouseX<300 && mouseY>200 && mouseY<240){ fill(hoverRectFill); if(mouseIsPressed) { gameMode = 1; } } rect(100, 200, 200, 40); fill(defRectFill); if(mouseX>100 && mouseX<300 && mouseY>260 && mouseY<300){ fill(hoverRectFill); if(mouseIsPressed) { gameMode = 4; } } rect(100, 260, 200, 40); fill(255, 255, 255); textFont(tahoma, 24); text("Start", 172, 230); text("About", 169, 290); }; var drawGame = function() { if(random(0, 1) < 0.08 || bees.length < 7 + log(beesDodged+1)) { // make bees bees.push(new bee(450, random(0, 400))); } if(random(0,1)<0.005 && powerups.length<2){//make powerups powerups.push(new powerup(450, random(0, 400), floor(random(0, 2)))); } { // draw/update Cage background(229, 255, 243); if(abs(cageY-mouseY)>300 || abs(cageX-mouseX)>300){ health -= 3; // lose health for going offscreen // but not too much, so it can be a // game mechanic } if(invincible) { fill(0, 255, 30, 100); ellipse(mouseX, mouseY, 62, 84); if(abs(millis() - invinciblestart) > 3000) { invincible = false; } } pushMatrix(); cageX = mouseX; cageY = mouseY; translate(mouseX - cagew/2, mouseY - cageh/2); drawArr(cage, cagew, cageh, 0); fill(255, 0, 0, 50); stroke(255, 0, 0); popMatrix(); } var i = 0; while(i < bees.length) { // draw and update bees var b = bees[i]; b.draw(); b.moveToward(-50, mouseY); if(b.getX() < -10) { bees.splice(i, 1); beesDodged++; } else if(b.collidesWithCage()) { bees.splice(i, 1); if(!invincible) { health -= beeDmgAmt; fill(255, 0, 0, 100); ellipse(cageX, cageY, 61, 80); } beesDodged++; } else { i++; } } i = 0; while(i < powerups.length) { // draw and update powerups var p = powerups[i]; p.draw(); p.moveToward(-50, p.getY()); if(p.getX() < -10) { powerups.splice(i, 1); } else if(p.collidesWithCage()) { p.act(); powerups.splice(i, 1); } else { i++; } } { // HUD fill(89, 207, 164, 200); rect(0, 0, 400, 20); fill(0, 0, 0, 200); textFont(impact, 14); text("bees: " + bees.length, 340, 15); text("score: " + beesDodged, 200, 15); fill(255, 0, 0); rect(5, 3, 100, 12, 10); fill(0, 255, 51, 200); rect(5, 3, max(0,health), 12, 10); } if(health <= 0) { gameMode = 3; // game over } if(mouseIsOut && abs(outTime - millis()) > 2000) { gameMode = 2; // pause if mouse out 2 seconds } }; var drawPause = function() { fill(0, 0, 0); textFont(tahoma, 36); text("Paused", 150, 100); textFont(tahoma, 24); text("click to continue", 126, 200); if(mouseIsPressed) { gameMode = 1; } }; var drawGameOver = function() { fill(0, 0, 200 + 55*sin(millis()/10)); textFont(impact, 72); text("NOT THE BEES", 15, 100); textFont(tahoma, 24); text("Score: " + beesDodged, 133, 150); text("Press restart to try again", 70, 200); var b = new bee(mouseX, mouseY); b.moveToward(random(0, 400), random(0, 400)); b.draw(); if(random(0, 1) < 0.01) { var scale = 5; translate(mouseX-cagew*scale/2,mouseY-cageh*scale/2); drawArr(cage, cagew, cageh, scale); } }; var drawAbout = function() { background(176, 140, 255); fill(255, 255, 255); textFont(impact, 48); text("About", 140, 80); textFont(verdana, 18); text("This program was written\n for my friend's birthday.", 94, 150); textFont(verdana, 24); fill(253, 255, 140); text("Happy birthday, Brian!", 79, 217); stroke(255, 255, 255); fill(defRectFill); if(mouseX>100 && mouseX<300 && mouseY>300 && mouseY<340){ fill(hoverRectFill); if(mouseIsPressed) { gameMode = 0; } } rect(100, 300, 200, 40); fill(255, 255, 255); textFont(tahoma, 24); text("Back", 169, 330); }; frameRate(30); var draw = function() { if(gameMode === 0) { drawMainMenu(); } else if(gameMode === 1) { drawGame(); } else if(gameMode === 2) { drawPause(); } else if(gameMode === 3) { drawGameOver(); } else if(gameMode === 4) { drawAbout(); } }; var keyPressed = function() { if(gameMode === 1) { if(key + 0 === 112) { // 'p' gameMode = 2; if(pauseCount > 2) { health -= 5; } pauseCount++; } } }; var mouseOut = function() { outTime = millis(); mouseIsOut = true; }; var mouseOver = function() { mouseIsOut = false; };