/** * File: image_dither.c * Author: AWTK Develop Team * Brief: bitmap image generator * * Copyright (c) 2018 - 2020 Guangzhou ZHIYUAN Electronics Co.,Ltd. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * License file for more details. * */ /** * History: * ================================================================ * 2020-05-26 Luo ZhiMing created * */ #include "tkc/mem.h" #include "tkc/color.h" #include "base/bitmap.h" #include "base/types_def.h" #define STB_IMAGE_IMPLEMENTATION #define STB_IMAGE_WRITE_IMPLEMENTATION #define STB_IMAGE_RESIZE_IMPLEMENTATION #include "stb/stb_image.h" #ifndef WITH_STB_IMAGE #include "stb/stb_image_write.h" #else extern int stbi_write_png(char const* filename, int x, int y, int comp, const void* data, int stride_bytes); #endif /*WITH_STB_IMAGE*/ typedef void (*set_dst_data_func_t)(uint8_t* dst, int32_t b, int32_t g, int32_t r, int32_t a); static const int32_t best_red_table[] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 4, 4, 4, 4, 4, 4, 4, 4, 5, 5, 5, 5, 5, 5, 5, 5, 6, 6, 6, 6, 6, 6, 6, 6, 7, 7, 7, 7, 7, 7, 7, 7, 7, 8, 8, 8, 8, 8, 8, 8, 8, 9, 9, 9, 9, 9, 9, 9, 9, 10, 10, 10, 10, 10, 10, 10, 10, 11, 11, 11, 11, 11, 11, 11, 11, 11, 12, 12, 12, 12, 12, 12, 12, 12, 13, 13, 13, 13, 13, 13, 13, 13, 14, 14, 14, 14, 14, 14, 14, 14, 15, 15, 15, 15, 15, 15, 15, 15, 15, 16, 16, 16, 16, 16, 16, 16, 16, 17, 17, 17, 17, 17, 17, 17, 17, 18, 18, 18, 18, 18, 18, 18, 18, 19, 19, 19, 19, 19, 19, 19, 19, 19, 20, 20, 20, 20, 20, 20, 20, 20, 21, 21, 21, 21, 21, 21, 21, 21, 22, 22, 22, 22, 22, 22, 22, 22, 23, 23, 23, 23, 23, 23, 23, 23, 23, 24, 24, 24, 24, 24, 24, 24, 24, 25, 25, 25, 25, 25, 25, 25, 25, 26, 26, 26, 26, 26, 26, 26, 26, 27, 27, 27, 27, 27, 27, 27, 27, 27, 28, 28, 28, 28, 28, 28, 28, 28, 29, 29, 29, 29, 29, 29, 29, 29, 30, 30, 30, 30, 30, 30, 30, 30, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31}; static const int32_t(*best_blue_table) = best_red_table; static const int32_t best_greed_table[] = { 0, 0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4, 5, 5, 5, 5, 6, 6, 6, 6, 7, 7, 7, 7, 8, 8, 8, 8, 9, 9, 9, 9, 10, 10, 10, 10, 11, 11, 11, 11, 12, 12, 12, 12, 13, 13, 13, 13, 14, 14, 14, 14, 15, 15, 15, 15, 15, 16, 16, 16, 16, 17, 17, 17, 17, 18, 18, 18, 18, 19, 19, 19, 19, 20, 20, 20, 20, 21, 21, 21, 21, 22, 22, 22, 22, 23, 23, 23, 23, 24, 24, 24, 24, 25, 25, 25, 25, 26, 26, 26, 26, 27, 27, 27, 27, 28, 28, 28, 28, 29, 29, 29, 29, 30, 30, 30, 30, 31, 31, 31, 31, 31, 32, 32, 32, 32, 33, 33, 33, 33, 34, 34, 34, 34, 35, 35, 35, 35, 36, 36, 36, 36, 37, 37, 37, 37, 38, 38, 38, 38, 39, 39, 39, 39, 40, 40, 40, 40, 41, 41, 41, 41, 42, 42, 42, 42, 43, 43, 43, 43, 44, 44, 44, 44, 45, 45, 45, 45, 46, 46, 46, 46, 47, 47, 47, 47, 47, 48, 48, 48, 48, 49, 49, 49, 49, 50, 50, 50, 50, 51, 51, 51, 51, 52, 52, 52, 52, 53, 53, 53, 53, 54, 54, 54, 54, 55, 55, 55, 55, 56, 56, 56, 56, 57, 57, 57, 57, 58, 58, 58, 58, 59, 59, 59, 59, 60, 60, 60, 60, 61, 61, 61, 61, 62, 62, 62, 62, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63}; static const int32_t error_red_table[][32] = { {0, -8, -16, -24, -33, -41, -49, -57, -66, -74, -82, -90, -99, -107, -115, -123, -132, -140, -148, -156, -165, -173, -181, -189, -198, -206, -214, -222, -231, -239, -247, -256}, {1, -7, -15, -23, -32, -40, -48, -56, -65, -73, -81, -89, -98, -106, -114, -122, -131, -139, -147, -155, -164, -172, -180, -188, -197, -205, -213, -221, -230, -238, -246, -255}, {2, -6, -14, -22, -31, -39, -47, -55, -64, -72, -80, -88, -97, -105, -113, -121, -130, -138, -146, -154, -163, -171, -179, -187, -196, -204, -212, -220, -229, -237, -245, -254}, {3, -5, -13, -21, -30, -38, -46, -54, -63, -71, -79, -87, -96, -104, -112, -120, -129, -137, -145, -153, -162, -170, -178, -186, -195, -203, -211, -219, -228, -236, -244, -253}, {4, -4, -12, -20, -29, -37, -45, -53, -62, -70, -78, -86, -95, -103, -111, -119, -128, -136, -144, -152, -161, -169, -177, -185, -194, -202, -210, -218, -227, -235, -243, -252}, {5, -3, -11, -19, -28, -36, -44, -52, -61, -69, -77, -85, -94, -102, -110, -118, -127, -135, -143, -151, -160, -168, -176, -184, -193, -201, -209, -217, -226, -234, -242, -251}, {6, -2, -10, -18, -27, -35, -43, -51, -60, -68, -76, -84, -93, -101, -109, -117, -126, -134, -142, -150, -159, -167, -175, -183, -192, -200, -208, -216, -225, -233, -241, -250}, {7, -1, -9, -17, -26, -34, -42, -50, -59, -67, -75, -83, -92, -100, -108, -116, -125, -133, -141, -149, -158, -166, -174, -182, -191, -199, -207, -215, -224, -232, -240, -249}, {8, 0, -8, -16, -25, -33, -41, -49, -58, -66, -74, -82, -91, -99, -107, -115, -124, -132, -140, -148, -157, -165, -173, -181, -190, -198, -206, -214, -223, -231, -239, -248}, {9, 1, -7, -15, -24, -32, -40, -48, -57, -65, -73, -81, -90, -98, -106, -114, -123, -131, -139, -147, -156, -164, -172, -180, -189, -197, -205, -213, -222, -230, -238, -247}, {10, 2, -6, -14, -23, -31, -39, -47, -56, -64, -72, -80, -89, -97, -105, -113, -122, -130, -138, -146, -155, -163, -171, -179, -188, -196, -204, -212, -221, -229, -237, -246}, {11, 3, -5, -13, -22, -30, -38, -46, -55, -63, -71, -79, -88, -96, -104, -112, -121, -129, -137, -145, -154, -162, -170, -178, -187, -195, -203, -211, -220, -228, -236, -245}, {12, 4, -4, -12, -21, -29, -37, -45, -54, -62, -70, -78, -87, -95, -103, -111, -120, -128, -136, -144, -153, -161, -169, -177, -186, -194, -202, -210, -219, -227, -235, -244}, {13, 5, -3, -11, -20, -28, -36, -44, -53, -61, -69, -77, -86, -94, -102, -110, -119, -127, -135, -143, -152, -160, -168, -176, -185, -193, -201, -209, -218, -226, -234, -243}, {14, 6, -2, -10, -19, -27, -35, -43, -52, -60, -68, -76, -85, -93, -101, -109, -118, -126, -134, -142, -151, -159, -167, -175, -184, -192, -200, -208, -217, -225, -233, -242}, {15, 7, -1, -9, -18, -26, -34, -42, -51, -59, -67, -75, -84, -92, -100, -108, -117, -125, -133, -141, -150, -158, -166, -174, -183, -191, -199, -207, -216, -224, -232, -241}, {16, 8, 0, -8, -17, -25, -33, -41, -50, -58, -66, -74, -83, -91, -99, -107, -116, -124, -132, -140, -149, -157, -165, -173, -182, -190, -198, -206, -215, -223, -231, -240}, {17, 9, 1, -7, -16, -24, -32, -40, -49, -57, -65, -73, -82, -90, -98, -106, -115, -123, -131, -139, -148, -156, -164, -172, -181, -189, -197, -205, -214, -222, -230, -239}, {18, 10, 2, -6, -15, -23, -31, -39, -48, -56, -64, -72, -81, -89, -97, -105, -114, -122, -130, -138, -147, -155, -163, -171, -180, -188, -196, -204, -213, -221, -229, -238}, {19, 11, 3, -5, -14, -22, -30, -38, -47, -55, -63, -71, -80, -88, -96, -104, -113, -121, -129, -137, -146, -154, -162, -170, -179, -187, -195, -203, -212, -220, -228, -237}, {20, 12, 4, -4, -13, -21, -29, -37, -46, -54, -62, -70, -79, -87, -95, -103, -112, -120, -128, -136, -145, -153, -161, -169, -178, -186, -194, -202, -211, -219, -227, -236}, {21, 13, 5, -3, -12, -20, -28, -36, -45, -53, -61, -69, -78, -86, -94, -102, -111, -119, -127, -135, -144, -152, -160, -168, -177, -185, -193, -201, -210, -218, -226, -235}, {22, 14, 6, -2, -11, -19, -27, -35, -44, -52, -60, -68, -77, -85, -93, -101, -110, -118, -126, -134, -143, -151, -159, -167, -176, -184, -192, -200, -209, -217, -225, -234}, {23, 15, 7, -1, -10, -18, -26, -34, -43, -51, -59, -67, -76, -84, -92, -100, -109, -117, -125, -133, -142, -150, -158, -166, -175, -183, -191, -199, -208, -216, -224, -233}, {24, 16, 8, 0, -9, -17, -25, -33, -42, -50, -58, -66, -75, -83, -91, -99, -108, -116, -124, -132, -141, -149, -157, -165, -174, -182, -190, -198, -207, -215, -223, -232}, {25, 17, 9, 1, -8, -16, -24, -32, -41, -49, -57, -65, -74, -82, -90, -98, -107, -115, -123, -131, -140, -148, -156, -164, -173, -181, -189, -197, -206, -214, -222, -231}, {26, 18, 10, 2, -7, -15, -23, -31, -40, -48, -56, -64, -73, -81, -89, -97, -106, -114, -122, -130, -139, -147, -155, -163, -172, -180, -188, -196, -205, -213, -221, -230}, {27, 19, 11, 3, -6, -14, -22, -30, -39, -47, -55, -63, -72, -80, -88, -96, -105, -113, -121, -129, -138, -146, -154, -162, -171, -179, -187, -195, -204, -212, -220, -229}, {28, 20, 12, 4, -5, -13, -21, -29, -38, -46, -54, -62, -71, -79, -87, -95, -104, -112, -120, -128, -137, -145, -153, -161, -170, -178, -186, -194, -203, -211, -219, -228}, {29, 21, 13, 5, -4, -12, -20, -28, -37, -45, -53, -61, -70, -78, -86, -94, -103, -111, -119, -127, -136, -144, -152, -160, -169, -177, -185, -193, -202, -210, -218, -227}, {30, 22, 14, 6, -3, -11, -19, -27, -36, -44, -52, -60, -69, -77, -85, -93, -102, -110, -118, -126, -135, -143, -151, -159, -168, -176, -184, -192, -201, -209, -217, -226}, {31, 23, 15, 7, -2, -10, -18, -26, -35, -43, -51, -59, -68, -76, -84, -92, -101, -109, -117, -125, -134, -142, -150, -158, -167, -175, -183, -191, -200, -208, -216, -225}, {32, 24, 16, 8, -1, -9, -17, -25, -34, -42, -50, -58, -67, -75, -83, -91, -100, -108, -116, -124, -133, -141, -149, -157, -166, -174, -182, -190, -199, -207, -215, -224}, {33, 25, 17, 9, 0, -8, -16, -24, -33, -41, -49, -57, -66, -74, -82, -90, -99, -107, -115, -123, -132, -140, -148, -156, -165, -173, -181, -189, -198, -206, -214, -223}, {34, 26, 18, 10, 1, -7, -15, -23, -32, -40, -48, -56, -65, -73, -81, -89, -98, -106, -114, -122, -131, -139, -147, -155, -164, -172, -180, -188, -197, -205, -213, -222}, {35, 27, 19, 11, 2, -6, -14, -22, -31, -39, -47, -55, -64, -72, -80, -88, -97, -105, -113, -121, -130, -138, -146, -154, -163, -171, -179, -187, -196, -204, -212, -221}, {36, 28, 20, 12, 3, -5, -13, -21, -30, -38, -46, -54, -63, -71, -79, -87, -96, -104, -112, -120, -129, -137, -145, -153, -162, -170, -178, -186, -195, -203, -211, -220}, {37, 29, 21, 13, 4, -4, -12, -20, -29, -37, -45, -53, -62, -70, -78, -86, -95, -103, -111, -119, -128, -136, -144, -152, -161, -169, -177, -185, -194, -202, -210, -219}, {38, 30, 22, 14, 5, -3, -11, -19, -28, -36, -44, -52, -61, -69, -77, -85, -94, -102, -110, -118, -127, -135, -143, -151, -160, -168, -176, -184, -193, -201, -209, -218}, {39, 31, 23, 15, 6, -2, -10, -18, -27, -35, -43, -51, -60, -68, -76, -84, -93, -101, -109, -117, -126, -134, -142, -150, -159, -167, -175, -183, -192, -200, -208, -217}, {40, 32, 24, 16, 7, -1, -9, -17, -26, -34, -42, -50, -59, -67, -75, -83, -92, -100, -108, -116, -125, -133, -141, -149, -158, -166, -174, -182, -191, -199, -207, -216}, {41, 33, 25, 17, 8, 0, -8, -16, -25, -33, -41, -49, -58, -66, -74, -82, -91, -99, -107, -115, -124, -132, -140, -148, -157, -165, -173, -181, -190, -198, -206, -215}, {42, 34, 26, 18, 9, 1, -7, -15, -24, -32, -40, -48, -57, -65, -73, -81, -90, -98, -106, -114, -123, -131, -139, -147, -156, -164, -172, -180, -189, -197, -205, -214}, {43, 35, 27, 19, 10, 2, -6, -14, -23, -31, -39, -47, -56, -64, -72, -80, -89, -97, -105, -113, -122, -130, -138, -146, -155, -163, -171, -179, -188, -196, -204, -213}, {44, 36, 28, 20, 11, 3, -5, -13, -22, -30, -38, -46, -55, -63, -71, -79, -88, -96, -104, -112, -121, -129, -137, -145, -154, -162, -170, -178, -187, -195, -203, -212}, {45, 37, 29, 21, 12, 4, -4, -12, -21, -29, -37, -45, -54, -62, -70, -78, -87, -95, -103, -111, -120, -128, -136, -144, -153, -161, -169, -177, -186, -194, -202, -211}, {46, 38, 30, 22, 13, 5, -3, -11, -20, -28, -36, -44, -53, -61, -69, -77, -86, -94, -102, -110, -119, -127, -135, -143, -152, -160, -168, -176, -185, -193, -201, -210}, {47, 39, 31, 23, 14, 6, -2, -10, -19, -27, -35, -43, -52, -60, -68, -76, -85, -93, -101, -109, -118, -126, -134, -142, -151, -159, -167, -175, -184, -192, -200, -209}, {48, 40, 32, 24, 15, 7, -1, -9, -18, -26, -34, -42, -51, -59, -67, -75, -84, -92, -100, -108, -117, -125, -133, -141, -150, -158, -166, -174, -183, -191, -199, -208}, {49, 41, 33, 25, 16, 8, 0, -8, -17, -25, -33, -41, -50, -58, -66, -74, -83, -91, -99, -107, -116, -124, -132, -140, -149, -157, -165, -173, -182, -190, -198, -207}, {50, 42, 34, 26, 17, 9, 1, -7, -16, -24, -32, -40, -49, -57, -65, -73, -82, -90, -98, -106, -115, -123, -131, -139, -148, -156, -164, -172, -181, -189, -197, -206}, {51, 43, 35, 27, 18, 10, 2, -6, -15, -23, -31, -39, -48, -56, -64, -72, -81, -89, -97, -105, -114, -122, -130, -138, -147, -155, -163, -171, -180, -188, -196, -205}, {52, 44, 36, 28, 19, 11, 3, -5, -14, -22, -30, -38, -47, -55, -63, -71, -80, -88, -96, -104, -113, -121, -129, -137, -146, -154, -162, -170, -179, -187, -195, -204}, {53, 45, 37, 29, 20, 12, 4, -4, -13, -21, -29, -37, -46, -54, -62, -70, -79, -87, -95, -103, -112, -120, -128, -136, -145, -153, -161, -169, -178, -186, -194, -203}, {54, 46, 38, 30, 21, 13, 5, -3, -12, -20, -28, -36, -45, -53, -61, -69, -78, -86, -94, -102, -111, -119, -127, -135, -144, -152, -160, -168, -177, -185, -193, -202}, {55, 47, 39, 31, 22, 14, 6, -2, -11, -19, -27, -35, -44, -52, -60, -68, -77, -85, -93, -101, -110, -118, -126, -134, -143, -151, -159, -167, -176, -184, -192, -201}, {56, 48, 40, 32, 23, 15, 7, -1, -10, -18, -26, -34, -43, -51, -59, -67, -76, -84, -92, -100, -109, -117, -125, -133, -142, -150, -158, -166, -175, -183, -191, -200}, {57, 49, 41, 33, 24, 16, 8, 0, -9, -17, -25, -33, -42, -50, -58, -66, -75, -83, -91, -99, -108, -116, -124, -132, -141, -149, -157, -165, -174, -182, -190, -199}, {58, 50, 42, 34, 25, 17, 9, 1, -8, -16, -24, -32, -41, -49, -57, -65, -74, -82, -90, -98, -107, -115, -123, -131, -140, -148, -156, -164, -173, -181, -189, -198}, {59, 51, 43, 35, 26, 18, 10, 2, -7, -15, -23, -31, -40, -48, -56, -64, -73, -81, -89, -97, -106, -114, -122, -130, -139, -147, -155, -163, -172, -180, -188, -197}, {60, 52, 44, 36, 27, 19, 11, 3, -6, -14, -22, -30, -39, -47, -55, -63, -72, -80, -88, -96, -105, -113, -121, -129, -138, -146, -154, -162, -171, -179, -187, -196}, {61, 53, 45, 37, 28, 20, 12, 4, -5, -13, -21, -29, -38, -46, -54, -62, -71, -79, -87, -95, -104, -112, -120, -128, -137, -145, -153, -161, -170, -178, -186, -195}, {62, 54, 46, 38, 29, 21, 13, 5, -4, -12, -20, -28, -37, -45, -53, -61, -70, -78, -86, -94, -103, -111, -119, -127, -136, -144, -152, -160, -169, -177, -185, -194}, {63, 55, 47, 39, 30, 22, 14, 6, -3, -11, -19, -27, -36, -44, -52, -60, -69, -77, -85, -93, -102, -110, -118, -126, -135, -143, -151, -159, -168, -176, -184, -193}, {64, 56, 48, 40, 31, 23, 15, 7, -2, -10, -18, -26, -35, -43, -51, -59, -68, -76, -84, -92, -101, -109, -117, -125, -134, -142, -150, -158, -167, -175, -183, -192}, {65, 57, 49, 41, 32, 24, 16, 8, -1, -9, -17, -25, -34, -42, -50, -58, -67, -75, -83, -91, -100, -108, -116, -124, -133, -141, -149, -157, -166, -174, -182, -191}, {66, 58, 50, 42, 33, 25, 17, 9, 0, -8, -16, -24, -33, -41, -49, -57, -66, -74, -82, -90, -99, -107, -115, -123, -132, -140, -148, -156, -165, -173, -181, -190}, {67, 59, 51, 43, 34, 26, 18, 10, 1, -7, -15, -23, -32, -40, -48, -56, -65, -73, -81, -89, -98, -106, -114, -122, -131, -139, -147, -155, -164, -172, -180, -189}, {68, 60, 52, 44, 35, 27, 19, 11, 2, -6, -14, -22, -31, -39, -47, -55, -64, -72, -80, -88, -97, -105, -113, -121, -130, -138, -146, -154, -163, -171, -179, -188}, {69, 61, 53, 45, 36, 28, 20, 12, 3, -5, -13, -21, -30, -38, -46, -54, -63, -71, -79, -87, -96, -104, -112, -120, -129, -137, -145, -153, -162, -170, -178, -187}, {70, 62, 54, 46, 37, 29, 21, 13, 4, -4, -12, -20, -29, -37, -45, -53, -62, -70, -78, -86, -95, -103, -111, -119, -128, -136, -144, -152, -161, -169, -177, -186}, {71, 63, 55, 47, 38, 30, 22, 14, 5, -3, -11, -19, -28, -36, -44, -52, -61, -69, -77, -85, -94, -102, -110, -118, -127, -135, -143, -151, -160, -168, -176, -185}, {72, 64, 56, 48, 39, 31, 23, 15, 6, -2, -10, -18, -27, -35, -43, -51, -60, -68, -76, -84, -93, -101, -109, -117, -126, -134, -142, -150, -159, -167, -175, -184}, {73, 65, 57, 49, 40, 32, 24, 16, 7, -1, -9, -17, -26, -34, -42, -50, -59, -67, -75, -83, -92, -100, -108, -116, -125, -133, -141, -149, -158, -166, -174, -183}, {74, 66, 58, 50, 41, 33, 25, 17, 8, 0, -8, -16, -25, -33, -41, -49, -58, -66, -74, -82, -91, -99, -107, -115, -124, -132, -140, -148, -157, -165, -173, -182}, {75, 67, 59, 51, 42, 34, 26, 18, 9, 1, -7, -15, -24, -32, -40, -48, -57, -65, -73, -81, -90, -98, -106, -114, -123, -131, -139, -147, -156, -164, -172, -181}, {76, 68, 60, 52, 43, 35, 27, 19, 10, 2, -6, -14, -23, -31, -39, -47, -56, -64, -72, -80, -89, -97, -105, -113, -122, -130, -138, -146, -155, -163, -171, -180}, {77, 69, 61, 53, 44, 36, 28, 20, 11, 3, -5, -13, -22, -30, -38, -46, -55, -63, -71, -79, -88, -96, -104, -112, -121, -129, -137, -145, -154, -162, -170, -179}, {78, 70, 62, 54, 45, 37, 29, 21, 12, 4, -4, -12, -21, -29, -37, -45, -54, -62, -70, -78, -87, -95, -103, -111, -120, -128, -136, -144, -153, -161, -169, -178}, {79, 71, 63, 55, 46, 38, 30, 22, 13, 5, -3, -11, -20, -28, -36, -44, -53, -61, -69, -77, -86, -94, -102, -110, -119, -127, -135, -143, -152, -160, -168, -177}, {80, 72, 64, 56, 47, 39, 31, 23, 14, 6, -2, -10, -19, -27, -35, -43, -52, -60, -68, -76, -85, -93, -101, -109, -118, -126, -134, -142, -151, -159, -167, -176}, {81, 73, 65, 57, 48, 40, 32, 24, 15, 7, -1, -9, -18, -26, -34, -42, -51, -59, -67, -75, -84, -92, -100, -108, -117, -125, -133, -141, -150, -158, -166, -175}, {82, 74, 66, 58, 49, 41, 33, 25, 16, 8, 0, -8, -17, -25, -33, -41, -50, -58, -66, -74, -83, -91, -99, -107, -116, -124, -132, -140, -149, -157, -165, -174}, {83, 75, 67, 59, 50, 42, 34, 26, 17, 9, 1, -7, -16, -24, -32, -40, -49, -57, -65, -73, -82, -90, -98, -106, -115, -123, -131, -139, -148, -156, -164, -173}, {84, 76, 68, 60, 51, 43, 35, 27, 18, 10, 2, -6, -15, -23, -31, -39, -48, -56, -64, -72, -81, -89, -97, -105, -114, -122, -130, -138, -147, -155, -163, -172}, {85, 77, 69, 61, 52, 44, 36, 28, 19, 11, 3, -5, -14, -22, -30, -38, -47, -55, -63, -71, -80, -88, -96, -104, -113, -121, -129, -137, -146, -154, -162, -171}, {86, 78, 70, 62, 53, 45, 37, 29, 20, 12, 4, -4, -13, -21, -29, -37, -46, -54, -62, -70, -79, -87, -95, -103, -112, -120, -128, -136, -145, -153, -161, -170}, {87, 79, 71, 63, 54, 46, 38, 30, 21, 13, 5, -3, -12, -20, -28, -36, -45, -53, -61, -69, -78, -86, -94, -102, -111, -119, -127, -135, -144, -152, -160, -169}, {88, 80, 72, 64, 55, 47, 39, 31, 22, 14, 6, -2, -11, -19, -27, -35, -44, -52, -60, -68, -77, -85, -93, -101, -110, -118, -126, -134, -143, -151, -159, -168}, {89, 81, 73, 65, 56, 48, 40, 32, 23, 15, 7, -1, -10, -18, -26, -34, -43, -51, -59, -67, -76, -84, -92, -100, -109, -117, -125, -133, -142, -150, -158, -167}, {90, 82, 74, 66, 57, 49, 41, 33, 24, 16, 8, 0, -9, -17, -25, -33, -42, -50, -58, -66, -75, -83, -91, -99, -108, -116, -124, -132, -141, -149, -157, -166}, {91, 83, 75, 67, 58, 50, 42, 34, 25, 17, 9, 1, -8, -16, -24, -32, -41, -49, -57, -65, -74, -82, -90, -98, -107, -115, -123, -131, -140, -148, -156, -165}, {92, 84, 76, 68, 59, 51, 43, 35, 26, 18, 10, 2, -7, -15, -23, -31, -40, -48, -56, -64, -73, -81, -89, -97, -106, -114, -122, -130, -139, -147, -155, -164}, {93, 85, 77, 69, 60, 52, 44, 36, 27, 19, 11, 3, -6, -14, -22, -30, -39, -47, -55, -63, -72, -80, -88, -96, -105, -113, -121, -129, -138, -146, -154, -163}, {94, 86, 78, 70, 61, 53, 45, 37, 28, 20, 12, 4, -5, -13, -21, -29, -38, -46, -54, -62, -71, -79, -87, -95, -104, -112, -120, -128, -137, -145, -153, -162}, {95, 87, 79, 71, 62, 54, 46, 38, 29, 21, 13, 5, -4, -12, -20, -28, -37, -45, -53, -61, -70, -78, -86, -94, -103, -111, -119, -127, -136, -144, -152, -161}, {96, 88, 80, 72, 63, 55, 47, 39, 30, 22, 14, 6, -3, -11, -19, -27, -36, -44, -52, -60, -69, -77, -85, -93, -102, -110, -118, -126, -135, -143, -151, -160}, {97, 89, 81, 73, 64, 56, 48, 40, 31, 23, 15, 7, -2, -10, -18, -26, -35, -43, -51, -59, -68, -76, -84, -92, -101, -109, -117, -125, -134, -142, -150, -159}, {98, 90, 82, 74, 65, 57, 49, 41, 32, 24, 16, 8, -1, -9, -17, -25, -34, -42, -50, -58, -67, -75, -83, -91, -100, -108, -116, -124, -133, -141, -149, -158}, {99, 91, 83, 75, 66, 58, 50, 42, 33, 25, 17, 9, 0, -8, -16, -24, -33, -41, -49, -57, -66, -74, -82, -90, -99, -107, -115, -123, -132, -140, -148, -157}, {100, 92, 84, 76, 67, 59, 51, 43, 34, 26, 18, 10, 1, -7, -15, -23, -32, -40, -48, -56, -65, -73, -81, -89, -98, -106, -114, -122, -131, -139, -147, -156}, {101, 93, 85, 77, 68, 60, 52, 44, 35, 27, 19, 11, 2, -6, -14, -22, -31, -39, -47, -55, -64, -72, -80, -88, -97, -105, -113, -121, -130, -138, -146, -155}, {102, 94, 86, 78, 69, 61, 53, 45, 36, 28, 20, 12, 3, -5, -13, -21, -30, -38, -46, -54, -63, -71, -79, -87, -96, -104, -112, -120, -129, -137, -145, -154}, {103, 95, 87, 79, 70, 62, 54, 46, 37, 29, 21, 13, 4, -4, -12, -20, -29, -37, -45, -53, -62, -70, -78, -86, -95, -103, -111, -119, -128, -136, -144, -153}, {104, 96, 88, 80, 71, 63, 55, 47, 38, 30, 22, 14, 5, -3, -11, -19, -28, -36, -44, -52, -61, -69, -77, -85, -94, -102, -110, -118, -127, -135, -143, -152}, {105, 97, 89, 81, 72, 64, 56, 48, 39, 31, 23, 15, 6, -2, -10, -18, -27, -35, -43, -51, -60, -68, -76, -84, -93, -101, -109, -117, -126, -134, -142, -151}, {106, 98, 90, 82, 73, 65, 57, 49, 40, 32, 24, 16, 7, -1, -9, -17, -26, -34, -42, -50, -59, -67, -75, -83, -92, -100, -108, -116, -125, -133, -141, -150}, {107, 99, 91, 83, 74, 66, 58, 50, 41, 33, 25, 17, 8, 0, -8, -16, -25, -33, -41, -49, -58, -66, -74, -82, -91, -99, -107, -115, -124, -132, -140, -149}, {108, 100, 92, 84, 75, 67, 59, 51, 42, 34, 26, 18, 9, 1, -7, -15, -24, -32, -40, -48, -57, -65, -73, -81, -90, -98, -106, -114, -123, -131, -139, -148}, {109, 101, 93, 85, 76, 68, 60, 52, 43, 35, 27, 19, 10, 2, -6, -14, -23, -31, -39, -47, -56, -64, -72, -80, -89, -97, -105, -113, -122, -130, -138, -147}, {110, 102, 94, 86, 77, 69, 61, 53, 44, 36, 28, 20, 11, 3, -5, -13, -22, -30, -38, -46, -55, -63, -71, -79, -88, -96, -104, -112, -121, -129, -137, -146}, {111, 103, 95, 87, 78, 70, 62, 54, 45, 37, 29, 21, 12, 4, -4, -12, -21, -29, -37, -45, -54, -62, -70, -78, -87, -95, -103, -111, -120, -128, -136, -145}, {112, 104, 96, 88, 79, 71, 63, 55, 46, 38, 30, 22, 13, 5, -3, -11, -20, -28, -36, -44, -53, -61, -69, -77, -86, -94, -102, -110, -119, -127, -135, -144}, {113, 105, 97, 89, 80, 72, 64, 56, 47, 39, 31, 23, 14, 6, -2, -10, -19, -27, -35, -43, -52, -60, -68, -76, -85, -93, -101, -109, -118, -126, -134, -143}, {114, 106, 98, 90, 81, 73, 65, 57, 48, 40, 32, 24, 15, 7, -1, -9, -18, -26, -34, -42, -51, -59, -67, -75, -84, -92, -100, -108, -117, -125, -133, -142}, {115, 107, 99, 91, 82, 74, 66, 58, 49, 41, 33, 25, 16, 8, 0, -8, -17, -25, -33, -41, -50, -58, -66, -74, -83, -91, -99, -107, -116, -124, -132, -141}, {116, 108, 100, 92, 83, 75, 67, 59, 50, 42, 34, 26, 17, 9, 1, -7, -16, -24, -32, -40, -49, -57, -65, -73, -82, -90, -98, -106, -115, -123, -131, -140}, {117, 109, 101, 93, 84, 76, 68, 60, 51, 43, 35, 27, 18, 10, 2, -6, -15, -23, -31, -39, -48, -56, -64, -72, -81, -89, -97, -105, -114, -122, -130, -139}, {118, 110, 102, 94, 85, 77, 69, 61, 52, 44, 36, 28, 19, 11, 3, -5, -14, -22, -30, -38, -47, -55, -63, -71, -80, -88, -96, -104, -113, -121, -129, -138}, {119, 111, 103, 95, 86, 78, 70, 62, 53, 45, 37, 29, 20, 12, 4, -4, -13, -21, -29, -37, -46, -54, -62, -70, -79, -87, -95, -103, -112, -120, -128, -137}, {120, 112, 104, 96, 87, 79, 71, 63, 54, 46, 38, 30, 21, 13, 5, -3, -12, -20, -28, -36, -45, -53, -61, -69, -78, -86, -94, -102, -111, -119, -127, -136}, {121, 113, 105, 97, 88, 80, 72, 64, 55, 47, 39, 31, 22, 14, 6, -2, -11, -19, -27, -35, -44, -52, -60, -68, -77, -85, -93, -101, -110, -118, -126, -135}, {122, 114, 106, 98, 89, 81, 73, 65, 56, 48, 40, 32, 23, 15, 7, -1, -10, -18, -26, -34, -43, -51, -59, -67, -76, -84, -92, -100, -109, -117, -125, -134}, {123, 115, 107, 99, 90, 82, 74, 66, 57, 49, 41, 33, 24, 16, 8, 0, -9, -17, -25, -33, -42, -50, -58, -66, -75, -83, -91, -99, -108, -116, -124, -133}, {124, 116, 108, 100, 91, 83, 75, 67, 58, 50, 42, 34, 25, 17, 9, 1, -8, -16, -24, -32, -41, -49, -57, -65, -74, -82, -90, -98, -107, -115, -123, -132}, {125, 117, 109, 101, 92, 84, 76, 68, 59, 51, 43, 35, 26, 18, 10, 2, -7, -15, -23, -31, -40, -48, -56, -64, -73, -81, -89, -97, -106, -114, -122, -131}, {126, 118, 110, 102, 93, 85, 77, 69, 60, 52, 44, 36, 27, 19, 11, 3, -6, -14, -22, -30, -39, -47, -55, -63, -72, -80, -88, -96, -105, -113, -121, -130}, {127, 119, 111, 103, 94, 86, 78, 70, 61, 53, 45, 37, 28, 20, 12, 4, -5, -13, -21, -29, -38, -46, -54, -62, -71, -79, -87, -95, -104, -112, -120, -129}, {128, 120, 112, 104, 95, 87, 79, 71, 62, 54, 46, 38, 29, 21, 13, 5, -4, -12, -20, -28, -37, -45, -53, -61, -70, -78, -86, -94, -103, -111, -119, -128}, {129, 121, 113, 105, 96, 88, 80, 72, 63, 55, 47, 39, 30, 22, 14, 6, -3, -11, -19, -27, -36, -44, -52, -60, -69, -77, -85, -93, -102, -110, -118, -127}, {130, 122, 114, 106, 97, 89, 81, 73, 64, 56, 48, 40, 31, 23, 15, 7, -2, -10, -18, -26, -35, -43, -51, -59, -68, -76, -84, -92, -101, -109, -117, -126}, {131, 123, 115, 107, 98, 90, 82, 74, 65, 57, 49, 41, 32, 24, 16, 8, -1, -9, -17, -25, -34, -42, -50, -58, -67, -75, -83, -91, -100, -108, -116, -125}, {132, 124, 116, 108, 99, 91, 83, 75, 66, 58, 50, 42, 33, 25, 17, 9, 0, -8, -16, -24, -33, -41, -49, -57, -66, -74, -82, -90, -99, -107, -115, -124}, {133, 125, 117, 109, 100, 92, 84, 76, 67, 59, 51, 43, 34, 26, 18, 10, 1, -7, -15, -23, -32, -40, -48, -56, -65, -73, -81, -89, -98, -106, -114, -123}, {134, 126, 118, 110, 101, 93, 85, 77, 68, 60, 52, 44, 35, 27, 19, 11, 2, -6, -14, -22, -31, -39, -47, -55, -64, -72, -80, -88, -97, -105, -113, -122}, {135, 127, 119, 111, 102, 94, 86, 78, 69, 61, 53, 45, 36, 28, 20, 12, 3, -5, -13, -21, -30, -38, -46, -54, -63, -71, -79, -87, -96, -104, -112, -121}, {136, 128, 120, 112, 103, 95, 87, 79, 70, 62, 54, 46, 37, 29, 21, 13, 4, -4, -12, -20, -29, -37, -45, -53, -62, -70, -78, -86, -95, -103, -111, -120}, {137, 129, 121, 113, 104, 96, 88, 80, 71, 63, 55, 47, 38, 30, 22, 14, 5, -3, -11, -19, -28, -36, -44, -52, -61, -69, -77, -85, -94, -102, -110, -119}, {138, 130, 122, 114, 105, 97, 89, 81, 72, 64, 56, 48, 39, 31, 23, 15, 6, -2, -10, -18, -27, -35, -43, -51, -60, -68, -76, -84, -93, -101, -109, -118}, {139, 131, 123, 115, 106, 98, 90, 82, 73, 65, 57, 49, 40, 32, 24, 16, 7, -1, -9, -17, -26, -34, -42, -50, -59, -67, -75, -83, -92, -100, -108, -117}, {140, 132, 124, 116, 107, 99, 91, 83, 74, 66, 58, 50, 41, 33, 25, 17, 8, 0, -8, -16, -25, -33, -41, -49, -58, -66, -74, -82, -91, -99, -107, -116}, {141, 133, 125, 117, 108, 100, 92, 84, 75, 67, 59, 51, 42, 34, 26, 18, 9, 1, -7, -15, -24, -32, -40, -48, -57, -65, -73, -81, -90, -98, -106, -115}, {142, 134, 126, 118, 109, 101, 93, 85, 76, 68, 60, 52, 43, 35, 27, 19, 10, 2, -6, -14, -23, -31, -39, -47, -56, -64, -72, -80, -89, -97, -105, -114}, {143, 135, 127, 119, 110, 102, 94, 86, 77, 69, 61, 53, 44, 36, 28, 20, 11, 3, -5, -13, -22, -30, -38, -46, -55, -63, -71, -79, -88, -96, -104, -113}, {144, 136, 128, 120, 111, 103, 95, 87, 78, 70, 62, 54, 45, 37, 29, 21, 12, 4, -4, -12, -21, -29, -37, -45, -54, -62, -70, -78, -87, -95, -103, -112}, {145, 137, 129, 121, 112, 104, 96, 88, 79, 71, 63, 55, 46, 38, 30, 22, 13, 5, -3, -11, -20, -28, -36, -44, -53, -61, -69, -77, -86, -94, -102, -111}, {146, 138, 130, 122, 113, 105, 97, 89, 80, 72, 64, 56, 47, 39, 31, 23, 14, 6, -2, -10, -19, -27, -35, -43, -52, -60, -68, -76, -85, -93, -101, -110}, {147, 139, 131, 123, 114, 106, 98, 90, 81, 73, 65, 57, 48, 40, 32, 24, 15, 7, -1, -9, -18, -26, -34, -42, -51, -59, -67, -75, -84, -92, -100, -109}, {148, 140, 132, 124, 115, 107, 99, 91, 82, 74, 66, 58, 49, 41, 33, 25, 16, 8, 0, -8, -17, -25, -33, -41, -50, -58, -66, -74, -83, -91, -99, -108}, {149, 141, 133, 125, 116, 108, 100, 92, 83, 75, 67, 59, 50, 42, 34, 26, 17, 9, 1, -7, -16, -24, -32, -40, -49, -57, -65, -73, -82, -90, -98, -107}, {150, 142, 134, 126, 117, 109, 101, 93, 84, 76, 68, 60, 51, 43, 35, 27, 18, 10, 2, -6, -15, -23, -31, -39, -48, -56, -64, -72, -81, -89, -97, -106}, {151, 143, 135, 127, 118, 110, 102, 94, 85, 77, 69, 61, 52, 44, 36, 28, 19, 11, 3, -5, -14, -22, -30, -38, -47, -55, -63, -71, -80, -88, -96, -105}, {152, 144, 136, 128, 119, 111, 103, 95, 86, 78, 70, 62, 53, 45, 37, 29, 20, 12, 4, -4, -13, -21, -29, -37, -46, -54, -62, -70, -79, -87, -95, -104}, {153, 145, 137, 129, 120, 112, 104, 96, 87, 79, 71, 63, 54, 46, 38, 30, 21, 13, 5, -3, -12, -20, -28, -36, -45, -53, -61, -69, -78, -86, -94, -103}, {154, 146, 138, 130, 121, 113, 105, 97, 88, 80, 72, 64, 55, 47, 39, 31, 22, 14, 6, -2, -11, -19, -27, -35, -44, -52, -60, -68, -77, -85, -93, -102}, {155, 147, 139, 131, 122, 114, 106, 98, 89, 81, 73, 65, 56, 48, 40, 32, 23, 15, 7, -1, -10, -18, -26, -34, -43, -51, -59, -67, -76, -84, -92, -101}, {156, 148, 140, 132, 123, 115, 107, 99, 90, 82, 74, 66, 57, 49, 41, 33, 24, 16, 8, 0, -9, -17, -25, -33, -42, -50, -58, -66, -75, -83, -91, -100}, {157, 149, 141, 133, 124, 116, 108, 100, 91, 83, 75, 67, 58, 50, 42, 34, 25, 17, 9, 1, -8, -16, -24, -32, -41, -49, -57, -65, -74, -82, -90, -99}, {158, 150, 142, 134, 125, 117, 109, 101, 92, 84, 76, 68, 59, 51, 43, 35, 26, 18, 10, 2, -7, -15, -23, -31, -40, -48, -56, -64, -73, -81, -89, -98}, {159, 151, 143, 135, 126, 118, 110, 102, 93, 85, 77, 69, 60, 52, 44, 36, 27, 19, 11, 3, -6, -14, -22, -30, -39, -47, -55, -63, -72, -80, -88, -97}, {160, 152, 144, 136, 127, 119, 111, 103, 94, 86, 78, 70, 61, 53, 45, 37, 28, 20, 12, 4, -5, -13, -21, -29, -38, -46, -54, -62, -71, -79, -87, -96}, {161, 153, 145, 137, 128, 120, 112, 104, 95, 87, 79, 71, 62, 54, 46, 38, 29, 21, 13, 5, -4, -12, -20, -28, -37, -45, -53, -61, -70, -78, -86, -95}, {162, 154, 146, 138, 129, 121, 113, 105, 96, 88, 80, 72, 63, 55, 47, 39, 30, 22, 14, 6, -3, -11, -19, -27, -36, -44, -52, -60, -69, -77, -85, -94}, {163, 155, 147, 139, 130, 122, 114, 106, 97, 89, 81, 73, 64, 56, 48, 40, 31, 23, 15, 7, -2, -10, -18, -26, -35, -43, -51, -59, -68, -76, -84, -93}, {164, 156, 148, 140, 131, 123, 115, 107, 98, 90, 82, 74, 65, 57, 49, 41, 32, 24, 16, 8, -1, -9, -17, -25, -34, -42, -50, -58, -67, -75, -83, -92}, {165, 157, 149, 141, 132, 124, 116, 108, 99, 91, 83, 75, 66, 58, 50, 42, 33, 25, 17, 9, 0, -8, -16, -24, -33, -41, -49, -57, -66, -74, -82, -91}, {166, 158, 150, 142, 133, 125, 117, 109, 100, 92, 84, 76, 67, 59, 51, 43, 34, 26, 18, 10, 1, -7, -15, -23, -32, -40, -48, -56, -65, -73, -81, -90}, {167, 159, 151, 143, 134, 126, 118, 110, 101, 93, 85, 77, 68, 60, 52, 44, 35, 27, 19, 11, 2, -6, -14, -22, -31, -39, -47, -55, -64, -72, -80, -89}, {168, 160, 152, 144, 135, 127, 119, 111, 102, 94, 86, 78, 69, 61, 53, 45, 36, 28, 20, 12, 3, -5, -13, -21, -30, -38, -46, -54, -63, -71, -79, -88}, {169, 161, 153, 145, 136, 128, 120, 112, 103, 95, 87, 79, 70, 62, 54, 46, 37, 29, 21, 13, 4, -4, -12, -20, -29, -37, -45, -53, -62, -70, -78, -87}, {170, 162, 154, 146, 137, 129, 121, 113, 104, 96, 88, 80, 71, 63, 55, 47, 38, 30, 22, 14, 5, -3, -11, -19, -28, -36, -44, -52, -61, -69, -77, -86}, {171, 163, 155, 147, 138, 130, 122, 114, 105, 97, 89, 81, 72, 64, 56, 48, 39, 31, 23, 15, 6, -2, -10, -18, -27, -35, -43, -51, -60, -68, -76, -85}, {172, 164, 156, 148, 139, 131, 123, 115, 106, 98, 90, 82, 73, 65, 57, 49, 40, 32, 24, 16, 7, -1, -9, -17, -26, -34, -42, -50, -59, -67, -75, -84}, {173, 165, 157, 149, 140, 132, 124, 116, 107, 99, 91, 83, 74, 66, 58, 50, 41, 33, 25, 17, 8, 0, -8, -16, -25, -33, -41, -49, -58, -66, -74, -83}, {174, 166, 158, 150, 141, 133, 125, 117, 108, 100, 92, 84, 75, 67, 59, 51, 42, 34, 26, 18, 9, 1, -7, -15, -24, -32, -40, -48, -57, -65, -73, -82}, {175, 167, 159, 151, 142, 134, 126, 118, 109, 101, 93, 85, 76, 68, 60, 52, 43, 35, 27, 19, 10, 2, -6, -14, -23, -31, -39, -47, -56, -64, -72, -81}, {176, 168, 160, 152, 143, 135, 127, 119, 110, 102, 94, 86, 77, 69, 61, 53, 44, 36, 28, 20, 11, 3, -5, -13, -22, -30, -38, -46, -55, -63, -71, -80}, {177, 169, 161, 153, 144, 136, 128, 120, 111, 103, 95, 87, 78, 70, 62, 54, 45, 37, 29, 21, 12, 4, -4, -12, -21, -29, -37, -45, -54, -62, -70, -79}, {178, 170, 162, 154, 145, 137, 129, 121, 112, 104, 96, 88, 79, 71, 63, 55, 46, 38, 30, 22, 13, 5, -3, -11, -20, -28, -36, -44, -53, -61, -69, -78}, {179, 171, 163, 155, 146, 138, 130, 122, 113, 105, 97, 89, 80, 72, 64, 56, 47, 39, 31, 23, 14, 6, -2, -10, -19, -27, -35, -43, -52, -60, -68, -77}, {180, 172, 164, 156, 147, 139, 131, 123, 114, 106, 98, 90, 81, 73, 65, 57, 48, 40, 32, 24, 15, 7, -1, -9, -18, -26, -34, -42, -51, -59, -67, -76}, {181, 173, 165, 157, 148, 140, 132, 124, 115, 107, 99, 91, 82, 74, 66, 58, 49, 41, 33, 25, 16, 8, 0, -8, -17, -25, -33, -41, -50, -58, -66, -75}, {182, 174, 166, 158, 149, 141, 133, 125, 116, 108, 100, 92, 83, 75, 67, 59, 50, 42, 34, 26, 17, 9, 1, -7, -16, -24, -32, -40, -49, -57, -65, -74}, {183, 175, 167, 159, 150, 142, 134, 126, 117, 109, 101, 93, 84, 76, 68, 60, 51, 43, 35, 27, 18, 10, 2, -6, -15, -23, -31, -39, -48, -56, -64, -73}, {184, 176, 168, 160, 151, 143, 135, 127, 118, 110, 102, 94, 85, 77, 69, 61, 52, 44, 36, 28, 19, 11, 3, -5, -14, -22, -30, -38, -47, -55, -63, -72}, {185, 177, 169, 161, 152, 144, 136, 128, 119, 111, 103, 95, 86, 78, 70, 62, 53, 45, 37, 29, 20, 12, 4, -4, -13, -21, -29, -37, -46, -54, -62, -71}, {186, 178, 170, 162, 153, 145, 137, 129, 120, 112, 104, 96, 87, 79, 71, 63, 54, 46, 38, 30, 21, 13, 5, -3, -12, -20, -28, -36, -45, -53, -61, -70}, {187, 179, 171, 163, 154, 146, 138, 130, 121, 113, 105, 97, 88, 80, 72, 64, 55, 47, 39, 31, 22, 14, 6, -2, -11, -19, -27, -35, -44, -52, -60, -69}, {188, 180, 172, 164, 155, 147, 139, 131, 122, 114, 106, 98, 89, 81, 73, 65, 56, 48, 40, 32, 23, 15, 7, -1, -10, -18, -26, -34, -43, -51, -59, -68}, {189, 181, 173, 165, 156, 148, 140, 132, 123, 115, 107, 99, 90, 82, 74, 66, 57, 49, 41, 33, 24, 16, 8, 0, -9, -17, -25, -33, -42, -50, -58, -67}, {190, 182, 174, 166, 157, 149, 141, 133, 124, 116, 108, 100, 91, 83, 75, 67, 58, 50, 42, 34, 25, 17, 9, 1, -8, -16, -24, -32, -41, -49, -57, -66}, {191, 183, 175, 167, 158, 150, 142, 134, 125, 117, 109, 101, 92, 84, 76, 68, 59, 51, 43, 35, 26, 18, 10, 2, -7, -15, -23, -31, -40, -48, -56, -65}, {192, 184, 176, 168, 159, 151, 143, 135, 126, 118, 110, 102, 93, 85, 77, 69, 60, 52, 44, 36, 27, 19, 11, 3, -6, -14, -22, -30, -39, -47, -55, -64}, {193, 185, 177, 169, 160, 152, 144, 136, 127, 119, 111, 103, 94, 86, 78, 70, 61, 53, 45, 37, 28, 20, 12, 4, -5, -13, -21, -29, -38, -46, -54, -63}, {194, 186, 178, 170, 161, 153, 145, 137, 128, 120, 112, 104, 95, 87, 79, 71, 62, 54, 46, 38, 29, 21, 13, 5, -4, -12, -20, -28, -37, -45, -53, -62}, {195, 187, 179, 171, 162, 154, 146, 138, 129, 121, 113, 105, 96, 88, 80, 72, 63, 55, 47, 39, 30, 22, 14, 6, -3, -11, -19, -27, -36, -44, -52, -61}, {196, 188, 180, 172, 163, 155, 147, 139, 130, 122, 114, 106, 97, 89, 81, 73, 64, 56, 48, 40, 31, 23, 15, 7, -2, -10, -18, -26, -35, -43, -51, -60}, {197, 189, 181, 173, 164, 156, 148, 140, 131, 123, 115, 107, 98, 90, 82, 74, 65, 57, 49, 41, 32, 24, 16, 8, -1, -9, -17, -25, -34, -42, -50, -59}, {198, 190, 182, 174, 165, 157, 149, 141, 132, 124, 116, 108, 99, 91, 83, 75, 66, 58, 50, 42, 33, 25, 17, 9, 0, -8, -16, -24, -33, -41, -49, -58}, {199, 191, 183, 175, 166, 158, 150, 142, 133, 125, 117, 109, 100, 92, 84, 76, 67, 59, 51, 43, 34, 26, 18, 10, 1, -7, -15, -23, -32, -40, -48, -57}, {200, 192, 184, 176, 167, 159, 151, 143, 134, 126, 118, 110, 101, 93, 85, 77, 68, 60, 52, 44, 35, 27, 19, 11, 2, -6, -14, -22, -31, -39, -47, -56}, {201, 193, 185, 177, 168, 160, 152, 144, 135, 127, 119, 111, 102, 94, 86, 78, 69, 61, 53, 45, 36, 28, 20, 12, 3, -5, -13, -21, -30, -38, -46, -55}, {202, 194, 186, 178, 169, 161, 153, 145, 136, 128, 120, 112, 103, 95, 87, 79, 70, 62, 54, 46, 37, 29, 21, 13, 4, -4, -12, -20, -29, -37, -45, -54}, {203, 195, 187, 179, 170, 162, 154, 146, 137, 129, 121, 113, 104, 96, 88, 80, 71, 63, 55, 47, 38, 30, 22, 14, 5, -3, -11, -19, -28, -36, -44, -53}, {204, 196, 188, 180, 171, 163, 155, 147, 138, 130, 122, 114, 105, 97, 89, 81, 72, 64, 56, 48, 39, 31, 23, 15, 6, -2, -10, -18, -27, -35, -43, -52}, {205, 197, 189, 181, 172, 164, 156, 148, 139, 131, 123, 115, 106, 98, 90, 82, 73, 65, 57, 49, 40, 32, 24, 16, 7, -1, -9, -17, -26, -34, -42, -51}, {206, 198, 190, 182, 173, 165, 157, 149, 140, 132, 124, 116, 107, 99, 91, 83, 74, 66, 58, 50, 41, 33, 25, 17, 8, 0, -8, -16, -25, -33, -41, -50}, {207, 199, 191, 183, 174, 166, 158, 150, 141, 133, 125, 117, 108, 100, 92, 84, 75, 67, 59, 51, 42, 34, 26, 18, 9, 1, -7, -15, -24, -32, -40, -49}, {208, 200, 192, 184, 175, 167, 159, 151, 142, 134, 126, 118, 109, 101, 93, 85, 76, 68, 60, 52, 43, 35, 27, 19, 10, 2, -6, -14, -23, -31, -39, -48}, {209, 201, 193, 185, 176, 168, 160, 152, 143, 135, 127, 119, 110, 102, 94, 86, 77, 69, 61, 53, 44, 36, 28, 20, 11, 3, -5, -13, -22, -30, -38, -47}, {210, 202, 194, 186, 177, 169, 161, 153, 144, 136, 128, 120, 111, 103, 95, 87, 78, 70, 62, 54, 45, 37, 29, 21, 12, 4, -4, -12, -21, -29, -37, -46}, {211, 203, 195, 187, 178, 170, 162, 154, 145, 137, 129, 121, 112, 104, 96, 88, 79, 71, 63, 55, 46, 38, 30, 22, 13, 5, -3, -11, -20, -28, -36, -45}, {212, 204, 196, 188, 179, 171, 163, 155, 146, 138, 130, 122, 113, 105, 97, 89, 80, 72, 64, 56, 47, 39, 31, 23, 14, 6, -2, -10, -19, -27, -35, -44}, {213, 205, 197, 189, 180, 172, 164, 156, 147, 139, 131, 123, 114, 106, 98, 90, 81, 73, 65, 57, 48, 40, 32, 24, 15, 7, -1, -9, -18, -26, -34, -43}, {214, 206, 198, 190, 181, 173, 165, 157, 148, 140, 132, 124, 115, 107, 99, 91, 82, 74, 66, 58, 49, 41, 33, 25, 16, 8, 0, -8, -17, -25, -33, -42}, {215, 207, 199, 191, 182, 174, 166, 158, 149, 141, 133, 125, 116, 108, 100, 92, 83, 75, 67, 59, 50, 42, 34, 26, 17, 9, 1, -7, -16, -24, -32, -41}, {216, 208, 200, 192, 183, 175, 167, 159, 150, 142, 134, 126, 117, 109, 101, 93, 84, 76, 68, 60, 51, 43, 35, 27, 18, 10, 2, -6, -15, -23, -31, -40}, {217, 209, 201, 193, 184, 176, 168, 160, 151, 143, 135, 127, 118, 110, 102, 94, 85, 77, 69, 61, 52, 44, 36, 28, 19, 11, 3, -5, -14, -22, -30, -39}, {218, 210, 202, 194, 185, 177, 169, 161, 152, 144, 136, 128, 119, 111, 103, 95, 86, 78, 70, 62, 53, 45, 37, 29, 20, 12, 4, -4, -13, -21, -29, -38}, {219, 211, 203, 195, 186, 178, 170, 162, 153, 145, 137, 129, 120, 112, 104, 96, 87, 79, 71, 63, 54, 46, 38, 30, 21, 13, 5, -3, -12, -20, -28, -37}, {220, 212, 204, 196, 187, 179, 171, 163, 154, 146, 138, 130, 121, 113, 105, 97, 88, 80, 72, 64, 55, 47, 39, 31, 22, 14, 6, -2, -11, -19, -27, -36}, {221, 213, 205, 197, 188, 180, 172, 164, 155, 147, 139, 131, 122, 114, 106, 98, 89, 81, 73, 65, 56, 48, 40, 32, 23, 15, 7, -1, -10, -18, -26, -35}, {222, 214, 206, 198, 189, 181, 173, 165, 156, 148, 140, 132, 123, 115, 107, 99, 90, 82, 74, 66, 57, 49, 41, 33, 24, 16, 8, 0, -9, -17, -25, -34}, {223, 215, 207, 199, 190, 182, 174, 166, 157, 149, 141, 133, 124, 116, 108, 100, 91, 83, 75, 67, 58, 50, 42, 34, 25, 17, 9, 1, -8, -16, -24, -33}, {224, 216, 208, 200, 191, 183, 175, 167, 158, 150, 142, 134, 125, 117, 109, 101, 92, 84, 76, 68, 59, 51, 43, 35, 26, 18, 10, 2, -7, -15, -23, -32}, {225, 217, 209, 201, 192, 184, 176, 168, 159, 151, 143, 135, 126, 118, 110, 102, 93, 85, 77, 69, 60, 52, 44, 36, 27, 19, 11, 3, -6, -14, -22, -31}, {226, 218, 210, 202, 193, 185, 177, 169, 160, 152, 144, 136, 127, 119, 111, 103, 94, 86, 78, 70, 61, 53, 45, 37, 28, 20, 12, 4, -5, -13, -21, -30}, {227, 219, 211, 203, 194, 186, 178, 170, 161, 153, 145, 137, 128, 120, 112, 104, 95, 87, 79, 71, 62, 54, 46, 38, 29, 21, 13, 5, -4, -12, -20, -29}, {228, 220, 212, 204, 195, 187, 179, 171, 162, 154, 146, 138, 129, 121, 113, 105, 96, 88, 80, 72, 63, 55, 47, 39, 30, 22, 14, 6, -3, -11, -19, -28}, {229, 221, 213, 205, 196, 188, 180, 172, 163, 155, 147, 139, 130, 122, 114, 106, 97, 89, 81, 73, 64, 56, 48, 40, 31, 23, 15, 7, -2, -10, -18, -27}, {230, 222, 214, 206, 197, 189, 181, 173, 164, 156, 148, 140, 131, 123, 115, 107, 98, 90, 82, 74, 65, 57, 49, 41, 32, 24, 16, 8, -1, -9, -17, -26}, {231, 223, 215, 207, 198, 190, 182, 174, 165, 157, 149, 141, 132, 124, 116, 108, 99, 91, 83, 75, 66, 58, 50, 42, 33, 25, 17, 9, 0, -8, -16, -25}, {232, 224, 216, 208, 199, 191, 183, 175, 166, 158, 150, 142, 133, 125, 117, 109, 100, 92, 84, 76, 67, 59, 51, 43, 34, 26, 18, 10, 1, -7, -15, -24}, {233, 225, 217, 209, 200, 192, 184, 176, 167, 159, 151, 143, 134, 126, 118, 110, 101, 93, 85, 77, 68, 60, 52, 44, 35, 27, 19, 11, 2, -6, -14, -23}, {234, 226, 218, 210, 201, 193, 185, 177, 168, 160, 152, 144, 135, 127, 119, 111, 102, 94, 86, 78, 69, 61, 53, 45, 36, 28, 20, 12, 3, -5, -13, -22}, {235, 227, 219, 211, 202, 194, 186, 178, 169, 161, 153, 145, 136, 128, 120, 112, 103, 95, 87, 79, 70, 62, 54, 46, 37, 29, 21, 13, 4, -4, -12, -21}, {236, 228, 220, 212, 203, 195, 187, 179, 170, 162, 154, 146, 137, 129, 121, 113, 104, 96, 88, 80, 71, 63, 55, 47, 38, 30, 22, 14, 5, -3, -11, -20}, {237, 229, 221, 213, 204, 196, 188, 180, 171, 163, 155, 147, 138, 130, 122, 114, 105, 97, 89, 81, 72, 64, 56, 48, 39, 31, 23, 15, 6, -2, -10, -19}, {238, 230, 222, 214, 205, 197, 189, 181, 172, 164, 156, 148, 139, 131, 123, 115, 106, 98, 90, 82, 73, 65, 57, 49, 40, 32, 24, 16, 7, -1, -9, -18}, {239, 231, 223, 215, 206, 198, 190, 182, 173, 165, 157, 149, 140, 132, 124, 116, 107, 99, 91, 83, 74, 66, 58, 50, 41, 33, 25, 17, 8, 0, -8, -17}, {240, 232, 224, 216, 207, 199, 191, 183, 174, 166, 158, 150, 141, 133, 125, 117, 108, 100, 92, 84, 75, 67, 59, 51, 42, 34, 26, 18, 9, 1, -7, -16}, {241, 233, 225, 217, 208, 200, 192, 184, 175, 167, 159, 151, 142, 134, 126, 118, 109, 101, 93, 85, 76, 68, 60, 52, 43, 35, 27, 19, 10, 2, -6, -15}, {242, 234, 226, 218, 209, 201, 193, 185, 176, 168, 160, 152, 143, 135, 127, 119, 110, 102, 94, 86, 77, 69, 61, 53, 44, 36, 28, 20, 11, 3, -5, -14}, {243, 235, 227, 219, 210, 202, 194, 186, 177, 169, 161, 153, 144, 136, 128, 120, 111, 103, 95, 87, 78, 70, 62, 54, 45, 37, 29, 21, 12, 4, -4, -13}, {244, 236, 228, 220, 211, 203, 195, 187, 178, 170, 162, 154, 145, 137, 129, 121, 112, 104, 96, 88, 79, 71, 63, 55, 46, 38, 30, 22, 13, 5, -3, -12}, {245, 237, 229, 221, 212, 204, 196, 188, 179, 171, 163, 155, 146, 138, 130, 122, 113, 105, 97, 89, 80, 72, 64, 56, 47, 39, 31, 23, 14, 6, -2, -11}, {246, 238, 230, 222, 213, 205, 197, 189, 180, 172, 164, 156, 147, 139, 131, 123, 114, 106, 98, 90, 81, 73, 65, 57, 48, 40, 32, 24, 15, 7, -1, -10}, {247, 239, 231, 223, 214, 206, 198, 190, 181, 173, 165, 157, 148, 140, 132, 124, 115, 107, 99, 91, 82, 74, 66, 58, 49, 41, 33, 25, 16, 8, 0, -9}, {248, 240, 232, 224, 215, 207, 199, 191, 182, 174, 166, 158, 149, 141, 133, 125, 116, 108, 100, 92, 83, 75, 67, 59, 50, 42, 34, 26, 17, 9, 1, -8}, {249, 241, 233, 225, 216, 208, 200, 192, 183, 175, 167, 159, 150, 142, 134, 126, 117, 109, 101, 93, 84, 76, 68, 60, 51, 43, 35, 27, 18, 10, 2, -7}, {250, 242, 234, 226, 217, 209, 201, 193, 184, 176, 168, 160, 151, 143, 135, 127, 118, 110, 102, 94, 85, 77, 69, 61, 52, 44, 36, 28, 19, 11, 3, -6}, {251, 243, 235, 227, 218, 210, 202, 194, 185, 177, 169, 161, 152, 144, 136, 128, 119, 111, 103, 95, 86, 78, 70, 62, 53, 45, 37, 29, 20, 12, 4, -5}, {252, 244, 236, 228, 219, 211, 203, 195, 186, 178, 170, 162, 153, 145, 137, 129, 120, 112, 104, 96, 87, 79, 71, 63, 54, 46, 38, 30, 21, 13, 5, -4}, {253, 245, 237, 229, 220, 212, 204, 196, 187, 179, 171, 163, 154, 146, 138, 130, 121, 113, 105, 97, 88, 80, 72, 64, 55, 47, 39, 31, 22, 14, 6, -3}, {254, 246, 238, 230, 221, 213, 205, 197, 188, 180, 172, 164, 155, 147, 139, 131, 122, 114, 106, 98, 89, 81, 73, 65, 56, 48, 40, 32, 23, 15, 7, -2}, {255, 247, 239, 231, 222, 214, 206, 198, 189, 181, 173, 165, 156, 148, 140, 132, 123, 115, 107, 99, 90, 82, 74, 66, 57, 49, 41, 33, 24, 16, 8, -1}, {256, 248, 240, 232, 223, 215, 207, 199, 190, 182, 174, 166, 157, 149, 141, 133, 124, 116, 108, 100, 91, 83, 75, 67, 58, 50, 42, 34, 25, 17, 9, 0}, {257, 249, 241, 233, 224, 216, 208, 200, 191, 183, 175, 167, 158, 150, 142, 134, 125, 117, 109, 101, 92, 84, 76, 68, 59, 51, 43, 35, 26, 18, 10, 1}, {258, 250, 242, 234, 225, 217, 209, 201, 192, 184, 176, 168, 159, 151, 143, 135, 126, 118, 110, 102, 93, 85, 77, 69, 60, 52, 44, 36, 27, 19, 11, 2}, {259, 251, 243, 235, 226, 218, 210, 202, 193, 185, 177, 169, 160, 152, 144, 136, 127, 119, 111, 103, 94, 86, 78, 70, 61, 53, 45, 37, 28, 20, 12, 3}, {260, 252, 244, 236, 227, 219, 211, 203, 194, 186, 178, 170, 161, 153, 145, 137, 128, 120, 112, 104, 95, 87, 79, 71, 62, 54, 46, 38, 29, 21, 13, 4}, {261, 253, 245, 237, 228, 220, 212, 204, 195, 187, 179, 171, 162, 154, 146, 138, 129, 121, 113, 105, 96, 88, 80, 72, 63, 55, 47, 39, 30, 22, 14, 5}, {262, 254, 246, 238, 229, 221, 213, 205, 196, 188, 180, 172, 163, 155, 147, 139, 130, 122, 114, 106, 97, 89, 81, 73, 64, 56, 48, 40, 31, 23, 15, 6}, {263, 255, 247, 239, 230, 222, 214, 206, 197, 189, 181, 173, 164, 156, 148, 140, 131, 123, 115, 107, 98, 90, 82, 74, 65, 57, 49, 41, 32, 24, 16, 7}, {264, 256, 248, 240, 231, 223, 215, 207, 198, 190, 182, 174, 165, 157, 149, 141, 132, 124, 116, 108, 99, 91, 83, 75, 66, 58, 50, 42, 33, 25, 17, 8}, {265, 257, 249, 241, 232, 224, 216, 208, 199, 191, 183, 175, 166, 158, 150, 142, 133, 125, 117, 109, 100, 92, 84, 76, 67, 59, 51, 43, 34, 26, 18, 9}, {266, 258, 250, 242, 233, 225, 217, 209, 200, 192, 184, 176, 167, 159, 151, 143, 134, 126, 118, 110, 101, 93, 85, 77, 68, 60, 52, 44, 35, 27, 19, 10}, {267, 259, 251, 243, 234, 226, 218, 210, 201, 193, 185, 177, 168, 160, 152, 144, 135, 127, 119, 111, 102, 94, 86, 78, 69, 61, 53, 45, 36, 28, 20, 11}, {268, 260, 252, 244, 235, 227, 219, 211, 202, 194, 186, 178, 169, 161, 153, 145, 136, 128, 120, 112, 103, 95, 87, 79, 70, 62, 54, 46, 37, 29, 21, 12}, {269, 261, 253, 245, 236, 228, 220, 212, 203, 195, 187, 179, 170, 162, 154, 146, 137, 129, 121, 113, 104, 96, 88, 80, 71, 63, 55, 47, 38, 30, 22, 13}, {270, 262, 254, 246, 237, 229, 221, 213, 204, 196, 188, 180, 171, 163, 155, 147, 138, 130, 122, 114, 105, 97, 89, 81, 72, 64, 56, 48, 39, 31, 23, 14}, {271, 263, 255, 247, 238, 230, 222, 214, 205, 197, 189, 181, 172, 164, 156, 148, 139, 131, 123, 115, 106, 98, 90, 82, 73, 65, 57, 49, 40, 32, 24, 15}, {272, 264, 256, 248, 239, 231, 223, 215, 206, 198, 190, 182, 173, 165, 157, 149, 140, 132, 124, 116, 107, 99, 91, 83, 74, 66, 58, 50, 41, 33, 25, 16}, {273, 265, 257, 249, 240, 232, 224, 216, 207, 199, 191, 183, 174, 166, 158, 150, 141, 133, 125, 117, 108, 100, 92, 84, 75, 67, 59, 51, 42, 34, 26, 17}, {274, 266, 258, 250, 241, 233, 225, 217, 208, 200, 192, 184, 175, 167, 159, 151, 142, 134, 126, 118, 109, 101, 93, 85, 76, 68, 60, 52, 43, 35, 27, 18}, {275, 267, 259, 251, 242, 234, 226, 218, 209, 201, 193, 185, 176, 168, 160, 152, 143, 135, 127, 119, 110, 102, 94, 86, 77, 69, 61, 53, 44, 36, 28, 19}, {276, 268, 260, 252, 243, 235, 227, 219, 210, 202, 194, 186, 177, 169, 161, 153, 144, 136, 128, 120, 111, 103, 95, 87, 78, 70, 62, 54, 45, 37, 29, 20}, {277, 269, 261, 253, 244, 236, 228, 220, 211, 203, 195, 187, 178, 170, 162, 154, 145, 137, 129, 121, 112, 104, 96, 88, 79, 71, 63, 55, 46, 38, 30, 21}, {278, 270, 262, 254, 245, 237, 229, 221, 212, 204, 196, 188, 179, 171, 163, 155, 146, 138, 130, 122, 113, 105, 97, 89, 80, 72, 64, 56, 47, 39, 31, 22}, {279, 271, 263, 255, 246, 238, 230, 222, 213, 205, 197, 189, 180, 172, 164, 156, 147, 139, 131, 123, 114, 106, 98, 90, 81, 73, 65, 57, 48, 40, 32, 23}, {280, 272, 264, 256, 247, 239, 231, 223, 214, 206, 198, 190, 181, 173, 165, 157, 148, 140, 132, 124, 115, 107, 99, 91, 82, 74, 66, 58, 49, 41, 33, 24}, {281, 273, 265, 257, 248, 240, 232, 224, 215, 207, 199, 191, 182, 174, 166, 158, 149, 141, 133, 125, 116, 108, 100, 92, 83, 75, 67, 59, 50, 42, 34, 25}, {282, 274, 266, 258, 249, 241, 233, 225, 216, 208, 200, 192, 183, 175, 167, 159, 150, 142, 134, 126, 117, 109, 101, 93, 84, 76, 68, 60, 51, 43, 35, 26}, {283, 275, 267, 259, 250, 242, 234, 226, 217, 209, 201, 193, 184, 176, 168, 160, 151, 143, 135, 127, 118, 110, 102, 94, 85, 77, 69, 61, 52, 44, 36, 27}, {284, 276, 268, 260, 251, 243, 235, 227, 218, 210, 202, 194, 185, 177, 169, 161, 152, 144, 136, 128, 119, 111, 103, 95, 86, 78, 70, 62, 53, 45, 37, 28}, {285, 277, 269, 261, 252, 244, 236, 228, 219, 211, 203, 195, 186, 178, 170, 162, 153, 145, 137, 129, 120, 112, 104, 96, 87, 79, 71, 63, 54, 46, 38, 29}, {286, 278, 270, 262, 253, 245, 237, 229, 220, 212, 204, 196, 187, 179, 171, 163, 154, 146, 138, 130, 121, 113, 105, 97, 88, 80, 72, 64, 55, 47, 39, 30}, {287, 279, 271, 263, 254, 246, 238, 230, 221, 213, 205, 197, 188, 180, 172, 164, 155, 147, 139, 131, 122, 114, 106, 98, 89, 81, 73, 65, 56, 48, 40, 31}, {288, 280, 272, 264, 255, 247, 239, 231, 222, 214, 206, 198, 189, 181, 173, 165, 156, 148, 140, 132, 123, 115, 107, 99, 90, 82, 74, 66, 57, 49, 41, 32}, {289, 281, 273, 265, 256, 248, 240, 232, 223, 215, 207, 199, 190, 182, 174, 166, 157, 149, 141, 133, 124, 116, 108, 100, 91, 83, 75, 67, 58, 50, 42, 33}, {290, 282, 274, 266, 257, 249, 241, 233, 224, 216, 208, 200, 191, 183, 175, 167, 158, 150, 142, 134, 125, 117, 109, 101, 92, 84, 76, 68, 59, 51, 43, 34}, {291, 283, 275, 267, 258, 250, 242, 234, 225, 217, 209, 201, 192, 184, 176, 168, 159, 151, 143, 135, 126, 118, 110, 102, 93, 85, 77, 69, 60, 52, 44, 35}, {292, 284, 276, 268, 259, 251, 243, 235, 226, 218, 210, 202, 193, 185, 177, 169, 160, 152, 144, 136, 127, 119, 111, 103, 94, 86, 78, 70, 61, 53, 45, 36}, {293, 285, 277, 269, 260, 252, 244, 236, 227, 219, 211, 203, 194, 186, 178, 170, 161, 153, 145, 137, 128, 120, 112, 104, 95, 87, 79, 71, 62, 54, 46, 37}, {294, 286, 278, 270, 261, 253, 245, 237, 228, 220, 212, 204, 195, 187, 179, 171, 162, 154, 146, 138, 129, 121, 113, 105, 96, 88, 80, 72, 63, 55, 47, 38}, {295, 287, 279, 271, 262, 254, 246, 238, 229, 221, 213, 205, 196, 188, 180, 172, 163, 155, 147, 139, 130, 122, 114, 106, 97, 89, 81, 73, 64, 56, 48, 39}, {296, 288, 280, 272, 263, 255, 247, 239, 230, 222, 214, 206, 197, 189, 181, 173, 164, 156, 148, 140, 131, 123, 115, 107, 98, 90, 82, 74, 65, 57, 49, 40}, {297, 289, 281, 273, 264, 256, 248, 240, 231, 223, 215, 207, 198, 190, 182, 174, 165, 157, 149, 141, 132, 124, 116, 108, 99, 91, 83, 75, 66, 58, 50, 41}, {298, 290, 282, 274, 265, 257, 249, 241, 232, 224, 216, 208, 199, 191, 183, 175, 166, 158, 150, 142, 133, 125, 117, 109, 100, 92, 84, 76, 67, 59, 51, 42}, {299, 291, 283, 275, 266, 258, 250, 242, 233, 225, 217, 209, 200, 192, 184, 176, 167, 159, 151, 143, 134, 126, 118, 110, 101, 93, 85, 77, 68, 60, 52, 43}, }; static const int32_t (*error_blue_table)[32] = error_red_table; static const int32_t error_greed_table[][64] = { {0, -4, -8, -12, -16, -20, -24, -28, -32, -36, -40, -44, -48, -52, -56, -60, -65, -69, -73, -77, -81, -85, -89, -93, -97, -101, -105, -109, -113, -117, -121, -125, -130, -134, -138, -142, -146, -150, -154, -158, -162, -166, -170, -174, -178, -182, -186, -190, -195, -199, -203, -207, -211, -215, -219, -223, -227, -231, -235, -239, -243, -247, -251, -256}, {1, -3, -7, -11, -15, -19, -23, -27, -31, -35, -39, -43, -47, -51, -55, -59, -64, -68, -72, -76, -80, -84, -88, -92, -96, -100, -104, -108, -112, -116, -120, -124, -129, -133, -137, -141, -145, -149, -153, -157, -161, -165, -169, -173, -177, -181, -185, -189, -194, -198, -202, -206, -210, -214, -218, -222, -226, -230, -234, -238, -242, -246, -250, -255}, {2, -2, -6, -10, -14, -18, -22, -26, -30, -34, -38, -42, -46, -50, -54, -58, -63, -67, -71, -75, -79, -83, -87, -91, -95, -99, -103, -107, -111, -115, -119, -123, -128, -132, -136, -140, -144, -148, -152, -156, -160, -164, -168, -172, -176, -180, -184, -188, -193, -197, -201, -205, -209, -213, -217, -221, -225, -229, -233, -237, -241, -245, -249, -254}, {3, -1, -5, -9, -13, -17, -21, -25, -29, -33, -37, -41, -45, -49, -53, -57, -62, -66, -70, -74, -78, -82, -86, -90, -94, -98, -102, -106, -110, -114, -118, -122, -127, -131, -135, -139, -143, -147, -151, -155, -159, -163, -167, -171, -175, -179, -183, -187, -192, -196, -200, -204, -208, -212, -216, -220, -224, -228, -232, -236, -240, -244, -248, -253}, {4, 0, -4, -8, -12, -16, -20, -24, -28, -32, -36, -40, -44, -48, -52, -56, -61, -65, -69, -73, -77, -81, -85, -89, -93, -97, -101, -105, -109, -113, -117, -121, -126, -130, -134, -138, -142, -146, -150, -154, -158, -162, -166, -170, -174, -178, -182, -186, -191, -195, -199, -203, -207, -211, -215, -219, -223, -227, -231, -235, -239, -243, -247, -252}, {5, 1, -3, -7, -11, -15, -19, -23, -27, -31, -35, -39, -43, -47, -51, -55, -60, -64, -68, -72, -76, -80, -84, -88, -92, -96, -100, -104, -108, -112, -116, -120, -125, -129, -133, -137, -141, -145, -149, -153, -157, -161, -165, -169, -173, -177, -181, -185, -190, -194, -198, -202, -206, -210, -214, -218, -222, -226, -230, -234, -238, -242, -246, -251}, {6, 2, -2, -6, -10, -14, -18, -22, -26, -30, -34, -38, -42, -46, -50, -54, -59, -63, -67, -71, -75, -79, -83, -87, -91, -95, -99, -103, -107, -111, -115, -119, -124, -128, -132, -136, -140, -144, -148, -152, -156, -160, -164, -168, -172, -176, -180, -184, -189, -193, -197, -201, -205, -209, -213, -217, -221, -225, -229, -233, -237, -241, -245, -250}, {7, 3, -1, -5, -9, -13, -17, -21, -25, -29, -33, -37, -41, -45, -49, -53, -58, -62, -66, -70, -74, -78, -82, -86, -90, -94, -98, -102, -106, -110, -114, -118, -123, -127, -131, -135, -139, -143, -147, -151, -155, -159, -163, -167, -171, -175, -179, -183, -188, -192, -196, -200, -204, -208, -212, -216, -220, -224, -228, -232, -236, -240, -244, -249}, {8, 4, 0, -4, -8, -12, -16, -20, -24, -28, -32, -36, -40, -44, -48, -52, -57, -61, -65, -69, -73, -77, -81, -85, -89, -93, -97, -101, -105, -109, -113, -117, -122, -126, -130, -134, -138, -142, -146, -150, -154, -158, -162, -166, -170, -174, -178, -182, -187, -191, -195, -199, -203, -207, -211, -215, -219, -223, -227, -231, -235, -239, -243, -248}, {9, 5, 1, -3, -7, -11, -15, -19, -23, -27, -31, -35, -39, -43, -47, -51, -56, -60, -64, -68, -72, -76, -80, -84, -88, -92, -96, -100, -104, -108, -112, -116, -121, -125, -129, -133, -137, -141, -145, -149, -153, -157, -161, -165, -169, -173, -177, -181, -186, -190, -194, -198, -202, -206, -210, -214, -218, -222, -226, -230, -234, -238, -242, -247}, {10, 6, 2, -2, -6, -10, -14, -18, -22, -26, -30, -34, -38, -42, -46, -50, -55, -59, -63, -67, -71, -75, -79, -83, -87, -91, -95, -99, -103, -107, -111, -115, -120, -124, -128, -132, -136, -140, -144, -148, -152, -156, -160, -164, -168, -172, -176, -180, -185, -189, -193, -197, -201, -205, -209, -213, -217, -221, -225, -229, -233, -237, -241, -246}, {11, 7, 3, -1, -5, -9, -13, -17, -21, -25, -29, -33, -37, -41, -45, -49, -54, -58, -62, -66, -70, -74, -78, -82, -86, -90, -94, -98, -102, -106, -110, -114, -119, -123, -127, -131, -135, -139, -143, -147, -151, -155, -159, -163, -167, -171, -175, -179, -184, -188, -192, -196, -200, -204, -208, -212, -216, -220, -224, -228, -232, -236, -240, -245}, {12, 8, 4, 0, -4, -8, -12, -16, -20, -24, -28, -32, -36, -40, -44, -48, -53, -57, -61, -65, -69, -73, -77, -81, -85, -89, -93, -97, -101, -105, -109, -113, -118, -122, -126, -130, -134, -138, -142, -146, -150, -154, -158, -162, -166, -170, -174, -178, -183, -187, -191, -195, -199, -203, -207, -211, -215, -219, -223, -227, -231, -235, -239, -244}, {13, 9, 5, 1, -3, -7, -11, -15, -19, -23, -27, -31, -35, -39, -43, -47, -52, -56, -60, -64, -68, -72, -76, -80, -84, -88, -92, -96, -100, -104, -108, -112, -117, -121, -125, -129, -133, -137, -141, -145, -149, -153, -157, -161, -165, -169, -173, -177, -182, -186, -190, -194, -198, -202, -206, -210, -214, -218, -222, -226, -230, -234, -238, -243}, {14, 10, 6, 2, -2, -6, -10, -14, -18, -22, -26, -30, -34, -38, -42, -46, -51, -55, -59, -63, -67, -71, -75, -79, -83, -87, -91, -95, -99, -103, -107, -111, -116, -120, -124, -128, -132, -136, -140, -144, -148, -152, -156, -160, -164, -168, -172, -176, -181, -185, -189, -193, -197, -201, -205, -209, -213, -217, -221, -225, -229, -233, -237, -242}, {15, 11, 7, 3, -1, -5, -9, -13, -17, -21, -25, -29, -33, -37, -41, -45, -50, -54, -58, -62, -66, -70, -74, -78, -82, -86, -90, -94, -98, -102, -106, -110, -115, -119, -123, -127, -131, -135, -139, -143, -147, -151, -155, -159, -163, -167, -171, -175, -180, -184, -188, -192, -196, -200, -204, -208, -212, -216, -220, -224, -228, -232, -236, -241}, {16, 12, 8, 4, 0, -4, -8, -12, -16, -20, -24, -28, -32, -36, -40, -44, -49, -53, -57, -61, -65, -69, -73, -77, -81, -85, -89, -93, -97, -101, -105, -109, -114, -118, -122, -126, -130, -134, -138, -142, -146, -150, -154, -158, -162, -166, -170, -174, -179, -183, -187, -191, -195, -199, -203, -207, -211, -215, -219, -223, -227, -231, -235, -240}, {17, 13, 9, 5, 1, -3, -7, -11, -15, -19, -23, -27, -31, -35, -39, -43, -48, -52, -56, -60, -64, -68, -72, -76, -80, -84, -88, -92, -96, -100, -104, -108, -113, -117, -121, -125, -129, -133, -137, -141, -145, -149, -153, -157, -161, -165, -169, -173, -178, -182, -186, -190, -194, -198, -202, -206, -210, -214, -218, -222, -226, -230, -234, -239}, {18, 14, 10, 6, 2, -2, -6, -10, -14, -18, -22, -26, -30, -34, -38, -42, -47, -51, -55, -59, -63, -67, -71, -75, -79, -83, -87, -91, -95, -99, -103, -107, -112, -116, -120, -124, -128, -132, -136, -140, -144, -148, -152, -156, -160, -164, -168, -172, -177, -181, -185, -189, -193, -197, -201, -205, -209, -213, -217, -221, -225, -229, -233, -238}, {19, 15, 11, 7, 3, -1, -5, -9, -13, -17, -21, -25, -29, -33, -37, -41, -46, -50, -54, -58, -62, -66, -70, -74, -78, -82, -86, -90, -94, -98, -102, -106, -111, -115, -119, -123, -127, -131, -135, -139, -143, -147, -151, -155, -159, -163, -167, -171, -176, -180, -184, -188, -192, -196, -200, -204, -208, -212, -216, -220, -224, -228, -232, -237}, {20, 16, 12, 8, 4, 0, -4, -8, -12, -16, -20, -24, -28, -32, -36, -40, -45, -49, -53, -57, -61, -65, -69, -73, -77, -81, -85, -89, -93, -97, -101, -105, -110, -114, -118, -122, -126, -130, -134, -138, -142, -146, -150, -154, -158, -162, -166, -170, -175, -179, -183, -187, -191, -195, -199, -203, -207, -211, -215, -219, -223, -227, -231, -236}, {21, 17, 13, 9, 5, 1, -3, -7, -11, -15, -19, -23, -27, -31, -35, -39, -44, -48, -52, -56, -60, -64, -68, -72, -76, -80, -84, -88, -92, -96, -100, -104, -109, -113, -117, -121, -125, -129, -133, -137, -141, -145, -149, -153, -157, -161, -165, -169, -174, -178, -182, -186, -190, -194, -198, -202, -206, -210, -214, -218, -222, -226, -230, -235}, {22, 18, 14, 10, 6, 2, -2, -6, -10, -14, -18, -22, -26, -30, -34, -38, -43, -47, -51, -55, -59, -63, -67, -71, -75, -79, -83, -87, -91, -95, -99, -103, -108, -112, -116, -120, -124, -128, -132, -136, -140, -144, -148, -152, -156, -160, -164, -168, -173, -177, -181, -185, -189, -193, -197, -201, -205, -209, -213, -217, -221, -225, -229, -234}, {23, 19, 15, 11, 7, 3, -1, -5, -9, -13, -17, -21, -25, -29, -33, -37, -42, -46, -50, -54, -58, -62, -66, -70, -74, -78, -82, -86, -90, -94, -98, -102, -107, -111, -115, -119, -123, -127, -131, -135, -139, -143, -147, -151, -155, -159, -163, -167, -172, -176, -180, -184, -188, -192, -196, -200, -204, -208, -212, -216, -220, -224, -228, -233}, {24, 20, 16, 12, 8, 4, 0, -4, -8, -12, -16, -20, -24, -28, -32, -36, -41, -45, -49, -53, -57, -61, -65, -69, -73, -77, -81, -85, -89, -93, -97, -101, -106, -110, -114, -118, -122, -126, -130, -134, -138, -142, -146, -150, -154, -158, -162, -166, -171, -175, -179, -183, -187, -191, -195, -199, -203, -207, -211, -215, -219, -223, -227, -232}, {25, 21, 17, 13, 9, 5, 1, -3, -7, -11, -15, -19, -23, -27, -31, -35, -40, -44, -48, -52, -56, -60, -64, -68, -72, -76, -80, -84, -88, -92, -96, -100, -105, -109, -113, -117, -121, -125, -129, -133, -137, -141, -145, -149, -153, -157, -161, -165, -170, -174, -178, -182, -186, -190, -194, -198, -202, -206, -210, -214, -218, -222, -226, -231}, {26, 22, 18, 14, 10, 6, 2, -2, -6, -10, -14, -18, -22, -26, -30, -34, -39, -43, -47, -51, -55, -59, -63, -67, -71, -75, -79, -83, -87, -91, -95, -99, -104, -108, -112, -116, -120, -124, -128, -132, -136, -140, -144, -148, -152, -156, -160, -164, -169, -173, -177, -181, -185, -189, -193, -197, -201, -205, -209, -213, -217, -221, -225, -230}, {27, 23, 19, 15, 11, 7, 3, -1, -5, -9, -13, -17, -21, -25, -29, -33, -38, -42, -46, -50, -54, -58, -62, -66, -70, -74, -78, -82, -86, -90, -94, -98, -103, -107, -111, -115, -119, -123, -127, -131, -135, -139, -143, -147, -151, -155, -159, -163, -168, -172, -176, -180, -184, -188, -192, -196, -200, -204, -208, -212, -216, -220, -224, -229}, {28, 24, 20, 16, 12, 8, 4, 0, -4, -8, -12, -16, -20, -24, -28, -32, -37, -41, -45, -49, -53, -57, -61, -65, -69, -73, -77, -81, -85, -89, -93, -97, -102, -106, -110, -114, -118, -122, -126, -130, -134, -138, -142, -146, -150, -154, -158, -162, -167, -171, -175, -179, -183, -187, -191, -195, -199, -203, -207, -211, -215, -219, -223, -228}, {29, 25, 21, 17, 13, 9, 5, 1, -3, -7, -11, -15, -19, -23, -27, -31, -36, -40, -44, -48, -52, -56, -60, -64, -68, -72, -76, -80, -84, -88, -92, -96, -101, -105, -109, -113, -117, -121, -125, -129, -133, -137, -141, -145, -149, -153, -157, -161, -166, -170, -174, -178, -182, -186, -190, -194, -198, -202, -206, -210, -214, -218, -222, -227}, {30, 26, 22, 18, 14, 10, 6, 2, -2, -6, -10, -14, -18, -22, -26, -30, -35, -39, -43, -47, -51, -55, -59, -63, -67, -71, -75, -79, -83, -87, -91, -95, -100, -104, -108, -112, -116, -120, -124, -128, -132, -136, -140, -144, -148, -152, -156, -160, -165, -169, -173, -177, -181, -185, -189, -193, -197, -201, -205, -209, -213, -217, -221, -226}, {31, 27, 23, 19, 15, 11, 7, 3, -1, -5, -9, -13, -17, -21, -25, -29, -34, -38, -42, -46, -50, -54, -58, -62, -66, -70, -74, -78, -82, -86, -90, -94, -99, -103, -107, -111, -115, -119, -123, -127, -131, -135, -139, -143, -147, -151, -155, -159, -164, -168, -172, -176, -180, -184, -188, -192, -196, -200, -204, -208, -212, -216, -220, -225}, {32, 28, 24, 20, 16, 12, 8, 4, 0, -4, -8, -12, -16, -20, -24, -28, -33, -37, -41, -45, -49, -53, -57, -61, -65, -69, -73, -77, -81, -85, -89, -93, -98, -102, -106, -110, -114, -118, -122, -126, -130, -134, -138, -142, -146, -150, -154, -158, -163, -167, -171, -175, -179, -183, -187, -191, -195, -199, -203, -207, -211, -215, -219, -224}, {33, 29, 25, 21, 17, 13, 9, 5, 1, -3, -7, -11, -15, -19, -23, -27, -32, -36, -40, -44, -48, -52, -56, -60, -64, -68, -72, -76, -80, -84, -88, -92, -97, -101, -105, -109, -113, -117, -121, -125, -129, -133, -137, -141, -145, -149, -153, -157, -162, -166, -170, -174, -178, -182, -186, -190, -194, -198, -202, -206, -210, -214, -218, -223}, {34, 30, 26, 22, 18, 14, 10, 6, 2, -2, -6, -10, -14, -18, -22, -26, -31, -35, -39, -43, -47, -51, -55, -59, -63, -67, -71, -75, -79, -83, -87, -91, -96, -100, -104, -108, -112, -116, -120, -124, -128, -132, -136, -140, -144, -148, -152, -156, -161, -165, -169, -173, -177, -181, -185, -189, -193, -197, -201, -205, -209, -213, -217, -222}, {35, 31, 27, 23, 19, 15, 11, 7, 3, -1, -5, -9, -13, -17, -21, -25, -30, -34, -38, -42, -46, -50, -54, -58, -62, -66, -70, -74, -78, -82, -86, -90, -95, -99, -103, -107, -111, -115, -119, -123, -127, -131, -135, -139, -143, -147, -151, -155, -160, -164, -168, -172, -176, -180, -184, -188, -192, -196, -200, -204, -208, -212, -216, -221}, {36, 32, 28, 24, 20, 16, 12, 8, 4, 0, -4, -8, -12, -16, -20, -24, -29, -33, -37, -41, -45, -49, -53, -57, -61, -65, -69, -73, -77, -81, -85, -89, -94, -98, -102, -106, -110, -114, -118, -122, -126, -130, -134, -138, -142, -146, -150, -154, -159, -163, -167, -171, -175, -179, -183, -187, -191, -195, -199, -203, -207, -211, -215, -220}, {37, 33, 29, 25, 21, 17, 13, 9, 5, 1, -3, -7, -11, -15, -19, -23, -28, -32, -36, -40, -44, -48, -52, -56, -60, -64, -68, -72, -76, -80, -84, -88, -93, -97, -101, -105, -109, -113, -117, -121, -125, -129, -133, -137, -141, -145, -149, -153, -158, -162, -166, -170, -174, -178, -182, -186, -190, -194, -198, -202, -206, -210, -214, -219}, {38, 34, 30, 26, 22, 18, 14, 10, 6, 2, -2, -6, -10, -14, -18, -22, -27, -31, -35, -39, -43, -47, -51, -55, -59, -63, -67, -71, -75, -79, -83, -87, -92, -96, -100, -104, -108, -112, -116, -120, -124, -128, -132, -136, -140, -144, -148, -152, -157, -161, -165, -169, -173, -177, -181, -185, -189, -193, -197, -201, -205, -209, -213, -218}, {39, 35, 31, 27, 23, 19, 15, 11, 7, 3, -1, -5, -9, -13, -17, -21, -26, -30, -34, -38, -42, -46, -50, -54, -58, -62, -66, -70, -74, -78, -82, -86, -91, -95, -99, -103, -107, -111, -115, -119, -123, -127, -131, -135, -139, -143, -147, -151, -156, -160, -164, -168, -172, -176, -180, -184, -188, -192, -196, -200, -204, -208, -212, -217}, {40, 36, 32, 28, 24, 20, 16, 12, 8, 4, 0, -4, -8, -12, -16, -20, -25, -29, -33, -37, -41, -45, -49, -53, -57, -61, -65, -69, -73, -77, -81, -85, -90, -94, -98, -102, -106, -110, -114, -118, -122, -126, -130, -134, -138, -142, -146, -150, -155, -159, -163, -167, -171, -175, -179, -183, -187, -191, -195, -199, -203, -207, -211, -216}, {41, 37, 33, 29, 25, 21, 17, 13, 9, 5, 1, -3, -7, -11, -15, -19, -24, -28, -32, -36, -40, -44, -48, -52, -56, -60, -64, -68, -72, -76, -80, -84, -89, -93, -97, -101, -105, -109, -113, -117, -121, -125, -129, -133, -137, -141, -145, -149, -154, -158, -162, -166, -170, -174, -178, -182, -186, -190, -194, -198, -202, -206, -210, -215}, {42, 38, 34, 30, 26, 22, 18, 14, 10, 6, 2, -2, -6, -10, -14, -18, -23, -27, -31, -35, -39, -43, -47, -51, -55, -59, -63, -67, -71, -75, -79, -83, -88, -92, -96, -100, -104, -108, -112, -116, -120, -124, -128, -132, -136, -140, -144, -148, -153, -157, -161, -165, -169, -173, -177, -181, -185, -189, -193, -197, -201, -205, -209, -214}, {43, 39, 35, 31, 27, 23, 19, 15, 11, 7, 3, -1, -5, -9, -13, -17, -22, -26, -30, -34, -38, -42, -46, -50, -54, -58, -62, -66, -70, -74, -78, -82, -87, -91, -95, -99, -103, -107, -111, -115, -119, -123, -127, -131, -135, -139, -143, -147, -152, -156, -160, -164, -168, -172, -176, -180, -184, -188, -192, -196, -200, -204, -208, -213}, {44, 40, 36, 32, 28, 24, 20, 16, 12, 8, 4, 0, -4, -8, -12, -16, -21, -25, -29, -33, -37, -41, -45, -49, -53, -57, -61, -65, -69, -73, -77, -81, -86, -90, -94, -98, -102, -106, -110, -114, -118, -122, -126, -130, -134, -138, -142, -146, -151, -155, -159, -163, -167, -171, -175, -179, -183, -187, -191, -195, -199, -203, -207, -212}, {45, 41, 37, 33, 29, 25, 21, 17, 13, 9, 5, 1, -3, -7, -11, -15, -20, -24, -28, -32, -36, -40, -44, -48, -52, -56, -60, -64, -68, -72, -76, -80, -85, -89, -93, -97, -101, -105, -109, -113, -117, -121, -125, -129, -133, -137, -141, -145, -150, -154, -158, -162, -166, -170, -174, -178, -182, -186, -190, -194, -198, -202, -206, -211}, {46, 42, 38, 34, 30, 26, 22, 18, 14, 10, 6, 2, -2, -6, -10, -14, -19, -23, -27, -31, -35, -39, -43, -47, -51, -55, -59, -63, -67, -71, -75, -79, -84, -88, -92, -96, -100, -104, -108, -112, -116, -120, -124, -128, -132, -136, -140, -144, -149, -153, -157, -161, -165, -169, -173, -177, -181, -185, -189, -193, -197, -201, -205, -210}, {47, 43, 39, 35, 31, 27, 23, 19, 15, 11, 7, 3, -1, -5, -9, -13, -18, -22, -26, -30, -34, -38, -42, -46, -50, -54, -58, -62, -66, -70, -74, -78, -83, -87, -91, -95, -99, -103, -107, -111, -115, -119, -123, -127, -131, -135, -139, -143, -148, -152, -156, -160, -164, -168, -172, -176, -180, -184, -188, -192, -196, -200, -204, -209}, {48, 44, 40, 36, 32, 28, 24, 20, 16, 12, 8, 4, 0, -4, -8, -12, -17, -21, -25, -29, -33, -37, -41, -45, -49, -53, -57, -61, -65, -69, -73, -77, -82, -86, -90, -94, -98, -102, -106, -110, -114, -118, -122, -126, -130, -134, -138, -142, -147, -151, -155, -159, -163, -167, -171, -175, -179, -183, -187, -191, -195, -199, -203, -208}, {49, 45, 41, 37, 33, 29, 25, 21, 17, 13, 9, 5, 1, -3, -7, -11, -16, -20, -24, -28, -32, -36, -40, -44, -48, -52, -56, -60, -64, -68, -72, -76, -81, -85, -89, -93, -97, -101, -105, -109, -113, -117, -121, -125, -129, -133, -137, -141, -146, -150, -154, -158, -162, -166, -170, -174, -178, -182, -186, -190, -194, -198, -202, -207}, {50, 46, 42, 38, 34, 30, 26, 22, 18, 14, 10, 6, 2, -2, -6, -10, -15, -19, -23, -27, -31, -35, -39, -43, -47, -51, -55, -59, -63, -67, -71, -75, -80, -84, -88, -92, -96, -100, -104, -108, -112, -116, -120, -124, -128, -132, -136, -140, -145, -149, -153, -157, -161, -165, -169, -173, -177, -181, -185, -189, -193, -197, -201, -206}, {51, 47, 43, 39, 35, 31, 27, 23, 19, 15, 11, 7, 3, -1, -5, -9, -14, -18, -22, -26, -30, -34, -38, -42, -46, -50, -54, -58, -62, -66, -70, -74, -79, -83, -87, -91, -95, -99, -103, -107, -111, -115, -119, -123, -127, -131, -135, -139, -144, -148, -152, -156, -160, -164, -168, -172, -176, -180, -184, -188, -192, -196, -200, -205}, {52, 48, 44, 40, 36, 32, 28, 24, 20, 16, 12, 8, 4, 0, -4, -8, -13, -17, -21, -25, -29, -33, -37, -41, -45, -49, -53, -57, -61, -65, -69, -73, -78, -82, -86, -90, -94, -98, -102, -106, -110, -114, -118, -122, -126, -130, -134, -138, -143, -147, -151, -155, -159, -163, -167, -171, -175, -179, -183, -187, -191, -195, -199, -204}, {53, 49, 45, 41, 37, 33, 29, 25, 21, 17, 13, 9, 5, 1, -3, -7, -12, -16, -20, -24, -28, -32, -36, -40, -44, -48, -52, -56, -60, -64, -68, -72, -77, -81, -85, -89, -93, -97, -101, -105, -109, -113, -117, -121, -125, -129, -133, -137, -142, -146, -150, -154, -158, -162, -166, -170, -174, -178, -182, -186, -190, -194, -198, -203}, {54, 50, 46, 42, 38, 34, 30, 26, 22, 18, 14, 10, 6, 2, -2, -6, -11, -15, -19, -23, -27, -31, -35, -39, -43, -47, -51, -55, -59, -63, -67, -71, -76, -80, -84, -88, -92, -96, -100, -104, -108, -112, -116, -120, -124, -128, -132, -136, -141, -145, -149, -153, -157, -161, -165, -169, -173, -177, -181, -185, -189, -193, -197, -202}, {55, 51, 47, 43, 39, 35, 31, 27, 23, 19, 15, 11, 7, 3, -1, -5, -10, -14, -18, -22, -26, -30, -34, -38, -42, -46, -50, -54, -58, -62, -66, -70, -75, -79, -83, -87, -91, -95, -99, -103, -107, -111, -115, -119, -123, -127, -131, -135, -140, -144, -148, -152, -156, -160, -164, -168, -172, -176, -180, -184, -188, -192, -196, -201}, {56, 52, 48, 44, 40, 36, 32, 28, 24, 20, 16, 12, 8, 4, 0, -4, -9, -13, -17, -21, -25, -29, -33, -37, -41, -45, -49, -53, -57, -61, -65, -69, -74, -78, -82, -86, -90, -94, -98, -102, -106, -110, -114, -118, -122, -126, -130, -134, -139, -143, -147, -151, -155, -159, -163, -167, -171, -175, -179, -183, -187, -191, -195, -200}, {57, 53, 49, 45, 41, 37, 33, 29, 25, 21, 17, 13, 9, 5, 1, -3, -8, -12, -16, -20, -24, -28, -32, -36, -40, -44, -48, -52, -56, -60, -64, -68, -73, -77, -81, -85, -89, -93, -97, -101, -105, -109, -113, -117, -121, -125, -129, -133, -138, -142, -146, -150, -154, -158, -162, -166, -170, -174, -178, -182, -186, -190, -194, -199}, {58, 54, 50, 46, 42, 38, 34, 30, 26, 22, 18, 14, 10, 6, 2, -2, -7, -11, -15, -19, -23, -27, -31, -35, -39, -43, -47, -51, -55, -59, -63, -67, -72, -76, -80, -84, -88, -92, -96, -100, -104, -108, -112, -116, -120, -124, -128, -132, -137, -141, -145, -149, -153, -157, -161, -165, -169, -173, -177, -181, -185, -189, -193, -198}, {59, 55, 51, 47, 43, 39, 35, 31, 27, 23, 19, 15, 11, 7, 3, -1, -6, -10, -14, -18, -22, -26, -30, -34, -38, -42, -46, -50, -54, -58, -62, -66, -71, -75, -79, -83, -87, -91, -95, -99, -103, -107, -111, -115, -119, -123, -127, -131, -136, -140, -144, -148, -152, -156, -160, -164, -168, -172, -176, -180, -184, -188, -192, -197}, {60, 56, 52, 48, 44, 40, 36, 32, 28, 24, 20, 16, 12, 8, 4, 0, -5, -9, -13, -17, -21, -25, -29, -33, -37, -41, -45, -49, -53, -57, -61, -65, -70, -74, -78, -82, -86, -90, -94, -98, -102, -106, -110, -114, -118, -122, -126, -130, -135, -139, -143, -147, -151, -155, -159, -163, -167, -171, -175, -179, -183, -187, -191, -196}, {61, 57, 53, 49, 45, 41, 37, 33, 29, 25, 21, 17, 13, 9, 5, 1, -4, -8, -12, -16, -20, -24, -28, -32, -36, -40, -44, -48, -52, -56, -60, -64, -69, -73, -77, -81, -85, -89, -93, -97, -101, -105, -109, -113, -117, -121, -125, -129, -134, -138, -142, -146, -150, -154, -158, -162, -166, -170, -174, -178, -182, -186, -190, -195}, {62, 58, 54, 50, 46, 42, 38, 34, 30, 26, 22, 18, 14, 10, 6, 2, -3, -7, -11, -15, -19, -23, -27, -31, -35, -39, -43, -47, -51, -55, -59, -63, -68, -72, -76, -80, -84, -88, -92, -96, -100, -104, -108, -112, -116, -120, -124, -128, -133, -137, -141, -145, -149, -153, -157, -161, -165, -169, -173, -177, -181, -185, -189, -194}, {63, 59, 55, 51, 47, 43, 39, 35, 31, 27, 23, 19, 15, 11, 7, 3, -2, -6, -10, -14, -18, -22, -26, -30, -34, -38, -42, -46, -50, -54, -58, -62, -67, -71, -75, -79, -83, -87, -91, -95, -99, -103, -107, -111, -115, -119, -123, -127, -132, -136, -140, -144, -148, -152, -156, -160, -164, -168, -172, -176, -180, -184, -188, -193}, {64, 60, 56, 52, 48, 44, 40, 36, 32, 28, 24, 20, 16, 12, 8, 4, -1, -5, -9, -13, -17, -21, -25, -29, -33, -37, -41, -45, -49, -53, -57, -61, -66, -70, -74, -78, -82, -86, -90, -94, -98, -102, -106, -110, -114, -118, -122, -126, -131, -135, -139, -143, -147, -151, -155, -159, -163, -167, -171, -175, -179, -183, -187, -192}, {65, 61, 57, 53, 49, 45, 41, 37, 33, 29, 25, 21, 17, 13, 9, 5, 0, -4, -8, -12, -16, -20, -24, -28, -32, -36, -40, -44, -48, -52, -56, -60, -65, -69, -73, -77, -81, -85, -89, -93, -97, -101, -105, -109, -113, -117, -121, -125, -130, -134, -138, -142, -146, -150, -154, -158, -162, -166, -170, -174, -178, -182, -186, -191}, {66, 62, 58, 54, 50, 46, 42, 38, 34, 30, 26, 22, 18, 14, 10, 6, 1, -3, -7, -11, -15, -19, -23, -27, -31, -35, -39, -43, -47, -51, -55, -59, -64, -68, -72, -76, -80, -84, -88, -92, -96, -100, -104, -108, -112, -116, -120, -124, -129, -133, -137, -141, -145, -149, -153, -157, -161, -165, -169, -173, -177, -181, -185, -190}, {67, 63, 59, 55, 51, 47, 43, 39, 35, 31, 27, 23, 19, 15, 11, 7, 2, -2, -6, -10, -14, -18, -22, -26, -30, -34, -38, -42, -46, -50, -54, -58, -63, -67, -71, -75, -79, -83, -87, -91, -95, -99, -103, -107, -111, -115, -119, -123, -128, -132, -136, -140, -144, -148, -152, -156, -160, -164, -168, -172, -176, -180, -184, -189}, {68, 64, 60, 56, 52, 48, 44, 40, 36, 32, 28, 24, 20, 16, 12, 8, 3, -1, -5, -9, -13, -17, -21, -25, -29, -33, -37, -41, -45, -49, -53, -57, -62, -66, -70, -74, -78, -82, -86, -90, -94, -98, -102, -106, -110, -114, -118, -122, -127, -131, -135, -139, -143, -147, -151, -155, -159, -163, -167, -171, -175, -179, -183, -188}, {69, 65, 61, 57, 53, 49, 45, 41, 37, 33, 29, 25, 21, 17, 13, 9, 4, 0, -4, -8, -12, -16, -20, -24, -28, -32, -36, -40, -44, -48, -52, -56, -61, -65, -69, -73, -77, -81, -85, -89, -93, -97, -101, -105, -109, -113, -117, -121, -126, -130, -134, -138, -142, -146, -150, -154, -158, -162, -166, -170, -174, -178, -182, -187}, {70, 66, 62, 58, 54, 50, 46, 42, 38, 34, 30, 26, 22, 18, 14, 10, 5, 1, -3, -7, -11, -15, -19, -23, -27, -31, -35, -39, -43, -47, -51, -55, -60, -64, -68, -72, -76, -80, -84, -88, -92, -96, -100, -104, -108, -112, -116, -120, -125, -129, -133, -137, -141, -145, -149, -153, -157, -161, -165, -169, -173, -177, -181, -186}, {71, 67, 63, 59, 55, 51, 47, 43, 39, 35, 31, 27, 23, 19, 15, 11, 6, 2, -2, -6, -10, -14, -18, -22, -26, -30, -34, -38, -42, -46, -50, -54, -59, -63, -67, -71, -75, -79, -83, -87, -91, -95, -99, -103, -107, -111, -115, -119, -124, -128, -132, -136, -140, -144, -148, -152, -156, -160, -164, -168, -172, -176, -180, -185}, {72, 68, 64, 60, 56, 52, 48, 44, 40, 36, 32, 28, 24, 20, 16, 12, 7, 3, -1, -5, -9, -13, -17, -21, -25, -29, -33, -37, -41, -45, -49, -53, -58, -62, -66, -70, -74, -78, -82, -86, -90, -94, -98, -102, -106, -110, -114, -118, -123, -127, -131, -135, -139, -143, -147, -151, -155, -159, -163, -167, -171, -175, -179, -184}, {73, 69, 65, 61, 57, 53, 49, 45, 41, 37, 33, 29, 25, 21, 17, 13, 8, 4, 0, -4, -8, -12, -16, -20, -24, -28, -32, -36, -40, -44, -48, -52, -57, -61, -65, -69, -73, -77, -81, -85, -89, -93, -97, -101, -105, -109, -113, -117, -122, -126, -130, -134, -138, -142, -146, -150, -154, -158, -162, -166, -170, -174, -178, -183}, {74, 70, 66, 62, 58, 54, 50, 46, 42, 38, 34, 30, 26, 22, 18, 14, 9, 5, 1, -3, -7, -11, -15, -19, -23, -27, -31, -35, -39, -43, -47, -51, -56, -60, -64, -68, -72, -76, -80, -84, -88, -92, -96, -100, -104, -108, -112, -116, -121, -125, -129, -133, -137, -141, -145, -149, -153, -157, -161, -165, -169, -173, -177, -182}, {75, 71, 67, 63, 59, 55, 51, 47, 43, 39, 35, 31, 27, 23, 19, 15, 10, 6, 2, -2, -6, -10, -14, -18, -22, -26, -30, -34, -38, -42, -46, -50, -55, -59, -63, -67, -71, -75, -79, -83, -87, -91, -95, -99, -103, -107, -111, -115, -120, -124, -128, -132, -136, -140, -144, -148, -152, -156, -160, -164, -168, -172, -176, -181}, {76, 72, 68, 64, 60, 56, 52, 48, 44, 40, 36, 32, 28, 24, 20, 16, 11, 7, 3, -1, -5, -9, -13, -17, -21, -25, -29, -33, -37, -41, -45, -49, -54, -58, -62, -66, -70, -74, -78, -82, -86, -90, -94, -98, -102, -106, -110, -114, -119, -123, -127, -131, -135, -139, -143, -147, -151, -155, -159, -163, -167, -171, -175, -180}, {77, 73, 69, 65, 61, 57, 53, 49, 45, 41, 37, 33, 29, 25, 21, 17, 12, 8, 4, 0, -4, -8, -12, -16, -20, -24, -28, -32, -36, -40, -44, -48, -53, -57, -61, -65, -69, -73, -77, -81, -85, -89, -93, -97, -101, -105, -109, -113, -118, -122, -126, -130, -134, -138, -142, -146, -150, -154, -158, -162, -166, -170, -174, -179}, {78, 74, 70, 66, 62, 58, 54, 50, 46, 42, 38, 34, 30, 26, 22, 18, 13, 9, 5, 1, -3, -7, -11, -15, -19, -23, -27, -31, -35, -39, -43, -47, -52, -56, -60, -64, -68, -72, -76, -80, -84, -88, -92, -96, -100, -104, -108, -112, -117, -121, -125, -129, -133, -137, -141, -145, -149, -153, -157, -161, -165, -169, -173, -178}, {79, 75, 71, 67, 63, 59, 55, 51, 47, 43, 39, 35, 31, 27, 23, 19, 14, 10, 6, 2, -2, -6, -10, -14, -18, -22, -26, -30, -34, -38, -42, -46, -51, -55, -59, -63, -67, -71, -75, -79, -83, -87, -91, -95, -99, -103, -107, -111, -116, -120, -124, -128, -132, -136, -140, -144, -148, -152, -156, -160, -164, -168, -172, -177}, {80, 76, 72, 68, 64, 60, 56, 52, 48, 44, 40, 36, 32, 28, 24, 20, 15, 11, 7, 3, -1, -5, -9, -13, -17, -21, -25, -29, -33, -37, -41, -45, -50, -54, -58, -62, -66, -70, -74, -78, -82, -86, -90, -94, -98, -102, -106, -110, -115, -119, -123, -127, -131, -135, -139, -143, -147, -151, -155, -159, -163, -167, -171, -176}, {81, 77, 73, 69, 65, 61, 57, 53, 49, 45, 41, 37, 33, 29, 25, 21, 16, 12, 8, 4, 0, -4, -8, -12, -16, -20, -24, -28, -32, -36, -40, -44, -49, -53, -57, -61, -65, -69, -73, -77, -81, -85, -89, -93, -97, -101, -105, -109, -114, -118, -122, -126, -130, -134, -138, -142, -146, -150, -154, -158, -162, -166, -170, -175}, {82, 78, 74, 70, 66, 62, 58, 54, 50, 46, 42, 38, 34, 30, 26, 22, 17, 13, 9, 5, 1, -3, -7, -11, -15, -19, -23, -27, -31, -35, -39, -43, -48, -52, -56, -60, -64, -68, -72, -76, -80, -84, -88, -92, -96, -100, -104, -108, -113, -117, -121, -125, -129, -133, -137, -141, -145, -149, -153, -157, -161, -165, -169, -174}, {83, 79, 75, 71, 67, 63, 59, 55, 51, 47, 43, 39, 35, 31, 27, 23, 18, 14, 10, 6, 2, -2, -6, -10, -14, -18, -22, -26, -30, -34, -38, -42, -47, -51, -55, -59, -63, -67, -71, -75, -79, -83, -87, -91, -95, -99, -103, -107, -112, -116, -120, -124, -128, -132, -136, -140, -144, -148, -152, -156, -160, -164, -168, -173}, {84, 80, 76, 72, 68, 64, 60, 56, 52, 48, 44, 40, 36, 32, 28, 24, 19, 15, 11, 7, 3, -1, -5, -9, -13, -17, -21, -25, -29, -33, -37, -41, -46, -50, -54, -58, -62, -66, -70, -74, -78, -82, -86, -90, -94, -98, -102, -106, -111, -115, -119, -123, -127, -131, -135, -139, -143, -147, -151, -155, -159, -163, -167, -172}, {85, 81, 77, 73, 69, 65, 61, 57, 53, 49, 45, 41, 37, 33, 29, 25, 20, 16, 12, 8, 4, 0, -4, -8, -12, -16, -20, -24, -28, -32, -36, -40, -45, -49, -53, -57, -61, -65, -69, -73, -77, -81, -85, -89, -93, -97, -101, -105, -110, -114, -118, -122, -126, -130, -134, -138, -142, -146, -150, -154, -158, -162, -166, -171}, {86, 82, 78, 74, 70, 66, 62, 58, 54, 50, 46, 42, 38, 34, 30, 26, 21, 17, 13, 9, 5, 1, -3, -7, -11, -15, -19, -23, -27, -31, -35, -39, -44, -48, -52, -56, -60, -64, -68, -72, -76, -80, -84, -88, -92, -96, -100, -104, -109, -113, -117, -121, -125, -129, -133, -137, -141, -145, -149, -153, -157, -161, -165, -170}, {87, 83, 79, 75, 71, 67, 63, 59, 55, 51, 47, 43, 39, 35, 31, 27, 22, 18, 14, 10, 6, 2, -2, -6, -10, -14, -18, -22, -26, -30, -34, -38, -43, -47, -51, -55, -59, -63, -67, -71, -75, -79, -83, -87, -91, -95, -99, -103, -108, -112, -116, -120, -124, -128, -132, -136, -140, -144, -148, -152, -156, -160, -164, -169}, {88, 84, 80, 76, 72, 68, 64, 60, 56, 52, 48, 44, 40, 36, 32, 28, 23, 19, 15, 11, 7, 3, -1, -5, -9, -13, -17, -21, -25, -29, -33, -37, -42, -46, -50, -54, -58, -62, -66, -70, -74, -78, -82, -86, -90, -94, -98, -102, -107, -111, -115, -119, -123, -127, -131, -135, -139, -143, -147, -151, -155, -159, -163, -168}, {89, 85, 81, 77, 73, 69, 65, 61, 57, 53, 49, 45, 41, 37, 33, 29, 24, 20, 16, 12, 8, 4, 0, -4, -8, -12, -16, -20, -24, -28, -32, -36, -41, -45, -49, -53, -57, -61, -65, -69, -73, -77, -81, -85, -89, -93, -97, -101, -106, -110, -114, -118, -122, -126, -130, -134, -138, -142, -146, -150, -154, -158, -162, -167}, {90, 86, 82, 78, 74, 70, 66, 62, 58, 54, 50, 46, 42, 38, 34, 30, 25, 21, 17, 13, 9, 5, 1, -3, -7, -11, -15, -19, -23, -27, -31, -35, -40, -44, -48, -52, -56, -60, -64, -68, -72, -76, -80, -84, -88, -92, -96, -100, -105, -109, -113, -117, -121, -125, -129, -133, -137, -141, -145, -149, -153, -157, -161, -166}, {91, 87, 83, 79, 75, 71, 67, 63, 59, 55, 51, 47, 43, 39, 35, 31, 26, 22, 18, 14, 10, 6, 2, -2, -6, -10, -14, -18, -22, -26, -30, -34, -39, -43, -47, -51, -55, -59, -63, -67, -71, -75, -79, -83, -87, -91, -95, -99, -104, -108, -112, -116, -120, -124, -128, -132, -136, -140, -144, -148, -152, -156, -160, -165}, {92, 88, 84, 80, 76, 72, 68, 64, 60, 56, 52, 48, 44, 40, 36, 32, 27, 23, 19, 15, 11, 7, 3, -1, -5, -9, -13, -17, -21, -25, -29, -33, -38, -42, -46, -50, -54, -58, -62, -66, -70, -74, -78, -82, -86, -90, -94, -98, -103, -107, -111, -115, -119, -123, -127, -131, -135, -139, -143, -147, -151, -155, -159, -164}, {93, 89, 85, 81, 77, 73, 69, 65, 61, 57, 53, 49, 45, 41, 37, 33, 28, 24, 20, 16, 12, 8, 4, 0, -4, -8, -12, -16, -20, -24, -28, -32, -37, -41, -45, -49, -53, -57, -61, -65, -69, -73, -77, -81, -85, -89, -93, -97, -102, -106, -110, -114, -118, -122, -126, -130, -134, -138, -142, -146, -150, -154, -158, -163}, {94, 90, 86, 82, 78, 74, 70, 66, 62, 58, 54, 50, 46, 42, 38, 34, 29, 25, 21, 17, 13, 9, 5, 1, -3, -7, -11, -15, -19, -23, -27, -31, -36, -40, -44, -48, -52, -56, -60, -64, -68, -72, -76, -80, -84, -88, -92, -96, -101, -105, -109, -113, -117, -121, -125, -129, -133, -137, -141, -145, -149, -153, -157, -162}, {95, 91, 87, 83, 79, 75, 71, 67, 63, 59, 55, 51, 47, 43, 39, 35, 30, 26, 22, 18, 14, 10, 6, 2, -2, -6, -10, -14, -18, -22, -26, -30, -35, -39, -43, -47, -51, -55, -59, -63, -67, -71, -75, -79, -83, -87, -91, -95, -100, -104, -108, -112, -116, -120, -124, -128, -132, -136, -140, -144, -148, -152, -156, -161}, {96, 92, 88, 84, 80, 76, 72, 68, 64, 60, 56, 52, 48, 44, 40, 36, 31, 27, 23, 19, 15, 11, 7, 3, -1, -5, -9, -13, -17, -21, -25, -29, -34, -38, -42, -46, -50, -54, -58, -62, -66, -70, -74, -78, -82, -86, -90, -94, -99, -103, -107, -111, -115, -119, -123, -127, -131, -135, -139, -143, -147, -151, -155, -160}, {97, 93, 89, 85, 81, 77, 73, 69, 65, 61, 57, 53, 49, 45, 41, 37, 32, 28, 24, 20, 16, 12, 8, 4, 0, -4, -8, -12, -16, -20, -24, -28, -33, -37, -41, -45, -49, -53, -57, -61, -65, -69, -73, -77, -81, -85, -89, -93, -98, -102, -106, -110, -114, -118, -122, -126, -130, -134, -138, -142, -146, -150, -154, -159}, {98, 94, 90, 86, 82, 78, 74, 70, 66, 62, 58, 54, 50, 46, 42, 38, 33, 29, 25, 21, 17, 13, 9, 5, 1, -3, -7, -11, -15, -19, -23, -27, -32, -36, -40, -44, -48, -52, -56, -60, -64, -68, -72, -76, -80, -84, -88, -92, -97, -101, -105, -109, -113, -117, -121, -125, -129, -133, -137, -141, -145, -149, -153, -158}, {99, 95, 91, 87, 83, 79, 75, 71, 67, 63, 59, 55, 51, 47, 43, 39, 34, 30, 26, 22, 18, 14, 10, 6, 2, -2, -6, -10, -14, -18, -22, -26, -31, -35, -39, -43, -47, -51, -55, -59, -63, -67, -71, -75, -79, -83, -87, -91, -96, -100, -104, -108, -112, -116, -120, -124, -128, -132, -136, -140, -144, -148, -152, -157}, {100, 96, 92, 88, 84, 80, 76, 72, 68, 64, 60, 56, 52, 48, 44, 40, 35, 31, 27, 23, 19, 15, 11, 7, 3, -1, -5, -9, -13, -17, -21, -25, -30, -34, -38, -42, -46, -50, -54, -58, -62, -66, -70, -74, -78, -82, -86, -90, -95, -99, -103, -107, -111, -115, -119, -123, -127, -131, -135, -139, -143, -147, -151, -156}, {101, 97, 93, 89, 85, 81, 77, 73, 69, 65, 61, 57, 53, 49, 45, 41, 36, 32, 28, 24, 20, 16, 12, 8, 4, 0, -4, -8, -12, -16, -20, -24, -29, -33, -37, -41, -45, -49, -53, -57, -61, -65, -69, -73, -77, -81, -85, -89, -94, -98, -102, -106, -110, -114, -118, -122, -126, -130, -134, -138, -142, -146, -150, -155}, {102, 98, 94, 90, 86, 82, 78, 74, 70, 66, 62, 58, 54, 50, 46, 42, 37, 33, 29, 25, 21, 17, 13, 9, 5, 1, -3, -7, -11, -15, -19, -23, -28, -32, -36, -40, -44, -48, -52, -56, -60, -64, -68, -72, -76, -80, -84, -88, -93, -97, -101, -105, -109, -113, -117, -121, -125, -129, -133, -137, -141, -145, -149, -154}, {103, 99, 95, 91, 87, 83, 79, 75, 71, 67, 63, 59, 55, 51, 47, 43, 38, 34, 30, 26, 22, 18, 14, 10, 6, 2, -2, -6, -10, -14, -18, -22, -27, -31, -35, -39, -43, -47, -51, -55, -59, -63, -67, -71, -75, -79, -83, -87, -92, -96, -100, -104, -108, -112, -116, -120, -124, -128, -132, -136, -140, -144, -148, -153}, {104, 100, 96, 92, 88, 84, 80, 76, 72, 68, 64, 60, 56, 52, 48, 44, 39, 35, 31, 27, 23, 19, 15, 11, 7, 3, -1, -5, -9, -13, -17, -21, -26, -30, -34, -38, -42, -46, -50, -54, -58, -62, -66, -70, -74, -78, -82, -86, -91, -95, -99, -103, -107, -111, -115, -119, -123, -127, -131, -135, -139, -143, -147, -152}, {105, 101, 97, 93, 89, 85, 81, 77, 73, 69, 65, 61, 57, 53, 49, 45, 40, 36, 32, 28, 24, 20, 16, 12, 8, 4, 0, -4, -8, -12, -16, -20, -25, -29, -33, -37, -41, -45, -49, -53, -57, -61, -65, -69, -73, -77, -81, -85, -90, -94, -98, -102, -106, -110, -114, -118, -122, -126, -130, -134, -138, -142, -146, -151}, {106, 102, 98, 94, 90, 86, 82, 78, 74, 70, 66, 62, 58, 54, 50, 46, 41, 37, 33, 29, 25, 21, 17, 13, 9, 5, 1, -3, -7, -11, -15, -19, -24, -28, -32, -36, -40, -44, -48, -52, -56, -60, -64, -68, -72, -76, -80, -84, -89, -93, -97, -101, -105, -109, -113, -117, -121, -125, -129, -133, -137, -141, -145, -150}, {107, 103, 99, 95, 91, 87, 83, 79, 75, 71, 67, 63, 59, 55, 51, 47, 42, 38, 34, 30, 26, 22, 18, 14, 10, 6, 2, -2, -6, -10, -14, -18, -23, -27, -31, -35, -39, -43, -47, -51, -55, -59, -63, -67, -71, -75, -79, -83, -88, -92, -96, -100, -104, -108, -112, -116, -120, -124, -128, -132, -136, -140, -144, -149}, {108, 104, 100, 96, 92, 88, 84, 80, 76, 72, 68, 64, 60, 56, 52, 48, 43, 39, 35, 31, 27, 23, 19, 15, 11, 7, 3, -1, -5, -9, -13, -17, -22, -26, -30, -34, -38, -42, -46, -50, -54, -58, -62, -66, -70, -74, -78, -82, -87, -91, -95, -99, -103, -107, -111, -115, -119, -123, -127, -131, -135, -139, -143, -148}, {109, 105, 101, 97, 93, 89, 85, 81, 77, 73, 69, 65, 61, 57, 53, 49, 44, 40, 36, 32, 28, 24, 20, 16, 12, 8, 4, 0, -4, -8, -12, -16, -21, -25, -29, -33, -37, -41, -45, -49, -53, -57, -61, -65, -69, -73, -77, -81, -86, -90, -94, -98, -102, -106, -110, -114, -118, -122, -126, -130, -134, -138, -142, -147}, {110, 106, 102, 98, 94, 90, 86, 82, 78, 74, 70, 66, 62, 58, 54, 50, 45, 41, 37, 33, 29, 25, 21, 17, 13, 9, 5, 1, -3, -7, -11, -15, -20, -24, -28, -32, -36, -40, -44, -48, -52, -56, -60, -64, -68, -72, -76, -80, -85, -89, -93, -97, -101, -105, -109, -113, -117, -121, -125, -129, -133, -137, -141, -146}, {111, 107, 103, 99, 95, 91, 87, 83, 79, 75, 71, 67, 63, 59, 55, 51, 46, 42, 38, 34, 30, 26, 22, 18, 14, 10, 6, 2, -2, -6, -10, -14, -19, -23, -27, -31, -35, -39, -43, -47, -51, -55, -59, -63, -67, -71, -75, -79, -84, -88, -92, -96, -100, -104, -108, -112, -116, -120, -124, -128, -132, -136, -140, -145}, {112, 108, 104, 100, 96, 92, 88, 84, 80, 76, 72, 68, 64, 60, 56, 52, 47, 43, 39, 35, 31, 27, 23, 19, 15, 11, 7, 3, -1, -5, -9, -13, -18, -22, -26, -30, -34, -38, -42, -46, -50, -54, -58, -62, -66, -70, -74, -78, -83, -87, -91, -95, -99, -103, -107, -111, -115, -119, -123, -127, -131, -135, -139, -144}, {113, 109, 105, 101, 97, 93, 89, 85, 81, 77, 73, 69, 65, 61, 57, 53, 48, 44, 40, 36, 32, 28, 24, 20, 16, 12, 8, 4, 0, -4, -8, -12, -17, -21, -25, -29, -33, -37, -41, -45, -49, -53, -57, -61, -65, -69, -73, -77, -82, -86, -90, -94, -98, -102, -106, -110, -114, -118, -122, -126, -130, -134, -138, -143}, {114, 110, 106, 102, 98, 94, 90, 86, 82, 78, 74, 70, 66, 62, 58, 54, 49, 45, 41, 37, 33, 29, 25, 21, 17, 13, 9, 5, 1, -3, -7, -11, -16, -20, -24, -28, -32, -36, -40, -44, -48, -52, -56, -60, -64, -68, -72, -76, -81, -85, -89, -93, -97, -101, -105, -109, -113, -117, -121, -125, -129, -133, -137, -142}, {115, 111, 107, 103, 99, 95, 91, 87, 83, 79, 75, 71, 67, 63, 59, 55, 50, 46, 42, 38, 34, 30, 26, 22, 18, 14, 10, 6, 2, -2, -6, -10, -15, -19, -23, -27, -31, -35, -39, -43, -47, -51, -55, -59, -63, -67, -71, -75, -80, -84, -88, -92, -96, -100, -104, -108, -112, -116, -120, -124, -128, -132, -136, -141}, {116, 112, 108, 104, 100, 96, 92, 88, 84, 80, 76, 72, 68, 64, 60, 56, 51, 47, 43, 39, 35, 31, 27, 23, 19, 15, 11, 7, 3, -1, -5, -9, -14, -18, -22, -26, -30, -34, -38, -42, -46, -50, -54, -58, -62, -66, -70, -74, -79, -83, -87, -91, -95, -99, -103, -107, -111, -115, -119, -123, -127, -131, -135, -140}, {117, 113, 109, 105, 101, 97, 93, 89, 85, 81, 77, 73, 69, 65, 61, 57, 52, 48, 44, 40, 36, 32, 28, 24, 20, 16, 12, 8, 4, 0, -4, -8, -13, -17, -21, -25, -29, -33, -37, -41, -45, -49, -53, -57, -61, -65, -69, -73, -78, -82, -86, -90, -94, -98, -102, -106, -110, -114, -118, -122, -126, -130, -134, -139}, {118, 114, 110, 106, 102, 98, 94, 90, 86, 82, 78, 74, 70, 66, 62, 58, 53, 49, 45, 41, 37, 33, 29, 25, 21, 17, 13, 9, 5, 1, -3, -7, -12, -16, -20, -24, -28, -32, -36, -40, -44, -48, -52, -56, -60, -64, -68, -72, -77, -81, -85, -89, -93, -97, -101, -105, -109, -113, -117, -121, -125, -129, -133, -138}, {119, 115, 111, 107, 103, 99, 95, 91, 87, 83, 79, 75, 71, 67, 63, 59, 54, 50, 46, 42, 38, 34, 30, 26, 22, 18, 14, 10, 6, 2, -2, -6, -11, -15, -19, -23, -27, -31, -35, -39, -43, -47, -51, -55, -59, -63, -67, -71, -76, -80, -84, -88, -92, -96, -100, -104, -108, -112, -116, -120, -124, -128, -132, -137}, {120, 116, 112, 108, 104, 100, 96, 92, 88, 84, 80, 76, 72, 68, 64, 60, 55, 51, 47, 43, 39, 35, 31, 27, 23, 19, 15, 11, 7, 3, -1, -5, -10, -14, -18, -22, -26, -30, -34, -38, -42, -46, -50, -54, -58, -62, -66, -70, -75, -79, -83, -87, -91, -95, -99, -103, -107, -111, -115, -119, -123, -127, -131, -136}, {121, 117, 113, 109, 105, 101, 97, 93, 89, 85, 81, 77, 73, 69, 65, 61, 56, 52, 48, 44, 40, 36, 32, 28, 24, 20, 16, 12, 8, 4, 0, -4, -9, -13, -17, -21, -25, -29, -33, -37, -41, -45, -49, -53, -57, -61, -65, -69, -74, -78, -82, -86, -90, -94, -98, -102, -106, -110, -114, -118, -122, -126, -130, -135}, {122, 118, 114, 110, 106, 102, 98, 94, 90, 86, 82, 78, 74, 70, 66, 62, 57, 53, 49, 45, 41, 37, 33, 29, 25, 21, 17, 13, 9, 5, 1, -3, -8, -12, -16, -20, -24, -28, -32, -36, -40, -44, -48, -52, -56, -60, -64, -68, -73, -77, -81, -85, -89, -93, -97, -101, -105, -109, -113, -117, -121, -125, -129, -134}, {123, 119, 115, 111, 107, 103, 99, 95, 91, 87, 83, 79, 75, 71, 67, 63, 58, 54, 50, 46, 42, 38, 34, 30, 26, 22, 18, 14, 10, 6, 2, -2, -7, -11, -15, -19, -23, -27, -31, -35, -39, -43, -47, -51, -55, -59, -63, -67, -72, -76, -80, -84, -88, -92, -96, -100, -104, -108, -112, -116, -120, -124, -128, -133}, {124, 120, 116, 112, 108, 104, 100, 96, 92, 88, 84, 80, 76, 72, 68, 64, 59, 55, 51, 47, 43, 39, 35, 31, 27, 23, 19, 15, 11, 7, 3, -1, -6, -10, -14, -18, -22, -26, -30, -34, -38, -42, -46, -50, -54, -58, -62, -66, -71, -75, -79, -83, -87, -91, -95, -99, -103, -107, -111, -115, -119, -123, -127, -132}, {125, 121, 117, 113, 109, 105, 101, 97, 93, 89, 85, 81, 77, 73, 69, 65, 60, 56, 52, 48, 44, 40, 36, 32, 28, 24, 20, 16, 12, 8, 4, 0, -5, -9, -13, -17, -21, -25, -29, -33, -37, -41, -45, -49, -53, -57, -61, -65, -70, -74, -78, -82, -86, -90, -94, -98, -102, -106, -110, -114, -118, -122, -126, -131}, {126, 122, 118, 114, 110, 106, 102, 98, 94, 90, 86, 82, 78, 74, 70, 66, 61, 57, 53, 49, 45, 41, 37, 33, 29, 25, 21, 17, 13, 9, 5, 1, -4, -8, -12, -16, -20, -24, -28, -32, -36, -40, -44, -48, -52, -56, -60, -64, -69, -73, -77, -81, -85, -89, -93, -97, -101, -105, -109, -113, -117, -121, -125, -130}, {127, 123, 119, 115, 111, 107, 103, 99, 95, 91, 87, 83, 79, 75, 71, 67, 62, 58, 54, 50, 46, 42, 38, 34, 30, 26, 22, 18, 14, 10, 6, 2, -3, -7, -11, -15, -19, -23, -27, -31, -35, -39, -43, -47, -51, -55, -59, -63, -68, -72, -76, -80, -84, -88, -92, -96, -100, -104, -108, -112, -116, -120, -124, -129}, {128, 124, 120, 116, 112, 108, 104, 100, 96, 92, 88, 84, 80, 76, 72, 68, 63, 59, 55, 51, 47, 43, 39, 35, 31, 27, 23, 19, 15, 11, 7, 3, -2, -6, -10, -14, -18, -22, -26, -30, -34, -38, -42, -46, -50, -54, -58, -62, -67, -71, -75, -79, -83, -87, -91, -95, -99, -103, -107, -111, -115, -119, -123, -128}, {129, 125, 121, 117, 113, 109, 105, 101, 97, 93, 89, 85, 81, 77, 73, 69, 64, 60, 56, 52, 48, 44, 40, 36, 32, 28, 24, 20, 16, 12, 8, 4, -1, -5, -9, -13, -17, -21, -25, -29, -33, -37, -41, -45, -49, -53, -57, -61, -66, -70, -74, -78, -82, -86, -90, -94, -98, -102, -106, -110, -114, -118, -122, -127}, {130, 126, 122, 118, 114, 110, 106, 102, 98, 94, 90, 86, 82, 78, 74, 70, 65, 61, 57, 53, 49, 45, 41, 37, 33, 29, 25, 21, 17, 13, 9, 5, 0, -4, -8, -12, -16, -20, -24, -28, -32, -36, -40, -44, -48, -52, -56, -60, -65, -69, -73, -77, -81, -85, -89, -93, -97, -101, -105, -109, -113, -117, -121, -126}, {131, 127, 123, 119, 115, 111, 107, 103, 99, 95, 91, 87, 83, 79, 75, 71, 66, 62, 58, 54, 50, 46, 42, 38, 34, 30, 26, 22, 18, 14, 10, 6, 1, -3, -7, -11, -15, -19, -23, -27, -31, -35, -39, -43, -47, -51, -55, -59, -64, -68, -72, -76, -80, -84, -88, -92, -96, -100, -104, -108, -112, -116, -120, -125}, {132, 128, 124, 120, 116, 112, 108, 104, 100, 96, 92, 88, 84, 80, 76, 72, 67, 63, 59, 55, 51, 47, 43, 39, 35, 31, 27, 23, 19, 15, 11, 7, 2, -2, -6, -10, -14, -18, -22, -26, -30, -34, -38, -42, -46, -50, -54, -58, -63, -67, -71, -75, -79, -83, -87, -91, -95, -99, -103, -107, -111, -115, -119, -124}, {133, 129, 125, 121, 117, 113, 109, 105, 101, 97, 93, 89, 85, 81, 77, 73, 68, 64, 60, 56, 52, 48, 44, 40, 36, 32, 28, 24, 20, 16, 12, 8, 3, -1, -5, -9, -13, -17, -21, -25, -29, -33, -37, -41, -45, -49, -53, -57, -62, -66, -70, -74, -78, -82, -86, -90, -94, -98, -102, -106, -110, -114, -118, -123}, {134, 130, 126, 122, 118, 114, 110, 106, 102, 98, 94, 90, 86, 82, 78, 74, 69, 65, 61, 57, 53, 49, 45, 41, 37, 33, 29, 25, 21, 17, 13, 9, 4, 0, -4, -8, -12, -16, -20, -24, -28, -32, -36, -40, -44, -48, -52, -56, -61, -65, -69, -73, -77, -81, -85, -89, -93, -97, -101, -105, -109, -113, -117, -122}, {135, 131, 127, 123, 119, 115, 111, 107, 103, 99, 95, 91, 87, 83, 79, 75, 70, 66, 62, 58, 54, 50, 46, 42, 38, 34, 30, 26, 22, 18, 14, 10, 5, 1, -3, -7, -11, -15, -19, -23, -27, -31, -35, -39, -43, -47, -51, -55, -60, -64, -68, -72, -76, -80, -84, -88, -92, -96, -100, -104, -108, -112, -116, -121}, {136, 132, 128, 124, 120, 116, 112, 108, 104, 100, 96, 92, 88, 84, 80, 76, 71, 67, 63, 59, 55, 51, 47, 43, 39, 35, 31, 27, 23, 19, 15, 11, 6, 2, -2, -6, -10, -14, -18, -22, -26, -30, -34, -38, -42, -46, -50, -54, -59, -63, -67, -71, -75, -79, -83, -87, -91, -95, -99, -103, -107, -111, -115, -120}, {137, 133, 129, 125, 121, 117, 113, 109, 105, 101, 97, 93, 89, 85, 81, 77, 72, 68, 64, 60, 56, 52, 48, 44, 40, 36, 32, 28, 24, 20, 16, 12, 7, 3, -1, -5, -9, -13, -17, -21, -25, -29, -33, -37, -41, -45, -49, -53, -58, -62, -66, -70, -74, -78, -82, -86, -90, -94, -98, -102, -106, -110, -114, -119}, {138, 134, 130, 126, 122, 118, 114, 110, 106, 102, 98, 94, 90, 86, 82, 78, 73, 69, 65, 61, 57, 53, 49, 45, 41, 37, 33, 29, 25, 21, 17, 13, 8, 4, 0, -4, -8, -12, -16, -20, -24, -28, -32, -36, -40, -44, -48, -52, -57, -61, -65, -69, -73, -77, -81, -85, -89, -93, -97, -101, -105, -109, -113, -118}, {139, 135, 131, 127, 123, 119, 115, 111, 107, 103, 99, 95, 91, 87, 83, 79, 74, 70, 66, 62, 58, 54, 50, 46, 42, 38, 34, 30, 26, 22, 18, 14, 9, 5, 1, -3, -7, -11, -15, -19, -23, -27, -31, -35, -39, -43, -47, -51, -56, -60, -64, -68, -72, -76, -80, -84, -88, -92, -96, -100, -104, -108, -112, -117}, {140, 136, 132, 128, 124, 120, 116, 112, 108, 104, 100, 96, 92, 88, 84, 80, 75, 71, 67, 63, 59, 55, 51, 47, 43, 39, 35, 31, 27, 23, 19, 15, 10, 6, 2, -2, -6, -10, -14, -18, -22, -26, -30, -34, -38, -42, -46, -50, -55, -59, -63, -67, -71, -75, -79, -83, -87, -91, -95, -99, -103, -107, -111, -116}, {141, 137, 133, 129, 125, 121, 117, 113, 109, 105, 101, 97, 93, 89, 85, 81, 76, 72, 68, 64, 60, 56, 52, 48, 44, 40, 36, 32, 28, 24, 20, 16, 11, 7, 3, -1, -5, -9, -13, -17, -21, -25, -29, -33, -37, -41, -45, -49, -54, -58, -62, -66, -70, -74, -78, -82, -86, -90, -94, -98, -102, -106, -110, -115}, {142, 138, 134, 130, 126, 122, 118, 114, 110, 106, 102, 98, 94, 90, 86, 82, 77, 73, 69, 65, 61, 57, 53, 49, 45, 41, 37, 33, 29, 25, 21, 17, 12, 8, 4, 0, -4, -8, -12, -16, -20, -24, -28, -32, -36, -40, -44, -48, -53, -57, -61, -65, -69, -73, -77, -81, -85, -89, -93, -97, -101, -105, -109, -114}, {143, 139, 135, 131, 127, 123, 119, 115, 111, 107, 103, 99, 95, 91, 87, 83, 78, 74, 70, 66, 62, 58, 54, 50, 46, 42, 38, 34, 30, 26, 22, 18, 13, 9, 5, 1, -3, -7, -11, -15, -19, -23, -27, -31, -35, -39, -43, -47, -52, -56, -60, -64, -68, -72, -76, -80, -84, -88, -92, -96, -100, -104, -108, -113}, {144, 140, 136, 132, 128, 124, 120, 116, 112, 108, 104, 100, 96, 92, 88, 84, 79, 75, 71, 67, 63, 59, 55, 51, 47, 43, 39, 35, 31, 27, 23, 19, 14, 10, 6, 2, -2, -6, -10, -14, -18, -22, -26, -30, -34, -38, -42, -46, -51, -55, -59, -63, -67, -71, -75, -79, -83, -87, -91, -95, -99, -103, -107, -112}, {145, 141, 137, 133, 129, 125, 121, 117, 113, 109, 105, 101, 97, 93, 89, 85, 80, 76, 72, 68, 64, 60, 56, 52, 48, 44, 40, 36, 32, 28, 24, 20, 15, 11, 7, 3, -1, -5, -9, -13, -17, -21, -25, -29, -33, -37, -41, -45, -50, -54, -58, -62, -66, -70, -74, -78, -82, -86, -90, -94, -98, -102, -106, -111}, {146, 142, 138, 134, 130, 126, 122, 118, 114, 110, 106, 102, 98, 94, 90, 86, 81, 77, 73, 69, 65, 61, 57, 53, 49, 45, 41, 37, 33, 29, 25, 21, 16, 12, 8, 4, 0, -4, -8, -12, -16, -20, -24, -28, -32, -36, -40, -44, -49, -53, -57, -61, -65, -69, -73, -77, -81, -85, -89, -93, -97, -101, -105, -110}, {147, 143, 139, 135, 131, 127, 123, 119, 115, 111, 107, 103, 99, 95, 91, 87, 82, 78, 74, 70, 66, 62, 58, 54, 50, 46, 42, 38, 34, 30, 26, 22, 17, 13, 9, 5, 1, -3, -7, -11, -15, -19, -23, -27, -31, -35, -39, -43, -48, -52, -56, -60, -64, -68, -72, -76, -80, -84, -88, -92, -96, -100, -104, -109}, {148, 144, 140, 136, 132, 128, 124, 120, 116, 112, 108, 104, 100, 96, 92, 88, 83, 79, 75, 71, 67, 63, 59, 55, 51, 47, 43, 39, 35, 31, 27, 23, 18, 14, 10, 6, 2, -2, -6, -10, -14, -18, -22, -26, -30, -34, -38, -42, -47, -51, -55, -59, -63, -67, -71, -75, -79, -83, -87, -91, -95, -99, -103, -108}, {149, 145, 141, 137, 133, 129, 125, 121, 117, 113, 109, 105, 101, 97, 93, 89, 84, 80, 76, 72, 68, 64, 60, 56, 52, 48, 44, 40, 36, 32, 28, 24, 19, 15, 11, 7, 3, -1, -5, -9, -13, -17, -21, -25, -29, -33, -37, -41, -46, -50, -54, -58, -62, -66, -70, -74, -78, -82, -86, -90, -94, -98, -102, -107}, {150, 146, 142, 138, 134, 130, 126, 122, 118, 114, 110, 106, 102, 98, 94, 90, 85, 81, 77, 73, 69, 65, 61, 57, 53, 49, 45, 41, 37, 33, 29, 25, 20, 16, 12, 8, 4, 0, -4, -8, -12, -16, -20, -24, -28, -32, -36, -40, -45, -49, -53, -57, -61, -65, -69, -73, -77, -81, -85, -89, -93, -97, -101, -106}, {151, 147, 143, 139, 135, 131, 127, 123, 119, 115, 111, 107, 103, 99, 95, 91, 86, 82, 78, 74, 70, 66, 62, 58, 54, 50, 46, 42, 38, 34, 30, 26, 21, 17, 13, 9, 5, 1, -3, -7, -11, -15, -19, -23, -27, -31, -35, -39, -44, -48, -52, -56, -60, -64, -68, -72, -76, -80, -84, -88, -92, -96, -100, -105}, {152, 148, 144, 140, 136, 132, 128, 124, 120, 116, 112, 108, 104, 100, 96, 92, 87, 83, 79, 75, 71, 67, 63, 59, 55, 51, 47, 43, 39, 35, 31, 27, 22, 18, 14, 10, 6, 2, -2, -6, -10, -14, -18, -22, -26, -30, -34, -38, -43, -47, -51, -55, -59, -63, -67, -71, -75, -79, -83, -87, -91, -95, -99, -104}, {153, 149, 145, 141, 137, 133, 129, 125, 121, 117, 113, 109, 105, 101, 97, 93, 88, 84, 80, 76, 72, 68, 64, 60, 56, 52, 48, 44, 40, 36, 32, 28, 23, 19, 15, 11, 7, 3, -1, -5, -9, -13, -17, -21, -25, -29, -33, -37, -42, -46, -50, -54, -58, -62, -66, -70, -74, -78, -82, -86, -90, -94, -98, -103}, {154, 150, 146, 142, 138, 134, 130, 126, 122, 118, 114, 110, 106, 102, 98, 94, 89, 85, 81, 77, 73, 69, 65, 61, 57, 53, 49, 45, 41, 37, 33, 29, 24, 20, 16, 12, 8, 4, 0, -4, -8, -12, -16, -20, -24, -28, -32, -36, -41, -45, -49, -53, -57, -61, -65, -69, -73, -77, -81, -85, -89, -93, -97, -102}, {155, 151, 147, 143, 139, 135, 131, 127, 123, 119, 115, 111, 107, 103, 99, 95, 90, 86, 82, 78, 74, 70, 66, 62, 58, 54, 50, 46, 42, 38, 34, 30, 25, 21, 17, 13, 9, 5, 1, -3, -7, -11, -15, -19, -23, -27, -31, -35, -40, -44, -48, -52, -56, -60, -64, -68, -72, -76, -80, -84, -88, -92, -96, -101}, {156, 152, 148, 144, 140, 136, 132, 128, 124, 120, 116, 112, 108, 104, 100, 96, 91, 87, 83, 79, 75, 71, 67, 63, 59, 55, 51, 47, 43, 39, 35, 31, 26, 22, 18, 14, 10, 6, 2, -2, -6, -10, -14, -18, -22, -26, -30, -34, -39, -43, -47, -51, -55, -59, -63, -67, -71, -75, -79, -83, -87, -91, -95, -100}, {157, 153, 149, 145, 141, 137, 133, 129, 125, 121, 117, 113, 109, 105, 101, 97, 92, 88, 84, 80, 76, 72, 68, 64, 60, 56, 52, 48, 44, 40, 36, 32, 27, 23, 19, 15, 11, 7, 3, -1, -5, -9, -13, -17, -21, -25, -29, -33, -38, -42, -46, -50, -54, -58, -62, -66, -70, -74, -78, -82, -86, -90, -94, -99}, {158, 154, 150, 146, 142, 138, 134, 130, 126, 122, 118, 114, 110, 106, 102, 98, 93, 89, 85, 81, 77, 73, 69, 65, 61, 57, 53, 49, 45, 41, 37, 33, 28, 24, 20, 16, 12, 8, 4, 0, -4, -8, -12, -16, -20, -24, -28, -32, -37, -41, -45, -49, -53, -57, -61, -65, -69, -73, -77, -81, -85, -89, -93, -98}, {159, 155, 151, 147, 143, 139, 135, 131, 127, 123, 119, 115, 111, 107, 103, 99, 94, 90, 86, 82, 78, 74, 70, 66, 62, 58, 54, 50, 46, 42, 38, 34, 29, 25, 21, 17, 13, 9, 5, 1, -3, -7, -11, -15, -19, -23, -27, -31, -36, -40, -44, -48, -52, -56, -60, -64, -68, -72, -76, -80, -84, -88, -92, -97}, {160, 156, 152, 148, 144, 140, 136, 132, 128, 124, 120, 116, 112, 108, 104, 100, 95, 91, 87, 83, 79, 75, 71, 67, 63, 59, 55, 51, 47, 43, 39, 35, 30, 26, 22, 18, 14, 10, 6, 2, -2, -6, -10, -14, -18, -22, -26, -30, -35, -39, -43, -47, -51, -55, -59, -63, -67, -71, -75, -79, -83, -87, -91, -96}, {161, 157, 153, 149, 145, 141, 137, 133, 129, 125, 121, 117, 113, 109, 105, 101, 96, 92, 88, 84, 80, 76, 72, 68, 64, 60, 56, 52, 48, 44, 40, 36, 31, 27, 23, 19, 15, 11, 7, 3, -1, -5, -9, -13, -17, -21, -25, -29, -34, -38, -42, -46, -50, -54, -58, -62, -66, -70, -74, -78, -82, -86, -90, -95}, {162, 158, 154, 150, 146, 142, 138, 134, 130, 126, 122, 118, 114, 110, 106, 102, 97, 93, 89, 85, 81, 77, 73, 69, 65, 61, 57, 53, 49, 45, 41, 37, 32, 28, 24, 20, 16, 12, 8, 4, 0, -4, -8, -12, -16, -20, -24, -28, -33, -37, -41, -45, -49, -53, -57, -61, -65, -69, -73, -77, -81, -85, -89, -94}, {163, 159, 155, 151, 147, 143, 139, 135, 131, 127, 123, 119, 115, 111, 107, 103, 98, 94, 90, 86, 82, 78, 74, 70, 66, 62, 58, 54, 50, 46, 42, 38, 33, 29, 25, 21, 17, 13, 9, 5, 1, -3, -7, -11, -15, -19, -23, -27, -32, -36, -40, -44, -48, -52, -56, -60, -64, -68, -72, -76, -80, -84, -88, -93}, {164, 160, 156, 152, 148, 144, 140, 136, 132, 128, 124, 120, 116, 112, 108, 104, 99, 95, 91, 87, 83, 79, 75, 71, 67, 63, 59, 55, 51, 47, 43, 39, 34, 30, 26, 22, 18, 14, 10, 6, 2, -2, -6, -10, -14, -18, -22, -26, -31, -35, -39, -43, -47, -51, -55, -59, -63, -67, -71, -75, -79, -83, -87, -92}, {165, 161, 157, 153, 149, 145, 141, 137, 133, 129, 125, 121, 117, 113, 109, 105, 100, 96, 92, 88, 84, 80, 76, 72, 68, 64, 60, 56, 52, 48, 44, 40, 35, 31, 27, 23, 19, 15, 11, 7, 3, -1, -5, -9, -13, -17, -21, -25, -30, -34, -38, -42, -46, -50, -54, -58, -62, -66, -70, -74, -78, -82, -86, -91}, {166, 162, 158, 154, 150, 146, 142, 138, 134, 130, 126, 122, 118, 114, 110, 106, 101, 97, 93, 89, 85, 81, 77, 73, 69, 65, 61, 57, 53, 49, 45, 41, 36, 32, 28, 24, 20, 16, 12, 8, 4, 0, -4, -8, -12, -16, -20, -24, -29, -33, -37, -41, -45, -49, -53, -57, -61, -65, -69, -73, -77, -81, -85, -90}, {167, 163, 159, 155, 151, 147, 143, 139, 135, 131, 127, 123, 119, 115, 111, 107, 102, 98, 94, 90, 86, 82, 78, 74, 70, 66, 62, 58, 54, 50, 46, 42, 37, 33, 29, 25, 21, 17, 13, 9, 5, 1, -3, -7, -11, -15, -19, -23, -28, -32, -36, -40, -44, -48, -52, -56, -60, -64, -68, -72, -76, -80, -84, -89}, {168, 164, 160, 156, 152, 148, 144, 140, 136, 132, 128, 124, 120, 116, 112, 108, 103, 99, 95, 91, 87, 83, 79, 75, 71, 67, 63, 59, 55, 51, 47, 43, 38, 34, 30, 26, 22, 18, 14, 10, 6, 2, -2, -6, -10, -14, -18, -22, -27, -31, -35, -39, -43, -47, -51, -55, -59, -63, -67, -71, -75, -79, -83, -88}, {169, 165, 161, 157, 153, 149, 145, 141, 137, 133, 129, 125, 121, 117, 113, 109, 104, 100, 96, 92, 88, 84, 80, 76, 72, 68, 64, 60, 56, 52, 48, 44, 39, 35, 31, 27, 23, 19, 15, 11, 7, 3, -1, -5, -9, -13, -17, -21, -26, -30, -34, -38, -42, -46, -50, -54, -58, -62, -66, -70, -74, -78, -82, -87}, {170, 166, 162, 158, 154, 150, 146, 142, 138, 134, 130, 126, 122, 118, 114, 110, 105, 101, 97, 93, 89, 85, 81, 77, 73, 69, 65, 61, 57, 53, 49, 45, 40, 36, 32, 28, 24, 20, 16, 12, 8, 4, 0, -4, -8, -12, -16, -20, -25, -29, -33, -37, -41, -45, -49, -53, -57, -61, -65, -69, -73, -77, -81, -86}, {171, 167, 163, 159, 155, 151, 147, 143, 139, 135, 131, 127, 123, 119, 115, 111, 106, 102, 98, 94, 90, 86, 82, 78, 74, 70, 66, 62, 58, 54, 50, 46, 41, 37, 33, 29, 25, 21, 17, 13, 9, 5, 1, -3, -7, -11, -15, -19, -24, -28, -32, -36, -40, -44, -48, -52, -56, -60, -64, -68, -72, -76, -80, -85}, {172, 168, 164, 160, 156, 152, 148, 144, 140, 136, 132, 128, 124, 120, 116, 112, 107, 103, 99, 95, 91, 87, 83, 79, 75, 71, 67, 63, 59, 55, 51, 47, 42, 38, 34, 30, 26, 22, 18, 14, 10, 6, 2, -2, -6, -10, -14, -18, -23, -27, -31, -35, -39, -43, -47, -51, -55, -59, -63, -67, -71, -75, -79, -84}, {173, 169, 165, 161, 157, 153, 149, 145, 141, 137, 133, 129, 125, 121, 117, 113, 108, 104, 100, 96, 92, 88, 84, 80, 76, 72, 68, 64, 60, 56, 52, 48, 43, 39, 35, 31, 27, 23, 19, 15, 11, 7, 3, -1, -5, -9, -13, -17, -22, -26, -30, -34, -38, -42, -46, -50, -54, -58, -62, -66, -70, -74, -78, -83}, {174, 170, 166, 162, 158, 154, 150, 146, 142, 138, 134, 130, 126, 122, 118, 114, 109, 105, 101, 97, 93, 89, 85, 81, 77, 73, 69, 65, 61, 57, 53, 49, 44, 40, 36, 32, 28, 24, 20, 16, 12, 8, 4, 0, -4, -8, -12, -16, -21, -25, -29, -33, -37, -41, -45, -49, -53, -57, -61, -65, -69, -73, -77, -82}, {175, 171, 167, 163, 159, 155, 151, 147, 143, 139, 135, 131, 127, 123, 119, 115, 110, 106, 102, 98, 94, 90, 86, 82, 78, 74, 70, 66, 62, 58, 54, 50, 45, 41, 37, 33, 29, 25, 21, 17, 13, 9, 5, 1, -3, -7, -11, -15, -20, -24, -28, -32, -36, -40, -44, -48, -52, -56, -60, -64, -68, -72, -76, -81}, {176, 172, 168, 164, 160, 156, 152, 148, 144, 140, 136, 132, 128, 124, 120, 116, 111, 107, 103, 99, 95, 91, 87, 83, 79, 75, 71, 67, 63, 59, 55, 51, 46, 42, 38, 34, 30, 26, 22, 18, 14, 10, 6, 2, -2, -6, -10, -14, -19, -23, -27, -31, -35, -39, -43, -47, -51, -55, -59, -63, -67, -71, -75, -80}, {177, 173, 169, 165, 161, 157, 153, 149, 145, 141, 137, 133, 129, 125, 121, 117, 112, 108, 104, 100, 96, 92, 88, 84, 80, 76, 72, 68, 64, 60, 56, 52, 47, 43, 39, 35, 31, 27, 23, 19, 15, 11, 7, 3, -1, -5, -9, -13, -18, -22, -26, -30, -34, -38, -42, -46, -50, -54, -58, -62, -66, -70, -74, -79}, {178, 174, 170, 166, 162, 158, 154, 150, 146, 142, 138, 134, 130, 126, 122, 118, 113, 109, 105, 101, 97, 93, 89, 85, 81, 77, 73, 69, 65, 61, 57, 53, 48, 44, 40, 36, 32, 28, 24, 20, 16, 12, 8, 4, 0, -4, -8, -12, -17, -21, -25, -29, -33, -37, -41, -45, -49, -53, -57, -61, -65, -69, -73, -78}, {179, 175, 171, 167, 163, 159, 155, 151, 147, 143, 139, 135, 131, 127, 123, 119, 114, 110, 106, 102, 98, 94, 90, 86, 82, 78, 74, 70, 66, 62, 58, 54, 49, 45, 41, 37, 33, 29, 25, 21, 17, 13, 9, 5, 1, -3, -7, -11, -16, -20, -24, -28, -32, -36, -40, -44, -48, -52, -56, -60, -64, -68, -72, -77}, {180, 176, 172, 168, 164, 160, 156, 152, 148, 144, 140, 136, 132, 128, 124, 120, 115, 111, 107, 103, 99, 95, 91, 87, 83, 79, 75, 71, 67, 63, 59, 55, 50, 46, 42, 38, 34, 30, 26, 22, 18, 14, 10, 6, 2, -2, -6, -10, -15, -19, -23, -27, -31, -35, -39, -43, -47, -51, -55, -59, -63, -67, -71, -76}, {181, 177, 173, 169, 165, 161, 157, 153, 149, 145, 141, 137, 133, 129, 125, 121, 116, 112, 108, 104, 100, 96, 92, 88, 84, 80, 76, 72, 68, 64, 60, 56, 51, 47, 43, 39, 35, 31, 27, 23, 19, 15, 11, 7, 3, -1, -5, -9, -14, -18, -22, -26, -30, -34, -38, -42, -46, -50, -54, -58, -62, -66, -70, -75}, {182, 178, 174, 170, 166, 162, 158, 154, 150, 146, 142, 138, 134, 130, 126, 122, 117, 113, 109, 105, 101, 97, 93, 89, 85, 81, 77, 73, 69, 65, 61, 57, 52, 48, 44, 40, 36, 32, 28, 24, 20, 16, 12, 8, 4, 0, -4, -8, -13, -17, -21, -25, -29, -33, -37, -41, -45, -49, -53, -57, -61, -65, -69, -74}, {183, 179, 175, 171, 167, 163, 159, 155, 151, 147, 143, 139, 135, 131, 127, 123, 118, 114, 110, 106, 102, 98, 94, 90, 86, 82, 78, 74, 70, 66, 62, 58, 53, 49, 45, 41, 37, 33, 29, 25, 21, 17, 13, 9, 5, 1, -3, -7, -12, -16, -20, -24, -28, -32, -36, -40, -44, -48, -52, -56, -60, -64, -68, -73}, {184, 180, 176, 172, 168, 164, 160, 156, 152, 148, 144, 140, 136, 132, 128, 124, 119, 115, 111, 107, 103, 99, 95, 91, 87, 83, 79, 75, 71, 67, 63, 59, 54, 50, 46, 42, 38, 34, 30, 26, 22, 18, 14, 10, 6, 2, -2, -6, -11, -15, -19, -23, -27, -31, -35, -39, -43, -47, -51, -55, -59, -63, -67, -72}, {185, 181, 177, 173, 169, 165, 161, 157, 153, 149, 145, 141, 137, 133, 129, 125, 120, 116, 112, 108, 104, 100, 96, 92, 88, 84, 80, 76, 72, 68, 64, 60, 55, 51, 47, 43, 39, 35, 31, 27, 23, 19, 15, 11, 7, 3, -1, -5, -10, -14, -18, -22, -26, -30, -34, -38, -42, -46, -50, -54, -58, -62, -66, -71}, {186, 182, 178, 174, 170, 166, 162, 158, 154, 150, 146, 142, 138, 134, 130, 126, 121, 117, 113, 109, 105, 101, 97, 93, 89, 85, 81, 77, 73, 69, 65, 61, 56, 52, 48, 44, 40, 36, 32, 28, 24, 20, 16, 12, 8, 4, 0, -4, -9, -13, -17, -21, -25, -29, -33, -37, -41, -45, -49, -53, -57, -61, -65, -70}, {187, 183, 179, 175, 171, 167, 163, 159, 155, 151, 147, 143, 139, 135, 131, 127, 122, 118, 114, 110, 106, 102, 98, 94, 90, 86, 82, 78, 74, 70, 66, 62, 57, 53, 49, 45, 41, 37, 33, 29, 25, 21, 17, 13, 9, 5, 1, -3, -8, -12, -16, -20, -24, -28, -32, -36, -40, -44, -48, -52, -56, -60, -64, -69}, {188, 184, 180, 176, 172, 168, 164, 160, 156, 152, 148, 144, 140, 136, 132, 128, 123, 119, 115, 111, 107, 103, 99, 95, 91, 87, 83, 79, 75, 71, 67, 63, 58, 54, 50, 46, 42, 38, 34, 30, 26, 22, 18, 14, 10, 6, 2, -2, -7, -11, -15, -19, -23, -27, -31, -35, -39, -43, -47, -51, -55, -59, -63, -68}, {189, 185, 181, 177, 173, 169, 165, 161, 157, 153, 149, 145, 141, 137, 133, 129, 124, 120, 116, 112, 108, 104, 100, 96, 92, 88, 84, 80, 76, 72, 68, 64, 59, 55, 51, 47, 43, 39, 35, 31, 27, 23, 19, 15, 11, 7, 3, -1, -6, -10, -14, -18, -22, -26, -30, -34, -38, -42, -46, -50, -54, -58, -62, -67}, {190, 186, 182, 178, 174, 170, 166, 162, 158, 154, 150, 146, 142, 138, 134, 130, 125, 121, 117, 113, 109, 105, 101, 97, 93, 89, 85, 81, 77, 73, 69, 65, 60, 56, 52, 48, 44, 40, 36, 32, 28, 24, 20, 16, 12, 8, 4, 0, -5, -9, -13, -17, -21, -25, -29, -33, -37, -41, -45, -49, -53, -57, -61, -66}, {191, 187, 183, 179, 175, 171, 167, 163, 159, 155, 151, 147, 143, 139, 135, 131, 126, 122, 118, 114, 110, 106, 102, 98, 94, 90, 86, 82, 78, 74, 70, 66, 61, 57, 53, 49, 45, 41, 37, 33, 29, 25, 21, 17, 13, 9, 5, 1, -4, -8, -12, -16, -20, -24, -28, -32, -36, -40, -44, -48, -52, -56, -60, -65}, {192, 188, 184, 180, 176, 172, 168, 164, 160, 156, 152, 148, 144, 140, 136, 132, 127, 123, 119, 115, 111, 107, 103, 99, 95, 91, 87, 83, 79, 75, 71, 67, 62, 58, 54, 50, 46, 42, 38, 34, 30, 26, 22, 18, 14, 10, 6, 2, -3, -7, -11, -15, -19, -23, -27, -31, -35, -39, -43, -47, -51, -55, -59, -64}, {193, 189, 185, 181, 177, 173, 169, 165, 161, 157, 153, 149, 145, 141, 137, 133, 128, 124, 120, 116, 112, 108, 104, 100, 96, 92, 88, 84, 80, 76, 72, 68, 63, 59, 55, 51, 47, 43, 39, 35, 31, 27, 23, 19, 15, 11, 7, 3, -2, -6, -10, -14, -18, -22, -26, -30, -34, -38, -42, -46, -50, -54, -58, -63}, {194, 190, 186, 182, 178, 174, 170, 166, 162, 158, 154, 150, 146, 142, 138, 134, 129, 125, 121, 117, 113, 109, 105, 101, 97, 93, 89, 85, 81, 77, 73, 69, 64, 60, 56, 52, 48, 44, 40, 36, 32, 28, 24, 20, 16, 12, 8, 4, -1, -5, -9, -13, -17, -21, -25, -29, -33, -37, -41, -45, -49, -53, -57, -62}, {195, 191, 187, 183, 179, 175, 171, 167, 163, 159, 155, 151, 147, 143, 139, 135, 130, 126, 122, 118, 114, 110, 106, 102, 98, 94, 90, 86, 82, 78, 74, 70, 65, 61, 57, 53, 49, 45, 41, 37, 33, 29, 25, 21, 17, 13, 9, 5, 0, -4, -8, -12, -16, -20, -24, -28, -32, -36, -40, -44, -48, -52, -56, -61}, {196, 192, 188, 184, 180, 176, 172, 168, 164, 160, 156, 152, 148, 144, 140, 136, 131, 127, 123, 119, 115, 111, 107, 103, 99, 95, 91, 87, 83, 79, 75, 71, 66, 62, 58, 54, 50, 46, 42, 38, 34, 30, 26, 22, 18, 14, 10, 6, 1, -3, -7, -11, -15, -19, -23, -27, -31, -35, -39, -43, -47, -51, -55, -60}, {197, 193, 189, 185, 181, 177, 173, 169, 165, 161, 157, 153, 149, 145, 141, 137, 132, 128, 124, 120, 116, 112, 108, 104, 100, 96, 92, 88, 84, 80, 76, 72, 67, 63, 59, 55, 51, 47, 43, 39, 35, 31, 27, 23, 19, 15, 11, 7, 2, -2, -6, -10, -14, -18, -22, -26, -30, -34, -38, -42, -46, -50, -54, -59}, {198, 194, 190, 186, 182, 178, 174, 170, 166, 162, 158, 154, 150, 146, 142, 138, 133, 129, 125, 121, 117, 113, 109, 105, 101, 97, 93, 89, 85, 81, 77, 73, 68, 64, 60, 56, 52, 48, 44, 40, 36, 32, 28, 24, 20, 16, 12, 8, 3, -1, -5, -9, -13, -17, -21, -25, -29, -33, -37, -41, -45, -49, -53, -58}, {199, 195, 191, 187, 183, 179, 175, 171, 167, 163, 159, 155, 151, 147, 143, 139, 134, 130, 126, 122, 118, 114, 110, 106, 102, 98, 94, 90, 86, 82, 78, 74, 69, 65, 61, 57, 53, 49, 45, 41, 37, 33, 29, 25, 21, 17, 13, 9, 4, 0, -4, -8, -12, -16, -20, -24, -28, -32, -36, -40, -44, -48, -52, -57}, {200, 196, 192, 188, 184, 180, 176, 172, 168, 164, 160, 156, 152, 148, 144, 140, 135, 131, 127, 123, 119, 115, 111, 107, 103, 99, 95, 91, 87, 83, 79, 75, 70, 66, 62, 58, 54, 50, 46, 42, 38, 34, 30, 26, 22, 18, 14, 10, 5, 1, -3, -7, -11, -15, -19, -23, -27, -31, -35, -39, -43, -47, -51, -56}, {201, 197, 193, 189, 185, 181, 177, 173, 169, 165, 161, 157, 153, 149, 145, 141, 136, 132, 128, 124, 120, 116, 112, 108, 104, 100, 96, 92, 88, 84, 80, 76, 71, 67, 63, 59, 55, 51, 47, 43, 39, 35, 31, 27, 23, 19, 15, 11, 6, 2, -2, -6, -10, -14, -18, -22, -26, -30, -34, -38, -42, -46, -50, -55}, {202, 198, 194, 190, 186, 182, 178, 174, 170, 166, 162, 158, 154, 150, 146, 142, 137, 133, 129, 125, 121, 117, 113, 109, 105, 101, 97, 93, 89, 85, 81, 77, 72, 68, 64, 60, 56, 52, 48, 44, 40, 36, 32, 28, 24, 20, 16, 12, 7, 3, -1, -5, -9, -13, -17, -21, -25, -29, -33, -37, -41, -45, -49, -54}, {203, 199, 195, 191, 187, 183, 179, 175, 171, 167, 163, 159, 155, 151, 147, 143, 138, 134, 130, 126, 122, 118, 114, 110, 106, 102, 98, 94, 90, 86, 82, 78, 73, 69, 65, 61, 57, 53, 49, 45, 41, 37, 33, 29, 25, 21, 17, 13, 8, 4, 0, -4, -8, -12, -16, -20, -24, -28, -32, -36, -40, -44, -48, -53}, {204, 200, 196, 192, 188, 184, 180, 176, 172, 168, 164, 160, 156, 152, 148, 144, 139, 135, 131, 127, 123, 119, 115, 111, 107, 103, 99, 95, 91, 87, 83, 79, 74, 70, 66, 62, 58, 54, 50, 46, 42, 38, 34, 30, 26, 22, 18, 14, 9, 5, 1, -3, -7, -11, -15, -19, -23, -27, -31, -35, -39, -43, -47, -52}, {205, 201, 197, 193, 189, 185, 181, 177, 173, 169, 165, 161, 157, 153, 149, 145, 140, 136, 132, 128, 124, 120, 116, 112, 108, 104, 100, 96, 92, 88, 84, 80, 75, 71, 67, 63, 59, 55, 51, 47, 43, 39, 35, 31, 27, 23, 19, 15, 10, 6, 2, -2, -6, -10, -14, -18, -22, -26, -30, -34, -38, -42, -46, -51}, {206, 202, 198, 194, 190, 186, 182, 178, 174, 170, 166, 162, 158, 154, 150, 146, 141, 137, 133, 129, 125, 121, 117, 113, 109, 105, 101, 97, 93, 89, 85, 81, 76, 72, 68, 64, 60, 56, 52, 48, 44, 40, 36, 32, 28, 24, 20, 16, 11, 7, 3, -1, -5, -9, -13, -17, -21, -25, -29, -33, -37, -41, -45, -50}, {207, 203, 199, 195, 191, 187, 183, 179, 175, 171, 167, 163, 159, 155, 151, 147, 142, 138, 134, 130, 126, 122, 118, 114, 110, 106, 102, 98, 94, 90, 86, 82, 77, 73, 69, 65, 61, 57, 53, 49, 45, 41, 37, 33, 29, 25, 21, 17, 12, 8, 4, 0, -4, -8, -12, -16, -20, -24, -28, -32, -36, -40, -44, -49}, {208, 204, 200, 196, 192, 188, 184, 180, 176, 172, 168, 164, 160, 156, 152, 148, 143, 139, 135, 131, 127, 123, 119, 115, 111, 107, 103, 99, 95, 91, 87, 83, 78, 74, 70, 66, 62, 58, 54, 50, 46, 42, 38, 34, 30, 26, 22, 18, 13, 9, 5, 1, -3, -7, -11, -15, -19, -23, -27, -31, -35, -39, -43, -48}, {209, 205, 201, 197, 193, 189, 185, 181, 177, 173, 169, 165, 161, 157, 153, 149, 144, 140, 136, 132, 128, 124, 120, 116, 112, 108, 104, 100, 96, 92, 88, 84, 79, 75, 71, 67, 63, 59, 55, 51, 47, 43, 39, 35, 31, 27, 23, 19, 14, 10, 6, 2, -2, -6, -10, -14, -18, -22, -26, -30, -34, -38, -42, -47}, {210, 206, 202, 198, 194, 190, 186, 182, 178, 174, 170, 166, 162, 158, 154, 150, 145, 141, 137, 133, 129, 125, 121, 117, 113, 109, 105, 101, 97, 93, 89, 85, 80, 76, 72, 68, 64, 60, 56, 52, 48, 44, 40, 36, 32, 28, 24, 20, 15, 11, 7, 3, -1, -5, -9, -13, -17, -21, -25, -29, -33, -37, -41, -46}, {211, 207, 203, 199, 195, 191, 187, 183, 179, 175, 171, 167, 163, 159, 155, 151, 146, 142, 138, 134, 130, 126, 122, 118, 114, 110, 106, 102, 98, 94, 90, 86, 81, 77, 73, 69, 65, 61, 57, 53, 49, 45, 41, 37, 33, 29, 25, 21, 16, 12, 8, 4, 0, -4, -8, -12, -16, -20, -24, -28, -32, -36, -40, -45}, {212, 208, 204, 200, 196, 192, 188, 184, 180, 176, 172, 168, 164, 160, 156, 152, 147, 143, 139, 135, 131, 127, 123, 119, 115, 111, 107, 103, 99, 95, 91, 87, 82, 78, 74, 70, 66, 62, 58, 54, 50, 46, 42, 38, 34, 30, 26, 22, 17, 13, 9, 5, 1, -3, -7, -11, -15, -19, -23, -27, -31, -35, -39, -44}, {213, 209, 205, 201, 197, 193, 189, 185, 181, 177, 173, 169, 165, 161, 157, 153, 148, 144, 140, 136, 132, 128, 124, 120, 116, 112, 108, 104, 100, 96, 92, 88, 83, 79, 75, 71, 67, 63, 59, 55, 51, 47, 43, 39, 35, 31, 27, 23, 18, 14, 10, 6, 2, -2, -6, -10, -14, -18, -22, -26, -30, -34, -38, -43}, {214, 210, 206, 202, 198, 194, 190, 186, 182, 178, 174, 170, 166, 162, 158, 154, 149, 145, 141, 137, 133, 129, 125, 121, 117, 113, 109, 105, 101, 97, 93, 89, 84, 80, 76, 72, 68, 64, 60, 56, 52, 48, 44, 40, 36, 32, 28, 24, 19, 15, 11, 7, 3, -1, -5, -9, -13, -17, -21, -25, -29, -33, -37, -42}, {215, 211, 207, 203, 199, 195, 191, 187, 183, 179, 175, 171, 167, 163, 159, 155, 150, 146, 142, 138, 134, 130, 126, 122, 118, 114, 110, 106, 102, 98, 94, 90, 85, 81, 77, 73, 69, 65, 61, 57, 53, 49, 45, 41, 37, 33, 29, 25, 20, 16, 12, 8, 4, 0, -4, -8, -12, -16, -20, -24, -28, -32, -36, -41}, {216, 212, 208, 204, 200, 196, 192, 188, 184, 180, 176, 172, 168, 164, 160, 156, 151, 147, 143, 139, 135, 131, 127, 123, 119, 115, 111, 107, 103, 99, 95, 91, 86, 82, 78, 74, 70, 66, 62, 58, 54, 50, 46, 42, 38, 34, 30, 26, 21, 17, 13, 9, 5, 1, -3, -7, -11, -15, -19, -23, -27, -31, -35, -40}, {217, 213, 209, 205, 201, 197, 193, 189, 185, 181, 177, 173, 169, 165, 161, 157, 152, 148, 144, 140, 136, 132, 128, 124, 120, 116, 112, 108, 104, 100, 96, 92, 87, 83, 79, 75, 71, 67, 63, 59, 55, 51, 47, 43, 39, 35, 31, 27, 22, 18, 14, 10, 6, 2, -2, -6, -10, -14, -18, -22, -26, -30, -34, -39}, {218, 214, 210, 206, 202, 198, 194, 190, 186, 182, 178, 174, 170, 166, 162, 158, 153, 149, 145, 141, 137, 133, 129, 125, 121, 117, 113, 109, 105, 101, 97, 93, 88, 84, 80, 76, 72, 68, 64, 60, 56, 52, 48, 44, 40, 36, 32, 28, 23, 19, 15, 11, 7, 3, -1, -5, -9, -13, -17, -21, -25, -29, -33, -38}, {219, 215, 211, 207, 203, 199, 195, 191, 187, 183, 179, 175, 171, 167, 163, 159, 154, 150, 146, 142, 138, 134, 130, 126, 122, 118, 114, 110, 106, 102, 98, 94, 89, 85, 81, 77, 73, 69, 65, 61, 57, 53, 49, 45, 41, 37, 33, 29, 24, 20, 16, 12, 8, 4, 0, -4, -8, -12, -16, -20, -24, -28, -32, -37}, {220, 216, 212, 208, 204, 200, 196, 192, 188, 184, 180, 176, 172, 168, 164, 160, 155, 151, 147, 143, 139, 135, 131, 127, 123, 119, 115, 111, 107, 103, 99, 95, 90, 86, 82, 78, 74, 70, 66, 62, 58, 54, 50, 46, 42, 38, 34, 30, 25, 21, 17, 13, 9, 5, 1, -3, -7, -11, -15, -19, -23, -27, -31, -36}, {221, 217, 213, 209, 205, 201, 197, 193, 189, 185, 181, 177, 173, 169, 165, 161, 156, 152, 148, 144, 140, 136, 132, 128, 124, 120, 116, 112, 108, 104, 100, 96, 91, 87, 83, 79, 75, 71, 67, 63, 59, 55, 51, 47, 43, 39, 35, 31, 26, 22, 18, 14, 10, 6, 2, -2, -6, -10, -14, -18, -22, -26, -30, -35}, {222, 218, 214, 210, 206, 202, 198, 194, 190, 186, 182, 178, 174, 170, 166, 162, 157, 153, 149, 145, 141, 137, 133, 129, 125, 121, 117, 113, 109, 105, 101, 97, 92, 88, 84, 80, 76, 72, 68, 64, 60, 56, 52, 48, 44, 40, 36, 32, 27, 23, 19, 15, 11, 7, 3, -1, -5, -9, -13, -17, -21, -25, -29, -34}, {223, 219, 215, 211, 207, 203, 199, 195, 191, 187, 183, 179, 175, 171, 167, 163, 158, 154, 150, 146, 142, 138, 134, 130, 126, 122, 118, 114, 110, 106, 102, 98, 93, 89, 85, 81, 77, 73, 69, 65, 61, 57, 53, 49, 45, 41, 37, 33, 28, 24, 20, 16, 12, 8, 4, 0, -4, -8, -12, -16, -20, -24, -28, -33}, {224, 220, 216, 212, 208, 204, 200, 196, 192, 188, 184, 180, 176, 172, 168, 164, 159, 155, 151, 147, 143, 139, 135, 131, 127, 123, 119, 115, 111, 107, 103, 99, 94, 90, 86, 82, 78, 74, 70, 66, 62, 58, 54, 50, 46, 42, 38, 34, 29, 25, 21, 17, 13, 9, 5, 1, -3, -7, -11, -15, -19, -23, -27, -32}, {225, 221, 217, 213, 209, 205, 201, 197, 193, 189, 185, 181, 177, 173, 169, 165, 160, 156, 152, 148, 144, 140, 136, 132, 128, 124, 120, 116, 112, 108, 104, 100, 95, 91, 87, 83, 79, 75, 71, 67, 63, 59, 55, 51, 47, 43, 39, 35, 30, 26, 22, 18, 14, 10, 6, 2, -2, -6, -10, -14, -18, -22, -26, -31}, {226, 222, 218, 214, 210, 206, 202, 198, 194, 190, 186, 182, 178, 174, 170, 166, 161, 157, 153, 149, 145, 141, 137, 133, 129, 125, 121, 117, 113, 109, 105, 101, 96, 92, 88, 84, 80, 76, 72, 68, 64, 60, 56, 52, 48, 44, 40, 36, 31, 27, 23, 19, 15, 11, 7, 3, -1, -5, -9, -13, -17, -21, -25, -30}, {227, 223, 219, 215, 211, 207, 203, 199, 195, 191, 187, 183, 179, 175, 171, 167, 162, 158, 154, 150, 146, 142, 138, 134, 130, 126, 122, 118, 114, 110, 106, 102, 97, 93, 89, 85, 81, 77, 73, 69, 65, 61, 57, 53, 49, 45, 41, 37, 32, 28, 24, 20, 16, 12, 8, 4, 0, -4, -8, -12, -16, -20, -24, -29}, {228, 224, 220, 216, 212, 208, 204, 200, 196, 192, 188, 184, 180, 176, 172, 168, 163, 159, 155, 151, 147, 143, 139, 135, 131, 127, 123, 119, 115, 111, 107, 103, 98, 94, 90, 86, 82, 78, 74, 70, 66, 62, 58, 54, 50, 46, 42, 38, 33, 29, 25, 21, 17, 13, 9, 5, 1, -3, -7, -11, -15, -19, -23, -28}, {229, 225, 221, 217, 213, 209, 205, 201, 197, 193, 189, 185, 181, 177, 173, 169, 164, 160, 156, 152, 148, 144, 140, 136, 132, 128, 124, 120, 116, 112, 108, 104, 99, 95, 91, 87, 83, 79, 75, 71, 67, 63, 59, 55, 51, 47, 43, 39, 34, 30, 26, 22, 18, 14, 10, 6, 2, -2, -6, -10, -14, -18, -22, -27}, {230, 226, 222, 218, 214, 210, 206, 202, 198, 194, 190, 186, 182, 178, 174, 170, 165, 161, 157, 153, 149, 145, 141, 137, 133, 129, 125, 121, 117, 113, 109, 105, 100, 96, 92, 88, 84, 80, 76, 72, 68, 64, 60, 56, 52, 48, 44, 40, 35, 31, 27, 23, 19, 15, 11, 7, 3, -1, -5, -9, -13, -17, -21, -26}, {231, 227, 223, 219, 215, 211, 207, 203, 199, 195, 191, 187, 183, 179, 175, 171, 166, 162, 158, 154, 150, 146, 142, 138, 134, 130, 126, 122, 118, 114, 110, 106, 101, 97, 93, 89, 85, 81, 77, 73, 69, 65, 61, 57, 53, 49, 45, 41, 36, 32, 28, 24, 20, 16, 12, 8, 4, 0, -4, -8, -12, -16, -20, -25}, {232, 228, 224, 220, 216, 212, 208, 204, 200, 196, 192, 188, 184, 180, 176, 172, 167, 163, 159, 155, 151, 147, 143, 139, 135, 131, 127, 123, 119, 115, 111, 107, 102, 98, 94, 90, 86, 82, 78, 74, 70, 66, 62, 58, 54, 50, 46, 42, 37, 33, 29, 25, 21, 17, 13, 9, 5, 1, -3, -7, -11, -15, -19, -24}, {233, 229, 225, 221, 217, 213, 209, 205, 201, 197, 193, 189, 185, 181, 177, 173, 168, 164, 160, 156, 152, 148, 144, 140, 136, 132, 128, 124, 120, 116, 112, 108, 103, 99, 95, 91, 87, 83, 79, 75, 71, 67, 63, 59, 55, 51, 47, 43, 38, 34, 30, 26, 22, 18, 14, 10, 6, 2, -2, -6, -10, -14, -18, -23}, {234, 230, 226, 222, 218, 214, 210, 206, 202, 198, 194, 190, 186, 182, 178, 174, 169, 165, 161, 157, 153, 149, 145, 141, 137, 133, 129, 125, 121, 117, 113, 109, 104, 100, 96, 92, 88, 84, 80, 76, 72, 68, 64, 60, 56, 52, 48, 44, 39, 35, 31, 27, 23, 19, 15, 11, 7, 3, -1, -5, -9, -13, -17, -22}, {235, 231, 227, 223, 219, 215, 211, 207, 203, 199, 195, 191, 187, 183, 179, 175, 170, 166, 162, 158, 154, 150, 146, 142, 138, 134, 130, 126, 122, 118, 114, 110, 105, 101, 97, 93, 89, 85, 81, 77, 73, 69, 65, 61, 57, 53, 49, 45, 40, 36, 32, 28, 24, 20, 16, 12, 8, 4, 0, -4, -8, -12, -16, -21}, {236, 232, 228, 224, 220, 216, 212, 208, 204, 200, 196, 192, 188, 184, 180, 176, 171, 167, 163, 159, 155, 151, 147, 143, 139, 135, 131, 127, 123, 119, 115, 111, 106, 102, 98, 94, 90, 86, 82, 78, 74, 70, 66, 62, 58, 54, 50, 46, 41, 37, 33, 29, 25, 21, 17, 13, 9, 5, 1, -3, -7, -11, -15, -20}, {237, 233, 229, 225, 221, 217, 213, 209, 205, 201, 197, 193, 189, 185, 181, 177, 172, 168, 164, 160, 156, 152, 148, 144, 140, 136, 132, 128, 124, 120, 116, 112, 107, 103, 99, 95, 91, 87, 83, 79, 75, 71, 67, 63, 59, 55, 51, 47, 42, 38, 34, 30, 26, 22, 18, 14, 10, 6, 2, -2, -6, -10, -14, -19}, {238, 234, 230, 226, 222, 218, 214, 210, 206, 202, 198, 194, 190, 186, 182, 178, 173, 169, 165, 161, 157, 153, 149, 145, 141, 137, 133, 129, 125, 121, 117, 113, 108, 104, 100, 96, 92, 88, 84, 80, 76, 72, 68, 64, 60, 56, 52, 48, 43, 39, 35, 31, 27, 23, 19, 15, 11, 7, 3, -1, -5, -9, -13, -18}, {239, 235, 231, 227, 223, 219, 215, 211, 207, 203, 199, 195, 191, 187, 183, 179, 174, 170, 166, 162, 158, 154, 150, 146, 142, 138, 134, 130, 126, 122, 118, 114, 109, 105, 101, 97, 93, 89, 85, 81, 77, 73, 69, 65, 61, 57, 53, 49, 44, 40, 36, 32, 28, 24, 20, 16, 12, 8, 4, 0, -4, -8, -12, -17}, {240, 236, 232, 228, 224, 220, 216, 212, 208, 204, 200, 196, 192, 188, 184, 180, 175, 171, 167, 163, 159, 155, 151, 147, 143, 139, 135, 131, 127, 123, 119, 115, 110, 106, 102, 98, 94, 90, 86, 82, 78, 74, 70, 66, 62, 58, 54, 50, 45, 41, 37, 33, 29, 25, 21, 17, 13, 9, 5, 1, -3, -7, -11, -16}, {241, 237, 233, 229, 225, 221, 217, 213, 209, 205, 201, 197, 193, 189, 185, 181, 176, 172, 168, 164, 160, 156, 152, 148, 144, 140, 136, 132, 128, 124, 120, 116, 111, 107, 103, 99, 95, 91, 87, 83, 79, 75, 71, 67, 63, 59, 55, 51, 46, 42, 38, 34, 30, 26, 22, 18, 14, 10, 6, 2, -2, -6, -10, -15}, {242, 238, 234, 230, 226, 222, 218, 214, 210, 206, 202, 198, 194, 190, 186, 182, 177, 173, 169, 165, 161, 157, 153, 149, 145, 141, 137, 133, 129, 125, 121, 117, 112, 108, 104, 100, 96, 92, 88, 84, 80, 76, 72, 68, 64, 60, 56, 52, 47, 43, 39, 35, 31, 27, 23, 19, 15, 11, 7, 3, -1, -5, -9, -14}, {243, 239, 235, 231, 227, 223, 219, 215, 211, 207, 203, 199, 195, 191, 187, 183, 178, 174, 170, 166, 162, 158, 154, 150, 146, 142, 138, 134, 130, 126, 122, 118, 113, 109, 105, 101, 97, 93, 89, 85, 81, 77, 73, 69, 65, 61, 57, 53, 48, 44, 40, 36, 32, 28, 24, 20, 16, 12, 8, 4, 0, -4, -8, -13}, {244, 240, 236, 232, 228, 224, 220, 216, 212, 208, 204, 200, 196, 192, 188, 184, 179, 175, 171, 167, 163, 159, 155, 151, 147, 143, 139, 135, 131, 127, 123, 119, 114, 110, 106, 102, 98, 94, 90, 86, 82, 78, 74, 70, 66, 62, 58, 54, 49, 45, 41, 37, 33, 29, 25, 21, 17, 13, 9, 5, 1, -3, -7, -12}, {245, 241, 237, 233, 229, 225, 221, 217, 213, 209, 205, 201, 197, 193, 189, 185, 180, 176, 172, 168, 164, 160, 156, 152, 148, 144, 140, 136, 132, 128, 124, 120, 115, 111, 107, 103, 99, 95, 91, 87, 83, 79, 75, 71, 67, 63, 59, 55, 50, 46, 42, 38, 34, 30, 26, 22, 18, 14, 10, 6, 2, -2, -6, -11}, {246, 242, 238, 234, 230, 226, 222, 218, 214, 210, 206, 202, 198, 194, 190, 186, 181, 177, 173, 169, 165, 161, 157, 153, 149, 145, 141, 137, 133, 129, 125, 121, 116, 112, 108, 104, 100, 96, 92, 88, 84, 80, 76, 72, 68, 64, 60, 56, 51, 47, 43, 39, 35, 31, 27, 23, 19, 15, 11, 7, 3, -1, -5, -10}, {247, 243, 239, 235, 231, 227, 223, 219, 215, 211, 207, 203, 199, 195, 191, 187, 182, 178, 174, 170, 166, 162, 158, 154, 150, 146, 142, 138, 134, 130, 126, 122, 117, 113, 109, 105, 101, 97, 93, 89, 85, 81, 77, 73, 69, 65, 61, 57, 52, 48, 44, 40, 36, 32, 28, 24, 20, 16, 12, 8, 4, 0, -4, -9}, {248, 244, 240, 236, 232, 228, 224, 220, 216, 212, 208, 204, 200, 196, 192, 188, 183, 179, 175, 171, 167, 163, 159, 155, 151, 147, 143, 139, 135, 131, 127, 123, 118, 114, 110, 106, 102, 98, 94, 90, 86, 82, 78, 74, 70, 66, 62, 58, 53, 49, 45, 41, 37, 33, 29, 25, 21, 17, 13, 9, 5, 1, -3, -8}, {249, 245, 241, 237, 233, 229, 225, 221, 217, 213, 209, 205, 201, 197, 193, 189, 184, 180, 176, 172, 168, 164, 160, 156, 152, 148, 144, 140, 136, 132, 128, 124, 119, 115, 111, 107, 103, 99, 95, 91, 87, 83, 79, 75, 71, 67, 63, 59, 54, 50, 46, 42, 38, 34, 30, 26, 22, 18, 14, 10, 6, 2, -2, -7}, {250, 246, 242, 238, 234, 230, 226, 222, 218, 214, 210, 206, 202, 198, 194, 190, 185, 181, 177, 173, 169, 165, 161, 157, 153, 149, 145, 141, 137, 133, 129, 125, 120, 116, 112, 108, 104, 100, 96, 92, 88, 84, 80, 76, 72, 68, 64, 60, 55, 51, 47, 43, 39, 35, 31, 27, 23, 19, 15, 11, 7, 3, -1, -6}, {251, 247, 243, 239, 235, 231, 227, 223, 219, 215, 211, 207, 203, 199, 195, 191, 186, 182, 178, 174, 170, 166, 162, 158, 154, 150, 146, 142, 138, 134, 130, 126, 121, 117, 113, 109, 105, 101, 97, 93, 89, 85, 81, 77, 73, 69, 65, 61, 56, 52, 48, 44, 40, 36, 32, 28, 24, 20, 16, 12, 8, 4, 0, -5}, {252, 248, 244, 240, 236, 232, 228, 224, 220, 216, 212, 208, 204, 200, 196, 192, 187, 183, 179, 175, 171, 167, 163, 159, 155, 151, 147, 143, 139, 135, 131, 127, 122, 118, 114, 110, 106, 102, 98, 94, 90, 86, 82, 78, 74, 70, 66, 62, 57, 53, 49, 45, 41, 37, 33, 29, 25, 21, 17, 13, 9, 5, 1, -4}, {253, 249, 245, 241, 237, 233, 229, 225, 221, 217, 213, 209, 205, 201, 197, 193, 188, 184, 180, 176, 172, 168, 164, 160, 156, 152, 148, 144, 140, 136, 132, 128, 123, 119, 115, 111, 107, 103, 99, 95, 91, 87, 83, 79, 75, 71, 67, 63, 58, 54, 50, 46, 42, 38, 34, 30, 26, 22, 18, 14, 10, 6, 2, -3}, {254, 250, 246, 242, 238, 234, 230, 226, 222, 218, 214, 210, 206, 202, 198, 194, 189, 185, 181, 177, 173, 169, 165, 161, 157, 153, 149, 145, 141, 137, 133, 129, 124, 120, 116, 112, 108, 104, 100, 96, 92, 88, 84, 80, 76, 72, 68, 64, 59, 55, 51, 47, 43, 39, 35, 31, 27, 23, 19, 15, 11, 7, 3, -2}, {255, 251, 247, 243, 239, 235, 231, 227, 223, 219, 215, 211, 207, 203, 199, 195, 190, 186, 182, 178, 174, 170, 166, 162, 158, 154, 150, 146, 142, 138, 134, 130, 125, 121, 117, 113, 109, 105, 101, 97, 93, 89, 85, 81, 77, 73, 69, 65, 60, 56, 52, 48, 44, 40, 36, 32, 28, 24, 20, 16, 12, 8, 4, -1}, {256, 252, 248, 244, 240, 236, 232, 228, 224, 220, 216, 212, 208, 204, 200, 196, 191, 187, 183, 179, 175, 171, 167, 163, 159, 155, 151, 147, 143, 139, 135, 131, 126, 122, 118, 114, 110, 106, 102, 98, 94, 90, 86, 82, 78, 74, 70, 66, 61, 57, 53, 49, 45, 41, 37, 33, 29, 25, 21, 17, 13, 9, 5, 0}, {257, 253, 249, 245, 241, 237, 233, 229, 225, 221, 217, 213, 209, 205, 201, 197, 192, 188, 184, 180, 176, 172, 168, 164, 160, 156, 152, 148, 144, 140, 136, 132, 127, 123, 119, 115, 111, 107, 103, 99, 95, 91, 87, 83, 79, 75, 71, 67, 62, 58, 54, 50, 46, 42, 38, 34, 30, 26, 22, 18, 14, 10, 6, 1}, {258, 254, 250, 246, 242, 238, 234, 230, 226, 222, 218, 214, 210, 206, 202, 198, 193, 189, 185, 181, 177, 173, 169, 165, 161, 157, 153, 149, 145, 141, 137, 133, 128, 124, 120, 116, 112, 108, 104, 100, 96, 92, 88, 84, 80, 76, 72, 68, 63, 59, 55, 51, 47, 43, 39, 35, 31, 27, 23, 19, 15, 11, 7, 2}, {259, 255, 251, 247, 243, 239, 235, 231, 227, 223, 219, 215, 211, 207, 203, 199, 194, 190, 186, 182, 178, 174, 170, 166, 162, 158, 154, 150, 146, 142, 138, 134, 129, 125, 121, 117, 113, 109, 105, 101, 97, 93, 89, 85, 81, 77, 73, 69, 64, 60, 56, 52, 48, 44, 40, 36, 32, 28, 24, 20, 16, 12, 8, 3}, {260, 256, 252, 248, 244, 240, 236, 232, 228, 224, 220, 216, 212, 208, 204, 200, 195, 191, 187, 183, 179, 175, 171, 167, 163, 159, 155, 151, 147, 143, 139, 135, 130, 126, 122, 118, 114, 110, 106, 102, 98, 94, 90, 86, 82, 78, 74, 70, 65, 61, 57, 53, 49, 45, 41, 37, 33, 29, 25, 21, 17, 13, 9, 4}, {261, 257, 253, 249, 245, 241, 237, 233, 229, 225, 221, 217, 213, 209, 205, 201, 196, 192, 188, 184, 180, 176, 172, 168, 164, 160, 156, 152, 148, 144, 140, 136, 131, 127, 123, 119, 115, 111, 107, 103, 99, 95, 91, 87, 83, 79, 75, 71, 66, 62, 58, 54, 50, 46, 42, 38, 34, 30, 26, 22, 18, 14, 10, 5}, {262, 258, 254, 250, 246, 242, 238, 234, 230, 226, 222, 218, 214, 210, 206, 202, 197, 193, 189, 185, 181, 177, 173, 169, 165, 161, 157, 153, 149, 145, 141, 137, 132, 128, 124, 120, 116, 112, 108, 104, 100, 96, 92, 88, 84, 80, 76, 72, 67, 63, 59, 55, 51, 47, 43, 39, 35, 31, 27, 23, 19, 15, 11, 6}, {263, 259, 255, 251, 247, 243, 239, 235, 231, 227, 223, 219, 215, 211, 207, 203, 198, 194, 190, 186, 182, 178, 174, 170, 166, 162, 158, 154, 150, 146, 142, 138, 133, 129, 125, 121, 117, 113, 109, 105, 101, 97, 93, 89, 85, 81, 77, 73, 68, 64, 60, 56, 52, 48, 44, 40, 36, 32, 28, 24, 20, 16, 12, 7}, {264, 260, 256, 252, 248, 244, 240, 236, 232, 228, 224, 220, 216, 212, 208, 204, 199, 195, 191, 187, 183, 179, 175, 171, 167, 163, 159, 155, 151, 147, 143, 139, 134, 130, 126, 122, 118, 114, 110, 106, 102, 98, 94, 90, 86, 82, 78, 74, 69, 65, 61, 57, 53, 49, 45, 41, 37, 33, 29, 25, 21, 17, 13, 8}, {265, 261, 257, 253, 249, 245, 241, 237, 233, 229, 225, 221, 217, 213, 209, 205, 200, 196, 192, 188, 184, 180, 176, 172, 168, 164, 160, 156, 152, 148, 144, 140, 135, 131, 127, 123, 119, 115, 111, 107, 103, 99, 95, 91, 87, 83, 79, 75, 70, 66, 62, 58, 54, 50, 46, 42, 38, 34, 30, 26, 22, 18, 14, 9}, {266, 262, 258, 254, 250, 246, 242, 238, 234, 230, 226, 222, 218, 214, 210, 206, 201, 197, 193, 189, 185, 181, 177, 173, 169, 165, 161, 157, 153, 149, 145, 141, 136, 132, 128, 124, 120, 116, 112, 108, 104, 100, 96, 92, 88, 84, 80, 76, 71, 67, 63, 59, 55, 51, 47, 43, 39, 35, 31, 27, 23, 19, 15, 10}, {267, 263, 259, 255, 251, 247, 243, 239, 235, 231, 227, 223, 219, 215, 211, 207, 202, 198, 194, 190, 186, 182, 178, 174, 170, 166, 162, 158, 154, 150, 146, 142, 137, 133, 129, 125, 121, 117, 113, 109, 105, 101, 97, 93, 89, 85, 81, 77, 72, 68, 64, 60, 56, 52, 48, 44, 40, 36, 32, 28, 24, 20, 16, 11}, {268, 264, 260, 256, 252, 248, 244, 240, 236, 232, 228, 224, 220, 216, 212, 208, 203, 199, 195, 191, 187, 183, 179, 175, 171, 167, 163, 159, 155, 151, 147, 143, 138, 134, 130, 126, 122, 118, 114, 110, 106, 102, 98, 94, 90, 86, 82, 78, 73, 69, 65, 61, 57, 53, 49, 45, 41, 37, 33, 29, 25, 21, 17, 12}, {269, 265, 261, 257, 253, 249, 245, 241, 237, 233, 229, 225, 221, 217, 213, 209, 204, 200, 196, 192, 188, 184, 180, 176, 172, 168, 164, 160, 156, 152, 148, 144, 139, 135, 131, 127, 123, 119, 115, 111, 107, 103, 99, 95, 91, 87, 83, 79, 74, 70, 66, 62, 58, 54, 50, 46, 42, 38, 34, 30, 26, 22, 18, 13}, {270, 266, 262, 258, 254, 250, 246, 242, 238, 234, 230, 226, 222, 218, 214, 210, 205, 201, 197, 193, 189, 185, 181, 177, 173, 169, 165, 161, 157, 153, 149, 145, 140, 136, 132, 128, 124, 120, 116, 112, 108, 104, 100, 96, 92, 88, 84, 80, 75, 71, 67, 63, 59, 55, 51, 47, 43, 39, 35, 31, 27, 23, 19, 14}, {271, 267, 263, 259, 255, 251, 247, 243, 239, 235, 231, 227, 223, 219, 215, 211, 206, 202, 198, 194, 190, 186, 182, 178, 174, 170, 166, 162, 158, 154, 150, 146, 141, 137, 133, 129, 125, 121, 117, 113, 109, 105, 101, 97, 93, 89, 85, 81, 76, 72, 68, 64, 60, 56, 52, 48, 44, 40, 36, 32, 28, 24, 20, 15}, {272, 268, 264, 260, 256, 252, 248, 244, 240, 236, 232, 228, 224, 220, 216, 212, 207, 203, 199, 195, 191, 187, 183, 179, 175, 171, 167, 163, 159, 155, 151, 147, 142, 138, 134, 130, 126, 122, 118, 114, 110, 106, 102, 98, 94, 90, 86, 82, 77, 73, 69, 65, 61, 57, 53, 49, 45, 41, 37, 33, 29, 25, 21, 16}, {273, 269, 265, 261, 257, 253, 249, 245, 241, 237, 233, 229, 225, 221, 217, 213, 208, 204, 200, 196, 192, 188, 184, 180, 176, 172, 168, 164, 160, 156, 152, 148, 143, 139, 135, 131, 127, 123, 119, 115, 111, 107, 103, 99, 95, 91, 87, 83, 78, 74, 70, 66, 62, 58, 54, 50, 46, 42, 38, 34, 30, 26, 22, 17}, {274, 270, 266, 262, 258, 254, 250, 246, 242, 238, 234, 230, 226, 222, 218, 214, 209, 205, 201, 197, 193, 189, 185, 181, 177, 173, 169, 165, 161, 157, 153, 149, 144, 140, 136, 132, 128, 124, 120, 116, 112, 108, 104, 100, 96, 92, 88, 84, 79, 75, 71, 67, 63, 59, 55, 51, 47, 43, 39, 35, 31, 27, 23, 18}, {275, 271, 267, 263, 259, 255, 251, 247, 243, 239, 235, 231, 227, 223, 219, 215, 210, 206, 202, 198, 194, 190, 186, 182, 178, 174, 170, 166, 162, 158, 154, 150, 145, 141, 137, 133, 129, 125, 121, 117, 113, 109, 105, 101, 97, 93, 89, 85, 80, 76, 72, 68, 64, 60, 56, 52, 48, 44, 40, 36, 32, 28, 24, 19}, {276, 272, 268, 264, 260, 256, 252, 248, 244, 240, 236, 232, 228, 224, 220, 216, 211, 207, 203, 199, 195, 191, 187, 183, 179, 175, 171, 167, 163, 159, 155, 151, 146, 142, 138, 134, 130, 126, 122, 118, 114, 110, 106, 102, 98, 94, 90, 86, 81, 77, 73, 69, 65, 61, 57, 53, 49, 45, 41, 37, 33, 29, 25, 20}, {277, 273, 269, 265, 261, 257, 253, 249, 245, 241, 237, 233, 229, 225, 221, 217, 212, 208, 204, 200, 196, 192, 188, 184, 180, 176, 172, 168, 164, 160, 156, 152, 147, 143, 139, 135, 131, 127, 123, 119, 115, 111, 107, 103, 99, 95, 91, 87, 82, 78, 74, 70, 66, 62, 58, 54, 50, 46, 42, 38, 34, 30, 26, 21}, {278, 274, 270, 266, 262, 258, 254, 250, 246, 242, 238, 234, 230, 226, 222, 218, 213, 209, 205, 201, 197, 193, 189, 185, 181, 177, 173, 169, 165, 161, 157, 153, 148, 144, 140, 136, 132, 128, 124, 120, 116, 112, 108, 104, 100, 96, 92, 88, 83, 79, 75, 71, 67, 63, 59, 55, 51, 47, 43, 39, 35, 31, 27, 22}, {279, 275, 271, 267, 263, 259, 255, 251, 247, 243, 239, 235, 231, 227, 223, 219, 214, 210, 206, 202, 198, 194, 190, 186, 182, 178, 174, 170, 166, 162, 158, 154, 149, 145, 141, 137, 133, 129, 125, 121, 117, 113, 109, 105, 101, 97, 93, 89, 84, 80, 76, 72, 68, 64, 60, 56, 52, 48, 44, 40, 36, 32, 28, 23}, {280, 276, 272, 268, 264, 260, 256, 252, 248, 244, 240, 236, 232, 228, 224, 220, 215, 211, 207, 203, 199, 195, 191, 187, 183, 179, 175, 171, 167, 163, 159, 155, 150, 146, 142, 138, 134, 130, 126, 122, 118, 114, 110, 106, 102, 98, 94, 90, 85, 81, 77, 73, 69, 65, 61, 57, 53, 49, 45, 41, 37, 33, 29, 24}, {281, 277, 273, 269, 265, 261, 257, 253, 249, 245, 241, 237, 233, 229, 225, 221, 216, 212, 208, 204, 200, 196, 192, 188, 184, 180, 176, 172, 168, 164, 160, 156, 151, 147, 143, 139, 135, 131, 127, 123, 119, 115, 111, 107, 103, 99, 95, 91, 86, 82, 78, 74, 70, 66, 62, 58, 54, 50, 46, 42, 38, 34, 30, 25}, {282, 278, 274, 270, 266, 262, 258, 254, 250, 246, 242, 238, 234, 230, 226, 222, 217, 213, 209, 205, 201, 197, 193, 189, 185, 181, 177, 173, 169, 165, 161, 157, 152, 148, 144, 140, 136, 132, 128, 124, 120, 116, 112, 108, 104, 100, 96, 92, 87, 83, 79, 75, 71, 67, 63, 59, 55, 51, 47, 43, 39, 35, 31, 26}, {283, 279, 275, 271, 267, 263, 259, 255, 251, 247, 243, 239, 235, 231, 227, 223, 218, 214, 210, 206, 202, 198, 194, 190, 186, 182, 178, 174, 170, 166, 162, 158, 153, 149, 145, 141, 137, 133, 129, 125, 121, 117, 113, 109, 105, 101, 97, 93, 88, 84, 80, 76, 72, 68, 64, 60, 56, 52, 48, 44, 40, 36, 32, 27}, {284, 280, 276, 272, 268, 264, 260, 256, 252, 248, 244, 240, 236, 232, 228, 224, 219, 215, 211, 207, 203, 199, 195, 191, 187, 183, 179, 175, 171, 167, 163, 159, 154, 150, 146, 142, 138, 134, 130, 126, 122, 118, 114, 110, 106, 102, 98, 94, 89, 85, 81, 77, 73, 69, 65, 61, 57, 53, 49, 45, 41, 37, 33, 28}, {285, 281, 277, 273, 269, 265, 261, 257, 253, 249, 245, 241, 237, 233, 229, 225, 220, 216, 212, 208, 204, 200, 196, 192, 188, 184, 180, 176, 172, 168, 164, 160, 155, 151, 147, 143, 139, 135, 131, 127, 123, 119, 115, 111, 107, 103, 99, 95, 90, 86, 82, 78, 74, 70, 66, 62, 58, 54, 50, 46, 42, 38, 34, 29}, {286, 282, 278, 274, 270, 266, 262, 258, 254, 250, 246, 242, 238, 234, 230, 226, 221, 217, 213, 209, 205, 201, 197, 193, 189, 185, 181, 177, 173, 169, 165, 161, 156, 152, 148, 144, 140, 136, 132, 128, 124, 120, 116, 112, 108, 104, 100, 96, 91, 87, 83, 79, 75, 71, 67, 63, 59, 55, 51, 47, 43, 39, 35, 30}, {287, 283, 279, 275, 271, 267, 263, 259, 255, 251, 247, 243, 239, 235, 231, 227, 222, 218, 214, 210, 206, 202, 198, 194, 190, 186, 182, 178, 174, 170, 166, 162, 157, 153, 149, 145, 141, 137, 133, 129, 125, 121, 117, 113, 109, 105, 101, 97, 92, 88, 84, 80, 76, 72, 68, 64, 60, 56, 52, 48, 44, 40, 36, 31}, {288, 284, 280, 276, 272, 268, 264, 260, 256, 252, 248, 244, 240, 236, 232, 228, 223, 219, 215, 211, 207, 203, 199, 195, 191, 187, 183, 179, 175, 171, 167, 163, 158, 154, 150, 146, 142, 138, 134, 130, 126, 122, 118, 114, 110, 106, 102, 98, 93, 89, 85, 81, 77, 73, 69, 65, 61, 57, 53, 49, 45, 41, 37, 32}, {289, 285, 281, 277, 273, 269, 265, 261, 257, 253, 249, 245, 241, 237, 233, 229, 224, 220, 216, 212, 208, 204, 200, 196, 192, 188, 184, 180, 176, 172, 168, 164, 159, 155, 151, 147, 143, 139, 135, 131, 127, 123, 119, 115, 111, 107, 103, 99, 94, 90, 86, 82, 78, 74, 70, 66, 62, 58, 54, 50, 46, 42, 38, 33}, {290, 286, 282, 278, 274, 270, 266, 262, 258, 254, 250, 246, 242, 238, 234, 230, 225, 221, 217, 213, 209, 205, 201, 197, 193, 189, 185, 181, 177, 173, 169, 165, 160, 156, 152, 148, 144, 140, 136, 132, 128, 124, 120, 116, 112, 108, 104, 100, 95, 91, 87, 83, 79, 75, 71, 67, 63, 59, 55, 51, 47, 43, 39, 34}, {291, 287, 283, 279, 275, 271, 267, 263, 259, 255, 251, 247, 243, 239, 235, 231, 226, 222, 218, 214, 210, 206, 202, 198, 194, 190, 186, 182, 178, 174, 170, 166, 161, 157, 153, 149, 145, 141, 137, 133, 129, 125, 121, 117, 113, 109, 105, 101, 96, 92, 88, 84, 80, 76, 72, 68, 64, 60, 56, 52, 48, 44, 40, 35}, {292, 288, 284, 280, 276, 272, 268, 264, 260, 256, 252, 248, 244, 240, 236, 232, 227, 223, 219, 215, 211, 207, 203, 199, 195, 191, 187, 183, 179, 175, 171, 167, 162, 158, 154, 150, 146, 142, 138, 134, 130, 126, 122, 118, 114, 110, 106, 102, 97, 93, 89, 85, 81, 77, 73, 69, 65, 61, 57, 53, 49, 45, 41, 36}, {293, 289, 285, 281, 277, 273, 269, 265, 261, 257, 253, 249, 245, 241, 237, 233, 228, 224, 220, 216, 212, 208, 204, 200, 196, 192, 188, 184, 180, 176, 172, 168, 163, 159, 155, 151, 147, 143, 139, 135, 131, 127, 123, 119, 115, 111, 107, 103, 98, 94, 90, 86, 82, 78, 74, 70, 66, 62, 58, 54, 50, 46, 42, 37}, {294, 290, 286, 282, 278, 274, 270, 266, 262, 258, 254, 250, 246, 242, 238, 234, 229, 225, 221, 217, 213, 209, 205, 201, 197, 193, 189, 185, 181, 177, 173, 169, 164, 160, 156, 152, 148, 144, 140, 136, 132, 128, 124, 120, 116, 112, 108, 104, 99, 95, 91, 87, 83, 79, 75, 71, 67, 63, 59, 55, 51, 47, 43, 38}, {295, 291, 287, 283, 279, 275, 271, 267, 263, 259, 255, 251, 247, 243, 239, 235, 230, 226, 222, 218, 214, 210, 206, 202, 198, 194, 190, 186, 182, 178, 174, 170, 165, 161, 157, 153, 149, 145, 141, 137, 133, 129, 125, 121, 117, 113, 109, 105, 100, 96, 92, 88, 84, 80, 76, 72, 68, 64, 60, 56, 52, 48, 44, 39}, {296, 292, 288, 284, 280, 276, 272, 268, 264, 260, 256, 252, 248, 244, 240, 236, 231, 227, 223, 219, 215, 211, 207, 203, 199, 195, 191, 187, 183, 179, 175, 171, 166, 162, 158, 154, 150, 146, 142, 138, 134, 130, 126, 122, 118, 114, 110, 106, 101, 97, 93, 89, 85, 81, 77, 73, 69, 65, 61, 57, 53, 49, 45, 40}, {297, 293, 289, 285, 281, 277, 273, 269, 265, 261, 257, 253, 249, 245, 241, 237, 232, 228, 224, 220, 216, 212, 208, 204, 200, 196, 192, 188, 184, 180, 176, 172, 167, 163, 159, 155, 151, 147, 143, 139, 135, 131, 127, 123, 119, 115, 111, 107, 102, 98, 94, 90, 86, 82, 78, 74, 70, 66, 62, 58, 54, 50, 46, 41}, {298, 294, 290, 286, 282, 278, 274, 270, 266, 262, 258, 254, 250, 246, 242, 238, 233, 229, 225, 221, 217, 213, 209, 205, 201, 197, 193, 189, 185, 181, 177, 173, 168, 164, 160, 156, 152, 148, 144, 140, 136, 132, 128, 124, 120, 116, 112, 108, 103, 99, 95, 91, 87, 83, 79, 75, 71, 67, 63, 59, 55, 51, 47, 42}, {299, 295, 291, 287, 283, 279, 275, 271, 267, 263, 259, 255, 251, 247, 243, 239, 234, 230, 226, 222, 218, 214, 210, 206, 202, 198, 194, 190, 186, 182, 178, 174, 169, 165, 161, 157, 153, 149, 145, 141, 137, 133, 129, 125, 121, 117, 113, 109, 104, 100, 96, 92, 88, 84, 80, 76, 72, 68, 64, 60, 56, 52, 48, 43}, }; static void image_dither_set_rgb565_color(uint8_t* dst, int32_t b, int32_t g, int32_t r, int32_t a) { *(uint16_t*)dst = r | (g << 5) | (b << 11); } static void image_dither_set_bgr565_color(uint8_t* dst, int32_t b, int32_t g, int32_t r, int32_t a) { *(uint16_t*)dst = b | (g << 5) | (r << 11); } static void image_dither_set_bgra_color(uint8_t* dst, int32_t b, int32_t g, int32_t r, int32_t a) { dst[0] = r << 3; dst[1] = g << 2; dst[2] = b << 3; dst[3] = a; } static void image_dither_set_rgba_color(uint8_t* dst, int32_t b, int32_t g, int32_t r, int32_t a) { dst[0] = b << 3; dst[1] = g << 2; dst[2] = r << 3; dst[3] = a; } static void image_dither_data_8888_to_565(uint8_t* src_data, uint8_t* dst_data, uint32_t src_line_width, uint32_t dst_line_width, uint32_t src_bpp, uint32_t dst_bpp, uint32_t w, uint32_t h, set_dst_data_func_t set_dst_data) { rgba_t err; rgba_t err_1; int32_t x = 0; int32_t y = 0; uint8_t* dst = dst_data; uint8_t* src = src_data; int32_t rB = 0, rG = 0, rR = 0; int32_t cB = 0, cG = 0, cR = 0, cA = 0; rgba_t* _line_err = TKMEM_ZALLOCN(rgba_t, w + 2); rgba_t* line_err = &_line_err[1]; for (y = 0; y < h; y++) { memset(&err, 0x0, sizeof(rgba_t)); memset(&err_1, 0x0, sizeof(rgba_t)); line_err[-1].b = 0; line_err[-1].g = 0; line_err[-1].r = 0; for (x = 0; x < w; x++) { if (src_bpp == 3 || (src_bpp == 4 && src[3] > 0)) { cB = src[0] + (((err.b << 1) + line_err[x].b + err_1.b) >> 2); cG = src[1] + (((err.g << 1) + line_err[x].g + err_1.g) >> 2); cR = src[2] + (((err.r << 1) + line_err[x].r + err_1.r) >> 2); cA = src[3]; rB = best_blue_table[cB]; rG = best_greed_table[cG]; rR = best_red_table[cR]; set_dst_data(dst, rB, rG, rR, cA); err.b = error_blue_table[cB][rB]; err.g = error_greed_table[cG][rG]; err.r = error_red_table[cR][rR]; } else { set_dst_data(dst, 0, 0, 0, 0); err.b = 0; err.g = 0; err.r = 0; } err_1.b = line_err[x - 1].b; err_1.g = line_err[x - 1].g; err_1.r = line_err[x - 1].r; line_err[x - 1].b += err.b; line_err[x - 1].g += err.g; line_err[x - 1].r += err.r; line_err[x].b = err.b; line_err[x].g = err.g; line_err[x].r = err.r; src += src_bpp; dst += dst_bpp; } } TKMEM_FREE(_line_err); } static uint8_t* image_dither_convert_2_to_4(uint8_t* src, uint32_t w, uint32_t h) { uint32_t i = 0; uint8_t* s = src; uint8_t* d = NULL; uint8_t* data = NULL; uint32_t size = w * h; return_value_if_fail(src != NULL, NULL); data = TKMEM_ALLOC(size * 4); return_value_if_fail(data != NULL, NULL); d = data; for (i = 0; i < size; i++) { d[0] = s[0]; d[1] = s[0]; d[2] = s[0]; d[3] = s[1]; d += 4; s += 2; } return data; } ret_t image_dither_load_image(const uint8_t* buff, uint32_t buff_size, bitmap_t* image, bitmap_format_t bitmap_format) { int w = 0; int h = 0; int n = 0; ret_t ret = RET_FAIL; uint8_t* data = NULL; uint8_t* stb_data = stbi_load_from_memory(buff, buff_size, &w, &h, &n, 0); return_value_if_fail(stb_data != NULL, RET_FAIL); if (n == 2) { n = 4; data = image_dither_convert_2_to_4(stb_data, w, h); } else { data = TKMEM_ZALLOCN(uint8_t, w * h * n); image_dither_data_8888_to_565(stb_data, data, w * n, w * n, n, n, w, h, image_dither_set_rgba_color); } ret = bitmap_init_from_rgba(image, w, h, bitmap_format, data, n); stbi_image_free((uint8_t*)(stb_data)); return ret; } ret_t image_dither_image_wirte_png_file(const char* output_file, bitmap_t* bitmap) { return bitmap_save_png(bitmap, output_file); }