From 85a91015051ee6613bc80f6d474417ffea01df51 Mon Sep 17 00:00:00 2001 From: Alexander Larsson Date: Fri, 9 Apr 2010 13:22:34 +0200 Subject: Don't use glib types in core code --- daemon.c | 88 +++++++++++++++++++++++++++++++++------------------------------- 1 file changed, 45 insertions(+), 43 deletions(-) diff --git a/daemon.c b/daemon.c index 9751fd3..976e795 100644 --- a/daemon.c +++ b/daemon.c @@ -4,14 +4,8 @@ #include #include - -static int port = 8080; -static char *root = NULL; -static GOptionEntry cmd_entries[] = { - {"port", 'p', 0, G_OPTION_ARG_INT, &port, - "Local port to bind to", NULL}, - {NULL} -}; +#include +#include /************************************************************************ * conversion of raw image data to uncompressed png data: uris * @@ -79,7 +73,7 @@ update_adler32(unsigned long adler, unsigned char *buf, int len) } char * -to_png_rgb (int w, int h, int stride, guint32 *data) +to_png_rgb (int w, int h, int stride, uint32_t *data) { guchar header[] = {137, 80, 78, 71, 13, 10, 26, 10}; guchar ihdr[13+12] = {0, 0, 0, 13, 'I', 'H', 'D', 'R', @@ -91,18 +85,18 @@ to_png_rgb (int w, int h, int stride, guint32 *data) gsize data_size, row_size; char row_header[6]; guint8 *png, *p, *p_row, *p_idat; - guint32 *row; + uint32_t *row; unsigned long adler; - guint32 pixel; + uint32_t pixel; gsize png_size; int x, y; char *url, *url_base64; gint state = 0, outlen; gint save = 0; - *(guint32 *)&ihdr[8] = GUINT32_TO_BE(w); - *(guint32 *)&ihdr[12] = GUINT32_TO_BE(h); - *(guint32 *)&ihdr[21] = GUINT32_TO_BE(crc(&ihdr[4], 13 + 4)); + *(uint32_t *)&ihdr[8] = htonl(w); + *(uint32_t *)&ihdr[12] = htonl(h); + *(uint32_t *)&ihdr[21] = htonl(crc(&ihdr[4], 13 + 4)); row_size = 1 + w * 3; row_header[0] = 0; @@ -114,7 +108,7 @@ to_png_rgb (int w, int h, int stride, guint32 *data) data_size = 2 + (6 + w * 3) * h + 4; - *(guint32 *)&idat_start[0] = GUINT32_TO_BE(data_size); + *(uint32_t *)&idat_start[0] = htonl(data_size); png_size = sizeof(header) + sizeof(ihdr) + 12 + data_size + sizeof(iend); png = g_malloc (png_size); @@ -161,9 +155,9 @@ to_png_rgb (int w, int h, int stride, guint32 *data) } /* adler32 */ - *(guint32 *)p = GUINT32_TO_BE(adler); + *(uint32_t *)p = htonl(adler); p += 4; - *(guint32 *)p = GUINT32_TO_BE(crc(p_idat, p - p_idat)); + *(uint32_t *)p = htonl(crc(p_idat, p - p_idat)); p += 4; memcpy (p, iend, sizeof(iend)); @@ -186,7 +180,7 @@ to_png_rgb (int w, int h, int stride, guint32 *data) } char * -to_png_rgba (int w, int h, int stride, guint32 *data) +to_png_rgba (int w, int h, int stride, uint32_t *data) { guchar header[] = {137, 80, 78, 71, 13, 10, 26, 10}; guchar ihdr[13+12] = {0, 0, 0, 13, 'I', 'H', 'D', 'R', @@ -200,16 +194,16 @@ to_png_rgba (int w, int h, int stride, guint32 *data) guint8 *png, *p, *p_row, *p_idat; guint32 *row; unsigned long adler; - guint32 pixel; + uint32_t pixel; gsize png_size; int x, y; char *url, *url_base64; gint state = 0, outlen; gint save = 0; - *(guint32 *)&ihdr[8] = GUINT32_TO_BE(w); - *(guint32 *)&ihdr[12] = GUINT32_TO_BE(h); - *(guint32 *)&ihdr[21] = GUINT32_TO_BE(crc(&ihdr[4], 13 + 4)); + *(uint32_t *)&ihdr[8] = htonl(w); + *(uint32_t *)&ihdr[12] = htonl(h); + *(uint32_t *)&ihdr[21] = htonl(crc(&ihdr[4], 13 + 4)); row_size = 1 + w * 4; row_header[0] = 0; @@ -221,7 +215,7 @@ to_png_rgba (int w, int h, int stride, guint32 *data) data_size = 2 + (6 + w * 4) * h + 4; - *(guint32 *)&idat_start[0] = GUINT32_TO_BE(data_size); + *(uint32_t *)&idat_start[0] = htonl(data_size); png_size = sizeof(header) + sizeof(ihdr) + 12 + data_size + sizeof(iend); png = g_malloc (png_size); @@ -269,9 +263,9 @@ to_png_rgba (int w, int h, int stride, guint32 *data) } /* adler32 */ - *(guint32 *)p = GUINT32_TO_BE(adler); + *(uint32_t *)p = htonl(adler); p += 4; - *(guint32 *)p = GUINT32_TO_BE(crc(p_idat, p - p_idat)); + *(uint32_t *)p = htonl(crc(p_idat, p - p_idat)); p += 4; memcpy (p, iend, sizeof(iend)); @@ -308,16 +302,16 @@ to_png_a (int w, int h, int stride, guint8 *data) guint8 *png, *p, *p_row, *p_idat; guint8 *row; unsigned long adler; - guint32 pixel; + uint32_t pixel; gsize png_size; int x, y; char *url, *url_base64; gint state = 0, outlen; gint save = 0; - *(guint32 *)&ihdr[8] = GUINT32_TO_BE(w); - *(guint32 *)&ihdr[12] = GUINT32_TO_BE(h); - *(guint32 *)&ihdr[21] = GUINT32_TO_BE(crc(&ihdr[4], 13 + 4)); + *(uint32_t *)&ihdr[8] = htonl(w); + *(uint32_t *)&ihdr[12] = htonl(h); + *(uint32_t *)&ihdr[21] = htonl(crc(&ihdr[4], 13 + 4)); row_size = 1 + w * 2; row_header[0] = 0; @@ -329,7 +323,7 @@ to_png_a (int w, int h, int stride, guint8 *data) data_size = 2 + (6 + w * 2) * h + 4; - *(guint32 *)&idat_start[0] = GUINT32_TO_BE(data_size); + *(uint32_t *)&idat_start[0] = htonl(data_size); png_size = sizeof(header) + sizeof(ihdr) + 12 + data_size + sizeof(iend); png = g_malloc (png_size); @@ -375,9 +369,9 @@ to_png_a (int w, int h, int stride, guint8 *data) } /* adler32 */ - *(guint32 *)p = GUINT32_TO_BE(adler); + *(uint32_t *)p = htonl(adler); p += 4; - *(guint32 *)p = GUINT32_TO_BE(crc(p_idat, p - p_idat)); + *(uint32_t *)p = htonl(crc(p_idat, p - p_idat)); p += 4; memcpy (p, iend, sizeof(iend)); @@ -407,14 +401,14 @@ static const char base64_alphabet[] = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"; static void -base64_uint8 (guint8 v, char *c) +base64_uint8 (uint8_t v, char *c) { c[0] = base64_alphabet[(v >> 0) & 0x3f]; c[1] = base64_alphabet[(v >> 6) & 0x3]; } static void -base64_uint16 (guint32 v, char *c) +base64_uint16 (uint32_t v, char *c) { c[0] = base64_alphabet[(v >> 0) & 0x3f]; c[1] = base64_alphabet[(v >> 6) & 0x3f]; @@ -422,7 +416,7 @@ base64_uint16 (guint32 v, char *c) } static void -base64_uint24 (guint32 v, char *c) +base64_uint24 (uint32_t v, char *c) { c[0] = base64_alphabet[(v >> 0) & 0x3f]; c[1] = base64_alphabet[(v >> 6) & 0x3f]; @@ -431,7 +425,7 @@ base64_uint24 (guint32 v, char *c) } static void -base64_uint32 (guint32 v, char *c) +base64_uint32 (uint32_t v, char *c) { c[0] = base64_alphabet[(v >> 0) & 0x3f]; c[1] = base64_alphabet[(v >> 6) & 0x3f]; @@ -442,7 +436,7 @@ base64_uint32 (guint32 v, char *c) } static void -send_rgb (GOutputStream *out, guint32 rgb) +send_rgb (GOutputStream *out, uint32_t rgb) { char buf[5]; @@ -454,7 +448,7 @@ send_rgb (GOutputStream *out, guint32 rgb) } static void -send_rgba (GOutputStream *out, guint32 argb) +send_rgba (GOutputStream *out, uint32_t argb) { char buf[7]; @@ -635,10 +629,10 @@ send_image_rgb (GOutputStream *out, int x, int y, static void send_image_rgba (GOutputStream *out, int x, int y, - int w, int h, int stride, guint32 *data) + int w, int h, int stride, uint32_t *data) { char buf[13]; - gsize len; + size_t len; char *url; buf[0] = 'i'; @@ -660,10 +654,10 @@ send_image_rgba (GOutputStream *out, int x, int y, static void send_image_a (GOutputStream *out, int x, int y, - int w, int h, int stride, guint8 *data) + int w, int h, int stride, uint8_t *data) { char buf[13]; - gsize len; + size_t len; char *url; buf[0] = 'i'; @@ -712,7 +706,7 @@ flush (GOutputStream *out) static int font_w = 286; static int font_cell_w = 11; static int font_h = 18; -static guint8 font[] = "\0\0\0\0\0\0\0\0\0\0\0\0\0\377\270\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\270\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\161\332\372\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\270\0\0\0\0\0\0\0\0\0\0\0\0\270\377\0\0\0\0\0\0\0\0\0\377\270\0\0\0\0\0\0\377\270\0\0\0\0\0\0\0\0\230\377\377\377\270\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\270\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\270\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\130\377\266\142\134\134\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\270\0\0\0\0\0\0\0\0\0\0\0\0\270\377\0\0\0\0\0\0\0\0\0\377\270\0\0\0\0\0\0\377\270\0\0\0\0\0\0\0\0\66\134\134\377\270\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\134\200\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\270\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\270\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\246\377\21\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\270\0\0\0\0\0\0\0\0\0\0\0\0\5\10\0\0\0\0\0\0\0\0\0\10\5\0\0\0\0\0\0\377\270\0\0\0\0\0\0\0\0\0\0\0\377\270\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\270\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\270\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\270\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\267\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\270\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\270\0\0\0\0\0\0\0\0\0\0\0\377\270\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\270\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\26\221\324\370\365\313\133\0\0\0\0\0\377\270\145\337\367\305\66\0\0\0\0\0\14\203\330\370\356\261\60\0\0\0\66\305\367\340\146\270\377\0\0\0\0\13\204\334\371\347\227\20\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\64\305\367\337\143\270\377\0\0\0\0\377\270\104\313\367\343\152\0\0\0\0\114\377\377\377\377\0\0\0\0\0\0\260\377\377\377\270\0\0\0\0\0\0\377\270\0\0\0\215\376\151\0\0\0\0\0\377\270\0\0\0\0\0\0\377\303\303\355\115\270\366\200\0\0\0\0\377\270\104\313\367\343\152\0\0\0\0\42\246\352\372\335\205\10\0\0\0\0\377\270\145\340\367\305\65\0\0\0\0\64\304\367\337\143\270\377\0\0\0\0\0\377\270\47\272\366\364\301\0\0\0\15\223\345\374\357\277\74\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\377\270\0\0\0\0\377\270\0\5\355\273\0\0\0\0\1\342\307\0\343\263\0\0\0\0\0\0\0\337\272\0\236\370\60\0\0\0\133\377\165\0\0\203\377\56\0\0\0\0\142\377\123\0\0\377\377\377\377\377\377\377\0\0\0\74\350\223\145\151\303\377\146\0\0\0\0\377\353\345\162\160\344\363\42\0\0\0\12\315\375\240\144\157\277\200\0\0\43\363\345\161\162\346\353\377\0\0\0\10\310\370\217\141\205\363\313\5\0\0\0\134\134\321\377\134\134\134\134\0\0\37\361\350\164\160\342\350\377\0\0\0\0\377\335\333\162\152\334\377\74\0\0\0\33\134\134\321\377\0\0\0\0\0\0\77\134\134\377\270\0\0\0\0\0\0\377\270\0\0\222\375\142\0\0\0\0\0\0\377\270\0\0\0\0\0\0\377\370\164\370\370\220\320\372\13\0\0\0\377\335\333\162\152\334\377\74\0\0\33\352\362\203\142\241\377\270\1\0\0\0\377\353\345\162\160\344\362\40\0\0\41\362\343\161\161\344\353\377\0\0\0\0\0\377\307\344\237\143\162\317\0\0\0\252\377\231\141\155\256\164\0\0\0\134\134\321\377\134\134\134\134\0\0\0\0\377\270\0\0\0\0\377\270\0\0\232\374\26\0\0\0\73\377\155\0\250\350\0\0\0\0\0\0\25\377\176\0\13\327\327\13\0\40\361\266\1\0\0\43\377\214\0\0\0\0\277\354\6\0\0\134\134\134\134\136\350\354\0\0\0\17\10\0\0\0\7\350\326\0\0\0\0\377\377\64\0\0\65\377\232\0\0\0\176\377\151\0\0\0\0\32\0\0\232\377\64\0\0\70\377\377\0\0\0\171\377\116\0\0\0\124\377\135\0\0\0\0\0\270\377\0\0\0\0\0\0\225\377\70\0\0\65\377\377\0\0\0\0\377\375\47\0\0\72\377\222\0\0\0\0\0\0\270\377\0\0\0\0\0\0\0\0\0\377\270\0\0\0\0\0\0\377\270\1\226\374\134\0\0\0\0\0\0\0\377\270\0\0\0\0\0\0\377\313\0\312\377\23\201\377\61\0\0\0\377\375\47\0\0\72\377\222\0\0\224\377\110\0\0\0\221\377\112\0\0\0\377\377\64\0\0\65\377\227\0\0\227\377\61\0\0\65\377\377\0\0\0\0\0\377\377\146\0\0\0\3\0\0\0\366\306\0\0\0\0\3\0\0\0\0\0\270\377\0\0\0\0\0\0\0\0\377\270\0\0\0\0\377\270\0\0\100\377\151\0\0\0\222\374\27\0\155\377\37\0\7\30\2\0\113\377\103\0\0\56\367\235\3\305\345\25\0\0\0\0\301\346\3\0\0\35\376\222\0\0\0\0\0\0\0\175\376\110\0\0\0\0\0\0\11\23\24\301\370\0\0\0\0\377\334\0\0\0\0\335\335\0\0\0\323\352\2\0\0\0\0\0\0\0\335\334\0\0\0\0\336\377\0\0\0\321\343\24\24\24\24\36\377\237\0\0\0\0\0\270\377\0\0\0\0\0\0\333\335\0\0\0\0\335\377\0\0\0\0\377\316\0\0\0\7\377\261\0\0\0\0\0\0\270\377\0\0\0\0\0\0\0\0\0\377\270\0\0\0\0\0\0\377\271\233\377\135\0\0\0\0\0\0\0\0\377\270\0\0\0\0\0\0\377\273\0\274\377\3\163\377\102\0\0\0\377\316\0\0\0\7\377\261\0\0\333\342\0\0\0\0\53\377\222\0\0\0\377\334\0\0\0\0\335\333\0\0\333\333\0\0\0\0\335\377\0\0\0\0\0\377\352\3\0\0\0\0\0\0\0\350\351\41\0\0\0\0\0\0\0\0\0\270\377\0\0\0\0\0\0\0\0\377\270\0\0\0\0\377\270\0\0\2\344\300\0\0\2\346\272\0\0\62\377\126\0\162\377\101\0\201\374\14\0\0\0\152\377\273\375\100\0\0\0\0\0\140\377\110\0\0\170\377\61\0\0\0\0\0\0\101\375\205\0\0\0\0\5\203\342\377\377\377\377\377\0\0\0\0\377\275\0\0\0\0\276\370\0\0\0\367\277\0\0\0\0\0\0\0\0\371\275\0\0\0\0\276\377\0\0\0\367\377\377\377\377\377\377\377\265\0\0\0\0\0\270\377\0\0\0\0\0\0\371\275\0\0\0\0\276\377\0\0\0\0\377\271\0\0\0\0\377\270\0\0\0\0\0\0\270\377\0\0\0\0\0\0\0\0\0\377\270\0\0\0\0\0\0\377\374\372\377\223\0\0\0\0\0\0\0\0\377\270\0\0\0\0\0\0\377\270\0\270\377\0\160\377\107\0\0\0\377\271\0\0\0\0\377\270\0\0\371\276\0\0\0\0\6\377\260\0\0\0\377\275\0\0\0\0\276\370\0\0\371\275\0\0\0\0\276\377\0\0\0\0\0\377\300\0\0\0\0\0\0\0\0\140\372\376\321\233\116\0\0\0\0\0\0\270\377\0\0\0\0\0\0\0\0\377\270\0\0\0\0\377\270\0\0\0\215\375\32\0\101\377\140\0\0\3\363\214\0\267\355\210\0\267\315\0\0\0\0\0\266\377\211\0\0\0\0\0\0\13\363\246\0\0\323\321\0\0\0\0\0\0\30\350\277\3\0\0\0\0\224\377\255\127\104\104\314\377\0\0\0\0\377\275\0\0\0\0\276\370\0\0\0\367\277\0\0\0\0\0\0\0\0\371\275\0\0\0\0\276\377\0\0\0\367\316\104\104\104\104\104\104\60\0\0\0\0\0\270\377\0\0\0\0\0\0\371\275\0\0\0\0\276\377\0\0\0\0\377\270\0\0\0\0\377\270\0\0\0\0\0\0\270\377\0\0\0\0\0\0\0\0\0\377\270\0\0\0\0\0\0\377\365\105\236\377\113\0\0\0\0\0\0\0\377\270\0\0\0\0\0\0\377\270\0\270\377\0\160\377\110\0\0\0\377\270\0\0\0\0\377\270\0\0\371\276\0\0\0\0\6\377\260\0\0\0\377\275\0\0\0\0\276\370\0\0\371\275\0\0\0\0\276\377\0\0\0\0\0\377\270\0\0\0\0\0\0\0\0\0\33\146\241\357\377\205\0\0\0\0\0\270\377\0\0\0\0\0\0\0\0\377\270\0\0\0\1\377\270\0\0\0\63\377\157\0\230\367\17\0\0\0\275\303\7\365\155\320\0\354\222\0\0\0\0\27\350\377\314\6\0\0\0\0\0\0\236\366\15\60\377\160\0\0\0\0\0\3\276\350\30\0\0\0\0\0\357\322\0\0\0\0\323\377\0\0\0\0\377\335\0\0\0\0\335\333\0\0\0\323\351\2\0\0\0\0\0\0\0\334\334\0\0\0\0\337\377\0\0\0\322\340\0\0\0\0\0\0\0\0\0\0\0\0\270\377\0\0\0\0\0\0\333\337\0\0\0\0\337\377\0\0\0\0\377\270\0\0\0\0\377\270\0\0\0\0\0\0\270\377\0\0\0\0\0\0\0\0\0\377\270\0\0\0\0\0\0\377\270\0\14\334\352\30\0\0\0\0\0\0\375\272\0\0\0\0\0\0\377\270\0\270\377\0\160\377\110\0\0\0\377\270\0\0\0\0\377\270\0\0\334\342\0\0\0\0\53\377\222\0\0\0\377\335\0\0\0\0\335\335\0\0\335\333\0\0\0\0\335\377\0\0\0\0\0\377\270\0\0\0\0\0\0\0\0\0\0\0\0\22\341\360\0\0\0\0\0\267\377\0\0\0\0\0\0\0\0\372\276\0\0\0\30\377\270\0\0\0\0\331\306\4\353\255\0\0\0\0\202\365\106\330\12\367\73\377\126\0\0\0\2\273\357\130\374\222\0\0\0\0\0\0\75\377\142\215\372\25\0\0\0\0\0\203\375\102\0\0\0\0\0\0\365\320\0\0\0\74\377\377\0\0\0\0\377\377\64\0\0\65\377\227\0\0\0\176\377\146\0\0\0\0\27\0\0\231\377\64\0\0\70\377\377\0\0\0\172\377\133\0\0\0\0\12\25\0\0\0\0\0\270\377\0\0\0\0\0\0\225\377\73\0\0\67\377\377\0\0\0\0\377\270\0\0\0\0\377\270\0\0\0\0\0\0\270\377\0\0\0\0\0\0\0\0\0\377\270\0\0\0\0\0\0\377\270\0\0\70\374\271\1\0\0\0\0\0\343\335\0\0\0\0\0\0\377\270\0\270\377\0\160\377\110\0\0\0\377\270\0\0\0\0\377\270\0\0\224\377\110\0\0\0\221\377\112\0\0\0\377\377\64\0\0\65\377\232\0\0\233\377\57\0\0\65\377\377\0\0\0\0\0\377\270\0\0\0\0\0\0\0\0\21\0\0\0\0\320\360\0\0\0\0\0\250\377\26\0\0\0\0\0\0\0\334\354\7\0\0\161\377\270\0\0\0\0\200\376\145\377\123\0\0\0\0\107\377\270\217\0\272\267\377\33\0\0\0\173\377\125\0\176\377\120\0\0\0\0\0\0\333\302\345\257\0\0\0\0\0\107\375\175\0\0\0\0\0\0\0\245\377\246\143\202\350\333\377\0\0\0\0\377\353\344\161\160\344\361\40\0\0\0\12\315\374\237\143\155\272\177\0\0\43\363\344\161\162\346\353\377\0\0\0\10\310\374\240\144\150\233\355\120\0\0\0\0\0\270\377\0\0\0\0\0\0\37\361\351\164\157\341\342\377\0\0\0\0\377\270\0\0\0\0\377\270\0\0\0\134\134\134\321\377\134\134\134\0\0\0\0\0\0\377\270\0\0\0\0\0\0\377\270\0\0\0\177\377\163\0\0\0\0\0\215\377\232\134\134\0\0\0\377\270\0\270\377\0\160\377\110\0\0\0\377\270\0\0\0\0\377\270\0\0\33\352\362\202\142\240\377\271\1\0\0\0\377\354\344\161\160\344\364\44\0\0\44\364\342\160\161\344\352\377\0\0\0\0\0\377\270\0\0\0\0\0\0\0\0\363\242\153\146\257\377\225\0\0\0\0\0\145\377\266\123\110\110\0\0\0\0\211\377\274\152\217\314\377\270\0\0\0\0\47\377\362\361\10\0\0\0\0\17\375\377\105\0\161\377\340\0\0\0\74\374\236\0\0\3\304\356\37\0\0\0\0\0\173\377\377\120\0\0\0\0\0\352\350\136\134\134\134\134\0\0\0\15\234\356\367\307\77\264\377\0\0\0\0\377\270\145\341\370\304\65\0\0\0\0\0\14\204\331\371\357\261\60\0\0\0\67\306\370\340\145\270\377\0\0\0\0\11\177\326\370\365\316\211\30\0\0\0\0\0\270\377\0\0\0\0\0\0\0\65\306\370\336\134\271\374\0\0\0\0\377\270\0\0\0\0\377\270\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\377\270\0\0\0\0\0\0\377\270\0\0\0\3\306\371\61\0\0\0\0\11\236\362\377\377\0\0\0\377\270\0\270\377\0\160\377\110\0\0\0\377\270\0\0\0\0\377\270\0\0\0\43\247\353\372\336\206\11\0\0\0\0\377\270\150\341\370\307\70\0\0\0\0\70\306\370\341\147\270\377\0\0\0\0\0\377\270\0\0\0\0\0\0\0\0\211\317\365\373\333\177\5\0\0\0\0\0\2\202\336\373\377\377\0\0\0\0\12\240\362\362\256\33\377\270\0\0\0\0\0\315\377\240\0\0\0\0\0\0\321\365\7\0\50\377\245\0\0\22\342\333\14\0\0\0\37\360\307\4\0\0\0\0\35\375\355\6\0\0\0\0\0\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\313\350\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\2\377\264\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\270\0\0\0\0\0\0\0\0\0\0\0\0\0\0\270\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\31\374\224\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\11\0\0\0\33\372\254\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\50\377\230\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\270\0\0\0\0\0\0\0\0\0\0\0\0\0\0\270\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\202\377\61\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\322\235\145\157\331\372\64\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\56\134\140\307\377\101\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\270\0\0\0\0\0\0\0\0\0\0\0\0\0\0\270\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\130\172\366\275\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\213\332\372\364\277\75\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\200\377\377\344\153\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\270\0\0\0\0\0\0\0\0\0\0\0\0\0\0\270\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\370\265\30\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"; +static uint8_t font[] = "\0\0\0\0\0\0\0\0\0\0\0\0\0\377\270\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\270\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\161\332\372\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\270\0\0\0\0\0\0\0\0\0\0\0\0\270\377\0\0\0\0\0\0\0\0\0\377\270\0\0\0\0\0\0\377\270\0\0\0\0\0\0\0\0\230\377\377\377\270\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\270\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\270\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\130\377\266\142\134\134\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\270\0\0\0\0\0\0\0\0\0\0\0\0\270\377\0\0\0\0\0\0\0\0\0\377\270\0\0\0\0\0\0\377\270\0\0\0\0\0\0\0\0\66\134\134\377\270\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\134\200\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\270\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\270\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\246\377\21\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\270\0\0\0\0\0\0\0\0\0\0\0\0\5\10\0\0\0\0\0\0\0\0\0\10\5\0\0\0\0\0\0\377\270\0\0\0\0\0\0\0\0\0\0\0\377\270\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\270\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\270\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\270\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\267\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\270\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\270\0\0\0\0\0\0\0\0\0\0\0\377\270\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\270\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\26\221\324\370\365\313\133\0\0\0\0\0\377\270\145\337\367\305\66\0\0\0\0\0\14\203\330\370\356\261\60\0\0\0\66\305\367\340\146\270\377\0\0\0\0\13\204\334\371\347\227\20\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\64\305\367\337\143\270\377\0\0\0\0\377\270\104\313\367\343\152\0\0\0\0\114\377\377\377\377\0\0\0\0\0\0\260\377\377\377\270\0\0\0\0\0\0\377\270\0\0\0\215\376\151\0\0\0\0\0\377\270\0\0\0\0\0\0\377\303\303\355\115\270\366\200\0\0\0\0\377\270\104\313\367\343\152\0\0\0\0\42\246\352\372\335\205\10\0\0\0\0\377\270\145\340\367\305\65\0\0\0\0\64\304\367\337\143\270\377\0\0\0\0\0\377\270\47\272\366\364\301\0\0\0\15\223\345\374\357\277\74\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\377\270\0\0\0\0\377\270\0\5\355\273\0\0\0\0\1\342\307\0\343\263\0\0\0\0\0\0\0\337\272\0\236\370\60\0\0\0\133\377\165\0\0\203\377\56\0\0\0\0\142\377\123\0\0\377\377\377\377\377\377\377\0\0\0\74\350\223\145\151\303\377\146\0\0\0\0\377\353\345\162\160\344\363\42\0\0\0\12\315\375\240\144\157\277\200\0\0\43\363\345\161\162\346\353\377\0\0\0\10\310\370\217\141\205\363\313\5\0\0\0\134\134\321\377\134\134\134\134\0\0\37\361\350\164\160\342\350\377\0\0\0\0\377\335\333\162\152\334\377\74\0\0\0\33\134\134\321\377\0\0\0\0\0\0\77\134\134\377\270\0\0\0\0\0\0\377\270\0\0\222\375\142\0\0\0\0\0\0\377\270\0\0\0\0\0\0\377\370\164\370\370\220\320\372\13\0\0\0\377\335\333\162\152\334\377\74\0\0\33\352\362\203\142\241\377\270\1\0\0\0\377\353\345\162\160\344\362\40\0\0\41\362\343\161\161\344\353\377\0\0\0\0\0\377\307\344\237\143\162\317\0\0\0\252\377\231\141\155\256\164\0\0\0\134\134\321\377\134\134\134\134\0\0\0\0\377\270\0\0\0\0\377\270\0\0\232\374\26\0\0\0\73\377\155\0\250\350\0\0\0\0\0\0\25\377\176\0\13\327\327\13\0\40\361\266\1\0\0\43\377\214\0\0\0\0\277\354\6\0\0\134\134\134\134\136\350\354\0\0\0\17\10\0\0\0\7\350\326\0\0\0\0\377\377\64\0\0\65\377\232\0\0\0\176\377\151\0\0\0\0\32\0\0\232\377\64\0\0\70\377\377\0\0\0\171\377\116\0\0\0\124\377\135\0\0\0\0\0\270\377\0\0\0\0\0\0\225\377\70\0\0\65\377\377\0\0\0\0\377\375\47\0\0\72\377\222\0\0\0\0\0\0\270\377\0\0\0\0\0\0\0\0\0\377\270\0\0\0\0\0\0\377\270\1\226\374\134\0\0\0\0\0\0\0\377\270\0\0\0\0\0\0\377\313\0\312\377\23\201\377\61\0\0\0\377\375\47\0\0\72\377\222\0\0\224\377\110\0\0\0\221\377\112\0\0\0\377\377\64\0\0\65\377\227\0\0\227\377\61\0\0\65\377\377\0\0\0\0\0\377\377\146\0\0\0\3\0\0\0\366\306\0\0\0\0\3\0\0\0\0\0\270\377\0\0\0\0\0\0\0\0\377\270\0\0\0\0\377\270\0\0\100\377\151\0\0\0\222\374\27\0\155\377\37\0\7\30\2\0\113\377\103\0\0\56\367\235\3\305\345\25\0\0\0\0\301\346\3\0\0\35\376\222\0\0\0\0\0\0\0\175\376\110\0\0\0\0\0\0\11\23\24\301\370\0\0\0\0\377\334\0\0\0\0\335\335\0\0\0\323\352\2\0\0\0\0\0\0\0\335\334\0\0\0\0\336\377\0\0\0\321\343\24\24\24\24\36\377\237\0\0\0\0\0\270\377\0\0\0\0\0\0\333\335\0\0\0\0\335\377\0\0\0\0\377\316\0\0\0\7\377\261\0\0\0\0\0\0\270\377\0\0\0\0\0\0\0\0\0\377\270\0\0\0\0\0\0\377\271\233\377\135\0\0\0\0\0\0\0\0\377\270\0\0\0\0\0\0\377\273\0\274\377\3\163\377\102\0\0\0\377\316\0\0\0\7\377\261\0\0\333\342\0\0\0\0\53\377\222\0\0\0\377\334\0\0\0\0\335\333\0\0\333\333\0\0\0\0\335\377\0\0\0\0\0\377\352\3\0\0\0\0\0\0\0\350\351\41\0\0\0\0\0\0\0\0\0\270\377\0\0\0\0\0\0\0\0\377\270\0\0\0\0\377\270\0\0\2\344\300\0\0\2\346\272\0\0\62\377\126\0\162\377\101\0\201\374\14\0\0\0\152\377\273\375\100\0\0\0\0\0\140\377\110\0\0\170\377\61\0\0\0\0\0\0\101\375\205\0\0\0\0\5\203\342\377\377\377\377\377\0\0\0\0\377\275\0\0\0\0\276\370\0\0\0\367\277\0\0\0\0\0\0\0\0\371\275\0\0\0\0\276\377\0\0\0\367\377\377\377\377\377\377\377\265\0\0\0\0\0\270\377\0\0\0\0\0\0\371\275\0\0\0\0\276\377\0\0\0\0\377\271\0\0\0\0\377\270\0\0\0\0\0\0\270\377\0\0\0\0\0\0\0\0\0\377\270\0\0\0\0\0\0\377\374\372\377\223\0\0\0\0\0\0\0\0\377\270\0\0\0\0\0\0\377\270\0\270\377\0\160\377\107\0\0\0\377\271\0\0\0\0\377\270\0\0\371\276\0\0\0\0\6\377\260\0\0\0\377\275\0\0\0\0\276\370\0\0\371\275\0\0\0\0\276\377\0\0\0\0\0\377\300\0\0\0\0\0\0\0\0\140\372\376\321\233\116\0\0\0\0\0\0\270\377\0\0\0\0\0\0\0\0\377\270\0\0\0\0\377\270\0\0\0\215\375\32\0\101\377\140\0\0\3\363\214\0\267\355\210\0\267\315\0\0\0\0\0\266\377\211\0\0\0\0\0\0\13\363\246\0\0\323\321\0\0\0\0\0\0\30\350\277\3\0\0\0\0\224\377\255\127\104\104\314\377\0\0\0\0\377\275\0\0\0\0\276\370\0\0\0\367\277\0\0\0\0\0\0\0\0\371\275\0\0\0\0\276\377\0\0\0\367\316\104\104\104\104\104\104\60\0\0\0\0\0\270\377\0\0\0\0\0\0\371\275\0\0\0\0\276\377\0\0\0\0\377\270\0\0\0\0\377\270\0\0\0\0\0\0\270\377\0\0\0\0\0\0\0\0\0\377\270\0\0\0\0\0\0\377\365\105\236\377\113\0\0\0\0\0\0\0\377\270\0\0\0\0\0\0\377\270\0\270\377\0\160\377\110\0\0\0\377\270\0\0\0\0\377\270\0\0\371\276\0\0\0\0\6\377\260\0\0\0\377\275\0\0\0\0\276\370\0\0\371\275\0\0\0\0\276\377\0\0\0\0\0\377\270\0\0\0\0\0\0\0\0\0\33\146\241\357\377\205\0\0\0\0\0\270\377\0\0\0\0\0\0\0\0\377\270\0\0\0\1\377\270\0\0\0\63\377\157\0\230\367\17\0\0\0\275\303\7\365\155\320\0\354\222\0\0\0\0\27\350\377\314\6\0\0\0\0\0\0\236\366\15\60\377\160\0\0\0\0\0\3\276\350\30\0\0\0\0\0\357\322\0\0\0\0\323\377\0\0\0\0\377\335\0\0\0\0\335\333\0\0\0\323\351\2\0\0\0\0\0\0\0\334\334\0\0\0\0\337\377\0\0\0\322\340\0\0\0\0\0\0\0\0\0\0\0\0\270\377\0\0\0\0\0\0\333\337\0\0\0\0\337\377\0\0\0\0\377\270\0\0\0\0\377\270\0\0\0\0\0\0\270\377\0\0\0\0\0\0\0\0\0\377\270\0\0\0\0\0\0\377\270\0\14\334\352\30\0\0\0\0\0\0\375\272\0\0\0\0\0\0\377\270\0\270\377\0\160\377\110\0\0\0\377\270\0\0\0\0\377\270\0\0\334\342\0\0\0\0\53\377\222\0\0\0\377\335\0\0\0\0\335\335\0\0\335\333\0\0\0\0\335\377\0\0\0\0\0\377\270\0\0\0\0\0\0\0\0\0\0\0\0\22\341\360\0\0\0\0\0\267\377\0\0\0\0\0\0\0\0\372\276\0\0\0\30\377\270\0\0\0\0\331\306\4\353\255\0\0\0\0\202\365\106\330\12\367\73\377\126\0\0\0\2\273\357\130\374\222\0\0\0\0\0\0\75\377\142\215\372\25\0\0\0\0\0\203\375\102\0\0\0\0\0\0\365\320\0\0\0\74\377\377\0\0\0\0\377\377\64\0\0\65\377\227\0\0\0\176\377\146\0\0\0\0\27\0\0\231\377\64\0\0\70\377\377\0\0\0\172\377\133\0\0\0\0\12\25\0\0\0\0\0\270\377\0\0\0\0\0\0\225\377\73\0\0\67\377\377\0\0\0\0\377\270\0\0\0\0\377\270\0\0\0\0\0\0\270\377\0\0\0\0\0\0\0\0\0\377\270\0\0\0\0\0\0\377\270\0\0\70\374\271\1\0\0\0\0\0\343\335\0\0\0\0\0\0\377\270\0\270\377\0\160\377\110\0\0\0\377\270\0\0\0\0\377\270\0\0\224\377\110\0\0\0\221\377\112\0\0\0\377\377\64\0\0\65\377\232\0\0\233\377\57\0\0\65\377\377\0\0\0\0\0\377\270\0\0\0\0\0\0\0\0\21\0\0\0\0\320\360\0\0\0\0\0\250\377\26\0\0\0\0\0\0\0\334\354\7\0\0\161\377\270\0\0\0\0\200\376\145\377\123\0\0\0\0\107\377\270\217\0\272\267\377\33\0\0\0\173\377\125\0\176\377\120\0\0\0\0\0\0\333\302\345\257\0\0\0\0\0\107\375\175\0\0\0\0\0\0\0\245\377\246\143\202\350\333\377\0\0\0\0\377\353\344\161\160\344\361\40\0\0\0\12\315\374\237\143\155\272\177\0\0\43\363\344\161\162\346\353\377\0\0\0\10\310\374\240\144\150\233\355\120\0\0\0\0\0\270\377\0\0\0\0\0\0\37\361\351\164\157\341\342\377\0\0\0\0\377\270\0\0\0\0\377\270\0\0\0\134\134\134\321\377\134\134\134\0\0\0\0\0\0\377\270\0\0\0\0\0\0\377\270\0\0\0\177\377\163\0\0\0\0\0\215\377\232\134\134\0\0\0\377\270\0\270\377\0\160\377\110\0\0\0\377\270\0\0\0\0\377\270\0\0\33\352\362\202\142\240\377\271\1\0\0\0\377\354\344\161\160\344\364\44\0\0\44\364\342\160\161\344\352\377\0\0\0\0\0\377\270\0\0\0\0\0\0\0\0\363\242\153\146\257\377\225\0\0\0\0\0\145\377\266\123\110\110\0\0\0\0\211\377\274\152\217\314\377\270\0\0\0\0\47\377\362\361\10\0\0\0\0\17\375\377\105\0\161\377\340\0\0\0\74\374\236\0\0\3\304\356\37\0\0\0\0\0\173\377\377\120\0\0\0\0\0\352\350\136\134\134\134\134\0\0\0\15\234\356\367\307\77\264\377\0\0\0\0\377\270\145\341\370\304\65\0\0\0\0\0\14\204\331\371\357\261\60\0\0\0\67\306\370\340\145\270\377\0\0\0\0\11\177\326\370\365\316\211\30\0\0\0\0\0\270\377\0\0\0\0\0\0\0\65\306\370\336\134\271\374\0\0\0\0\377\270\0\0\0\0\377\270\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\377\270\0\0\0\0\0\0\377\270\0\0\0\3\306\371\61\0\0\0\0\11\236\362\377\377\0\0\0\377\270\0\270\377\0\160\377\110\0\0\0\377\270\0\0\0\0\377\270\0\0\0\43\247\353\372\336\206\11\0\0\0\0\377\270\150\341\370\307\70\0\0\0\0\70\306\370\341\147\270\377\0\0\0\0\0\377\270\0\0\0\0\0\0\0\0\211\317\365\373\333\177\5\0\0\0\0\0\2\202\336\373\377\377\0\0\0\0\12\240\362\362\256\33\377\270\0\0\0\0\0\315\377\240\0\0\0\0\0\0\321\365\7\0\50\377\245\0\0\22\342\333\14\0\0\0\37\360\307\4\0\0\0\0\35\375\355\6\0\0\0\0\0\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\313\350\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\2\377\264\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\270\0\0\0\0\0\0\0\0\0\0\0\0\0\0\270\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\31\374\224\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\11\0\0\0\33\372\254\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\50\377\230\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\270\0\0\0\0\0\0\0\0\0\0\0\0\0\0\270\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\202\377\61\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\322\235\145\157\331\372\64\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\56\134\140\307\377\101\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\270\0\0\0\0\0\0\0\0\0\0\0\0\0\0\270\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\130\172\366\275\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\213\332\372\364\277\75\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\200\377\377\344\153\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\270\0\0\0\0\0\0\0\0\0\0\0\0\0\0\270\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\370\265\30\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"; static gboolean send_draw_ops (GOutputStream *out) @@ -788,6 +782,14 @@ send_draw_ops (GOutputStream *out) * lame http server * ************************************************************************/ +static int port = 8080; +static char *root = NULL; +static GOptionEntry cmd_entries[] = { + {"port", 'p', 0, G_OPTION_ARG_INT, &port, + "Local port to bind to", NULL}, + {NULL} +}; + static void send_error (GOutputStream *out, int error_code, -- cgit v1.2.3