DanielGibson / DanielGibson.github.io

My blog, I guess
http://blog.gibson.sh
1 stars 0 forks source link

Comments: How to integrate your SDL2 window icon (or any image) into your executable #10

Open DanielGibson opened 7 years ago

DanielGibson commented 7 years ago

Comments for https://blog.gibson.sh/2015/04/13/how-to-integrate-your-sdl2-window-icon-or-any-image-into-your-executable/

Kagetsuki commented 1 year ago

First let me thank you for writing such a detailed and easy to understand post.

I know this is an old post but I was hoping you could provide some insight. I'm basically using the code from your post as-is but I noticed the colors and alpha were off. The endian is big, and the red channel is accurate, but somehow the other channels are getting mixed up. Here's a screenshot with the result on the left and the original image in GIMP on the right: image.

I tried to rearrange the masks but no matter how I change them it will cause the image to fail to load with SDL giving the error "Unknown pixel format". The thing is I don't think it's SDL, I think maybe there's something screwy with how GIMP is emitting the array - specifically the color channels, but I can't quite figure it out. There are few code samples I can find, and all of them seem to handle things basically the same way, so I have a suspicion the GIMP exporter is actually broken.

My GIMP version is 2.10.32, and I'm using SDL2 version 2.24.0

Here's the exported image data if you or anyone wants to try it themselves:

Click to show source ```c static const struct { unsigned int width; unsigned int height; unsigned int bytes_per_pixel; /* 2:RGB16, 3:RGB, 4:RGBA */ unsigned char pixel_data[64 * 64 * 4 + 1]; } failure_image = { 64, 64, 4, "\377\001\000\376\377\001\000\376\377\000\001\376\377\001\001\376\377\001\001\376\377\001\001\376" "\377\001\001\376\377\001\001\376\377\001\001\376\377\001\001\376\377\002\002\376\377\002\002\376" "\377\002\002\376\377\002\002\376\377\002\002\376\377\003\002\376\377\002\003\376\377\003\003\376" "\377\003\003\376\377\003\003\376\377\003\003\376\377\003\003\376\377\003\003\376\377\003\003\376" "\377\003\003\376\377\004\004\376\377\004\004\376\377\004\004\376\377\004\004\376\377\004\005\376" "\377\004\004\376\377\005\004\376\377\005\005\376\377\004\005\376\377\005\005\376\377\005\005\376" "\377\005\005\376\377\005\005\376\377\006\006\376\377\006\006\376\377\006\006\376\377\006\006\376" "\377\006\006\376\377\006\006\376\377\006\007\376\377\006\006\376\377\006\006\376\377\007\007\376" "\377\007\007\376\377\007\007\376\377\007\007\376\377\007\007\376\377\007\007\376\377\007\007\376" "\377\010\010\376\377\010\007\376\377\010\010\376\377\010\010\376\377\010\010\376\377" "\010\010\376\377\010\010\376\377\010\010\376\377\011\011\376\377\011\011\376\377\001" "\001\374\377\001\001\374\377\001\001\374\377\002\002\374\377\002\002\374\377\003\002\374\377\003" "\003\374\377\003\003\374\377\003\003\374\377\004\004\374\377\004\004\374\377\004\004\374\377\005" "\005\374\377\005\005\374\377\006\005\374\377\006\006\374\377\006\006\374\377\006\006\374\377\007" "\007\374\377\007\007\374\377\007\007\374\377\010\007\374\377\010\010\374\377\010\010\374\377" "\010\010\374\377\011\011\374\377\012\012\374\377\012\012\375\377\012\012\375\377\013" "\013\375\377\013\013\375\377\013\013\375\377\013\013\375\377\014\013\375\377\014\014" "\375\377\015\015\375\377\014\014\375\377\015\015\375\377\015\015\375\377\015\015\375" "\377\015\015\375\377\015\016\375\377\016\016\375\377\016\016\375\377\017\017\375\377" "\017\017\375\377\017\017\375\377\020\020\375\377\017\017\375\377\020\020\375\377\020" "\020\375\377\020\020\375\377\021\021\375\377\021\021\375\377\021\021\375\377\021\021" "\375\377\021\021\375\377\022\022\375\377\022\022\375\377\022\022\375\377\022\022\375" "\377\023\023\375\377\022\023\375\377\023\023\375\377\002\002\370\377\003\003\370\377\004" "\004\370\377\004\004\370\377\005\005\371\377\006\006\370\377\007\007\371\377\007\007\371\377\010" "\010\371\377\011\011\371\377\012\011\371\377\013\013\371\377\013\013\371\377\014\014" "\371\377\014\014\371\377\014\014\371\377\016\016\371\377\017\016\371\377\016\016\371" "\377\020\020\371\377\020\020\371\377\020\020\371\377\021\020\372\377\022\022\372\377" "\022\022\372\377\022\023\372\377\023\023\372\377\023\023\372\377\023\023\372\377\023" "\024\372\377\025\025\372\377\025\025\372\377\025\025\372\377\025\025\372\377\026\026" "\372\377\027\027\372\377\027\027\373\377\027\027\372\377\027\027\373\377\030\030\373" "\377\031\031\372\377\031\031\372\377\031\031\373\377\032\032\373\377\032\032\373\377" "\033\033\373\377\033\033\373\377\033\033\373\377\033\033\373\377\033\033\373\377\034" "\034\373\377\034\034\373\377\035\035\373\377\035\035\373\377\035\035\374\377\036\036" "\374\377\036\036\374\377\037\037\374\377\037\037\374\377\037\037\374\377\037\037\374" "\377\037\037\374\377\037\037\374\377\037\037\374\377\005\005\363\377\007\007\364\377\010" "\010\364\377\011\011\364\377\012\012\364\377\014\014\364\377\014\014\364\377\016\016" "\364\377\016\017\365\377\020\020\364\377\021\021\365\377\022\022\365\377\023\023\365" "\377\024\024\365\377\024\024\365\377\025\025\365\377\026\026\365\377\027\027\365\377" "\027\027\365\377\027\027\365\377\031\031\365\377\032\031\365\377\032\032\365\377\033" "\033\366\377\033\033\366\377\033\033\366\377\034\034\366\377\035\035\366\377\036\036" "\366\377\036\036\366\377\036\036\366\377\037\037\367\377\040\040\367\377\040\040\367" "\377!!\367\377!!\367\377\"\"\367\377\"\"\367\377##\367\377##\367\377$$\367" "\377$$\367\377%%\367\377%%\367\377%%\370\377&&\370\377''\370\377''\370\377" "''\370\377((\370\377((\370\377((\371\377))\371\377))\371\377**\371\377**" "\371\377**\371\377++\371\377++\371\377,,\371\377,,\371\377++\371\377++\371" "\377**\371\377\013\013\354\377\015\015\355\377\016\016\355\377\020\020\355\377\022" "\022\355\377\023\023\355\377\024\024\356\377\026\026\356\377\027\027\356\377\030\030" "\356\377\032\031\356\377\032\032\357\377\033\033\357\377\034\035\356\377\034\034\357" "\377\036\036\357\377\037\037\357\377\040\040\357\377\040\040\357\377!!\360\377\"" "\"\360\377##\360\377$$\360\377%%\360\377%%\360\377&&\360\377&&\361\377((" "\361\377((\361\377((\361\377))\361\377++\361\377++\362\377++\362\377,-\362" "\377--\362\377--\362\377..\363\377..\363\377//\363\377//\363\377\060\060\363" "\377\061\061\363\377\061\061\364\377\062\062\364\377\062\062\364\377\063\063\364\377" "\064\064\364\377\064\064\364\377\065\065\365\377\064\065\364\377\065\065\365\377\066" "\066\365\377\067\067\365\377\067\067\365\377\067\067\365\377\067\067\365\377\070\070" "\366\377\070\070\366\377\070\070\366\377\070\070\366\377\070\070\365\377\067\067\365" "\377\067\067\365\377\023\023\343\377\024\024\344\377\026\026\344\377\030\030\344\377" "\032\032\345\377\034\034\344\377\035\035\345\377\036\036\345\377\037\037\345\377!!" "\346\377##\346\377##\346\377%%\346\377&&\347\377''\347\377((\347\377))\347" "\377**\347\377++\350\377,,\350\377--\350\377..\350\377//\351\377\060\060\351" "\377\061\061\351\377\061\061\352\377\062\062\352\377\063\063\352\377\064\064\352\377" "\065\065\352\377\065\065\353\377\066\066\353\377\070\070\353\377\070\070\353\377\071" "\071\354\377\071\071\354\377::\354\377::\354\377<<\354\377<<\354\377<<\355\377" "<<\355\377==\356\377>>\356\377??\356\377@@\356\377@@\356\377AA\357\377AA" "\357\377AA\357\377BB\357\377CC\360\377DD\360\377EE\360\377EE\360\377DE\360" "\377EE\361\377FF\361\377GG\361\377FF\361\377EE\360\377EE\360\377EE\360\377" "DD\360\377\033\033\327\377\035\035\327\377\040\040\327\377\"\"\330\377$$\331\377" "&%\330\377''\331\377))\331\377**\331\377,,\332\377..\332\377..\333\377\061" "\061\333\377\062\062\333\377\063\063\334\377\065\065\335\377\065\065\335\377\067\067" "\335\377\067\067\335\377\070\070\335\377\071\071\336\377<<\337\377<;\337\377<<" "\337\377>>\337\377??\337\377@@\340\377AA\340\377AA\341\377CC\341\377DD\341" "\377EE\342\377EE\342\377FF\342\377FF\343\377HH\343\377HH\344\377II\344\377" "JJ\344\377JJ\344\377KK\345\377KK\346\377MM\345\377NN\346\377NN\346\377OO" "\347\377PP\347\377PP\350\377QQ\350\377QQ\350\377RR\350\377SS\351\377SS\351" "\377TT\351\377UU\351\377VV\352\377VV\353\377WW\353\377UU\352\377UU\351\377" "UU\351\377TT\351\377SS\351\377RR\351\377&&\307\377((\307\377++\310\377--" "\310\377//\311\377\061\061\312\377\063\063\312\377\066\066\312\377\067\067\313\377" "\070\070\313\377;;\313\377<<\314\377==\315\377??\315\377@@\316\377BB\316\377" "CC\317\377DD\320\377FF\317\377GG\321\377II\321\377JJ\322\377JJ\322\377LL" "\322\377MM\323\377NN\324\377OO\324\377PP\324\377QQ\324\377SS\325\377TT\326" "\377UU\326\377UU\327\377VV\327\377WW\327\377XX\330\377XX\331\377YY\331\377" "ZZ\331\377[[\332\377]]\333\377^^\334\377^^\333\377__\334\377__\334\377``" "\335\377bb\336\377bb\336\377bb\336\377cc\337\377cc\340\377dd\340\377ee\341" "\377ee\341\377fg\341\377gg\342\377hh\342\377gg\341\377ff\341\377ee\341\377" "ee\340\377dd\340\377cc\337\377bb\336\377\062\062\265\377\065\065\266\377\070\070" "\267\377::\266\377<<\270\377??\271\377@@\271\377CC\272\377EE\271\377GG\272" "\377HH\274\377II\274\377LL\275\377NN\276\377OO\277\377QQ\277\377QQ\300\377" "TT\300\377UU\301\377WW\301\377XX\302\377YY\303\377ZZ\303\377\\\\\304\377" "\\\\\305\377^^\306\377``\306\377aa\307\377bb\307\377bb\310\377cc\310\377" "dd\311\377ee\312\377ff\312\377hh\313\377hh\314\377ii\315\377jj\315\377kk" "\316\377mm\317\377mm\317\377nn\320\377oo\321\377qq\321\377qq\322\377qq\323" "\377ss\323\377rr\323\377tu\324\377uu\326\377vv\326\377vv\326\377ww\327\377" "xx\330\377xx\330\377xx\331\377xx\327\377ww\327\377ww\326\377vv\325\377vv" "\325\377tt\325\377tt\324\377rr\323\377AA\240\377EE\241\377FF\242\377II\243" "\377LL\243\377OO\244\377QQ\245\377RR\246\377UU\246\377WW\247\377ZZ\251\377" "\\\\\251\377]]\251\377^^\252\377``\254\377bb\255\377dd\255\377ff\257\377" "gg\257\377hh\260\377jj\260\377ll\262\377ll\262\377nn\263\377nn\264\377oo" "\265\377qq\266\377rr\267\377tt\267\377uu\270\377vv\272\377ww\272\377xx\273" "\377zz\274\377{{\274\377{{\275\377}}\276\377~~\300\377\177\177\300\377\200" "\200\301\377\200\200\301\377\201\201\302\377\202\202\303\377\203\203\304" "\377\204\204\305\377\205\205\307\377\206\206\307\377\206\206\307\377\207" "\207\310\377\210\210\312\377\212\212\312\377\212\212\313\377\213\213\314" "\377\213\213\315\377\214\214\315\377\213\213\315\377\212\212\313\377\211" "\211\313\377\211\211\311\377\210\210\311\377\207\207\310\377\206\206\307" "\377\205\205\306\377\205\205\306\377TT\206\377VV\211\377ZZ\212\377\\\\\212" "\377^^\214\377bb\215\377cc\217\377ff\216\377hh\220\377kk\221\377nn\222\377" "oo\223\377qq\224\377tt\224\377vv\226\377ww\227\377zz\231\377zz\232\377{{" "\232\377}}\234\377\177\177\236\377\200\200\237\377\202\202\237\377\203\203" "\240\377\204\204\240\377\206\206\242\377\210\210\242\377\210\210\245\377" "\212\212\245\377\212\212\246\377\214\214\250\377\215\215\250\377\217\217" "\252\377\220\220\253\377\220\220\254\377\221\221\255\377\223\223\255\377" "\224\224\257\377\224\224\261\377\225\225\261\377\226\226\262\377\227\227" "\262\377\227\227\265\377\232\232\266\377\232\232\267\377\232\232\270\377" "\234\234\270\377\235\235\271\377\235\235\273\377\240\240\274\377\237\237" "\274\377\237\237\276\377\240\240\300\377\240\240\300\377\240\240\276\377" "\237\237\274\377\237\237\274\377\235\235\274\377\233\233\272\377\234\234" "\270\377\233\233\267\377\232\232\267\377\231\231\267\377\230\230\265\377" "kkk\377nnl\377rrm\377vwn\377xxp\377zzr\377}}s\377\200\200u\377\203\203u\377" "\205\205w\377\207\207x\377\211\211y\377\213\213{\377\215\215}\377\220\220" "}\377\221\221\177\377\222\222\200\377\224\224\201\377\226\226\203\377\230" "\230\204\377\231\231\206\377\232\232\207\377\235\235\210\377\235\235\212" "\377\236\236\213\377\237\237\215\377\242\242\216\377\242\242\217\377\244" "\244\221\377\245\245\222\377\246\246\224\377\247\247\224\377\250\250\226" "\377\251\251\227\377\252\252\231\377\253\253\232\377\254\254\233\377\255" "\255\235\377\256\256\235\377\256\256\240\377\260\260\240\377\261\261\242" "\377\262\262\243\377\263\263\244\377\263\263\246\377\264\264\250\377\265" "\265\251\377\266\266\251\377\266\266\253\377\267\267\254\377\267\267\256" "\377\270\270\257\377\270\270\260\377\270\270\257\377\270\270\254\377\267" "\267\254\377\266\266\252\377\266\266\250\377\265\265\247\377\264\264\247" "\377\263\263\246\377\261\261\244\377\261\261\243\377\260\260\241\377\203" "\203W\377\207\207X\377\210\210Z\377\215\215[\377\221\221]\377\223\223^\377" "\226\226`\377\230\230a\377\231\231d\377\235\235e\377\236\236f\377\240\240" "h\377\243\243i\377\243\243l\377\246\246m\377\247\247n\377\252\252n\377\253" "\253p\377\255\255r\377\256\256t\377\257\257u\377\261\261w\377\262\262x\377" "\264\264z\377\265\265|\377\265\265~\377\267\267~\377\270\270\200\377\271" "\271\202\377\272\272\203\377\272\272\206\377\274\274\207\377\275\275\210" "\377\276\276\212\377\277\277\213\377\277\277\214\377\300\300\216\377\301" "\301\217\377\302\302\220\377\302\302\224\377\303\303\224\377\304\304\225" "\377\306\306\227\377\305\305\230\377\306\306\233\377\310\310\234\377\310" "\310\235\377\311\311\237\377\310\310\241\377\312\312\242\377\312\312\244" "\377\312\312\245\377\312\312\243\377\310\310\241\377\310\310\240\377\307" "\307\236\377\310\310\235\377\305\305\234\377\305\305\231\377\306\306\230" "\377\304\304\226\377\304\304\225\377\304\304\223\377\302\302\221\377\234" "\234F\377\237\237I\377\242\242K\377\243\243L\377\247\247N\377\251\251P\377" "\255\255Q\377\257\257S\377\261\261V\377\263\263V\377\265\265X\377\267\267" "Y\377\270\270\\\377\272\272]\377\272\272_\377\275\275`\377\276\276c\377\277" "\277d\377\301\301f\377\303\303g\377\303\303i\377\304\304k\377\306\306l\377" "\306\306n\377\310\310o\377\310\310r\377\311\311t\377\312\312u\377\313\313" "w\377\314\314y\377\316\316z\377\315\315|\377\317\317}\377\320\320\177\377" "\320\320\201\377\321\321\202\377\322\322\203\377\321\321\206\377\322\322" "\210\377\323\323\211\377\325\325\213\377\324\324\215\000\377\000\377\000\377\000" "\377\000\377\000\377\000\377\000\377\000\377\000\377\377\327\327\227\377\330\330\231" "\377\331\331\232\377\330\330\233\377\331\331\231\377\327\327\227\377\330" "\330\226\377\327\327\224\377\326\326\222\377\325\325\221\377\326\326\216" "\377\325\325\216\377\325\325\213\377\324\324\211\377\323\323\210\377\322" "\322\207\377\321\321\205\377\262\262=\377\264\264?\377\266\266@\377\272\272" "B\377\273\273D\377\276\276F\377\300\300H\377\302\302J\377\303\303K\377\305" "\305M\377\307\307O\377\310\310Q\377\312\312S\377\313\313T\377\314\314V\377" "\000\000\377\377\000\000\377\377\000\000\377\377\000\000\377\377\000\000\377\377\323\323a\377" "\323\323b\377\325\325e\377\326\326g\377\326\326h\377\327\327j\377\330\330" "l\377\331\331n\377\331\331p\377\332\332r\374\327\327u\334\275\275\212\315" "\261\261\226\316\262\262\227\336\300\300\216\375\334\334}\377\336\336~\377" "\336\336\200\377\337\337\202\377\337\337\203\377\340\340\206\000\377\000\377" "\000\377\000\377\000\377\000\377\000\377\000\377\000\377\000\377\000\377\000\377\000\377\000\377" "\377\343\343\224\377\343\343\224\377\343\343\223\377\343\343\220\377\342" "\342\220\377\342\342\215\377\341\341\213\377\341\341\211\377\340\340\207" "\377\340\340\206\377\340\340\204\377\337\337\202\377\337\337\200\377\336" "\336~\377\336\336}\377\335\335{\377\314\314\063\377\316\316\064\377\320\320" "\066\377\322\322\070\377\322\322;\377\324\324=\377\325\325?\377\330\330@\377" "\330\330B\377\333\333D\377\334\334F\377\333\333I\377\334\334J\377\335\335" "L\377\000\000\377\377\000\000\377\377\000\000\377\377\000\000\377\377\000\000\377\377\000\000\377" "\377\000\000\377\377\345\345[\377\345\345]\377\344\344_\377\346\346a\377\346" "\346c\377\347\347e\377\350\350g\300\257\257\221ndd\321%!!\371\000\000\000\377\000" "\000\000\377\000\000\000\377\000\000\000\377/**\367~ss\317\331\310\310\221\377\354\354|\377" "\354\354~\377\354\354\177\000\377\000\377\000\377\000\377\000\377\000\377\000\377\000\377" "\000\377\000\377\000\377\000\377\000\377\000\377\377\356\356\216\377\356\356\213\377" "\356\356\211\377\356\356\210\377\355\355\206\377\354\354\204\377\354\354" "\202\377\355\355\200\377\353\353\177\377\354\354|\377\354\354z\377\353\353" "x\377\353\353v\377\352\352u\377\351\351s\377\352\352p\377\353\353)\377\354" "\354+\377\355\355-\377\360\360/\377\357\357\062\377\361\361\062\377\360\360" "\066\377\360\360\067\377\361\361\071\377\361\361<\377\364\364=\377\362\362?" "\377\363\363B\377\363\363C\377\000\000\377\377\000\000\377\377\000\000\377\377\000\000\377" "\377\000\000\377\377\000\000\377\377\000\000\377\377\365\365T\377\366\366U\377\366\366" "W\377\366\366Z\377\366\366\\\363\353\353dpll\310\000\000\000\377\000\000\000\377ZWW\335" "{ww\306~zz\306ZWW\340\000\000\000\377\000\000\000\377\000\000\000\377\025\024\024\375\241\235" "\235\265\377\371\371x\377\370\370z\000\377\000\377\000\377\000\377\000\377\000\377\000" "\377\000\377\000\377\000\377\000\377\000\377\000\377\000\377\377\371\371\205\377\372\372" "\202\377\371\371\202\377\371\371\177\377\371\371}\377\371\371{\377\371\371" "x\377\370\370w\377\370\370u\377\370\370s\377\370\370q\377\370\370o\377\370" "\370l\377\370\370k\377\367\367i\377\367\367g\377\377\377%\377\377\377'\377" "\377\377)\377\377\377,\377\377\377-\377\377\377/\377\377\377\061\377\377\377" "\064\377\377\377\066\377\377\377\071\377\377\377:\377\377\377<\377\377\377>" "\377\377\377@\377\000\000\377\377\000\000\377\377\000\000\377\377\000\000\377\377\000\000\377" "\377\000\000\377\377\000\000\377\377\377\377Q\377\377\377S\377\377\377U\377\377\377" "W\373\373\373[\\\\\\\326\000\000\000\377QQQ\340\325\325\325{\377\377\377d\377\377" "\377f\377\377\377g\377\377\377j\310\310\310\217\071\071\071\362\000\000\000\377\000" "\000\000\377\000\000\000\377\243\243\243\263\377\377\377y\000\377\000\377\000\377\000\377\000" "\377\000\377\000\377\000\377\000\377\000\377\000\377\000\377\000\377\000\377\377\377\377\177" "\377\377\377~\377\377\377|\377\377\377z\377\377\377x\377\377\377u\377\377" "\377s\377\377\377q\377\377\377o\377\377\377m\377\377\377k\377\377\377i\377" "\377\377g\377\377\377e\377\377\377c\377\377\377`\377\377\377(\377\377\377" ")\377\377\377,\377\377\377-\377\377\377/\377\377\377\061\377\377\377\064\377" "\377\377\066\377\377\377\070\377\377\377:\377\377\377<\377\377\377>\377\377" "\377@\377\377\377C\377\000\000\377\377\000\000\377\377\000\000\377\377\000\000\377\377\000" "\000\377\377\000\000\377\377\000\000\377\377\377\377S\377\377\377U\377\377\377W\377" "\377\377Y\234\234\234\237\000\000\000\377\000\000\000\377\276\276\276\214\377\377\377" "d\377\377\377f\377\377\377g\377\377\377j\377\377\377l\377\377\377n\313\313" "\313\221\000\000\000\377\000\000\000\377\000\000\000\377\036\036\036\373\343\343\343\214\000\377" "\000\377\000\377\000\377\000\377\000\377\000\377\000\377\000\377\000\377\000\377\000\377\000\377" "\000\377\377\377\377~\377\377\377|\377\377\377z\377\377\377w\377\377\377u\377" "\377\377s\377\377\377q\377\377\377o\377\377\377m\377\377\377k\377\377\377" "i\377\377\377g\377\377\377e\377\377\377c\377\377\377`\377\377\377^\377\377" "\377*\377\377\377,\377\377\377-\377\377\377\060\377\377\377\061\377\377\377" "\063\377\377\377\065\377\377\377\067\377\377\377\070\377\377\377:\377\377\377" "<\377\377\377?\377\377\377B\377\377\377D\377\000\000\377\377\000\000\377\377\000\000" "\377\377\000\000\377\377\000\000\377\377\000\000\377\377\000\000\377\377\377\377U\377\377" "\377W\377\377\377Y\377\377\377[TTT\335\000\000\000\377\000\000\000\377^^^\331\360\360" "\360o\377\377\377h\377\377\377j\377\377\377l\377\377\377n\377\377\377p\377" "\377\377rggg\334\000\000\000\377\000\000\000\377\000\000\000\377\226\226\226\302\377\377\377" "~\000\377\000\377\000\377\000\377\000\377\000\377\000\377\000\377\000\377\000\377\377\377\377" "~\377\377\377|\377\377\377y\377\377\377w\377\377\377u\377\377\377s\377\377" "\377q\377\377\377o\377\377\377n\377\377\377l\377\377\377k\377\377\377j\377" "\377\377g\377\377\377d\377\377\377a\377\377\377_\377\377\377]\377\377\377" ",\377\377\377-\377\377\377/\377\377\377\060\377\377\377\061\377\377\377\060" "\377\377\377.\377\377\377-\377\377\377,\377\377\377.\377\377\377\062\377\377" "\377\070\377\377\377=\377\377\377B\377\377\377F\377\000\000\377\377\000\000\377\377" "\000\000\377\377\000\000\377\377\000\000\377\377\377\377U\377\377\377W\377\377\377Z\377" "\377\377[\377\377\377^---\364\000\000\000\377\000\000\000\377\000\000\000\377qqq\316\377\377" "\377j\377\377\377l\377\377\377n\377\377\377q\377\377\377r\377\377\377t\230" "\230\230\274\000\000\000\377\000\000\000\377\000\000\000\377aaa\343\377\377\377\200\377\377" "\377\203\377\377\377\204\377\377\377\201\377\377\377\200\377\377\377~\377" "\377\377|\377\377\377z\377\377\377w\377\377\377u\377\377\377t\377\377\377" "r\377\377\377r\377\377\377s\377\377\377v\377\377\377z\377\377\377{\377\377" "\377z\377\377\377w\377\377\377p\377\377\377j\377\377\377d\377\377\377]\377" "\377\377,\377\377\377.\377\377\377.\377\377\377*\377\377\377&\377\377\377" "\036\377\377\377\030\377\377\377\024\377\377\377\023\377\377\377\024\377\377\377" "\031\377\377\377\040\377\377\377+\377\377\377\070\377\377\377B\377\377\377J" "\377\377\377O\377\377\377Q\377\377\377S\377\377\377U\377\377\377W\377\377" "\377Y\377\377\377\\\377\377\377]\377\377\377`CCC\352\000\000\000\377\000\000\000\377" "\000\000\000\377\013\013\013\376\374\374\374n\377\377\377n\377\377\377q\377\377\377" "r\377\377\377t\377\377\377w\247\247\247\262\000\000\000\377\000\000\000\377\000\000\000\377" "FFF\361\377\377\377\203\377\377\377\204\377\377\377\201\377\377\377\200\377" "\377\377~\377\377\377|\377\377\377z\377\377\377w\377\377\377u\377\377\377" "s\377\377\377s\377\377\377v\377\377\377\200\377\377\377\216\377\377\377\235" "\377\377\377\246\377\377\377\256\377\377\377\254\377\377\377\245\377\377" "\377\227\377\377\377\211\377\377\377x\377\377\377i\377\377\377*\377\377\377" "(\377\377\377\"\377\377\377\031\377\377\377\017\377\377\377\010\377\377\377" "\004\377\377\377\002\377\377\377\002\377\377\377\002\377\377\377\004\377\377\377\007" "\377\377\377\017\377\377\377\036\377\377\377\062\377\377\377C\377\377\377M\377" "\377\377R\377\377\377U\377\377\377W\377\377\377Y\377\377\377[\377\377\377" "]\377\377\377`\377\377\377b\213\213\213\266\000\000\000\377\000\000\000\377\000\000\000\377" "HHH\352\377\377\377o\377\377\377q\377\377\377r\377\377\377t\377\377\377w" "\377\377\377y\241\241\241\271\000\000\000\377\000\000\000\377\000\000\000\377RRR\354\377\377" "\377\204\377\377\377\201\377\377\377\200\377\377\377~\377\377\377|\377\377" "\377z\377\377\377w\377\377\377u\377\377\377s\377\377\377s\377\377\377y\377" "\377\377\213\377\377\377\245\377\377\377\301\377\377\377\326\377\377\377" "\342\377\377\377\347\377\377\377\346\377\377\377\340\377\377\377\323\377" "\377\377\276\377\377\377\242\377\377\377\207\377\377\377!\377\377\377\030" "\377\377\377\015\377\377\377\005\377\377\377\002\377\377\377\000\377\377\377\000\377" "\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377" "\377\002\377\377\377\007\377\377\377\030\377\377\377\060\377\377\377E\377\377\377" "Q\377\377\377V\377\377\377Y\377\377\377[\377\377\377]\377\377\377_\377\377" "\377b\377\377\377d\366\366\366k\201\201\201\301\070\070\070\362WWW\342\320\320" "\320\214\377\377\377q\377\377\377r\377\377\377t\377\377\377w\377\377\377" "y\377\377\377{\203\203\203\317\000\000\000\377\000\000\000\377\000\000\000\377ppp\335\377\377" "\377\201\377\377\377\200\377\377\377~\377\377\377|\377\377\377z\377\377\377" "w\377\377\377u\377\377\377s\377\377\377r\377\377\377y\377\377\377\215\377" "\377\377\262\377\377\377\327\377\377\377\356\377\377\377\370\377\377\377" "\374\377\377\377\375\377\377\377\375\377\377\377\373\377\377\377\370\377" "\377\377\356\377\377\377\332\377\377\377\273\377\377\377\017\377\377\377\007" "\377\377\377\002\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377" "\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377" "\377\000\377\377\377\000\377\377\377\005\377\377\377\027\377\377\377\064\377\377" "\377L\377\377\377W\377\377\377[\377\377\377]\377\377\377`\377\377\377b\377" "\377\377d\377\377\377f\377\377\377g\377\377\377j\377\377\377l\377\377\377" "n\377\377\377p\377\377\377r\377\377\377t\377\377\377w\377\377\377y\377\377" "\377{\373\373\373\177???\363\000\000\000\377\000\000\000\377\000\000\000\377\255\255\255\265" "\377\377\377\200\377\377\377~\377\377\377|\377\377\377y\377\377\377w\377" "\377\377u\377\377\377s\377\377\377q\377\377\377u\377\377\377\211\377\377" "\377\261\377\377\377\334\377\377\377\366\377\377\377\375\377\377\377\377" "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" "\377\377\377\377\377\376\377\377\377\371\377\377\377\352\377\377\377\003\377" "\377\377\001\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377" "\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377" "\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\005\377\377\377\036" "\377\377\377@\377\377\377U\377\377\377\\\377\377\377`\377\377\377b\377\377" "\377d\377\377\377e\377\377\377g\377\377\377j\377\377\377l\377\377\377n\377" "\377\377p\377\377\377r\377\377\377t\377\377\377w\377\377\377y\377\377\377" "{\377\377\377}\261\261\261\260\000\000\000\377\000\000\000\377\000\000\000\377???\363\366\366" "\366\205\377\377\377~\377\377\377|\377\377\377y\377\377\377w\377\377\377" "u\377\377\377s\377\377\377q\377\377\377q\377\377\377|\377\377\377\241\377" "\377\377\322\377\377\377\365\377\377\377\376\377\377\377\377\377\377\377" "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\374\377\377\377" "\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000" "\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377" "\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\001\377\377" "\377\013\377\377\377-\377\377\377O\377\377\377]\377\377\377b\377\377\377d" "\377\377\377e\377\377\377g\377\377\377j\377\377\377l\377\377\377n\377\377" "\377q\377\377\377r\377\377\377t\377\377\377w\377\377\377y\377\377\377{\377" "\377\377|\350\350\350\214\070\070\070\366\000\000\000\377\000\000\000\377\035\035\035\374\314" "\314\314\240\377\377\377~\377\377\377|\377\377\377z\377\377\377w\377\377" "\377v\377\377\377t\377\377\377q\377\377\377o\377\377\377q\377\377\377\210" "\377\377\377\271\377\377\377\352\377\377\377\375\377\377\377\377\377\377" "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" "\377\377\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377" "\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377" "\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000" "\377\377\377\000\377\377\377\004\377\377\377\034\377\377\377E\377\377\377^\377" "\377\377d\377\377\377f\377\377\377g\377\377\377j\377\377\377l\377\377\377" "n\377\377\377p\377\377\377r\377\377\377t\377\377\377w\377\377\377y\377\377" "\377{\377\377\377|\375\375\375\177jjj\337\000\000\000\377\000\000\000\377\022\022\022\376" "\273\273\273\253\377\377\377~\377\377\377|\377\377\377y\377\377\377x\377" "\377\377v\377\377\377t\377\377\377q\377\377\377o\377\377\377m\377\377\377" "r\377\377\377\223\377\377\377\314\377\377\377\365\377\377\377\377\377\377" "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" "\377\377\377\377\377\377\377\377\377\000\377\377\377\000\377\377\377\000\377\377" "\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377" "\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000" "\377\377\377\000\377\377\377\000\377\377\377\001\377\377\377\020\377\377\377\071" "\377\377\377[\377\377\377e\377\377\377h\377\377\377j\377\377\377l\377\377" "\377n\377\377\377q\377\377\377r\377\377\377t\377\377\377w\377\377\377y\377" "\377\377{\377\377\377}\377\377\377\177\237\237\237\276\000\000\000\377\000\000\000\377" "\032\032\032\375\273\273\273\253\377\377\377~\377\377\377|\377\377\377y\377" "\377\377w\377\377\377v\377\377\377t\377\377\377q\377\377\377o\377\377\377" "m\377\377\377k\377\377\377s\377\377\377\232\377\377\377\326\377\377\377\371" "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\000\377\377\377" "\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000" "\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377" "\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377" "\377\013\377\377\377\061\377\377\377X\377\377\377g\377\377\377j\377\377\377" "l\377\377\377n\377\377\377q\377\377\377r\377\377\377t\377\377\377w\377\377" "\377y\377\377\377{\377\377\377|\377\377\377~\324\324\324\233\026\026\026\375" "\000\000\000\377'''\372\305\305\305\244\377\377\377~\377\377\377|\377\377\377z" "\377\377\377x\377\377\377v\377\377\377t\377\377\377q\377\377\377o\377\377" "\377m\377\377\377k\377\377\377j\377\377\377r\377\377\377\233\377\377\377" "\330\377\377\377\372\377\377\377\377\377\377\377\377\377\377\377\377\377" "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" "\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377" "\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377" "\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000" "\377\377\377\000\377\377\377\010\377\377\377,\377\377\377V\377\377\377h\377" "\377\377l\377\377\377n\377\377\377p\377\377\377r\377\377\377t\377\377\377" "w\377\377\377y\377\377\377{\377\377\377|\377\377\377\177\377\377\377\200" "```\346\000\000\000\377+++\371\320\320\320\235\377\377\377~\377\377\377|\377\377" "\377y\377\377\377w\377\377\377v\377\377\377s\377\377\377q\377\377\377o\377" "\377\377m\377\377\377k\377\377\377j\377\377\377h\377\377\377o\377\377\377" "\224\377\377\377\322\377\377\377\370\377\377\377\377\377\377\377\377\377" "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" "\377\377\377\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377" "\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377" "\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377" "\000\377\377\377\000\377\377\377\000\377\377\377\011\377\377\377.\377\377\377Y\377" "\377\377j\377\377\377n\377\377\377q\377\377\377r\377\377\377t\377\377\377" "w\377\377\377y\377\377\377{\377\377\377|\377\377\377\177\377\377\377\201" "\317\317\317\240\000\000\000\377\015\015\015\376\306\306\306\243\377\377\377~\377" "\377\377|\377\377\377z\377\377\377x\377\377\377v\377\377\377s\377\377\377" "q\377\377\377o\377\377\377m\377\377\377k\377\377\377i\377\377\377g\377\377" "\377e\377\377\377j\377\377\377\210\377\377\377\303\377\377\377\362\377\377" "\377\376\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" "\377\377\377\377\377\377\377\377\377\377\377\377\377\000\377\377\377\000\377" "\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377" "\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377" "\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\001\377\377\377\015" "\377\377\377\065\377\377\377]\377\377\377m\377\377\377p\377\377\377r\377\377" "\377t\377\377\377w\377\377\377y\377\377\377{\377\377\377|\377\377\377\177" "\377\377\377\201\377\377\377\203\234\234\234\303\000\000\000\377\211\211\211\314" "\377\377\377~\377\377\377|\377\377\377y\377\377\377x\377\377\377v\377\377" "\377t\377\377\377q\377\377\377o\377\377\377m\377\377\377k\377\377\377i\377" "\377\377g\377\377\377e\377\377\377c\377\377\377e\377\377\377z\377\377\377" "\253\377\377\377\342\377\377\377\373\377\377\377\377\377\377\377\377\377" "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" "\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377" "\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377" "\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000" "\377\377\377\002\377\377\377\027\377\377\377C\377\377\377d\377\377\377o\377" "\377\377r\377\377\377t\377\377\377w\377\377\377y\377\377\377{\377\377\377" "}\377\377\377\177\377\377\377\201\377\377\377\203\377\377\377\204qqq\334" "\000\000\000\377\320\320\320\233\377\377\377{\377\377\377y\377\377\377x\377\377" "\377v\377\377\377s\377\377\377q\377\377\377o\377\377\377m\377\377\377k\377" "\377\377j\377\377\377g\377\377\377e\377\377\377b\377\377\377`\377\377\377" "a\377\377\377k\377\377\377\215\377\377\377\302\377\377\377\356\377\377\377" "\375\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" "\377\377\377\377\377\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377" "\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000" "\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377" "\377\377\000\377\377\377\000\377\377\377\011\377\377\377)\377\377\377S\377\377" "\377k\377\377\377r\377\377\377t\377\377\377w\377\377\377y\377\377\377{\377" "\377\377|\377\377\377\177\377\377\377\201\377\377\377\203\377\377\377\204" "\377\377\377\203[[[\347\000\000\000\377\367\367\367\200\377\377\377z\377\377\377" "w\377\377\377v\377\377\377s\377\377\377q\377\377\377o\377\377\377m\377\377" "\377k\377\377\377i\377\377\377g\377\377\377e\377\377\377c\377\377\377a\377" "\377\377_\377\377\377^\377\377\377_\377\377\377r\377\377\377\231\377\377" "\377\313\377\377\377\356\377\377\377\373\377\377\377\376\377\377\377\377" "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377" "\377\377\377\377\377\377\377\377\377\377\377\377\377\003\377\377\377\001\377" "\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377" "\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377" "\000\377\377\377\000\377\377\377\000\377\377\377\005\377\377\377\033\377\377\377B" "\377\377\377c\377\377\377p\377\377\377t\377\377\377w\377\377\377y\377\377" "\377{\377\377\377|\377\377\377~\377\377\377\201\377\377\377\203\377\377\377" "\204\377\377\377\202\377\377\377\200JJJ\356...\370\377\377\377z\377\377\377" "w\377\377\377v\377\377\377s\377\377\377q\377\377\377o\377\377\377m\377\377" "\377k\377\377\377i\377\377\377g\377\377\377e\377\377\377c\377\377\377a\377" "\377\377_\377\377\377]\377\377\377Z\377\377\377Y\377\377\377_\377\377\377" "q\377\377\377\227\377\377\377\300\377\377\377\341\377\377\377\362\377\377" "\377\372\377\377\377\374\377\377\377\375\377\377\377\376\377\377\377\376" "\377\377\377\375\377\377\377\374\377\377\377\370\377\377\377\023\377\377\377" "\011\377\377\377\003\377\377\377\001\377\377\377\000\377\377\377\000\377\377\377\000" "\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377" "\377\377\000\377\377\377\001\377\377\377\005\377\377\377\027\377\377\377;\377\377" "\377\\\377\377\377n\377\377\377t\377\377\377w\377\377\377y\377\377\377{\377" "\377\377|\377\377\377~\377\377\377\200\377\377\377\204\377\377\377\204\377" "\377\377\203\377\377\377\200\377\377\377~BBB\361;;;\363\377\377\377w\377" "\377\377v\377\377\377s\377\377\377q\377\377\377o\377\377\377m\377\377\377" "l\377\377\377j\377\377\377g\377\377\377e\377\377\377c\377\377\377`\377\377" "\377_\377\377\377]\377\377\377Z\377\377\377X\377\377\377V\377\377\377V\377" "\377\377[\377\377\377k\377\377\377\207\377\377\377\245\377\377\377\300\377" "\377\377\324\377\377\377\341\377\377\377\350\377\377\377\354\377\377\377" "\354\377\377\377\352\377\377\377\342\377\377\377\323\377\377\377\060\377\377" "\377%\377\377\377\027\377\377\377\014\377\377\377\005\377\377\377\002\377\377\377" "\001\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\001" "\377\377\377\003\377\377\377\013\377\377\377\037\377\377\377=\377\377\377[\377" "\377\377l\377\377\377s\377\377\377w\377\377\377y\377\377\377{\377\377\377" "}\377\377\377\177\377\377\377\201\377\377\377\203\377\377\377\204\377\377" "\377\203\377\377\377\200\377\377\377~\377\377\377|\343\343\343\212\343\343" "\343\211\377\377\377v\377\377\377s\377\377\377q\377\377\377o\377\377\377" "m\377\377\377k\377\377\377i\377\377\377g\377\377\377e\377\377\377b\377\377" "\377`\377\377\377_\377\377\377]\377\377\377Z\377\377\377X\377\377\377V\377" "\377\377T\377\377\377R\377\377\377Q\377\377\377S\377\377\377[\377\377\377" "j\377\377\377{\377\377\377\213\377\377\377\230\377\377\377\242\377\377\377" "\253\377\377\377\254\377\377\377\252\377\377\377\236\377\377\377\214\377" "\377\377I\377\377\377D\377\377\377;\377\377\377\060\377\377\377\"\377\377" "\377\026\377\377\377\016\377\377\377\012\377\377\377\010\377\377\377\010\377\377" "\377\013\377\377\377\021\377\377\377\036\377\377\377\061\377\377\377H\377\377" "\377_\377\377\377m\377\377\377s\377\377\377w\377\377\377y\377\377\377{\377" "\377\377|\377\377\377~\377\377\377\201\377\377\377\203\377\377\377\204\377" "\377\377\203\377\377\377\200\377\377\377~\377\377\377|\377\377\377y\377\377" "\377w\377\377\377v\377\377\377s\377\377\377q\377\377\377o\377\377\377m\377" "\377\377k\377\377\377i\377\377\377g\377\377\377e\377\377\377b\377\377\377" "`\377\377\377_\377\377\377]\377\377\377Z\377\377\377X\377\377\377V\377\377" "\377T\377\377\377S\377\377\377P\377\377\377N\377\377\377K\377\377\377K\377" "\377\377M\377\377\377O\377\377\377R\377\377\377W\377\377\377[\377\377\377" "_\377\377\377`\377\377\377_\377\377\377X\377\377\377M\377\377\377R\377\377" "\377S\377\377\377R\377\377\377O\377\377\377I\377\377\377A\377\377\377\071" "\377\377\377\063\377\377\377\060\377\377\377\060\377\377\377\066\377\377\377" "@\377\377\377M\377\377\377[\377\377\377g\377\377\377o\377\377\377t\377\377" "\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\377" "\201\377\377\377\203\377\377\377\204\377\377\377\203\377\377\377\200\377" "\377\377~\377\377\377{\377\377\377y\377\377\377x\377\377\377v\377\377\377" "s\377\377\377q\377\377\377o\377\377\377m\377\377\377l\377\377\377i\377\377" "\377g\377\377\377e\377\377\377b\377\377\377`\377\377\377_\377\377\377]\377" "\377\377Z\377\377\377X\377\377\377V\377\377\377U\377\377\377R\377\377\377" "P\377\377\377N\377\377\377K\377\377\377I\377\377\377H\377\377\377F\377\377" "\377D\377\377\377B\377\377\377@\377\377\377?\377\377\377?\377\377\377>\377" "\377\377<\377\377\377\071\377\377\377\064\377\377\377U\377\377\377W\377\377" "\377Y\377\377\377Z\377\377\377\\\377\377\377\\\377\377\377\\\377\377\377" "[\377\377\377[\377\377\377]\377\377\377`\377\377\377d\377\377\377j\377\377" "\377n\377\377\377q\377\377\377t\377\377\000\377\377\377\000\377\377\377\000\377" "\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\377\204" "\377\377\377\202\377\377\377\200\377\377\377~\377\377\377|\377\377\377z\377" "\377\377w\345\345\345\206\241\241\241\262\246\246\246\255\361\361\361w\377" "\377\377m\377\377\377l\377\377\377j\377\377\377g\377\377\377e\377\377\377" "b\377\377\377`\000\000\377\377\000\000\377\377\000\000\377\377\000\000\377\377\000\000\377\377" "\377\377\377U\377\377\377R\377\377\377P\377\377\377N\377\377\377K\377\377" "\377I\377\377\377H\377\377\377F\377\377\377D\377\377\377B\377\377\377?\377" "\377\377=\377\377\377;\377\377\377\071\377\377\377\067\377\377\377\065\377\377" "\377\062\377\377\377\061\374\377\377Y\374\377\377Z\375\377\377\\\375\377\377" "^\375\377\377a\375\377\377c\375\377\377e\375\377\377g\375\377\377i\375\377" "\377k\376\377\377m\375\377\377o\375\377\377q\375\377\377s\375\377\377v\375" "\377\377x\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377" "\000\377\377\377\000\377\377\377\000\377\375\377\377\203\375\377\377\201\375\377" "\377\177\375\377\377}\375\377\377z\375\377\377y\337\340\340\211...\367\000" "\000\000\377\000\000\000\377JJJ\352\362\363\363s\375\377\377j\375\377\377h\375\377" "\377f\375\377\377d\375\377\377a\000\000\377\377\000\000\377\377\000\000\377\377\000\000\377" "\377\000\000\377\377\000\000\377\377\000\000\377\377\374\377\377Q\374\377\377O\374\377" "\377M\374\377\377K\374\377\377I\374\377\377G\374\377\377E\375\377\377B\374" "\377\377A\375\377\377>\373\377\377=\373\377\377:\375\377\377\067\373\377\377" "\066\373\377\377\064\373\377\377\062\372\377\377\060\365\377\377^\365\377\377" "`\367\377\377b\367\377\377d\367\377\377g\366\377\377h\366\377\377j\367\377" "\377l\370\377\377n\367\377\377q\370\377\377r\367\377\377t\367\377\377v\367" "\377\377y\370\377\377{\370\377\377}\377\377\000\377\377\377\000\377\377\377\000" "\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\370\377\377" "\204\370\377\377\202\371\377\377\177\370\377\377}\371\377\377{\367\377\377" "z\212\216\216\303\000\000\000\377\000\000\000\377\000\000\000\377\000\000\000\377\246\254\254\245" "\366\377\377l\366\377\377j\366\377\377h\367\377\377e\366\377\377d\000\000\377" "\377\000\000\377\377\000\000\377\377\000\000\377\377\000\000\377\377\000\000\377\377\000\000\377" "\377\365\377\377S\365\377\377P\363\377\377O\363\377\377N\363\377\377K\362" "\377\377I\362\377\377G\363\377\377D\363\377\377C\361\377\377A\362\377\377" "?\362\377\377=\357\377\377;\357\377\377\071\360\377\377\067\355\377\377\065" "\357\377\377\062\357\377\377d\357\377\377f\357\377\377h\360\377\377j\360\377" "\377l\360\377\377n\360\377\377p\361\377\377r\361\377\377t\361\377\377v\361" "\377\377x\362\377\377z\362\377\377|\362\377\377~\362\377\377\201\362\377" "\377\201\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377" "\000\377\377\377\000\377\377\377\000\377\363\377\377\205\363\377\377\203\362\377" "\377\201\362\377\377\200\362\377\377~\362\377\377{\205\214\214\305\000\000\000" "\377\000\000\000\377\000\000\000\377\000\000\000\377\240\251\251\250\360\377\377m\360\377\377" "k\360\377\377j\357\377\377h\357\377\377e\000\000\377\377\000\000\377\377\000\000\377" "\377\000\000\377\377\000\000\377\377\000\000\377\377\000\000\377\377\354\377\377V\353\377" "\377S\353\376\377R\352\376\377P\352\376\377N\351\377\377K\350\376\377I\350" "\377\377H\347\376\377F\346\377\377D\346\376\377B\345\377\377@\344\376\377" ">\343\376\377<\342\377\377:\341\376\377\070\340\376\377\066\351\376\377j\351" "\376\377l\351\376\377n\352\376\377p\352\376\377q\352\376\377s\353\377\377" "v\353\377\377x\354\377\377z\354\377\377{\354\377\377}\355\377\377\177\355" "\377\377\201\355\377\377\204\355\377\377\205\356\377\377\207\377\377\000\377" "\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377\377\000\377\377" "\377\000\377\355\377\377\206\355\377\377\204\355\377\377\203\355\377\377\201" "\354\377\377~\354\377\377|\310\330\330\222\032\035\035\374\000\000\000\377\000\000\000\377" "\065::\362\331\354\354|\352\377\377o\351\376\377n\351\377\377l\350\377\377" "i\350\376\377g\000\000\377\377\000\000\377\377\000\000\377\377\000\000\377\377\000\000\377\377" "\000\000\377\377\000\000\377\377\344\376\377X\343\377\377V\342\376\377T\342\376\377" "R\341\376\377P\340\376\377N\337\376\377M\336\376\377K\335\376\377I\334\376" "\377G\333\376\377D\332\376\377B\331\376\377A\330\376\377?\326\376\377=\325" "\376\377;\323\376\377\071\344\376\377o\343\376\377r\344\376\377s\344\376\377" "u\345\376\377w\345\376\377y\346\376\377{\346\376\377}\346\377\377~\347\376" "\377\201\347\376\377\203\350\376\377\204\350\376\377\206\351\376\377\207" "\351\376\377\211\352\376\377\213\351\376\377\215\377\377\000\377\377\377\000" "\377\377\377\000\377\377\377\000\377\377\377\000\377\350\376\377\211\351\377\377" "\206\350\376\377\206\350\377\377\204\347\376\377\202\347\376\377\200\347" "\376\377}\347\376\377{\302\327\330\222\177\216\216\304\203\223\223\277\315" "\345\345\203\344\376\377r\343\376\377q\344\376\377n\343\376\377l\342\376" "\377k\341\376\377i\000\000\377\377\000\000\377\377\000\000\377\377\000\000\377\377\000\000\377" "\377\000\000\377\377\000\000\377\377\334\376\377Z\333\376\377Y\332\376\377W\331\376" "\377T\330\376\377S\327\376\377Q\326\376\377O\326\376\377M\324\376\377K\322" "\376\377I\322\376\377G\320\376\377F\316\376\377D\314\376\377B\314\376\377" "?\310\376\377>\307\376\377=\325\374\377{\325\375\377}\326\374\377\177\326" "\375\377\200\327\375\377\203\330\375\377\203\330\375\377\206\330\375\377" "\210\331\375\377\212\332\376\377\213\332\375\377\214\333\375\377\217\333" "\376\377\220\334\375\377\222\334\375\377\224\334\375\377\226\335\375\377" "\230\336\375\377\230\335\375\377\227\334\375\377\225\334\376\377\223\333" "\375\377\221\333\376\377\217\333\375\377\216\332\375\377\214\331\376\377" "\213\331\375\377\210\331\375\377\206\330\375\377\205\330\375\377\204\326" "\375\377\202\326\374\377\200\325\375\377~\325\374\377|\324\374\377{\323\374" "\377y\323\374\377w\323\374\377u\321\374\377t\320\374\377q\317\374\377q\000" "\000\377\377\000\000\377\377\000\000\377\377\000\000\377\377\000\000\377\377\312\374\377f\311" "\374\377d\307\374\377b\306\374\377a\304\374\377_\304\374\377]\303\374\377" "[\301\374\377Z\277\374\377X\276\374\377V\274\374\377U\272\374\377S\270\374" "\377P\267\374\377O\264\374\377M\262\373\377K\260\373\377K\256\373\377H\307" "\373\377\207\310\373\377\211\311\373\377\211\312\373\377\213\313\373\377" "\215\314\373\377\217\314\373\377\220\314\373\377\221\315\373\377\224\315" "\373\377\225\316\373\377\227\317\373\377\230\320\373\377\232\320\374\377" "\234\321\374\377\234\321\374\377\237\322\374\377\237\322\374\377\236\320" "\374\377\234\320\374\377\233\320\373\377\231\317\373\377\230\317\373\377" "\226\315\373\377\224\315\373\377\223\314\373\377\221\314\373\377\217\313" "\373\377\216\313\373\377\214\312\373\377\212\311\373\377\211\310\373\377" "\207\307\373\377\205\307\373\377\205\306\373\377\203\304\373\377\201\304" "\373\377\177\303\373\377~\302\373\377|\302\373\377{\300\373\377y\277\373" "\377w\276\373\377u\275\373\377s\274\373\377r\273\373\377q\272\373\377o\270" "\373\377n\266\372\377k\265\372\377j\264\372\377h\262\372\377g\261\372\377" "f\257\372\377d\254\372\377b\253\372\377a\251\372\377_\247\372\377]\246\372" "\377\\\243\371\377Z\240\371\377X\236\371\377X\234\371\377U\230\371\377T\274" "\372\377\221\275\372\377\222\276\372\377\224\277\372\377\225\277\372\377" "\227\300\372\377\231\300\372\377\232\302\372\377\233\303\372\377\235\303" "\372\377\237\303\372\377\237\305\372\377\241\305\373\377\243\306\372\377" "\245\306\373\377\246\307\373\377\246\306\373\377\246\306\372\377\244\305" "\372\377\242\304\373\377\240\303\372\377\240\303\372\377\236\302\372\377" "\234\301\372\377\233\300\372\377\232\300\372\377\230\277\372\377\226\277" "\372\377\225\276\372\377\223\274\372\377\222\274\372\377\220\273\372\377" "\217\272\372\377\215\271\372\377\213\271\372\377\212\270\372\377\211\266" "\372\377\207\265\372\377\206\264\372\377\205\263\372\377\203\262\372\377" "\201\261\371\377\200\260\371\377~\257\371\377~\256\371\377|\254\371\377z" "\252\371\377x\251\371\377w\246\371\377u\246\371\377t\244\371\377s\243\371" "\377q\241\371\377p\236\370\377m\235\370\377l\233\370\377j\231\370\377j\227" "\370\377h\224\370\377f\221\370\377e\220\370\377c\216\370\377b\212\367\377" "`\206\370\377^\255\370\377\236\256\370\377\240\257\370\377\241\257\370\377" "\242\261\370\377\243\260\370\377\245\263\370\377\246\263\370\377\247\263" "\370\377\251\264\370\377\252\264\370\377\254\267\371\377\255\267\371\377" "\257\270\371\377\260\270\371\377\260\267\371\377\257\267\371\377\256\267" "\370\377\254\265\370\377\253\263\370\377\252\263\370\377\251\264\370\377" "\247\262\370\377\246\260\370\377\245\261\370\377\243\257\370\377\243\256" "\370\377\242\256\370\377\237\254\370\377\236\253\370\377\235\252\370\377" "\233\252\370\377\232\251\370\377\232\250\370\377\227\246\370\377\226\245" "\370\377\224\244\370\377\223\243\370\377\222\242\367\377\221\240\367\377" "\217\240\367\377\216\236\367\377\214\236\367\377\214\234\367\377\212\233" "\367\377\210\231\367\377\207\227\367\377\206\226\367\377\205\224\366\377" "\203\222\366\377\203\221\366\377\201\217\367\377\177\215\366\377~\214\366" "\377}\211\366\377{\207\366\377y\206\367\377x\202\366\377w\200\366\377u~\365" "\377u{\365\377sx\365\377qv\365\377rs\365\377o\237\367\377\254\240\367\377" "\255\240\367\377\256\242\367\377\257\242\367\377\257\243\367\377\261\244" "\367\377\262\245\367\377\264\246\367\377\265\246\367\377\267\247\367\377" "\267\247\370\377\271\251\370\377\271\250\370\377\272\251\370\377\270\247" "\370\377\270\250\370\377\267\246\370\377\266\245\370\377\264\245\367\377" "\263\244\367\377\262\243\367\377\261\242\367\377\260\241\367\377\256\241" "\367\377\256\237\367\377\254\236\367\377\253\236\367\377\252\235\367\377" "\250\233\367\377\247\233\367\377\246\232\366\377\245\231\367\377\244\230" "\367\377\242\226\367\377\242\225\366\377\240\224\366\377\237\223\366\377" "\236\222\366\377\235\220\366\377\234\217\365\377\232\216\366\377\231\215" "\366\377\231\213\365\377\227\212\366\377\226\210\365\377\225\207\365\377" "\223\205\365\377\222\203\365\377\221\202\365\377\220\200\365\377\217~\365" "\377\215}\364\377\215{\365\377\213y\364\377\213v\365\377\211t\365\377\207" "q\364\377\206p\364\377\205n\364\377\205k\364\377\203g\364\377\202d\364\377" "\201c\364\377\200\222\365\377\267\222\365\377\270\224\365\377\272\224\365" "\377\272\225\365\377\274\226\365\377\274\227\366\377\276\230\366\377\277" "\231\366\377\300\231\366\377\301\232\366\377\301\232\366\377\303\234\366" "\377\303\232\366\377\302\232\366\377\301\231\366\377\300\230\365\377\277" "\230\366\377\277\227\366\377\275\226\366\377\275\225\365\377\273\224\366" "\377\272\223\365\377\271\222\365\377\270\221\365\377\267\220\365\377\266" "\220\365\377\264\217\365\377\264\215\365\377\263\215\365\377\262\214\365" "\377\261\212\365\377\260\211\365\377\256\210\365\377\256\207\365\377\255" "\207\365\377\254\205\365\377\253\203\365\377\252\202\364\377\251\201\364" "\377\250\200\364\377\247\177\364\377\245|\364\377\245{\364\377\244y\364\377" "\242x\364\377\241w\364\377\241u\363\377\237t\364\377\240r\363\377\236p\364" "\377\234p\364\377\234m\363\377\233k\364\377\232i\363\377\231g\363\377\230" "e\363\377\226c\363\377\225b\363\377\225^\362\377\223[\363\377\223Y\363\377" "\222V\363\377\221T\362\377\220\206\364\377\302\206\364\377\302\207\364\377" "\304\207\364\377\305\211\365\377\306\212\365\377\306\212\364\377\307\213" "\365\377\311\214\365\377\311\215\365\377\312\215\365\377\313\216\365\377" "\314\215\365\377\313\214\365\377\313\214\364\377\311\213\365\377\310\212" "\365\377\307\212\365\377\307\211\365\377\306\207\364\377\305\206\365\377" "\303\206\364\377\303\206\364\377\302\205\364\377\301\204\364\377\301\203" "\364\377\277\201\364\377\276\200\364\377\276\200\364\377\274~\364\377\274" "}\364\377\273|\364\377\272{\364\377\272z\363\377\271z\364\377\270x\363\377" "\267w\363\377\266v\363\377\265t\363\377\264t\363\377\263r\363\377\263p\363" "\377\261n\363\377\260m\363\377\260k\364\377\257k\363\377\256j\363\377\255" "i\363\377\254g\363\377\253e\363\377\253d\363\377\252b\362\377\251`\362\377" "\250^\362\377\247\\\362\377\246Z\362\377\245X\362\377\244V\362\377\244S\362" "\377\243Q\362\377\241N\362\377\241L\362\377\240J\362\377\237H\362\377\236" "w\363\377\317w\363\377\320x\363\377\321y\363\377\321y\363\377\322z\363\377" "\323{\363\377\324|\363\377\324}\363\377\325~\363\377\326~\363\377\326}\363" "\377\325}\363\377\325{\362\377\324z\363\377\323z\362\377\322y\363\377\322" "y\363\377\321x\363\377\321w\363\377\317u\363\377\316t\362\377\316u\363\377" "\316t\363\377\314r\363\377\313r\363\377\313q\362\377\312p\363\377\312o\362" "\377\311n\362\377\310m\362\377\310l\362\377\307k\362\377\307i\362\377\306" "h\362\377\305g\362\377\304f\362\377\304d\362\377\303d\362\377\302c\361\377" "\302b\362\377\301`\362\377\300^\362\377\277]\362\377\276\\\362\377\276Z\362" "\377\275Z\362\377\275X\362\377\273V\362\377\273V\362\377\272S\361\377\272" "R\362\377\270Q\362\377\270O\361\377\267N\362\377\270L\362\377\266I\361\377" "\266H\361\377\265E\361\377\265C\361\377\264A\361\377\263=\361\377\262<\361" "\377\262\071\361\377\261g\361\377\332h\361\377\333i\361\377\334j\361\377\334" "j\361\377\335k\362\377\335k\361\377\336l\361\377\336m\361\377\336m\361\377" "\337m\362\377\336l\361\377\336k\361\377\335j\361\377\335j\361\377\334i\361" "\377\334i\361\377\334g\361\377\334g\361\377\332f\361\377\332f\361\377\331" "d\360\377\331c\361\377\330b\360\377\327b\361\377\327a\360\377\326`\360\377" "\326`\360\377\326_\361\377\325^\360\377\324]\360\377\324\\\360\377\323[\360" "\377\323Y\360\377\322Y\360\377\321W\360\377\321W\360\377\320V\360\377\320" "T\360\377\320S\360\377\317R\360\377\316P\360\377\316O\360\377\315O\360\377" "\315N\360\377\314L\360\377\314K\360\377\313I\360\377\312H\360\377\312G\360" "\377\311F\360\377\311D\357\377\310B\360\377\310A\357\377\307?\357\377\307" ">\357\377\306<\360\377\305\071\360\377\305\070\357\377\304\067\357\377\303\063" "\360\377\304\062\357\377\303/\357\377\303-\357\377\301Z\360\377\344Z\361\377" "\344[\360\377\344[\361\377\344\\\360\377\345]\361\377\346]\361\377\346^\361" "\377\346^\361\377\347]\360\377\347]\361\377\346\\\360\377\346\\\360\377\345" "Z\360\377\344Z\360\377\344Y\360\377\344Y\360\377\344X\360\377\343X\360\377" "\343W\361\377\342V\360\377\342U\360\377\341U\357\377\340T\357\377\340T\360" "\377\340S\360\377\340R\360\377\340Q\360\377\337P\360\377\337N\357\377\336" "N\357\377\336M\360\377\336M\357\377\335L\357\377\335L\360\377\334J\357\377" "\334I\360\377\334H\357\377\333G\357\377\332F\360\377\332E\357\377\332D\357" "\377\331C\357\377\331B\357\377\331A\357\377\330@\357\377\330>\357\377\327" "=\357\377\327<\357\377\326;\357\377\325\071\357\377\325\070\357\377\326\067" "\357\377\326\065\357\377\324\063\357\377\324\062\357\377\323\060\357\377\322" "/\356\377\322-\356\377\322*\356\377\321)\357\377\322'\357\377\321$\356\377" "\321#\357\377\321L\357\377\353N\357\377\354N\357\377\353N\360\377\353O\360" "\377\355P\357\377\355Q\360\377\355Q\360\377\355P\357\377\355P\360\377\355" "O\357\377\354N\360\377\354M\357\377\353M\357\377\353L\357\377\353K\357\377" "\353K\357\377\352K\357\377\352J\360\377\352J\357\377\351I\357\377\351H\357" "\377\351G\357\377\350G\357\377\350F\357\377\350E\357\377\350D\357\377\347" "D\357\377\347C\357\377\347C\357\377\347B\357\377\346A\357\377\346?\357\377" "\346?\357\377\346>\357\377\345>\357\377\345=\357\377\344<\357\377\344;\357" "\377\343:\357\377\343\071\357\377\343\070\357\377\343\066\356\377\343\067\357" "\377\342\065\356\377\341\064\356\377\341\063\356\377\341\062\356\377\341\061\356" "\377\341/\357\377\340/\356\377\340-\357\377\337,\356\377\340+\357\377\337" ")\356\377\337(\356\377\336&\357\377\336%\356\377\336$\356\377\335\"\356\377" "\335\037\356\377\335\036\356\377\334\034\356\377\335\032\356\377\334B\356\377" "\361B\357\377\361C\357\377\361D\356\377\361D\356\377\361D\357\377\362E\356" "\377\362E\357\377\362D\357\377\361B\357\377\361C\357\377\361B\357\377\361" "B\357\377\360A\357\377\360A\356\377\360@\356\377\360@\356\377\357?\356\377" "\357>\356\377\357>\357\377\357<\357\377\357<\356\377\356<\356\377\356;\356" "\377\356;\357\377\355:\356\377\355:\356\377\355\070\357\377\355\070\356\377" "\355\067\356\377\354\067\356\377\354\067\356\377\354\065\356\377\354\064\356\377" "\354\064\356\377\354\062\356\377\354\062\356\377\353\061\356\377\353\060\356\377" "\352\060\357\377\352/\356\377\352.\356\377\352.\356\377\352-\356\377\351+" "\356\377\351*\356\377\351)\356\377\350)\356\377\350'\356\377\350&\356\377" "\350%\356\377\350%\356\377\350$\356\377\347!\356\377\347!\356\377\347\037" "\356\377\347\037\355\377\346\035\356\377\347\034\355\377\346\031\355\377\346" "\030\356\377\345\027\355\377\345\024\356\377\345\023\356\377\345\066\356\377\365" "\067\356\377\365\070\356\377\366\071\356\377\366\071\356\377\366:\356\377\366" "\071\356\377\365\070\356\377\366\070\356\377\365\067\356\377\365\066\356\377\365" "\066\356\377\365\065\356\377\365\066\356\377\364\065\356\377\364\064\356\377\364" "\064\356\377\364\063\356\377\363\063\356\377\363\062\356\377\364\062\356\377\363" "\061\356\377\363\061\356\377\363\060\355\377\363/\356\377\362/\356\377\362." "\356\377\362.\356\377\362-\356\377\362-\356\377\362,\356\377\362+\356\377" "\362+\356\377\361+\356\377\361*\356\377\361)\356\377\361(\356\377\361'\356" "\377\361'\356\377\361&\356\377\360%\355\377\360$\356\377\360#\355\377\360" "#\356\377\360#\356\377\360!\356\377\357\040\356\377\357\040\355\377\357\036" "\356\377\357\036\355\377\357\035\356\377\357\034\355\377\357\033\355\377\356" "\032\355\377\356\031\355\377\356\030\355\377\355\027\356\377\355\025\355\377\355" "\023\355\377\355\023\355\377\355\021\355\377\355\020\355\377\355\016\355\377\355" "\013\356\377\354,\356\377\370,\355\377\370-\356\377\370.\355\377\370.\356" "\377\371.\356\377\371-\356\377\370,\355\377\370-\355\377\370,\356\377\370" ",\355\377\370+\355\377\370*\355\377\370*\355\377\370)\356\377\370)\356\377" "\367)\356\377\367)\355\377\367(\356\377\367'\355\377\367'\356\377\367'\356" "\377\367'\356\377\367&\355\377\367%\355\377\366%\355\377\367%\355\377\367" "$\355\377\367$\355\377\366#\355\377\366\"\355\377\366!\355\377\366!\355\377" "\366!\355\377\366!\355\377\366\037\355\377\366\037\355\377\365\036\355\377\365" "\036\355\377\365\035\355\377\365\034\355\377\365\034\355\377\365\033\355\377\365" "\032\355\377\365\032\355\377\365\031\355\377\365\031\355\377\364\027\355\377\364" "\027\355\377\364\026\355\377\364\025\355\377\364\024\355\377\364\023\355\377\364" "\022\355\377\364\021\355\377\363\021\355\377\363\017\355\377\363\017\355\377\363" "\015\355\377\363\014\355\377\363\013\355\377\363\012\355\377\363\010\355\377\362" "\006\355\377\362\"\355\377\373#\355\377\373#\355\377\373$\355\377\373$\355" "\377\373#\355\377\373\"\355\377\373\"\355\377\373\"\355\377\373\"\355\377" "\373\"\355\377\373!\355\377\372\040\355\377\372\040\355\377\372\040\355\377" "\372\040\355\377\372\037\355\377\372\037\355\377\372\037\355\377\372\036\355\377" "\372\036\355\377\371\036\355\377\372\035\355\377\372\034\355\377\372\034\355\377" "\371\034\355\377\372\033\355\377\372\033\355\377\372\033\355\377\371\031\355\377" "\371\031\355\377\371\031\355\377\371\031\355\377\371\030\355\377\371\030\355\377" "\371\027\355\377\371\027\355\377\371\026\355\377\371\026\355\377\371\025\354\377" "\371\025\355\377\371\024\355\377\370\023\355\377\370\023\355\377\370\022\355\377" "\370\021\355\377\370\021\355\377\370\021\355\377\370\020\355\377\370\017\355\377" "\370\017\355\377\370\016\355\377\370\015\355\377\370\014\355\377\370\013\355\377" "\370\012\355\377\370\012\355\377\370\011\355\377\367\010\355\377\367\007\355\377" "\367\006\355\377\367\005\355\377\367\004\354\377\367\003\355\377\367\032\355\377\374" "\032\355\377\374\032\354\377\375\031\355\377\374\032\355\377\375\031\355\377\374" "\030\355\377\374\030\355\377\375\030\355\377\374\030\355\377\374\030\355\377\374" "\027\355\377\374\027\355\377\374\027\355\377\374\027\355\377\374\026\355\377\374" "\026\355\377\374\025\355\377\374\025\355\377\374\025\355\377\374\025\355\377\374" "\024\355\377\374\024\355\377\374\024\355\377\374\024\355\377\374\023\355\377\374" "\022\355\377\374\022\355\377\374\022\355\377\374\022\354\377\374\021\355\377\374" "\021\355\377\374\020\355\377\373\020\355\377\373\020\354\377\373\017\354\377\373" "\017\355\377\373\017\355\377\373\016\354\377\373\015\355\377\373\015\355\377\373" "\015\355\377\373\014\355\377\373\014\355\377\373\013\354\377\373\013\354\377\373" "\012\354\377\373\012\354\377\373\011\355\377\373\011\354\377\373\010\354\377\373" "\010\354\377\373\007\354\377\373\007\355\377\373\006\355\377\373\006\354\377\373\005" "\354\377\372\004\354\377\372\004\354\377\372\004\355\377\372\003\354\377\372\002\354" "\377\372\002\354\377\372\001\355\377\372\021\355\377\376\021\354\377\376\020\354" "\377\376\020\355\377\376\020\354\377\376\020\354\377\376\020\355\377\376\017\355" "\377\376\017\355\377\376\017\354\377\376\017\354\377\376\016\354\377\376\016\354" "\377\376\016\354\377\376\016\354\377\376\016\354\377\375\015\355\377\375\015\354" "\377\375\015\355\377\375\015\355\377\375\015\354\377\375\014\355\377\375\014\354" "\377\375\014\354\377\375\014\354\377\375\013\354\377\375\013\354\377\375\013\354" "\377\375\012\354\377\375\013\354\377\375\012\355\377\375\011\355\377\375\011\354" "\377\375\011\354\377\375\011\355\377\375\010\354\377\375\010\354\377\375\010\354" "\377\375\010\355\377\375\007\354\377\375\007\354\377\375\007\355\377\375\006\355\377" "\375\006\355\377\375\006\355\377\375\006\355\377\375\005\355\377\375\005\354\377\375" "\005\354\377\375\004\354\377\375\004\355\377\375\004\354\377\375\004\354\377\375\003" "\355\377\375\003\355\377\375\003\354\377\374\003\354\377\375\003\355\377\375\002\355" "\377\374\002\354\377\374\001\354\377\374\001\354\377\374\001\355\377\374\000\355\377" "\374\010\354\377\376\010\354\377\376\010\354\377\376\010\354\377\376\010\354\377" "\376\010\354\377\376\007\355\377\376\007\354\377\376\007\354\377\376\007\354\377\376" "\007\355\377\376\007\354\377\376\007\354\377\376\007\355\377\376\006\354\377\376\006" "\354\377\376\006\355\377\376\006\354\377\376\006\355\377\376\006\354\377\376\006\354" "\377\376\006\354\377\376\005\355\377\376\006\354\377\376\005\355\377\376\005\355\377" "\376\005\354\377\376\005\355\377\376\005\354\377\376\005\354\377\376\005\354\377\376" "\004\354\377\376\004\354\377\376\004\354\377\376\004\354\377\376\004\354\377\376\004" "\354\377\376\004\354\377\376\003\355\377\376\003\354\377\376\003\354\377\376\003\355" "\377\376\003\354\377\376\003\355\377\376\003\354\377\376\002\354\377\376\002\354\377" "\376\002\355\377\376\002\354\377\376\002\354\377\376\002\354\377\376\002\354\377\376" "\002\354\377\376\001\354\377\376\001\354\377\376\001\354\377\376\001\355\377\376\001" "\354\377\376\001\354\377\376\001\354\377\376\000\354\377\376\001\354\377\376\000\354" "\377\376\000\355\377\376", }; ```
DanielGibson commented 1 year ago

the endian is big

You're using a big endian CPU? Seems possible that Gimp has a bug in it's C exporter on big endian.

Also possible that my code is somehow incorrect, I don't have any big endian machines, but you said that you tried different masks and it still didn't work..

You could try converting the image with my ImgToC tool instead of gimp, maybe that works better? https://github.com/DanielGibson/Snippets/blob/master/ImgToC.c

Kagetsuki commented 1 year ago

Ah, sorry for not updating - I got it to work but I used image magick (I'll grab/extract what I did if you want to know). I can tell you off hand the command I used to convert was like convert test.png -define h:format=RGBA test.h - the important part in that command being the -define h:format=RGBA - you can just define the bit orders/formats somewhat arbitrarily that way (otherwise you get a non-alpha PBM image if I remember correctly).

I think the endian-ism may actually be the GPU or some abstraction with GL - the CPU in this particular case is an Intel x86-64 which is little endian but I actually out of curiosity tied it on my Raspberry Pi 4 and the result was somehow the same, so I think it's some sort of GL abstraction or maybe even some misconfiguration in how Ubuntu/Debian is compiling their SDL2 packages.

The thing with the masks is I think SDL just only supports a few different mask patterns. I found some would run even if they were incorrect but others would give the "Unknown pixel format error." and the pattern that I would in fact need to support that GIMP export just happens to be unsupported.