From 9183fa1755395c2cef191c7436f9434a97f8e8d9 Mon Sep 17 00:00:00 2001 From: mniip Date: Sat, 26 Oct 2013 19:38:50 +0400 Subject: [PATCH 1/5] apparently Ximon hates const; a lot; added a bunch of const everywhere, had to modify a few functions to be const-compliant --- src/Misc.cpp | 10 ++-- src/Misc.h | 6 +-- src/PowderToySDL.cpp | 2 +- src/bson/BSON.cpp | 2 +- src/cat/LegacyLuaAPI.cpp | 16 ++++--- src/cat/LuaScriptHelper.h | 2 +- src/client/Client.cpp | 26 +++++------ src/client/HTTP.cpp | 78 ++++++++++++++----------------- src/client/HTTP.h | 18 +++---- src/simulation/MenuSection.h | 2 +- src/simulation/elements/Element.h | 6 +-- src/simulation/tools/SimTool.h | 6 +-- 12 files changed, 84 insertions(+), 90 deletions(-) diff --git a/src/Misc.cpp b/src/Misc.cpp index 39db54b13..2c6ea8449 100644 --- a/src/Misc.cpp +++ b/src/Misc.cpp @@ -119,7 +119,7 @@ TPT_NO_INLINE float restrict_flt(float f, float min, float max) //TODO Inline or return f; } -char *mystrdup(char *s) +char *mystrdup(const char *s) { char *x; if (s) @@ -128,7 +128,7 @@ char *mystrdup(char *s) strcpy(x, s); return x; } - return s; + return NULL; } void strlist_add(struct strlist **list, char *str) @@ -221,7 +221,7 @@ void strcaturl(char *dst, char *src) *d = 0; } -void strappend(char *dst, char *src) +void strappend(char *dst, const char *src) { char *d; unsigned char *s; @@ -465,7 +465,7 @@ int register_extension() #elif defined(LIN) char *currentfilename = exe_name(); FILE *f; - char *mimedata = + const char *mimedata = "\n" " \n" " \n" @@ -480,7 +480,7 @@ int register_extension() fwrite(mimedata, 1, strlen(mimedata), f); fclose(f); - char *desktopfiledata_tmp = + const char *desktopfiledata_tmp = "[Desktop Entry]\n" "Type=Application\n" "Name=Powder Toy\n" diff --git a/src/Misc.h b/src/Misc.h index ef9ef8b2d..1c6a9039a 100644 --- a/src/Misc.h +++ b/src/Misc.h @@ -40,7 +40,7 @@ unsigned clamp_flt(float f, float min, float max); float restrict_flt(float f, float min, float max); -char *mystrdup(char *s); +char *mystrdup(const char *s); struct strlist { @@ -64,11 +64,11 @@ void save_string(FILE *f, char *str); int load_string(FILE *f, char *str, int max); -void strcaturl(char *dst, char *src); +void strcaturl(char *dst, const char *src); std::string URLEscape(std::string source); -void strappend(char *dst, char *src); +void strappend(char *dst, const char *src); void *file_load(char *fn, int *size); diff --git a/src/PowderToySDL.cpp b/src/PowderToySDL.cpp index 7f1a8835c..fa9033b6a 100644 --- a/src/PowderToySDL.cpp +++ b/src/PowderToySDL.cpp @@ -687,7 +687,7 @@ bool SaveWindowPosition() #endif -void BlueScreen(char * detailMessage){ +void BlueScreen(const char * detailMessage){ ui::Engine * engine = &ui::Engine::Ref(); engine->g->fillrect(0, 0, engine->GetWidth(), engine->GetHeight(), 17, 114, 169, 210); diff --git a/src/bson/BSON.cpp b/src/bson/BSON.cpp index 634290cbc..d26a12671 100644 --- a/src/bson/BSON.cpp +++ b/src/bson/BSON.cpp @@ -48,7 +48,7 @@ static int ( *oid_inc_func )( void ) = NULL; ------------------------------ */ bson *bson_empty( bson *obj ) { - static char *data = "\005\0\0\0\0"; + static char data[] = "\005\0\0\0\0"; bson_init_data( obj, data ); obj->finished = 1; obj->err = 0; diff --git a/src/cat/LegacyLuaAPI.cpp b/src/cat/LegacyLuaAPI.cpp index 58891ef41..70ac24663 100644 --- a/src/cat/LegacyLuaAPI.cpp +++ b/src/cat/LegacyLuaAPI.cpp @@ -650,7 +650,7 @@ int luacon_step(int mx, int my, std::string selectl, std::string selectr, std::s } -int luacon_eval(char *command){ +int luacon_eval(const char *command){ ui::Engine::Ref().LastTick(clock()); return luaL_dostring (luacon_ci->l, command); } @@ -1927,7 +1927,7 @@ int luatpt_getscript(lua_State* l) run_script = luaL_optint(l, 3, 0); if(!fileauthor.length() || !fileid.length()) { - lastError = "Script Author or ID not given"; + lastError = mystrdup("Script Author or ID not given"); goto fin; } if(!ConfirmPrompt::Blocking("Do you want to install script?", fileid, "Install")) @@ -1941,12 +1941,12 @@ int luatpt_getscript(lua_State* l) if(len <= 0 || !filedata) { - lastError = "Server did not return data."; + strcpy(lastError, "Server did not return data."); goto fin; } if(ret != 200) { - lastError = http_ret_text(ret); + lastError = mystrdup(http_ret_text(ret)); goto fin; } @@ -1976,7 +1976,7 @@ int luatpt_getscript(lua_State* l) if(!outputfile) { - lastError = "Unable to write to file"; + lastError = mystrdup("Unable to write to file"); goto fin; } @@ -1998,7 +1998,11 @@ fin: if(luacommand) delete[] luacommand; luacommand = NULL; - if(lastError) return luaL_error(l, lastError); + if(lastError) + { + return luaL_error(l, lastError); + free(lastError); + } return 0; } diff --git a/src/cat/LuaScriptHelper.h b/src/cat/LuaScriptHelper.h index d1679a651..0c4af2895 100644 --- a/src/cat/LuaScriptHelper.h +++ b/src/cat/LuaScriptHelper.h @@ -24,7 +24,7 @@ void luacon_hook(lua_State *L, lua_Debug *ar); int luacon_step(int mx, int my, std::string , std::string selectr, std::string selectedalt, int bsx, int bsy); int luacon_mouseevent(int mx, int my, int mb, int event, int mouse_wheel); int luacon_keyevent(int key, int modifier, int event); -int luacon_eval(char *command); +int luacon_eval(const char *command); char *luacon_geterror(); void luacon_close(); int luacon_partsread(lua_State* l); diff --git a/src/client/Client.cpp b/src/client/Client.cpp index c446c14e3..9150caaba 100644 --- a/src/client/Client.cpp +++ b/src/client/Client.cpp @@ -333,7 +333,7 @@ bool Client::DoInstallation() char *currentfilename = exe_name(); FILE *f; - char *mimedata = + const char *mimedata = "\n" " \n" " \n" @@ -348,7 +348,7 @@ bool Client::DoInstallation() fwrite(mimedata, 1, strlen(mimedata), f); fclose(f); - char *protocolfiledata_tmp = + const char *protocolfiledata_tmp = "[Desktop Entry]\n" "Type=Application\n" "Name=Powder Toy\n" @@ -367,7 +367,7 @@ bool Client::DoInstallation() fclose(f); system("xdg-desktop-menu install powdertoy-tpt-ptsave.desktop"); - char *desktopfiledata_tmp = + const char *desktopfiledata_tmp = "[Desktop Entry]\n" "Type=Application\n" "Name=Powder Toy\n" @@ -893,8 +893,8 @@ RequestStatus Client::UploadSave(SaveInfo & save) char *session = new char[authUser.SessionID.length() + 1]; std::strcpy (session, authUser.SessionID.c_str()); - char * postNames[] = { "Name", "Description", "Data:save.bin", "Publish", NULL }; - char * postDatas[] = { saveName, saveDescription, gameData, (char *)(save.GetPublished()?"Public":"Private") }; + const char *const postNames[] = { "Name", "Description", "Data:save.bin", "Publish", NULL }; + const char *const postDatas[] = { saveName, saveDescription, gameData, (char *)(save.GetPublished()?"Public":"Private") }; int postLengths[] = { save.GetName().length(), save.GetDescription().length(), gameDataLength, save.GetPublished()?6:7 }; //std::cout << postNames[0] << " " << postDatas[0] << " " << postLengths[0] << std::endl; data = http_multipart_post("http://" SERVER "/Save.api", postNames, postDatas, postLengths, userid, NULL, session, &dataStatus, &dataLength); @@ -1120,8 +1120,8 @@ RequestStatus Client::ExecVote(int saveID, int direction) char *session = new char[authUser.SessionID.length() + 1]; std::strcpy (session, authUser.SessionID.c_str()); - char * postNames[] = { "ID", "Action", NULL }; - char * postDatas[] = { id, directionText }; + const char *const postNames[] = { "ID", "Action", NULL }; + const char *const postDatas[] = { id, directionText }; int postLengths[] = { saveIDText.length(), strlen(directionText) }; //std::cout << postNames[0] << " " << postDatas[0] << " " << postLengths[0] << std::endl; data = http_multipart_post("http://" SERVER "/Vote.api", postNames, postDatas, postLengths, userid, NULL, session, &dataStatus, &dataLength); @@ -1303,8 +1303,8 @@ LoginStatus Client::Login(std::string username, std::string password, User & use char * data; int dataStatus, dataLength; - char * postNames[] = { "Username", "Hash", NULL }; - char * postDatas[] = { (char*)username.c_str(), totalHash }; + const char *const postNames[] = { "Username", "Hash", NULL }; + const char *const postDatas[] = { (char*)username.c_str(), totalHash }; int postLengths[] = { username.length(), 32 }; data = http_multipart_post("http://" SERVER "/Login.json", postNames, postDatas, postLengths, NULL, NULL, NULL, &dataStatus, &dataLength); if(dataStatus == 200 && data) @@ -1432,8 +1432,8 @@ RequestStatus Client::AddComment(int saveID, std::string comment) std::stringstream userIDStream; userIDStream << authUser.ID; - char * postNames[] = { "Comment", NULL }; - char * postDatas[] = { (char*)(comment.c_str()) }; + const char *const postNames[] = { "Comment", NULL }; + const char *const postDatas[] = { (char*)(comment.c_str()) }; int postLengths[] = { comment.length() }; data = http_multipart_post((char *)urlStream.str().c_str(), postNames, postDatas, postLengths, (char *)(userIDStream.str().c_str()), NULL, (char *)(authUser.SessionID.c_str()), &dataStatus, &dataLength); } @@ -1548,8 +1548,8 @@ RequestStatus Client::ReportSave(int saveID, std::string message) std::stringstream userIDStream; userIDStream << authUser.ID; - char * postNames[] = { "Reason", NULL }; - char * postDatas[] = { (char*)(message.c_str()) }; + const char *const postNames[] = { "Reason", NULL }; + const char *const postDatas[] = { (char*)(message.c_str()) }; int postLengths[] = { message.length() }; data = http_multipart_post((char *)urlStream.str().c_str(), postNames, postDatas, postLengths, (char *)(userIDStream.str().c_str()), NULL, (char *)(authUser.SessionID.c_str()), &dataStatus, &dataLength); } diff --git a/src/client/HTTP.cpp b/src/client/HTTP.cpp index c3110f528..531e9536c 100644 --- a/src/client/HTTP.cpp +++ b/src/client/HTTP.cpp @@ -49,6 +49,7 @@ #endif #include "Config.h" +#include "Misc.h" #include "HTTP.h" #include "MD5.h" @@ -87,34 +88,25 @@ static char * eatwhitespace(char * s) return s; } -static char *mystrdup(char *s) +static int splituri(const char *uri, char **host, char **path) { - char *x; - if (s) - { - x = (char *)malloc(strlen(s)+1); - strcpy(x, s); - return x; - } - return s; -} - -static int splituri(char *uri, char **host, char **path) -{ - char *p=uri,*q,*x,*y; - if (!strncmp(p, "http://", 7)) - p += 7; - q = strchr(p, '/'); + const char *q; + char *x,*y; + if (!strncmp(uri, "http://", 7)) + uri += 7; + q = strchr(uri, '/'); if (!q) - q = p + strlen(p); - x = (char *)malloc(q-p+1); + q = uri + strlen(uri); + x = (char *)malloc(q-uri+1); if (*q) y = mystrdup(q); else + { y = mystrdup("/"); - strncpy(x, p, q-p); - x[q-p] = 0; - if (q==p || x[q-p-1]==':') + } + strncpy(x, uri, q-uri); + x[q-uri] = 0; + if (q==uri || x[q-uri-1]==':') { free(x); free(y); @@ -244,7 +236,7 @@ struct http_ctx int fd; char *fdhost; }; -void *http_async_req_start(void *ctx, char *uri, char *data, int dlen, int keep) +void *http_async_req_start(void *ctx, const char *uri, const char *data, int dlen, int keep) { struct http_ctx *cx = (http_ctx *)ctx; if (!ctx) @@ -298,7 +290,7 @@ void *http_async_req_start(void *ctx, char *uri, char *data, int dlen, int keep) { if (!dlen) dlen = strlen(data); - cx->txd = (char*)malloc(dlen); + cx->txd = (char *)malloc(dlen); memcpy(cx->txd, data, dlen); cx->txdl = dlen; } @@ -319,7 +311,7 @@ void *http_async_req_start(void *ctx, char *uri, char *data, int dlen, int keep) return ctx; } -void http_async_add_header(void *ctx, char *name, char *data) +void http_async_add_header(void *ctx, const char *name, const char *data) { struct http_ctx *cx = (http_ctx *)ctx; cx->thdr = (char *)realloc(cx->thdr, cx->thlen + strlen(name) + strlen(data) + 5); @@ -694,7 +686,7 @@ void http_async_req_close(void *ctx) free(ctx); } -char *http_simple_get(char *uri, int *ret, int *len) +char *http_simple_get(const char *uri, int *ret, int *len) { void *ctx = http_async_req_start(NULL, uri, NULL, 0, 0); if (!ctx) @@ -707,7 +699,7 @@ char *http_simple_get(char *uri, int *ret, int *len) } return http_async_req_stop(ctx, ret, len); } -void http_auth_headers(void *ctx, char *user, char *pass, char *session_id) +void http_auth_headers(void *ctx, const char *user, const char *pass, const char *session_id) { char *tmp; int i; @@ -747,7 +739,7 @@ void http_auth_headers(void *ctx, char *user, char *pass, char *session_id) } } } -char *http_auth_get(char *uri, char *user, char *pass, char *session_id, int *ret, int *len) +char *http_auth_get(const char *uri, const char *user, const char *pass, const char *session_id, int *ret, int *len) { void *ctx = http_async_req_start(NULL, uri, NULL, 0, 0); @@ -763,7 +755,7 @@ char *http_auth_get(char *uri, char *user, char *pass, char *session_id, int *re return http_async_req_stop(ctx, ret, len); } -char *http_simple_post(char *uri, char *data, int dlen, int *ret, int *len) +char *http_simple_post(const char *uri, const char *data, int dlen, int *ret, int *len) { void *ctx = http_async_req_start(NULL, uri, data, dlen, 0); if (!ctx) @@ -777,7 +769,7 @@ char *http_simple_post(char *uri, char *data, int dlen, int *ret, int *len) return http_async_req_stop(ctx, ret, len); } -char *http_ret_text(int ret) +const char *http_ret_text(int ret) { switch (ret) { @@ -914,10 +906,10 @@ char *http_ret_text(int ret) return "Unknown Status Code"; } } -char *http_multipart_post(char *uri, char **names, char **parts, int *plens, char *user, char *pass, char *session_id, int *ret, int *len) +char *http_multipart_post(const char *uri, const char *const *names, const char *const *parts, int *plens, const char *user, const char *pass, const char *session_id, int *ret, int *len) { void *ctx; - char *data = NULL, *tmp, *p; + char *data = NULL, *tmp; int dlen = 0, i, j; unsigned char hash[16]; unsigned char boundary[32], ch; @@ -987,12 +979,11 @@ retry: if (strchr(names[i], ':')) { tmp = mystrdup(names[i]); - p = strchr(tmp, ':'); + char *p = strchr(tmp, ':'); *p = 0; dlen += sprintf(data+dlen, "content-disposition: form-data; name=\"%s\"; ", tmp); free(tmp); - p = strchr(names[i], ':'); - dlen += sprintf(data+dlen, "filename=\"%s\"\r\n\r\n", p+1); + dlen += sprintf(data+dlen, "filename=\"%s\"\r\n\r\n", strchr(names[i], ':')+1); } else dlen += sprintf(data+dlen, "content-disposition: form-data; name=\"%s\"\r\n\r\n", names[i]); @@ -1022,7 +1013,7 @@ retry: { //md5_update(&md5, (unsigned char *)parts[i], plens[i]); //WHY? //md5_update(&md5, (unsigned char *)"-", 1); - p = strchr(names[i], ':'); + const char *p = strchr(names[i], ':'); if (p) m += (p - names[i]) + 1; else @@ -1033,7 +1024,7 @@ retry: m = 0; for (i=0; names[i]; i++) { - p = strchr(names[i], ':'); + const char *p = strchr(names[i], ':'); if (m) { tmp[m] = ' '; @@ -1104,10 +1095,10 @@ fail: } -void *http_multipart_post_async(char *uri, char **names, char **parts, int *plens, char *user, char *pass, char *session_id) +void *http_multipart_post_async(const char *uri, const char *const *names, const char *const *parts, int *plens, const char *user, const char *pass, const char *session_id) { void *ctx; - char *data = NULL, *tmp, *p; + char *data = NULL, *tmp; int dlen = 0, i, j; unsigned char hash[16]; unsigned char boundary[32], ch; @@ -1177,12 +1168,11 @@ retry: if (strchr(names[i], ':')) { tmp = mystrdup(names[i]); - p = strchr(tmp, ':'); + char *p = strchr(tmp, ':'); *p = 0; dlen += sprintf(data+dlen, "content-disposition: form-data; name=\"%s\"; ", tmp); free(tmp); - p = strchr(names[i], ':'); - dlen += sprintf(data+dlen, "filename=\"%s\"\r\n\r\n", p+1); + dlen += sprintf(data+dlen, "filename=\"%s\"\r\n\r\n", strchr(names[i], ':')+1); } else dlen += sprintf(data+dlen, "content-disposition: form-data; name=\"%s\"\r\n\r\n", names[i]); @@ -1212,7 +1202,7 @@ retry: { //md5_update(&md5, (unsigned char *)parts[i], plens[i]); //WHY? //md5_update(&md5, (unsigned char *)"-", 1); - p = strchr(names[i], ':'); + const char *p = strchr(names[i], ':'); if (p) m += (p - names[i]) + 1; else @@ -1223,7 +1213,7 @@ retry: m = 0; for (i=0; names[i]; i++) { - p = strchr(names[i], ':'); + const char *p = strchr(names[i], ':'); if (m) { tmp[m] = ' '; diff --git a/src/client/HTTP.h b/src/client/HTTP.h index c83284a41..d3273a9e3 100644 --- a/src/client/HTTP.h +++ b/src/client/HTTP.h @@ -25,22 +25,22 @@ static char hexChars[] = "0123456789abcdef"; void http_init(char *proxy); void http_done(void); -char *http_simple_get(char *uri, int *ret, int *len); -char *http_auth_get(char *uri, char *user, char *pass, char * session_id, int *ret, int *len); -char *http_simple_post(char *uri, char *data, int dlen, int *ret, int *len); +char *http_simple_get(const char *uri, int *ret, int *len); +char *http_auth_get(const char *uri, const char *user, const char *pass, const char *session_id, int *ret, int *len); +char *http_simple_post(const char *uri, const char *data, int dlen, int *ret, int *len); -void http_auth_headers(void *ctx, char *user, char *pass, char * session_id); +void http_auth_headers(void *ctx, const char *user, const char *pass, const char *session_id); -void *http_async_req_start(void *ctx, char *uri, char *data, int dlen, int keep); -void http_async_add_header(void *ctx, char *name, char *data); +void *http_async_req_start(void *ctx, const char *uri, const char *data, int dlen, int keep); +void http_async_add_header(void *ctx, const char *name, const char *data); int http_async_req_status(void *ctx); void http_async_get_length(void *ctx, int *total, int *done); char *http_async_req_stop(void *ctx, int *ret, int *len); void http_async_req_close(void *ctx); -char *http_multipart_post(char *uri, char **names, char **parts, int *plens, char *user, char *pass, char * session_id, int *ret, int *len); -void *http_multipart_post_async(char *uri, char **names, char **parts, int *plens, char *user, char *pass, char * session_id); +char *http_multipart_post(const char *uri, const char *const *names, const char *const *parts, int *plens, const char *user, const char *pass, const char * session_id, int *ret, int *len); +void *http_multipart_post_async(const char *uri, const char *const *names, const char *const *parts, int *plens, const char *user, const char *pass, const char *session_id); -char *http_ret_text(int ret); +const char *http_ret_text(int ret); #endif diff --git a/src/simulation/MenuSection.h b/src/simulation/MenuSection.h index 12b1ba61e..7bd292f74 100644 --- a/src/simulation/MenuSection.h +++ b/src/simulation/MenuSection.h @@ -3,7 +3,7 @@ struct menu_section { - char *icon; + const char *icon; const char *name; int itemcount; int doshow; diff --git a/src/simulation/elements/Element.h b/src/simulation/elements/Element.h index b51bddccd..1e93a7d66 100644 --- a/src/simulation/elements/Element.h +++ b/src/simulation/elements/Element.h @@ -12,8 +12,8 @@ struct Particle; class Element { public: - char *Identifier; - char *Name; + const char *Identifier; + const char *Name; pixel Colour; float Advection; float AirDrag; @@ -34,7 +34,7 @@ public: int MenuSection; float Temperature; unsigned char HeatConduct; - char *Description; + const char *Description; char State; unsigned int Properties; int (*Update) (UPDATE_FUNC_ARGS); diff --git a/src/simulation/tools/SimTool.h b/src/simulation/tools/SimTool.h index c5a5cb160..56cb14947 100644 --- a/src/simulation/tools/SimTool.h +++ b/src/simulation/tools/SimTool.h @@ -10,10 +10,10 @@ struct Particle; class SimTool { public: - char *Identifier; - char *Name; + const char *Identifier; + const char *Name; pixel Colour; - char *Description; + const char *Description; SimTool(); virtual ~SimTool() {} From 71d107aac2e3e8e2b94a7a015874c0cc0f888194 Mon Sep 17 00:00:00 2001 From: mniip Date: Sat, 26 Oct 2013 21:49:36 +0400 Subject: [PATCH 2/5] _proper_ typing system using a union instead of multicast void* --- src/cat/TPTSTypes.cpp | 58 ++++++++++++++++++++-------------- src/cat/TPTSTypes.h | 5 +-- src/cat/TPTScriptInterface.cpp | 2 +- 3 files changed, 38 insertions(+), 27 deletions(-) diff --git a/src/cat/TPTSTypes.cpp b/src/cat/TPTSTypes.cpp index 0a3e940c9..466a7eeca 100644 --- a/src/cat/TPTSTypes.cpp +++ b/src/cat/TPTSTypes.cpp @@ -3,7 +3,7 @@ #include #include "TPTSTypes.h" -AnyType::AnyType(ValueType type_, void * value_): +AnyType::AnyType(ValueType type_, ValueValue value_): type(type_), value(value_) { @@ -19,13 +19,9 @@ AnyType::AnyType(const AnyType & v): value(v.value) { if(type == TypeString) - { - value = new std::string(*((std::string*)value)); - } + value.str = new std::string(*(value.str)); else if(type == TypePoint) - { - value = new ui::Point(*((ui::Point*)value)); - } + value.pt = new ui::Point(*(value.pt)); } AnyType::operator NumberType() @@ -33,7 +29,7 @@ AnyType::operator NumberType() if(type != TypeNumber) throw InvalidConversionException(type, TypeNumber); else - return NumberType((intptr_t)value); + return NumberType(value.num); } AnyType::operator StringType() @@ -41,16 +37,16 @@ AnyType::operator StringType() if(type == TypeNumber) { std::stringstream numberStream; - numberStream << ((NumberType*)this)->Value(); + numberStream << ((NumberType *)this)->Value(); return StringType(numberStream.str()); } - else if(type == TypeString && value) + else if(type == TypeString && value.str) { - return StringType(*((std::string*)value)); + return StringType(*(value.str)); } - else if (type == TypePoint && value) + else if (type == TypePoint && value.pt) { - ui::Point thisPoint = *((ui::Point*)value); + ui::Point thisPoint = *(value.pt); std::stringstream pointStream; pointStream << thisPoint.X << "," << thisPoint.Y; return StringType(pointStream.str()); @@ -64,11 +60,11 @@ AnyType::operator PointType() { if(type == TypePoint) { - return PointType(*((ui::Point*)value)); + return PointType(*(value.pt)); } else if(type == TypeString) { - std::stringstream pointStream(*((std::string*)value)); + std::stringstream pointStream(*(value.str)); int x, y; char comma; pointStream >> x >> comma >> y; @@ -82,35 +78,49 @@ AnyType::operator PointType() AnyType::~AnyType() { - if(type == TypeString || type == TypePoint) - delete value; + if(type == TypeString) + delete value.str; + else if(type == TypePoint) + delete value.pt; } //Number Type -NumberType::NumberType(int number): AnyType(TypeNumber, (void*)number) { } +NumberType::NumberType(int number): AnyType(TypeNumber, ValueValue()) +{ + value.num = number; +} int NumberType::Value() { - return (intptr_t)value; + return value.num; } //String type -StringType::StringType(std::string string): AnyType(TypeString, new std::string(string)) { } +StringType::StringType(std::string string): AnyType(TypeString, ValueValue()) +{ + value.str = new std::string(string); +} std::string StringType::Value() { - return std::string(*((std::string*)value)); + return *value.str; } //Point type -PointType::PointType(ui::Point point): AnyType(TypePoint, new ui::Point(point)) { } +PointType::PointType(ui::Point point): AnyType(TypePoint, ValueValue()) +{ + value.pt = new ui::Point(point); +} -PointType::PointType(int pointX, int pointY): AnyType(TypePoint, new ui::Point(pointX, pointY)) { } +PointType::PointType(int pointX, int pointY): AnyType(TypePoint, ValueValue()) +{ + value.pt = new ui::Point(pointX, pointY); +} ui::Point PointType::Value() { - return ui::Point(*((ui::Point*)value)); + return *value.pt; } diff --git a/src/cat/TPTSTypes.h b/src/cat/TPTSTypes.h index b9fa92b61..00dfbb695 100644 --- a/src/cat/TPTSTypes.h +++ b/src/cat/TPTSTypes.h @@ -6,6 +6,7 @@ #include "gui/interface/Point.h" enum ValueType { TypeNumber, TypePoint, TypeString, TypeNull, TypeFunction }; +typedef union { int num; std::string* str; ui::Point* pt; } ValueValue; class GeneralException { @@ -29,9 +30,9 @@ class AnyType { protected: ValueType type; - void * value; + ValueValue value; public: - AnyType(ValueType type_, void * value_); + AnyType(ValueType type_, ValueValue value_); AnyType(const AnyType & v); operator NumberType(); operator StringType(); diff --git a/src/cat/TPTScriptInterface.cpp b/src/cat/TPTScriptInterface.cpp index 87e058467..68befcbea 100644 --- a/src/cat/TPTScriptInterface.cpp +++ b/src/cat/TPTScriptInterface.cpp @@ -154,7 +154,7 @@ int TPTScriptInterface::parseNumber(char * stringData) AnyType TPTScriptInterface::eval(std::deque * words) { if(words->size() < 1) - return AnyType(TypeNull, NULL); + return AnyType(TypeNull, ValueValue()); std::string word = words->front(); words->pop_front(); char * rawWord = (char *)word.c_str(); ValueType wordType = testType(word); From f7f24a98041b15e7334fcded57ecceb0243226c5 Mon Sep 17 00:00:00 2001 From: mniip Date: Sun, 27 Oct 2013 02:04:09 +0400 Subject: [PATCH 3/5] D:^H^Hfix newlines at end of files --- data/IntroText.h | 2 +- data/icon.h | 2 +- src/graphics/DrawMethodsDef.inc | 2 +- src/graphics/RasterDrawMethods.inl | 2 +- src/powdertoyjava/OpenGLCanvasMacOS.mm | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/data/IntroText.h b/data/IntroText.h index 765c35e05..f353c75f3 100644 --- a/data/IntroText.h +++ b/data/IntroText.h @@ -53,4 +53,4 @@ static const char *introTextData = #ifdef REALISTIC "REALISTIC" #endif - ; \ No newline at end of file + ; diff --git a/data/icon.h b/data/icon.h index 4eeff5ec3..27122a23f 100644 --- a/data/icon.h +++ b/data/icon.h @@ -19,4 +19,4 @@ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA */ static unsigned char app_icon[] = {0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x8f,0x92,0x97,0xff,0x8f,0x92,0x97,0xff,0x8f,0x92,0x97,0xff,0x8f,0x92,0x97,0xff,0x8f,0x92,0x97,0xff,0x8f,0x92,0x97,0xff,0x8f,0x92,0x97,0xff,0x8f,0x92,0x97,0xff,0x8f,0x92,0x97,0xff,0x8f,0x92,0x97,0xff,0x8f,0x92,0x97,0xff,0x8f,0x92,0x97,0xff,0x8f,0x92,0x97,0xff,0x8f,0x92,0x97,0xff,0x8f,0x92,0x97,0xff,0x8f,0x92,0x97,0xff,0x8f,0x92,0x97,0xff,0xd3,0xd9,0xe0,0xff,0xd3,0xd9,0xe0,0xff,0xd3,0xd9,0xe0,0xff,0xd3,0xd9,0xe0,0xff,0xd3,0xd9,0xe0,0xff,0xd3,0xd9,0xe0,0xff,0xd3,0xd9,0xe0,0xff,0xd3,0xd9,0xe0,0xff,0xd3,0xd9,0xe0,0xff,0x68,0x79,0x91,0xff,0xd3,0xd9,0xe0,0xff,0x68,0x79,0x91,0xff,0xd3,0xd9,0xe0,0xff,0x68,0x79,0x91,0xff,0x8f,0x92,0x97,0xff,0x8f,0x92,0x97,0xff,0x56,0x03,0x08,0xff,0xdb,0x07,0x05,0xff,0xff,0xc4,0x10,0xff,0xff,0xfe,0x14,0xff,0xff,0xff,0x23,0xff,0xff,0xff,0x16,0xff,0xff,0x9a,0x0a,0xff,0xff,0x64,0x0c,0xff,0xff,0x44,0x0a,0xff,0xff,0x22,0x0b,0xff,0xc0,0x24,0x0d,0xff,0x00,0x00,0x00,0xff,0x00,0x00,0x00,0xff,0x00,0x00,0x00,0xff,0x8f,0x92,0x97,0xff,0x8f,0x92,0x97,0xff,0xff,0x24,0x00,0xff,0xff,0x96,0x1c,0xff,0xff,0xff,0x89,0xff,0xff,0xff,0x30,0xff,0xff,0xfd,0x00,0xff,0xff,0xd6,0x03,0xff,0xff,0x63,0x01,0xff,0xff,0x9a,0x00,0xff,0xff,0xbe,0x0a,0xff,0xff,0x5e,0x00,0xff,0xc3,0x0c,0x0c,0xff,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0xff,0x8f,0x92,0x97,0xff,0x8f,0x92,0x97,0xff,0xff,0xe2,0x41,0xff,0xff,0xff,0xd8,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xe9,0xff,0xff,0xf3,0x43,0xff,0xff,0xe8,0x00,0xff,0xff,0xfb,0x15,0xff,0xff,0xff,0x62,0xff,0xff,0xff,0xc6,0xff,0xff,0xff,0x5b,0xff,0xc2,0x77,0x08,0xff,0x00,0x00,0x00,0xff,0x00,0x00,0x00,0xff,0x00,0x00,0x00,0xff,0x8f,0x92,0x97,0xff,0x8f,0x92,0x97,0xff,0xff,0xff,0xcc,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xc6,0xff,0xff,0xff,0x99,0xff,0xff,0xff,0xd5,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xcf,0xff,0xc4,0xae,0x26,0xff,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0xff,0x8f,0x92,0x97,0xff,0x8f,0x92,0x97,0xff,0xff,0xda,0x87,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xff,0xff,0xff,0xfd,0xfd,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xcd,0xff,0xc1,0x89,0x20,0xff,0x00,0x00,0x00,0xff,0x00,0x00,0x00,0xff,0x00,0x00,0x00,0xff,0x8f,0x92,0x97,0xff,0x8f,0x92,0x97,0xff,0xff,0x68,0x09,0xff,0xff,0xf5,0x72,0xff,0xff,0xff,0xbf,0xff,0xff,0xff,0xe0,0xff,0xff,0xff,0xe5,0xff,0xff,0xfd,0xcf,0xff,0xff,0xf5,0xcd,0xff,0xff,0xff,0xd4,0xff,0xff,0xff,0xd0,0xff,0xff,0xf2,0x3d,0xff,0xc3,0x48,0x03,0xff,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0xff,0x8f,0x92,0x97,0xff,0x8f,0x92,0x97,0xff,0x98,0x15,0x0f,0xff,0xaf,0x3d,0x09,0xff,0xad,0x4f,0x0d,0xff,0xae,0x6b,0x1b,0xff,0xb0,0x76,0x1e,0xff,0xa1,0x36,0x08,0xff,0x95,0x26,0x07,0xff,0xad,0x5b,0x16,0xff,0xbf,0x99,0x26,0xff,0xad,0x59,0x09,0xff,0x76,0x22,0x16,0xff,0x00,0x00,0x00,0xff,0x00,0x00,0x00,0xff,0x00,0x00,0x00,0xff,0x8f,0x92,0x97,0xff,0x8f,0x92,0x97,0xff,0x00,0x00,0x00,0xff,0x00,0x00,0x00,0xff,0x00,0x00,0x00,0xff,0x00,0x00,0x00,0xff,0x00,0x00,0x00,0xff,0x00,0x00,0x00,0xff,0x00,0x00,0x00,0xff,0x00,0x00,0x00,0xff,0x00,0x00,0x00,0xff,0x00,0x00,0x00,0xff,0x00,0x00,0x00,0xff,0x00,0x00,0x00,0xff,0x00,0x00,0x00,0xff,0x00,0x00,0x00,0xff,0x8f,0x92,0x97,0xff,0x8f,0x92,0x97,0xff,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0xff,0x8f,0x92,0x97,0xff,0x8f,0x92,0x97,0xff,0x00,0x00,0x00,0xff,0x00,0x00,0x00,0xff,0x00,0x00,0x00,0xff,0x00,0x00,0x00,0xff,0x00,0x00,0x00,0xff,0x00,0x00,0x00,0xff,0x00,0x00,0x00,0xff,0x00,0x00,0x00,0xff,0x00,0x00,0x00,0xff,0x00,0x00,0x00,0xff,0x00,0x00,0x00,0xff,0x00,0x00,0x00,0xff,0x00,0x00,0x00,0xff,0x00,0x00,0x00,0xff,0x8f,0x92,0x97,0xff,0x8f,0x92,0x97,0xff,0x8f,0x92,0x97,0xff,0x8f,0x92,0x97,0xff,0x8f,0x92,0x97,0xff,0x8f,0x92,0x97,0xff,0x8f,0x92,0x97,0xff,0x8f,0x92,0x97,0xff,0x8f,0x92,0x97,0xff,0x8f,0x92,0x97,0xff,0x8f,0x92,0x97,0xff,0x8f,0x92,0x97,0xff,0x8f,0x92,0x97,0xff,0x8f,0x92,0x97,0xff,0x8f,0x92,0x97,0xff,0x8f,0x92,0x97,0xff,0x8f,0x92,0x97,0xff}; -static unsigned char app_icon_w32[] = { 0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x44,0x47,0x49,0x00,0x81,0x84,0x88,0xFF,0x81,0x84,0x88,0xFF,0x81,0x84,0x88,0xFF,0x81,0x84,0x88,0xFF,0x81,0x84,0x88,0xFF,0x81,0x84,0x88,0xFF,0x81,0x84,0x88,0xFF,0x81,0x84,0x88,0xFF,0x81,0x84,0x88,0xFF,0x81,0x84,0x88,0xFF,0x81,0x84,0x88,0xFF,0x81,0x84,0x88,0xFF,0x81,0x84,0x88,0xFF,0x81,0x84,0x88,0xFF,0x81,0x84,0x88,0xFF,0x81,0x84,0x88,0xFF,0x81,0x84,0x88,0xFF,0x81,0x84,0x88,0xFF,0x81,0x84,0x88,0xFF,0x81,0x84,0x88,0xFF,0x81,0x84,0x88,0xFF,0x81,0x84,0x88,0xFF,0x81,0x84,0x88,0xFF,0x81,0x84,0x88,0xFF,0x81,0x84,0x88,0xFF,0x81,0x84,0x88,0xFF,0x81,0x84,0x88,0xFF,0x81,0x84,0x88,0xFF,0x44,0x46,0x48,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x86,0x88,0x8A,0xFF,0xD8,0xDE,0xE6,0xFF,0xD1,0xD7,0xDF,0xFF,0xD1,0xD7,0xDE,0xFF,0xD1,0xD7,0xDE,0xFF,0xD1,0xD7,0xDE,0xFF,0xD1,0xD7,0xDE,0xFF,0xD1,0xD7,0xDE,0xFF,0xD1,0xD7,0xDE,0xFF,0xD1,0xD7,0xDE,0xFF,0xD1,0xD7,0xDE,0xFF,0xD1,0xD7,0xDE,0xFF,0xD1,0xD7,0xDE,0xFF,0xD1,0xD7,0xDE,0xFF,0xD1,0xD7,0xDE,0xFF,0xD1,0xD7,0xDE,0xFF,0xD1,0xD7,0xDE,0xFF,0xD1,0xD7,0xDE,0xFF,0xD1,0xD7,0xDE,0xFF,0xD1,0xD7,0xDE,0xFF,0xD1,0xD7,0xDE,0xFF,0xD1,0xD7,0xDE,0xFF,0xD1,0xD7,0xDE,0xFF,0x68,0x79,0x91,0xFF,0xD1,0xD7,0xDE,0xFF,0x68,0x79,0x91,0xFF,0xD1,0xD7,0xDE,0xFF,0x68,0x79,0x91,0xFF,0xD1,0xD7,0xDE,0xFF,0x81,0x84,0x88,0xFF,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x83,0x85,0x89,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x02,0x00,0x00,0xFF,0x06,0x00,0x00,0xFF,0x05,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x1E,0x00,0x00,0xFF,0x07,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x01,0x00,0x00,0xFF,0x05,0x00,0x00,0xFF,0x03,0x00,0x00,0xFF,0x02,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x14,0x00,0x00,0xFF,0xE1,0x01,0x00,0xFF,0xF4,0x03,0x00,0xFF,0x24,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x81,0x84,0x88,0xFF,0x03,0x04,0x03,0x00,0x03,0x05,0x04,0x00,0x7F,0x81,0x86,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x05,0x00,0x00,0xFF,0x0F,0x00,0x00,0xFF,0x05,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x03,0x00,0x00,0xFF,0x36,0x01,0x00,0xFF,0x06,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x01,0x00,0x00,0xFF,0x02,0x00,0x00,0xFF,0x01,0x00,0x00,0xFF,0x01,0x00,0x00,0xFF,0x07,0x00,0x00,0xFF,0x06,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x1A,0x00,0x00,0xFF,0xE7,0x0A,0x01,0xFF,0xFF,0x07,0x01,0xFF,0x41,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x81,0x84,0x88,0xFF,0x03,0x04,0x03,0x00,0x03,0x05,0x04,0x00,0x7F,0x81,0x85,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x1A,0x00,0x00,0xFF,0x16,0x01,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x0B,0x00,0x00,0xFF,0x55,0x02,0x00,0xFF,0x04,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x01,0x00,0x00,0xFF,0x01,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x02,0x00,0x00,0xFF,0x03,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x39,0x00,0x00,0xFF,0xF8,0x1B,0x02,0xFF,0xFF,0x2F,0x03,0xFF,0x52,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x81,0x84,0x88,0xFF,0x03,0x04,0x03,0x00,0x03,0x05,0x04,0x00,0x7F,0x81,0x85,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x1C,0x00,0x00,0xFF,0x5C,0x01,0x00,0xFF,0x09,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x36,0x01,0x00,0xFF,0xAE,0x04,0x01,0xFF,0x02,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x01,0x00,0x00,0xFF,0x01,0x00,0x00,0xFF,0x01,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x50,0x00,0x00,0xFF,0xFE,0x44,0x02,0xFF,0xFF,0x5C,0x03,0xFF,0x60,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x81,0x84,0x88,0xFF,0x03,0x04,0x03,0x00,0x03,0x05,0x04,0x00,0x7F,0x81,0x85,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x12,0x00,0x00,0xFF,0x9F,0x02,0x00,0xFF,0x49,0x01,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x73,0x04,0x00,0xFF,0xEC,0x09,0x01,0xFF,0x2B,0x00,0x00,0xFF,0x06,0x00,0x00,0xFF,0x13,0x00,0x00,0xFF,0x07,0x00,0x00,0xFF,0x04,0x00,0x00,0xFF,0x04,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x4E,0x06,0x00,0xFF,0xFF,0xC1,0x08,0xFF,0xFD,0x9A,0x07,0xFF,0x49,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x81,0x84,0x88,0xFF,0x03,0x04,0x03,0x00,0x03,0x05,0x04,0x00,0x7F,0x81,0x85,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x8B,0x01,0x00,0xFF,0xD5,0x03,0x00,0xFF,0x07,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x03,0x00,0x00,0xFF,0xB7,0x0D,0x01,0xFF,0xFF,0x0F,0x02,0xFF,0xDE,0x00,0x00,0xFF,0xAB,0x00,0x00,0xFF,0xA5,0x01,0x00,0xFF,0x3D,0x00,0x00,0xFF,0x02,0x00,0x00,0xFF,0x03,0x00,0x00,0xFF,0x03,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x8B,0x35,0x03,0xFF,0xFF,0xF0,0x0E,0xFF,0xDF,0x4B,0x01,0xFF,0x14,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x81,0x84,0x88,0xFF,0x03,0x04,0x03,0x00,0x03,0x05,0x04,0x00,0x81,0x84,0x88,0xFF,0x00,0x00,0x00,0xFF,0x55,0x00,0x00,0xFF,0xFF,0x05,0x01,0xFF,0x73,0x01,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x1B,0x00,0x00,0xFF,0xE5,0x0F,0x01,0xFF,0xFF,0x0D,0x02,0xFF,0xFF,0x04,0x01,0xFF,0xFF,0x03,0x00,0xFF,0xFF,0x01,0x00,0xFF,0x8F,0x00,0x00,0xFF,0x02,0x00,0x00,0xFF,0x02,0x00,0x00,0xFF,0x03,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x1B,0x00,0x00,0xFF,0xD9,0x47,0x03,0xFF,0xFF,0x92,0x06,0xFF,0xAF,0x12,0x00,0xFF,0x01,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x81,0x84,0x88,0xFF,0x03,0x04,0x03,0x00,0x03,0x05,0x04,0x00,0x81,0x84,0x88,0xFF,0x20,0x00,0x00,0xFF,0xE5,0x08,0x01,0xFF,0xD1,0x04,0x01,0xFF,0x0E,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x30,0x01,0x00,0xFF,0xF6,0x47,0x04,0xFF,0xFF,0x1F,0x02,0xFF,0xFF,0x03,0x01,0xFF,0xFF,0x06,0x01,0xFF,0xFF,0x03,0x00,0xFF,0xC7,0x01,0x00,0xFF,0x1F,0x00,0x00,0xFF,0x03,0x00,0x00,0xFF,0x06,0x01,0x00,0xFF,0x00,0x00,0x00,0xFF,0x38,0x02,0x00,0xFF,0xFB,0x72,0x07,0xFF,0xFF,0x5A,0x03,0xFF,0x73,0x01,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x81,0x84,0x88,0xFF,0x03,0x04,0x03,0x00,0x03,0x05,0x04,0x00,0x81,0x84,0x88,0xFF,0xA1,0x02,0x00,0xFF,0xFF,0x0C,0x03,0xFF,0x7B,0x01,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x3B,0x06,0x00,0xFF,0xFF,0xBB,0x0C,0xFF,0xFF,0x56,0x04,0xFF,0xFF,0x00,0x01,0xFF,0xFF,0x10,0x03,0xFF,0xFF,0x02,0x01,0xFF,0xDE,0x01,0x00,0xFF,0x34,0x00,0x00,0xFF,0x03,0x00,0x00,0xFF,0x05,0x01,0x00,0xFF,0x00,0x00,0x00,0xFF,0x3B,0x03,0x00,0xFF,0xFC,0x83,0x06,0xFF,0xFF,0x71,0x03,0xFF,0x83,0x05,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x81,0x84,0x88,0xFF,0x03,0x04,0x03,0x00,0x03,0x05,0x04,0x00,0x81,0x84,0x88,0xFF,0xFB,0x18,0x03,0xFF,0xFF,0x0E,0x02,0xFF,0xB9,0x00,0x00,0xFF,0x06,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x21,0x01,0x00,0xFF,0xE8,0xB9,0x0F,0xFF,0xFF,0x8F,0x0C,0xFF,0xFF,0x02,0x00,0xFF,0xFF,0x3C,0x04,0xFF,0xFF,0x16,0x02,0xFF,0xFD,0x00,0x00,0xFF,0x63,0x00,0x00,0xFF,0x02,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x40,0x0B,0x00,0xFF,0xFE,0xAD,0x06,0xFF,0xFF,0xC9,0x06,0xFF,0xCC,0x45,0x02,0xFF,0x08,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x81,0x84,0x88,0xFF,0x03,0x04,0x03,0x00,0x03,0x05,0x04,0x00,0x81,0x84,0x88,0xFF,0xFF,0x49,0x03,0xFF,0xFF,0x7E,0x03,0xFF,0xFF,0x45,0x01,0xFF,0x67,0x05,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x09,0x00,0x00,0xFF,0xCC,0xA0,0x08,0xFF,0xFB,0xAA,0x0A,0xFF,0xC9,0x00,0x00,0xFF,0xFE,0x6B,0x03,0xFF,0xFF,0x79,0x02,0xFF,0xF9,0x0A,0x00,0xFF,0x4C,0x00,0x00,0xFF,0x02,0x00,0x00,0xFF,0x08,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x3F,0x14,0x00,0xFF,0xFC,0xDF,0x10,0xFF,0xFF,0xFF,0x10,0xFF,0xFA,0xCD,0x14,0xFF,0x46,0x0C,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x81,0x84,0x88,0xFF,0x03,0x04,0x03,0x00,0x03,0x05,0x04,0x00,0x81,0x84,0x88,0xFF,0xFF,0x7F,0x03,0xFF,0xFF,0xFF,0x06,0xFF,0xFF,0xE7,0x03,0xFF,0xD5,0x39,0x01,0xFF,0x0E,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x1A,0x06,0x00,0xFF,0xEA,0xCF,0x17,0xFF,0xE2,0xA6,0x10,0xFF,0x32,0x00,0x00,0xFF,0xCB,0x80,0x06,0xFF,0xFF,0xF4,0x09,0xFF,0xD8,0x44,0x00,0xFF,0x10,0x00,0x00,0xFF,0x01,0x00,0x00,0xFF,0x07,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x44,0x21,0x00,0xFF,0xFD,0xE9,0x1C,0xFF,0xFF,0xD6,0x09,0xFF,0xFF,0xFF,0x28,0xFF,0xB4,0x75,0x04,0xFF,0x01,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x81,0x84,0x88,0xFF,0x03,0x04,0x03,0x00,0x03,0x05,0x04,0x00,0x81,0x84,0x88,0xFF,0xFF,0x8D,0x03,0xFF,0xFF,0xFF,0x41,0xFF,0xFF,0xFF,0x3F,0xFF,0xFF,0x7E,0x01,0xFF,0x4C,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x49,0x30,0x04,0xFF,0xFF,0xFC,0x5A,0xFF,0xB0,0x7E,0x14,0xFF,0x00,0x00,0x00,0xFF,0x89,0x66,0x0F,0xFF,0xFF,0xFF,0x6B,0xFF,0xE6,0xA7,0x1E,0xFF,0x1E,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x6F,0x5A,0x18,0xFF,0xFF,0xFE,0x70,0xFF,0xCD,0x6C,0x04,0xFF,0xE8,0xB5,0x27,0xFF,0xFE,0xF3,0x60,0xFF,0x6E,0x3D,0x08,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x81,0x84,0x88,0xFF,0x03,0x04,0x03,0x00,0x03,0x05,0x04,0x00,0x81,0x84,0x88,0xFF,0xDB,0x8A,0x26,0xFF,0xFF,0xFF,0xD5,0xFF,0xFF,0xFF,0xD8,0xFF,0xFF,0xCF,0x3A,0xFF,0x94,0x12,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x15,0x0A,0x01,0xFF,0xBF,0xAC,0x7E,0xFF,0xFF,0xFF,0xDE,0xFF,0x82,0x5F,0x20,0xFF,0x00,0x00,0x00,0xFF,0x67,0x5B,0x28,0xFF,0xFF,0xFF,0xF3,0xFF,0xFF,0xF1,0xAA,0xFF,0x5D,0x2E,0x07,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x18,0x0D,0x02,0xFF,0xD0,0xC0,0x90,0xFF,0xFF,0xFF,0xF4,0xFF,0x92,0x61,0x27,0xFF,0x72,0x3F,0x0F,0xFF,0xFF,0xFF,0xE2,0xFF,0xFA,0xE5,0xAE,0xFF,0x80,0x4B,0x19,0xFF,0x02,0x00,0x00,0xFF,0x81,0x84,0x88,0xFF,0x03,0x04,0x03,0x00,0x03,0x05,0x04,0x00,0x81,0x84,0x88,0xFF,0xC9,0xA1,0x64,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFB,0xB2,0xFF,0xA1,0x33,0x03,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x01,0x00,0x00,0xFF,0x96,0x7E,0x5E,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x7E,0x6A,0x41,0xFF,0x00,0x00,0x00,0xFF,0x7F,0x75,0x56,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xA9,0x8D,0x54,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x8C,0x69,0x4F,0xFF,0xFF,0xFF,0xFE,0xFF,0xFF,0xFF,0xFF,0xFF,0x93,0x82,0x58,0xFF,0x16,0x05,0x00,0xFF,0xEB,0xDB,0xB8,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xF2,0xBD,0xFF,0x62,0x42,0x14,0xFF,0x81,0x84,0x88,0xFF,0x03,0x04,0x03,0x00,0x03,0x05,0x04,0x00,0x81,0x84,0x88,0xFF,0xA3,0x7F,0x47,0xFF,0xFF,0xFF,0xFD,0xFF,0xFF,0xFF,0xFF,0xFF,0xFC,0xDD,0xA4,0xFF,0x51,0x19,0x02,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x04,0x00,0x00,0xFF,0xD0,0xB6,0x88,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x6A,0x5A,0x39,0xFF,0x00,0x00,0x00,0xFF,0x85,0x7D,0x4E,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xB4,0xA5,0x73,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0xB5,0x9B,0x6F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x8B,0x78,0x4E,0xFF,0x00,0x00,0x00,0xFF,0xCC,0xAE,0x7E,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x8F,0x74,0x38,0xFF,0x81,0x84,0x88,0xFF,0x03,0x04,0x03,0x00,0x03,0x05,0x04,0x00,0x81,0x84,0x88,0xFF,0x24,0x14,0x03,0xFF,0x8C,0x7E,0x44,0xFF,0xA2,0x8E,0x5D,0xFF,0x5B,0x37,0x17,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x71,0x46,0x1E,0xFF,0xCB,0xA4,0x71,0xFF,0xAC,0x93,0x66,0xFF,0x17,0x0E,0x04,0xFF,0x00,0x00,0x00,0xFF,0x30,0x23,0x0A,0xFF,0xBF,0xA4,0x60,0xFF,0xC4,0xAC,0x78,0xFF,0x43,0x34,0x1A,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x5C,0x3D,0x18,0xFF,0xC9,0xA9,0x6F,0xFF,0xB8,0x94,0x63,0xFF,0x2A,0x19,0x07,0xFF,0x00,0x00,0x00,0xFF,0x53,0x3B,0x16,0xFF,0xC7,0xB6,0x70,0xFF,0xBD,0xA2,0x66,0xFF,0x2C,0x1C,0x09,0xFF,0x81,0x84,0x88,0xFF,0x03,0x04,0x03,0x00,0x03,0x05,0x04,0x00,0x81,0x84,0x88,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x81,0x84,0x88,0xFF,0x03,0x04,0x03,0x00,0x03,0x05,0x04,0x00,0x81,0x84,0x88,0xFF,0x00,0x00,0x00,0xFF,0x47,0x14,0x14,0xFF,0x47,0x14,0x14,0xFF,0x00,0x00,0x00,0xFF,0x1F,0x30,0xD6,0xFF,0x1F,0x30,0xD6,0xFF,0x00,0x00,0x00,0xFF,0xF7,0x0F,0x00,0xFF,0xF7,0x0F,0x00,0xFF,0x00,0x00,0x00,0xFF,0xC8,0x47,0x0E,0xFF,0xC8,0x47,0x0E,0xFF,0x00,0x00,0x00,0xFF,0x20,0xE6,0x0F,0xFF,0x20,0xE6,0x0F,0xFF,0x00,0x00,0x00,0xFF,0xEB,0xF5,0x22,0xFF,0xEB,0xF5,0x22,0xFF,0x00,0x00,0x00,0xFF,0x40,0x40,0x40,0xFF,0x79,0x79,0x79,0xFF,0x00,0x00,0x00,0xFF,0x79,0x79,0x79,0xFF,0x79,0x79,0x79,0xFF,0x00,0x00,0x00,0xFF,0xD7,0xF1,0x00,0xFF,0xD7,0xF1,0x00,0xFF,0x00,0x00,0x00,0xFF,0x81,0x84,0x88,0xFF,0x03,0x04,0x03,0x00,0x03,0x05,0x04,0x00,0x81,0x84,0x88,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x81,0x84,0x88,0xFF,0x03,0x04,0x03,0x00,0x03,0x05,0x04,0x00,0x81,0x84,0x88,0xFF,0x00,0x00,0x00,0xFF,0xFE,0xFF,0xFF,0xFF,0x00,0x00,0x00,0xFF,0xFE,0xFF,0xFF,0xFF,0x00,0x00,0x00,0xFF,0xFE,0xFF,0xFF,0xFF,0xFE,0xFF,0xFF,0xFF,0xFE,0xFF,0xFF,0xFF,0xFE,0xFF,0xFF,0xFF,0xFE,0xFF,0xFF,0xFF,0x00,0x00,0x00,0xFF,0xFE,0xFF,0xFF,0xFF,0xFE,0xFF,0xFF,0xFF,0xFE,0xFF,0xFF,0xFF,0xFE,0xFF,0xFF,0xFF,0xFE,0xFF,0xFF,0xFF,0x00,0x00,0x00,0xFF,0xFE,0xFF,0xFF,0xFF,0x00,0x00,0x00,0xFF,0xFE,0xFF,0xFF,0xFF,0xFE,0xFF,0xFF,0xFF,0xFE,0xFF,0xFF,0xFF,0xFE,0xFF,0xFF,0xFF,0x00,0x00,0x00,0xFF,0xFE,0xFF,0xFF,0xFF,0x00,0x00,0x00,0xFF,0xFE,0xFF,0xFF,0xFF,0x00,0x00,0x00,0xFF,0x81,0x84,0x88,0xFF,0x03,0x04,0x03,0x00,0x03,0x05,0x04,0x00,0x81,0x84,0x88,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x81,0x84,0x88,0xFF,0x03,0x04,0x03,0x00,0x03,0x05,0x04,0x00,0x44,0x46,0x48,0x00,0x7A,0x7D,0x81,0xFF,0x81,0x84,0x88,0xFF,0x81,0x84,0x88,0xFF,0x81,0x84,0x88,0xFF,0x81,0x84,0x88,0xFF,0x81,0x84,0x88,0xFF,0x81,0x84,0x88,0xFF,0x81,0x84,0x88,0xFF,0x81,0x84,0x88,0xFF,0x81,0x84,0x88,0xFF,0x81,0x84,0x88,0xFF,0x81,0x84,0x88,0xFF,0x81,0x84,0x88,0xFF,0x81,0x84,0x88,0xFF,0x81,0x84,0x88,0xFF,0x83,0x86,0x8A,0xFF,0x86,0x89,0x8C,0xFF,0x89,0x8C,0x8F,0xFF,0x87,0x8A,0x8F,0xFF,0x85,0x87,0x8B,0xFF,0x82,0x84,0x88,0xFF,0x81,0x84,0x88,0xFF,0x81,0x84,0x88,0xFF,0x81,0x84,0x88,0xFF,0x81,0x84,0x88,0xFF,0x81,0x84,0x88,0xFF,0x81,0x84,0x88,0xFF,0x81,0x84,0x88,0xFF,0x44,0x46,0x48,0x00,0x03,0x04,0x03,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x04,0x03,0x00,0x03,0x04,0x03,0x00,0x03,0x04,0x03,0x00,0x03,0x04,0x03,0x00,0x03,0x04,0x03,0x00,0x03,0x04,0x03,0x00,0x03,0x04,0x03,0x00,0x03,0x04,0x03,0x00,0x03,0x04,0x03,0x00,0x03,0x04,0x03,0x00,0x03,0x04,0x03,0x00,0x03,0x04,0x03,0x00,0x03,0x04,0x03,0x00,0x03,0x04,0x03,0x00,0x03,0x04,0x03,0x00,0x03,0x04,0x03,0x00,0x03,0x04,0x03,0x00,0x03,0x04,0x03,0x00,0x03,0x04,0x03,0x00,0x03,0x04,0x03,0x00,0x03,0x04,0x03,0x00,0x03,0x04,0x03,0x00,0x03,0x04,0x03,0x00,0x03,0x04,0x03,0x00,0x03,0x04,0x03,0x00,0x03,0x04,0x03,0x00,0x03,0x04,0x03,0x00,0x03,0x04,0x03,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00 }; \ No newline at end of file +static unsigned char app_icon_w32[] = { 0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x44,0x47,0x49,0x00,0x81,0x84,0x88,0xFF,0x81,0x84,0x88,0xFF,0x81,0x84,0x88,0xFF,0x81,0x84,0x88,0xFF,0x81,0x84,0x88,0xFF,0x81,0x84,0x88,0xFF,0x81,0x84,0x88,0xFF,0x81,0x84,0x88,0xFF,0x81,0x84,0x88,0xFF,0x81,0x84,0x88,0xFF,0x81,0x84,0x88,0xFF,0x81,0x84,0x88,0xFF,0x81,0x84,0x88,0xFF,0x81,0x84,0x88,0xFF,0x81,0x84,0x88,0xFF,0x81,0x84,0x88,0xFF,0x81,0x84,0x88,0xFF,0x81,0x84,0x88,0xFF,0x81,0x84,0x88,0xFF,0x81,0x84,0x88,0xFF,0x81,0x84,0x88,0xFF,0x81,0x84,0x88,0xFF,0x81,0x84,0x88,0xFF,0x81,0x84,0x88,0xFF,0x81,0x84,0x88,0xFF,0x81,0x84,0x88,0xFF,0x81,0x84,0x88,0xFF,0x81,0x84,0x88,0xFF,0x44,0x46,0x48,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x86,0x88,0x8A,0xFF,0xD8,0xDE,0xE6,0xFF,0xD1,0xD7,0xDF,0xFF,0xD1,0xD7,0xDE,0xFF,0xD1,0xD7,0xDE,0xFF,0xD1,0xD7,0xDE,0xFF,0xD1,0xD7,0xDE,0xFF,0xD1,0xD7,0xDE,0xFF,0xD1,0xD7,0xDE,0xFF,0xD1,0xD7,0xDE,0xFF,0xD1,0xD7,0xDE,0xFF,0xD1,0xD7,0xDE,0xFF,0xD1,0xD7,0xDE,0xFF,0xD1,0xD7,0xDE,0xFF,0xD1,0xD7,0xDE,0xFF,0xD1,0xD7,0xDE,0xFF,0xD1,0xD7,0xDE,0xFF,0xD1,0xD7,0xDE,0xFF,0xD1,0xD7,0xDE,0xFF,0xD1,0xD7,0xDE,0xFF,0xD1,0xD7,0xDE,0xFF,0xD1,0xD7,0xDE,0xFF,0xD1,0xD7,0xDE,0xFF,0x68,0x79,0x91,0xFF,0xD1,0xD7,0xDE,0xFF,0x68,0x79,0x91,0xFF,0xD1,0xD7,0xDE,0xFF,0x68,0x79,0x91,0xFF,0xD1,0xD7,0xDE,0xFF,0x81,0x84,0x88,0xFF,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x83,0x85,0x89,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x02,0x00,0x00,0xFF,0x06,0x00,0x00,0xFF,0x05,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x1E,0x00,0x00,0xFF,0x07,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x01,0x00,0x00,0xFF,0x05,0x00,0x00,0xFF,0x03,0x00,0x00,0xFF,0x02,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x14,0x00,0x00,0xFF,0xE1,0x01,0x00,0xFF,0xF4,0x03,0x00,0xFF,0x24,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x81,0x84,0x88,0xFF,0x03,0x04,0x03,0x00,0x03,0x05,0x04,0x00,0x7F,0x81,0x86,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x05,0x00,0x00,0xFF,0x0F,0x00,0x00,0xFF,0x05,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x03,0x00,0x00,0xFF,0x36,0x01,0x00,0xFF,0x06,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x01,0x00,0x00,0xFF,0x02,0x00,0x00,0xFF,0x01,0x00,0x00,0xFF,0x01,0x00,0x00,0xFF,0x07,0x00,0x00,0xFF,0x06,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x1A,0x00,0x00,0xFF,0xE7,0x0A,0x01,0xFF,0xFF,0x07,0x01,0xFF,0x41,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x81,0x84,0x88,0xFF,0x03,0x04,0x03,0x00,0x03,0x05,0x04,0x00,0x7F,0x81,0x85,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x1A,0x00,0x00,0xFF,0x16,0x01,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x0B,0x00,0x00,0xFF,0x55,0x02,0x00,0xFF,0x04,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x01,0x00,0x00,0xFF,0x01,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x02,0x00,0x00,0xFF,0x03,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x39,0x00,0x00,0xFF,0xF8,0x1B,0x02,0xFF,0xFF,0x2F,0x03,0xFF,0x52,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x81,0x84,0x88,0xFF,0x03,0x04,0x03,0x00,0x03,0x05,0x04,0x00,0x7F,0x81,0x85,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x1C,0x00,0x00,0xFF,0x5C,0x01,0x00,0xFF,0x09,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x36,0x01,0x00,0xFF,0xAE,0x04,0x01,0xFF,0x02,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x01,0x00,0x00,0xFF,0x01,0x00,0x00,0xFF,0x01,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x50,0x00,0x00,0xFF,0xFE,0x44,0x02,0xFF,0xFF,0x5C,0x03,0xFF,0x60,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x81,0x84,0x88,0xFF,0x03,0x04,0x03,0x00,0x03,0x05,0x04,0x00,0x7F,0x81,0x85,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x12,0x00,0x00,0xFF,0x9F,0x02,0x00,0xFF,0x49,0x01,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x73,0x04,0x00,0xFF,0xEC,0x09,0x01,0xFF,0x2B,0x00,0x00,0xFF,0x06,0x00,0x00,0xFF,0x13,0x00,0x00,0xFF,0x07,0x00,0x00,0xFF,0x04,0x00,0x00,0xFF,0x04,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x4E,0x06,0x00,0xFF,0xFF,0xC1,0x08,0xFF,0xFD,0x9A,0x07,0xFF,0x49,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x81,0x84,0x88,0xFF,0x03,0x04,0x03,0x00,0x03,0x05,0x04,0x00,0x7F,0x81,0x85,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x8B,0x01,0x00,0xFF,0xD5,0x03,0x00,0xFF,0x07,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x03,0x00,0x00,0xFF,0xB7,0x0D,0x01,0xFF,0xFF,0x0F,0x02,0xFF,0xDE,0x00,0x00,0xFF,0xAB,0x00,0x00,0xFF,0xA5,0x01,0x00,0xFF,0x3D,0x00,0x00,0xFF,0x02,0x00,0x00,0xFF,0x03,0x00,0x00,0xFF,0x03,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x8B,0x35,0x03,0xFF,0xFF,0xF0,0x0E,0xFF,0xDF,0x4B,0x01,0xFF,0x14,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x81,0x84,0x88,0xFF,0x03,0x04,0x03,0x00,0x03,0x05,0x04,0x00,0x81,0x84,0x88,0xFF,0x00,0x00,0x00,0xFF,0x55,0x00,0x00,0xFF,0xFF,0x05,0x01,0xFF,0x73,0x01,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x1B,0x00,0x00,0xFF,0xE5,0x0F,0x01,0xFF,0xFF,0x0D,0x02,0xFF,0xFF,0x04,0x01,0xFF,0xFF,0x03,0x00,0xFF,0xFF,0x01,0x00,0xFF,0x8F,0x00,0x00,0xFF,0x02,0x00,0x00,0xFF,0x02,0x00,0x00,0xFF,0x03,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x1B,0x00,0x00,0xFF,0xD9,0x47,0x03,0xFF,0xFF,0x92,0x06,0xFF,0xAF,0x12,0x00,0xFF,0x01,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x81,0x84,0x88,0xFF,0x03,0x04,0x03,0x00,0x03,0x05,0x04,0x00,0x81,0x84,0x88,0xFF,0x20,0x00,0x00,0xFF,0xE5,0x08,0x01,0xFF,0xD1,0x04,0x01,0xFF,0x0E,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x30,0x01,0x00,0xFF,0xF6,0x47,0x04,0xFF,0xFF,0x1F,0x02,0xFF,0xFF,0x03,0x01,0xFF,0xFF,0x06,0x01,0xFF,0xFF,0x03,0x00,0xFF,0xC7,0x01,0x00,0xFF,0x1F,0x00,0x00,0xFF,0x03,0x00,0x00,0xFF,0x06,0x01,0x00,0xFF,0x00,0x00,0x00,0xFF,0x38,0x02,0x00,0xFF,0xFB,0x72,0x07,0xFF,0xFF,0x5A,0x03,0xFF,0x73,0x01,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x81,0x84,0x88,0xFF,0x03,0x04,0x03,0x00,0x03,0x05,0x04,0x00,0x81,0x84,0x88,0xFF,0xA1,0x02,0x00,0xFF,0xFF,0x0C,0x03,0xFF,0x7B,0x01,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x3B,0x06,0x00,0xFF,0xFF,0xBB,0x0C,0xFF,0xFF,0x56,0x04,0xFF,0xFF,0x00,0x01,0xFF,0xFF,0x10,0x03,0xFF,0xFF,0x02,0x01,0xFF,0xDE,0x01,0x00,0xFF,0x34,0x00,0x00,0xFF,0x03,0x00,0x00,0xFF,0x05,0x01,0x00,0xFF,0x00,0x00,0x00,0xFF,0x3B,0x03,0x00,0xFF,0xFC,0x83,0x06,0xFF,0xFF,0x71,0x03,0xFF,0x83,0x05,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x81,0x84,0x88,0xFF,0x03,0x04,0x03,0x00,0x03,0x05,0x04,0x00,0x81,0x84,0x88,0xFF,0xFB,0x18,0x03,0xFF,0xFF,0x0E,0x02,0xFF,0xB9,0x00,0x00,0xFF,0x06,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x21,0x01,0x00,0xFF,0xE8,0xB9,0x0F,0xFF,0xFF,0x8F,0x0C,0xFF,0xFF,0x02,0x00,0xFF,0xFF,0x3C,0x04,0xFF,0xFF,0x16,0x02,0xFF,0xFD,0x00,0x00,0xFF,0x63,0x00,0x00,0xFF,0x02,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x40,0x0B,0x00,0xFF,0xFE,0xAD,0x06,0xFF,0xFF,0xC9,0x06,0xFF,0xCC,0x45,0x02,0xFF,0x08,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x81,0x84,0x88,0xFF,0x03,0x04,0x03,0x00,0x03,0x05,0x04,0x00,0x81,0x84,0x88,0xFF,0xFF,0x49,0x03,0xFF,0xFF,0x7E,0x03,0xFF,0xFF,0x45,0x01,0xFF,0x67,0x05,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x09,0x00,0x00,0xFF,0xCC,0xA0,0x08,0xFF,0xFB,0xAA,0x0A,0xFF,0xC9,0x00,0x00,0xFF,0xFE,0x6B,0x03,0xFF,0xFF,0x79,0x02,0xFF,0xF9,0x0A,0x00,0xFF,0x4C,0x00,0x00,0xFF,0x02,0x00,0x00,0xFF,0x08,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x3F,0x14,0x00,0xFF,0xFC,0xDF,0x10,0xFF,0xFF,0xFF,0x10,0xFF,0xFA,0xCD,0x14,0xFF,0x46,0x0C,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x81,0x84,0x88,0xFF,0x03,0x04,0x03,0x00,0x03,0x05,0x04,0x00,0x81,0x84,0x88,0xFF,0xFF,0x7F,0x03,0xFF,0xFF,0xFF,0x06,0xFF,0xFF,0xE7,0x03,0xFF,0xD5,0x39,0x01,0xFF,0x0E,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x1A,0x06,0x00,0xFF,0xEA,0xCF,0x17,0xFF,0xE2,0xA6,0x10,0xFF,0x32,0x00,0x00,0xFF,0xCB,0x80,0x06,0xFF,0xFF,0xF4,0x09,0xFF,0xD8,0x44,0x00,0xFF,0x10,0x00,0x00,0xFF,0x01,0x00,0x00,0xFF,0x07,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x44,0x21,0x00,0xFF,0xFD,0xE9,0x1C,0xFF,0xFF,0xD6,0x09,0xFF,0xFF,0xFF,0x28,0xFF,0xB4,0x75,0x04,0xFF,0x01,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x81,0x84,0x88,0xFF,0x03,0x04,0x03,0x00,0x03,0x05,0x04,0x00,0x81,0x84,0x88,0xFF,0xFF,0x8D,0x03,0xFF,0xFF,0xFF,0x41,0xFF,0xFF,0xFF,0x3F,0xFF,0xFF,0x7E,0x01,0xFF,0x4C,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x49,0x30,0x04,0xFF,0xFF,0xFC,0x5A,0xFF,0xB0,0x7E,0x14,0xFF,0x00,0x00,0x00,0xFF,0x89,0x66,0x0F,0xFF,0xFF,0xFF,0x6B,0xFF,0xE6,0xA7,0x1E,0xFF,0x1E,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x6F,0x5A,0x18,0xFF,0xFF,0xFE,0x70,0xFF,0xCD,0x6C,0x04,0xFF,0xE8,0xB5,0x27,0xFF,0xFE,0xF3,0x60,0xFF,0x6E,0x3D,0x08,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x81,0x84,0x88,0xFF,0x03,0x04,0x03,0x00,0x03,0x05,0x04,0x00,0x81,0x84,0x88,0xFF,0xDB,0x8A,0x26,0xFF,0xFF,0xFF,0xD5,0xFF,0xFF,0xFF,0xD8,0xFF,0xFF,0xCF,0x3A,0xFF,0x94,0x12,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x15,0x0A,0x01,0xFF,0xBF,0xAC,0x7E,0xFF,0xFF,0xFF,0xDE,0xFF,0x82,0x5F,0x20,0xFF,0x00,0x00,0x00,0xFF,0x67,0x5B,0x28,0xFF,0xFF,0xFF,0xF3,0xFF,0xFF,0xF1,0xAA,0xFF,0x5D,0x2E,0x07,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x18,0x0D,0x02,0xFF,0xD0,0xC0,0x90,0xFF,0xFF,0xFF,0xF4,0xFF,0x92,0x61,0x27,0xFF,0x72,0x3F,0x0F,0xFF,0xFF,0xFF,0xE2,0xFF,0xFA,0xE5,0xAE,0xFF,0x80,0x4B,0x19,0xFF,0x02,0x00,0x00,0xFF,0x81,0x84,0x88,0xFF,0x03,0x04,0x03,0x00,0x03,0x05,0x04,0x00,0x81,0x84,0x88,0xFF,0xC9,0xA1,0x64,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFB,0xB2,0xFF,0xA1,0x33,0x03,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x01,0x00,0x00,0xFF,0x96,0x7E,0x5E,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x7E,0x6A,0x41,0xFF,0x00,0x00,0x00,0xFF,0x7F,0x75,0x56,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xA9,0x8D,0x54,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x8C,0x69,0x4F,0xFF,0xFF,0xFF,0xFE,0xFF,0xFF,0xFF,0xFF,0xFF,0x93,0x82,0x58,0xFF,0x16,0x05,0x00,0xFF,0xEB,0xDB,0xB8,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xF2,0xBD,0xFF,0x62,0x42,0x14,0xFF,0x81,0x84,0x88,0xFF,0x03,0x04,0x03,0x00,0x03,0x05,0x04,0x00,0x81,0x84,0x88,0xFF,0xA3,0x7F,0x47,0xFF,0xFF,0xFF,0xFD,0xFF,0xFF,0xFF,0xFF,0xFF,0xFC,0xDD,0xA4,0xFF,0x51,0x19,0x02,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x04,0x00,0x00,0xFF,0xD0,0xB6,0x88,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x6A,0x5A,0x39,0xFF,0x00,0x00,0x00,0xFF,0x85,0x7D,0x4E,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xB4,0xA5,0x73,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0xB5,0x9B,0x6F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x8B,0x78,0x4E,0xFF,0x00,0x00,0x00,0xFF,0xCC,0xAE,0x7E,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x8F,0x74,0x38,0xFF,0x81,0x84,0x88,0xFF,0x03,0x04,0x03,0x00,0x03,0x05,0x04,0x00,0x81,0x84,0x88,0xFF,0x24,0x14,0x03,0xFF,0x8C,0x7E,0x44,0xFF,0xA2,0x8E,0x5D,0xFF,0x5B,0x37,0x17,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x71,0x46,0x1E,0xFF,0xCB,0xA4,0x71,0xFF,0xAC,0x93,0x66,0xFF,0x17,0x0E,0x04,0xFF,0x00,0x00,0x00,0xFF,0x30,0x23,0x0A,0xFF,0xBF,0xA4,0x60,0xFF,0xC4,0xAC,0x78,0xFF,0x43,0x34,0x1A,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x5C,0x3D,0x18,0xFF,0xC9,0xA9,0x6F,0xFF,0xB8,0x94,0x63,0xFF,0x2A,0x19,0x07,0xFF,0x00,0x00,0x00,0xFF,0x53,0x3B,0x16,0xFF,0xC7,0xB6,0x70,0xFF,0xBD,0xA2,0x66,0xFF,0x2C,0x1C,0x09,0xFF,0x81,0x84,0x88,0xFF,0x03,0x04,0x03,0x00,0x03,0x05,0x04,0x00,0x81,0x84,0x88,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x81,0x84,0x88,0xFF,0x03,0x04,0x03,0x00,0x03,0x05,0x04,0x00,0x81,0x84,0x88,0xFF,0x00,0x00,0x00,0xFF,0x47,0x14,0x14,0xFF,0x47,0x14,0x14,0xFF,0x00,0x00,0x00,0xFF,0x1F,0x30,0xD6,0xFF,0x1F,0x30,0xD6,0xFF,0x00,0x00,0x00,0xFF,0xF7,0x0F,0x00,0xFF,0xF7,0x0F,0x00,0xFF,0x00,0x00,0x00,0xFF,0xC8,0x47,0x0E,0xFF,0xC8,0x47,0x0E,0xFF,0x00,0x00,0x00,0xFF,0x20,0xE6,0x0F,0xFF,0x20,0xE6,0x0F,0xFF,0x00,0x00,0x00,0xFF,0xEB,0xF5,0x22,0xFF,0xEB,0xF5,0x22,0xFF,0x00,0x00,0x00,0xFF,0x40,0x40,0x40,0xFF,0x79,0x79,0x79,0xFF,0x00,0x00,0x00,0xFF,0x79,0x79,0x79,0xFF,0x79,0x79,0x79,0xFF,0x00,0x00,0x00,0xFF,0xD7,0xF1,0x00,0xFF,0xD7,0xF1,0x00,0xFF,0x00,0x00,0x00,0xFF,0x81,0x84,0x88,0xFF,0x03,0x04,0x03,0x00,0x03,0x05,0x04,0x00,0x81,0x84,0x88,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x81,0x84,0x88,0xFF,0x03,0x04,0x03,0x00,0x03,0x05,0x04,0x00,0x81,0x84,0x88,0xFF,0x00,0x00,0x00,0xFF,0xFE,0xFF,0xFF,0xFF,0x00,0x00,0x00,0xFF,0xFE,0xFF,0xFF,0xFF,0x00,0x00,0x00,0xFF,0xFE,0xFF,0xFF,0xFF,0xFE,0xFF,0xFF,0xFF,0xFE,0xFF,0xFF,0xFF,0xFE,0xFF,0xFF,0xFF,0xFE,0xFF,0xFF,0xFF,0x00,0x00,0x00,0xFF,0xFE,0xFF,0xFF,0xFF,0xFE,0xFF,0xFF,0xFF,0xFE,0xFF,0xFF,0xFF,0xFE,0xFF,0xFF,0xFF,0xFE,0xFF,0xFF,0xFF,0x00,0x00,0x00,0xFF,0xFE,0xFF,0xFF,0xFF,0x00,0x00,0x00,0xFF,0xFE,0xFF,0xFF,0xFF,0xFE,0xFF,0xFF,0xFF,0xFE,0xFF,0xFF,0xFF,0xFE,0xFF,0xFF,0xFF,0x00,0x00,0x00,0xFF,0xFE,0xFF,0xFF,0xFF,0x00,0x00,0x00,0xFF,0xFE,0xFF,0xFF,0xFF,0x00,0x00,0x00,0xFF,0x81,0x84,0x88,0xFF,0x03,0x04,0x03,0x00,0x03,0x05,0x04,0x00,0x81,0x84,0x88,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x81,0x84,0x88,0xFF,0x03,0x04,0x03,0x00,0x03,0x05,0x04,0x00,0x44,0x46,0x48,0x00,0x7A,0x7D,0x81,0xFF,0x81,0x84,0x88,0xFF,0x81,0x84,0x88,0xFF,0x81,0x84,0x88,0xFF,0x81,0x84,0x88,0xFF,0x81,0x84,0x88,0xFF,0x81,0x84,0x88,0xFF,0x81,0x84,0x88,0xFF,0x81,0x84,0x88,0xFF,0x81,0x84,0x88,0xFF,0x81,0x84,0x88,0xFF,0x81,0x84,0x88,0xFF,0x81,0x84,0x88,0xFF,0x81,0x84,0x88,0xFF,0x81,0x84,0x88,0xFF,0x83,0x86,0x8A,0xFF,0x86,0x89,0x8C,0xFF,0x89,0x8C,0x8F,0xFF,0x87,0x8A,0x8F,0xFF,0x85,0x87,0x8B,0xFF,0x82,0x84,0x88,0xFF,0x81,0x84,0x88,0xFF,0x81,0x84,0x88,0xFF,0x81,0x84,0x88,0xFF,0x81,0x84,0x88,0xFF,0x81,0x84,0x88,0xFF,0x81,0x84,0x88,0xFF,0x81,0x84,0x88,0xFF,0x44,0x46,0x48,0x00,0x03,0x04,0x03,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x04,0x03,0x00,0x03,0x04,0x03,0x00,0x03,0x04,0x03,0x00,0x03,0x04,0x03,0x00,0x03,0x04,0x03,0x00,0x03,0x04,0x03,0x00,0x03,0x04,0x03,0x00,0x03,0x04,0x03,0x00,0x03,0x04,0x03,0x00,0x03,0x04,0x03,0x00,0x03,0x04,0x03,0x00,0x03,0x04,0x03,0x00,0x03,0x04,0x03,0x00,0x03,0x04,0x03,0x00,0x03,0x04,0x03,0x00,0x03,0x04,0x03,0x00,0x03,0x04,0x03,0x00,0x03,0x04,0x03,0x00,0x03,0x04,0x03,0x00,0x03,0x04,0x03,0x00,0x03,0x04,0x03,0x00,0x03,0x04,0x03,0x00,0x03,0x04,0x03,0x00,0x03,0x04,0x03,0x00,0x03,0x04,0x03,0x00,0x03,0x04,0x03,0x00,0x03,0x04,0x03,0x00,0x03,0x04,0x03,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00,0x03,0x05,0x04,0x00 }; diff --git a/src/graphics/DrawMethodsDef.inc b/src/graphics/DrawMethodsDef.inc index 4aee0c9fe..31fbb6869 100644 --- a/src/graphics/DrawMethodsDef.inc +++ b/src/graphics/DrawMethodsDef.inc @@ -14,4 +14,4 @@ void clearrect(int x, int y, int width, int height); void gradientrect(int x, int y, int width, int height, int r, int g, int b, int a, int r2, int g2, int b2, int a2); - void draw_image(pixel *img, int x, int y, int w, int h, int a); \ No newline at end of file + void draw_image(pixel *img, int x, int y, int w, int h, int a); diff --git a/src/graphics/RasterDrawMethods.inl b/src/graphics/RasterDrawMethods.inl index 5ac22cbe3..d56952895 100644 --- a/src/graphics/RasterDrawMethods.inl +++ b/src/graphics/RasterDrawMethods.inl @@ -461,4 +461,4 @@ void PIXELMETHODS_CLASS::draw_image(const VideoBuffer & vidBuf, int x, int y, in void PIXELMETHODS_CLASS::draw_image(VideoBuffer * vidBuf, int x, int y, int a) { draw_image(vidBuf->Buffer, x, y, vidBuf->Width, vidBuf->Height, a); -} \ No newline at end of file +} diff --git a/src/powdertoyjava/OpenGLCanvasMacOS.mm b/src/powdertoyjava/OpenGLCanvasMacOS.mm index c169c5f39..28dcfe54f 100644 --- a/src/powdertoyjava/OpenGLCanvasMacOS.mm +++ b/src/powdertoyjava/OpenGLCanvasMacOS.mm @@ -166,4 +166,4 @@ JNIEXPORT void JNICALL Java_OpenGLCanvas_releaseOpenGL(JNIEnv *env, jobject canv freeContext(env, canvas, ci); } -#endif \ No newline at end of file +#endif From bf908bbfbfcfd338691fc6fcb890cf782182a896 Mon Sep 17 00:00:00 2001 From: mniip Date: Sat, 26 Oct 2013 21:50:40 +0400 Subject: [PATCH 4/5] Fix various warnings, remove silly useless NO_INLINE system, remove the need for -fkeep-inline-functions --- SConscript | 2 +- src/Config.h | 3 - src/Format.cpp | 4 +- src/Misc.cpp | 4 +- src/cajun/elements.cpp | 124 ++++++++++++++--------------- src/cajun/reader.cpp | 54 ++++++------- src/cajun/writer.cpp | 42 +++++----- src/client/Client.cpp | 4 +- src/debug/ElementPopulation.cpp | 2 - src/graphics/OpenGLDrawMethods.inl | 2 +- src/graphics/RasterDrawMethods.inl | 2 +- src/gui/game/GameModel.cpp | 2 +- src/gui/game/GameModel.h | 3 +- src/gui/game/GameView.cpp | 2 +- src/gui/interface/Button.cpp | 4 +- src/gui/interface/Button.h | 4 +- src/gui/interface/Engine.h | 2 +- src/gui/interface/Panel.cpp | 1 - src/gui/preview/PreviewModel.cpp | 2 +- src/simulation/Simulation.cpp | 4 +- src/simulation/Simulation.h | 46 +++++------ 21 files changed, 152 insertions(+), 161 deletions(-) diff --git a/SConscript b/SConscript index 2a1b014cb..a95cf43ce 100755 --- a/SConscript +++ b/SConscript @@ -253,7 +253,7 @@ if GetOption("toolprefix"): # make sure the compiler can find the source data and generated files. enable warnings, set C++ flavor, and keep inline functions env.Append(CPPPATH=['src/', 'data/', 'generated/']) -env.Append(CCFLAGS=['-w', '-std=c++98', '-fkeep-inline-functions']) +env.Append(CXXFLAGS=['-std=c++98']) env.Append(LIBS=['pthread', 'm']) env.Append(CPPDEFINES=["_GNU_SOURCE", "USE_STDINT", "_POSIX_C_SOURCE=200112L"]) diff --git a/src/Config.h b/src/Config.h index 71e51a104..35f4bf9ff 100644 --- a/src/Config.h +++ b/src/Config.h @@ -181,13 +181,10 @@ extern unsigned char ZSIZE; #if defined(_MSC_VER) #define TPT_INLINE _inline -#define TPT_NO_INLINE #elif defined(__llvm__) #define TPT_INLINE -#define TPT_NO_INLINE #else #define TPT_INLINE inline -#define TPT_NO_INLINE inline #endif #define SDEUT diff --git a/src/Format.cpp b/src/Format.cpp index 3bfb17b7b..ca61b48bf 100644 --- a/src/Format.cpp +++ b/src/Format.cpp @@ -73,7 +73,7 @@ std::string format::UnixtimeToDateMini(time_t unixtime) std::string format::CleanString(std::string dirtyString, int maxStringLength) { - return CleanString(dirtyString, std::string::npos, maxStringLength); + return CleanString(dirtyString, (int)std::string::npos, maxStringLength); } std::string format::CleanString(std::string dirtyString, int maxVisualSize, int maxStringLength) @@ -97,7 +97,7 @@ std::string format::CleanString(std::string dirtyString, int maxVisualSize, int std::string format::CleanString(char * dirtyData, int maxStringLength) { - return CleanString(dirtyData, std::string::npos, maxStringLength); + return CleanString(dirtyData, (int)std::string::npos, maxStringLength); } std::string format::CleanString(char * dirtyData, int maxVisualSize, int maxStringLength) diff --git a/src/Misc.cpp b/src/Misc.cpp index 2c6ea8449..3f7e2ea2c 100644 --- a/src/Misc.cpp +++ b/src/Misc.cpp @@ -101,7 +101,7 @@ int isign(float i) //TODO: INline or macro return 0; } -TPT_NO_INLINE unsigned clamp_flt(float f, float min, float max) //TODO: Also inline/macro +unsigned clamp_flt(float f, float min, float max) //TODO: Also inline/macro { if (f( Null() ) ) {} -TPT_NO_INLINE UnknownElement::UnknownElement(const UnknownElement& unknown) : m_pImp( unknown.m_pImp->Clone()) {} -TPT_NO_INLINE UnknownElement::UnknownElement(const Object& object) : m_pImp( new Imp_T(object) ) {} -TPT_NO_INLINE UnknownElement::UnknownElement(const Array& array) : m_pImp( new Imp_T(array) ) {} -TPT_NO_INLINE UnknownElement::UnknownElement(const Number& number) : m_pImp( new Imp_T(number) ) {} -TPT_NO_INLINE UnknownElement::UnknownElement(const Boolean& boolean) : m_pImp( new Imp_T(boolean) ) {} -TPT_NO_INLINE UnknownElement::UnknownElement(const String& string) : m_pImp( new Imp_T(string) ) {} -TPT_NO_INLINE UnknownElement::UnknownElement(const Null& null) : m_pImp( new Imp_T(null) ) {} +UnknownElement::UnknownElement() : m_pImp( new Imp_T( Null() ) ) {} +UnknownElement::UnknownElement(const UnknownElement& unknown) : m_pImp( unknown.m_pImp->Clone()) {} +UnknownElement::UnknownElement(const Object& object) : m_pImp( new Imp_T(object) ) {} +UnknownElement::UnknownElement(const Array& array) : m_pImp( new Imp_T(array) ) {} +UnknownElement::UnknownElement(const Number& number) : m_pImp( new Imp_T(number) ) {} +UnknownElement::UnknownElement(const Boolean& boolean) : m_pImp( new Imp_T(boolean) ) {} +UnknownElement::UnknownElement(const String& string) : m_pImp( new Imp_T(string) ) {} +UnknownElement::UnknownElement(const Null& null) : m_pImp( new Imp_T(null) ) {} -TPT_NO_INLINE UnknownElement::~UnknownElement() { delete m_pImp; } +UnknownElement::~UnknownElement() { delete m_pImp; } -TPT_NO_INLINE UnknownElement::operator const Object& () const { return CastTo(); } -TPT_NO_INLINE UnknownElement::operator const Array& () const { return CastTo(); } -TPT_NO_INLINE UnknownElement::operator const Number& () const { return CastTo(); } -TPT_NO_INLINE UnknownElement::operator const Boolean& () const { return CastTo(); } -TPT_NO_INLINE UnknownElement::operator const String& () const { return CastTo(); } -TPT_NO_INLINE UnknownElement::operator const Null& () const { return CastTo(); } +UnknownElement::operator const Object& () const { return CastTo(); } +UnknownElement::operator const Array& () const { return CastTo(); } +UnknownElement::operator const Number& () const { return CastTo(); } +UnknownElement::operator const Boolean& () const { return CastTo(); } +UnknownElement::operator const String& () const { return CastTo(); } +UnknownElement::operator const Null& () const { return CastTo(); } -TPT_NO_INLINE UnknownElement::operator Object& () { return ConvertTo(); } -TPT_NO_INLINE UnknownElement::operator Array& () { return ConvertTo(); } -TPT_NO_INLINE UnknownElement::operator Number& () { return ConvertTo(); } -TPT_NO_INLINE UnknownElement::operator Boolean& () { return ConvertTo(); } -TPT_NO_INLINE UnknownElement::operator String& () { return ConvertTo(); } -TPT_NO_INLINE UnknownElement::operator Null& () { return ConvertTo(); } +UnknownElement::operator Object& () { return ConvertTo(); } +UnknownElement::operator Array& () { return ConvertTo(); } +UnknownElement::operator Number& () { return ConvertTo(); } +UnknownElement::operator Boolean& () { return ConvertTo(); } +UnknownElement::operator String& () { return ConvertTo(); } +UnknownElement::operator Null& () { return ConvertTo(); } -TPT_NO_INLINE UnknownElement& UnknownElement::operator = (const UnknownElement& unknown) +UnknownElement& UnknownElement::operator = (const UnknownElement& unknown) { // always check for this if (&unknown != this) @@ -170,28 +170,28 @@ TPT_NO_INLINE UnknownElement& UnknownElement::operator = (const UnknownElement& return *this; } -TPT_NO_INLINE UnknownElement& UnknownElement::operator[] (const std::string& key) +UnknownElement& UnknownElement::operator[] (const std::string& key) { // the people want an object. make us one if we aren't already Object& object = ConvertTo(); return object[key]; } -TPT_NO_INLINE const UnknownElement& UnknownElement::operator[] (const std::string& key) const +const UnknownElement& UnknownElement::operator[] (const std::string& key) const { // throws if we aren't an object const Object& object = CastTo(); return object[key]; } -TPT_NO_INLINE UnknownElement& UnknownElement::operator[] (size_t index) +UnknownElement& UnknownElement::operator[] (size_t index) { // the people want an array. make us one if we aren't already Array& array = ConvertTo(); return array[index]; } -TPT_NO_INLINE const UnknownElement& UnknownElement::operator[] (size_t index) const +const UnknownElement& UnknownElement::operator[] (size_t index) const { // throws if we aren't an array const Array& array = CastTo(); @@ -227,11 +227,11 @@ ElementTypeT& UnknownElement::ConvertTo() } -TPT_NO_INLINE void UnknownElement::Accept(ConstVisitor& visitor) const { m_pImp->Accept(visitor); } -TPT_NO_INLINE void UnknownElement::Accept(Visitor& visitor) { m_pImp->Accept(visitor); } +void UnknownElement::Accept(ConstVisitor& visitor) const { m_pImp->Accept(visitor); } +void UnknownElement::Accept(Visitor& visitor) { m_pImp->Accept(visitor); } -TPT_NO_INLINE bool UnknownElement::operator == (const UnknownElement& element) const +bool UnknownElement::operator == (const UnknownElement& element) const { return m_pImp->Compare(*element.m_pImp); } @@ -242,10 +242,10 @@ TPT_NO_INLINE bool UnknownElement::operator == (const UnknownElement& element) c // Object members -TPT_NO_INLINE Object::Member::Member(const std::string& nameIn, const UnknownElement& elementIn) : +Object::Member::Member(const std::string& nameIn, const UnknownElement& elementIn) : name(nameIn), element(elementIn) {} -TPT_NO_INLINE bool Object::Member::operator == (const Member& member) const +bool Object::Member::operator == (const Member& member) const { return name == member.name && element == member.element; @@ -265,30 +265,30 @@ private: -TPT_NO_INLINE Object::iterator Object::Begin() { return m_Members.begin(); } -TPT_NO_INLINE Object::iterator Object::End() { return m_Members.end(); } -TPT_NO_INLINE Object::const_iterator Object::Begin() const { return m_Members.begin(); } -TPT_NO_INLINE Object::const_iterator Object::End() const { return m_Members.end(); } +Object::iterator Object::Begin() { return m_Members.begin(); } +Object::iterator Object::End() { return m_Members.end(); } +Object::const_iterator Object::Begin() const { return m_Members.begin(); } +Object::const_iterator Object::End() const { return m_Members.end(); } -TPT_NO_INLINE size_t Object::Size() const { return m_Members.size(); } -TPT_NO_INLINE bool Object::Empty() const { return m_Members.empty(); } +size_t Object::Size() const { return m_Members.size(); } +bool Object::Empty() const { return m_Members.empty(); } -TPT_NO_INLINE Object::iterator Object::Find(const std::string& name) +Object::iterator Object::Find(const std::string& name) { return std::find_if(m_Members.begin(), m_Members.end(), Finder(name)); } -TPT_NO_INLINE Object::const_iterator Object::Find(const std::string& name) const +Object::const_iterator Object::Find(const std::string& name) const { return std::find_if(m_Members.begin(), m_Members.end(), Finder(name)); } -TPT_NO_INLINE Object::iterator Object::Insert(const Member& member) +Object::iterator Object::Insert(const Member& member) { return Insert(member, End()); } -TPT_NO_INLINE Object::iterator Object::Insert(const Member& member, iterator itWhere) +Object::iterator Object::Insert(const Member& member, iterator itWhere) { iterator it = Find(member.name); if (it != m_Members.end()) @@ -298,12 +298,12 @@ TPT_NO_INLINE Object::iterator Object::Insert(const Member& member, iterator itW return it; } -TPT_NO_INLINE Object::iterator Object::Erase(iterator itWhere) +Object::iterator Object::Erase(iterator itWhere) { return m_Members.erase(itWhere); } -TPT_NO_INLINE UnknownElement& Object::operator [](const std::string& name) +UnknownElement& Object::operator [](const std::string& name) { iterator it = Find(name); @@ -315,7 +315,7 @@ TPT_NO_INLINE UnknownElement& Object::operator [](const std::string& name) return it->element; } -TPT_NO_INLINE const UnknownElement& Object::operator [](const std::string& name) const +const UnknownElement& Object::operator [](const std::string& name) const { const_iterator it = Find(name); if (it == End()) @@ -323,12 +323,12 @@ TPT_NO_INLINE const UnknownElement& Object::operator [](const std::string& name) return it->element; } -TPT_NO_INLINE void Object::Clear() +void Object::Clear() { m_Members.clear(); } -TPT_NO_INLINE bool Object::operator == (const Object& object) const +bool Object::operator == (const Object& object) const { return m_Members == object.m_Members; } @@ -337,35 +337,35 @@ TPT_NO_INLINE bool Object::operator == (const Object& object) const ///////////////// // Array members -TPT_NO_INLINE Array::iterator Array::Begin() { return m_Elements.begin(); } -TPT_NO_INLINE Array::iterator Array::End() { return m_Elements.end(); } -TPT_NO_INLINE Array::const_iterator Array::Begin() const { return m_Elements.begin(); } -TPT_NO_INLINE Array::const_iterator Array::End() const { return m_Elements.end(); } +Array::iterator Array::Begin() { return m_Elements.begin(); } +Array::iterator Array::End() { return m_Elements.end(); } +Array::const_iterator Array::Begin() const { return m_Elements.begin(); } +Array::const_iterator Array::End() const { return m_Elements.end(); } -TPT_NO_INLINE Array::iterator Array::Insert(const UnknownElement& element, iterator itWhere) +Array::iterator Array::Insert(const UnknownElement& element, iterator itWhere) { return m_Elements.insert(itWhere, element); } -TPT_NO_INLINE Array::iterator Array::Insert(const UnknownElement& element) +Array::iterator Array::Insert(const UnknownElement& element) { return Insert(element, End()); } -TPT_NO_INLINE Array::iterator Array::Erase(iterator itWhere) +Array::iterator Array::Erase(iterator itWhere) { return m_Elements.erase(itWhere); } -TPT_NO_INLINE void Array::Resize(size_t newSize) +void Array::Resize(size_t newSize) { m_Elements.resize(newSize); } -TPT_NO_INLINE size_t Array::Size() const { return m_Elements.size(); } -TPT_NO_INLINE bool Array::Empty() const { return m_Elements.empty(); } +size_t Array::Size() const { return m_Elements.size(); } +bool Array::Empty() const { return m_Elements.empty(); } -TPT_NO_INLINE UnknownElement& Array::operator[] (size_t index) +UnknownElement& Array::operator[] (size_t index) { size_t nMinSize = index + 1; // zero indexed if (m_Elements.size() < nMinSize) @@ -373,18 +373,18 @@ TPT_NO_INLINE UnknownElement& Array::operator[] (size_t index) return m_Elements[index]; } -TPT_NO_INLINE const UnknownElement& Array::operator[] (size_t index) const +const UnknownElement& Array::operator[] (size_t index) const { if (index >= m_Elements.size()) throw Exception("Array out of bounds"); return m_Elements[index]; } -TPT_NO_INLINE void Array::Clear() { +void Array::Clear() { m_Elements.clear(); } -TPT_NO_INLINE bool Array::operator == (const Array& array) const +bool Array::operator == (const Array& array) const { return m_Elements == array.m_Elements; } @@ -393,7 +393,7 @@ TPT_NO_INLINE bool Array::operator == (const Array& array) const ////////////////// // Null members -TPT_NO_INLINE bool Null::operator == (const Null& trivial) const +bool Null::operator == (const Null& trivial) const { return true; } diff --git a/src/cajun/reader.cpp b/src/cajun/reader.cpp index be35ed1b4..1f6e9dfac 100644 --- a/src/cajun/reader.cpp +++ b/src/cajun/reader.cpp @@ -43,12 +43,12 @@ TODO: namespace json { -TPT_NO_INLINE std::istream& operator >> (std::istream& istr, UnknownElement& elementRoot) { +std::istream& operator >> (std::istream& istr, UnknownElement& elementRoot) { Reader::Read(elementRoot, istr); return istr; } -TPT_NO_INLINE Reader::Location::Location() : +Reader::Location::Location() : m_nLine(0), m_nLineOffset(0), m_nDocOffset(0) @@ -84,7 +84,7 @@ private: }; -TPT_NO_INLINE char Reader::InputStream::Get() +char Reader::InputStream::Get() { assert(m_iStr.eof() == false); // enforce reading of only valid stream data char c = m_iStr.get(); @@ -122,12 +122,12 @@ private: }; -TPT_NO_INLINE Reader::TokenStream::TokenStream(const Tokens& tokens) : +Reader::TokenStream::TokenStream(const Tokens& tokens) : m_Tokens(tokens), m_itCurrent(tokens.begin()) {} -TPT_NO_INLINE const Reader::Token& Reader::TokenStream::Peek() { +const Reader::Token& Reader::TokenStream::Peek() { if (EOS()) { const Token& lastToken = *m_Tokens.rbegin(); @@ -137,13 +137,13 @@ TPT_NO_INLINE const Reader::Token& Reader::TokenStream::Peek() { return *(m_itCurrent); } -TPT_NO_INLINE const Reader::Token& Reader::TokenStream::Get() { +const Reader::Token& Reader::TokenStream::Get() { const Token& token = Peek(); ++m_itCurrent; return token; } -TPT_NO_INLINE bool Reader::TokenStream::EOS() const { +bool Reader::TokenStream::EOS() const { return m_itCurrent == m_Tokens.end(); } @@ -151,13 +151,13 @@ TPT_NO_INLINE bool Reader::TokenStream::EOS() const { // Reader (finally) -TPT_NO_INLINE void Reader::Read(Object& object, std::istream& istr) { Read_i(object, istr); } -TPT_NO_INLINE void Reader::Read(Array& array, std::istream& istr) { Read_i(array, istr); } -TPT_NO_INLINE void Reader::Read(String& string, std::istream& istr) { Read_i(string, istr); } -TPT_NO_INLINE void Reader::Read(Number& number, std::istream& istr) { Read_i(number, istr); } -TPT_NO_INLINE void Reader::Read(Boolean& boolean, std::istream& istr) { Read_i(boolean, istr); } -TPT_NO_INLINE void Reader::Read(Null& null, std::istream& istr) { Read_i(null, istr); } -TPT_NO_INLINE void Reader::Read(UnknownElement& unknown, std::istream& istr) { Read_i(unknown, istr); } +void Reader::Read(Object& object, std::istream& istr) { Read_i(object, istr); } +void Reader::Read(Array& array, std::istream& istr) { Read_i(array, istr); } +void Reader::Read(String& string, std::istream& istr) { Read_i(string, istr); } +void Reader::Read(Number& number, std::istream& istr) { Read_i(number, istr); } +void Reader::Read(Boolean& boolean, std::istream& istr) { Read_i(boolean, istr); } +void Reader::Read(Null& null, std::istream& istr) { Read_i(null, istr); } +void Reader::Read(UnknownElement& unknown, std::istream& istr) { Read_i(unknown, istr); } template @@ -181,7 +181,7 @@ void Reader::Read_i(ElementTypeT& element, std::istream& istr) } -TPT_NO_INLINE void Reader::Scan(Tokens& tokens, InputStream& inputStream) +void Reader::Scan(Tokens& tokens, InputStream& inputStream) { while (EatWhiteSpace(inputStream), // ignore any leading white space... inputStream.EOS() == false) // ...before checking for EOS @@ -272,14 +272,14 @@ TPT_NO_INLINE void Reader::Scan(Tokens& tokens, InputStream& inputStream) } -TPT_NO_INLINE void Reader::EatWhiteSpace(InputStream& inputStream) +void Reader::EatWhiteSpace(InputStream& inputStream) { while (inputStream.EOS() == false && ::isspace(inputStream.Peek())) inputStream.Get(); } -TPT_NO_INLINE std::string Reader::MatchExpectedString(InputStream& inputStream, const std::string& sExpected) +std::string Reader::MatchExpectedString(InputStream& inputStream, const std::string& sExpected) { std::string::const_iterator it(sExpected.begin()), itEnd(sExpected.end()); @@ -297,7 +297,7 @@ TPT_NO_INLINE std::string Reader::MatchExpectedString(InputStream& inputStream, } -TPT_NO_INLINE std::string Reader::MatchString(InputStream& inputStream) +std::string Reader::MatchString(InputStream& inputStream) { MatchExpectedString(inputStream, "\""); @@ -341,7 +341,7 @@ TPT_NO_INLINE std::string Reader::MatchString(InputStream& inputStream) } -TPT_NO_INLINE std::string Reader::MatchNumber(InputStream& inputStream) +std::string Reader::MatchNumber(InputStream& inputStream) { const char sNumericChars[] = "0123456789.eE-+"; std::set numericChars; @@ -358,7 +358,7 @@ TPT_NO_INLINE std::string Reader::MatchNumber(InputStream& inputStream) } -TPT_NO_INLINE void Reader::Parse(UnknownElement& element, Reader::TokenStream& tokenStream) +void Reader::Parse(UnknownElement& element, Reader::TokenStream& tokenStream) { const Token& token = tokenStream.Peek(); switch (token.nType) { @@ -414,7 +414,7 @@ TPT_NO_INLINE void Reader::Parse(UnknownElement& element, Reader::TokenStream& t } -TPT_NO_INLINE void Reader::Parse(Object& object, Reader::TokenStream& tokenStream) +void Reader::Parse(Object& object, Reader::TokenStream& tokenStream) { MatchExpectedToken(Token::TOKEN_OBJECT_BEGIN, tokenStream); @@ -456,7 +456,7 @@ TPT_NO_INLINE void Reader::Parse(Object& object, Reader::TokenStream& tokenStrea } -TPT_NO_INLINE void Reader::Parse(Array& array, Reader::TokenStream& tokenStream) +void Reader::Parse(Array& array, Reader::TokenStream& tokenStream) { MatchExpectedToken(Token::TOKEN_ARRAY_BEGIN, tokenStream); @@ -479,13 +479,13 @@ TPT_NO_INLINE void Reader::Parse(Array& array, Reader::TokenStream& tokenStream) } -TPT_NO_INLINE void Reader::Parse(String& string, Reader::TokenStream& tokenStream) +void Reader::Parse(String& string, Reader::TokenStream& tokenStream) { string = MatchExpectedToken(Token::TOKEN_STRING, tokenStream); } -TPT_NO_INLINE void Reader::Parse(Number& number, Reader::TokenStream& tokenStream) +void Reader::Parse(Number& number, Reader::TokenStream& tokenStream) { const Token& currentToken = tokenStream.Peek(); // might need this later for throwing exception const std::string& sValue = MatchExpectedToken(Token::TOKEN_NUMBER, tokenStream); @@ -506,20 +506,20 @@ TPT_NO_INLINE void Reader::Parse(Number& number, Reader::TokenStream& tokenStrea } -TPT_NO_INLINE void Reader::Parse(Boolean& boolean, Reader::TokenStream& tokenStream) +void Reader::Parse(Boolean& boolean, Reader::TokenStream& tokenStream) { const std::string& sValue = MatchExpectedToken(Token::TOKEN_BOOLEAN, tokenStream); boolean = (sValue == "true" ? true : false); } -TPT_NO_INLINE void Reader::Parse(Null&, Reader::TokenStream& tokenStream) +void Reader::Parse(Null&, Reader::TokenStream& tokenStream) { MatchExpectedToken(Token::TOKEN_NULL, tokenStream); } -TPT_NO_INLINE const std::string& Reader::MatchExpectedToken(Token::Type nExpected, Reader::TokenStream& tokenStream) +const std::string& Reader::MatchExpectedToken(Token::Type nExpected, Reader::TokenStream& tokenStream) { const Token& token = tokenStream.Get(); if (token.nType != nExpected) diff --git a/src/cajun/writer.cpp b/src/cajun/writer.cpp index a7cbfbe73..31974f8ad 100644 --- a/src/cajun/writer.cpp +++ b/src/cajun/writer.cpp @@ -43,16 +43,16 @@ namespace json { -TPT_NO_INLINE void Writer::Write(const UnknownElement& elementRoot, std::ostream& ostr) { Write_i(elementRoot, ostr); } -TPT_NO_INLINE void Writer::Write(const Object& object, std::ostream& ostr) { Write_i(object, ostr); } -TPT_NO_INLINE void Writer::Write(const Array& array, std::ostream& ostr) { Write_i(array, ostr); } -TPT_NO_INLINE void Writer::Write(const Number& number, std::ostream& ostr) { Write_i(number, ostr); } -TPT_NO_INLINE void Writer::Write(const String& string, std::ostream& ostr) { Write_i(string, ostr); } -TPT_NO_INLINE void Writer::Write(const Boolean& boolean, std::ostream& ostr) { Write_i(boolean, ostr); } -TPT_NO_INLINE void Writer::Write(const Null& null, std::ostream& ostr) { Write_i(null, ostr); } +void Writer::Write(const UnknownElement& elementRoot, std::ostream& ostr) { Write_i(elementRoot, ostr); } +void Writer::Write(const Object& object, std::ostream& ostr) { Write_i(object, ostr); } +void Writer::Write(const Array& array, std::ostream& ostr) { Write_i(array, ostr); } +void Writer::Write(const Number& number, std::ostream& ostr) { Write_i(number, ostr); } +void Writer::Write(const String& string, std::ostream& ostr) { Write_i(string, ostr); } +void Writer::Write(const Boolean& boolean, std::ostream& ostr) { Write_i(boolean, ostr); } +void Writer::Write(const Null& null, std::ostream& ostr) { Write_i(null, ostr); } -TPT_NO_INLINE Writer::Writer(std::ostream& ostr) : +Writer::Writer(std::ostream& ostr) : m_ostr(ostr), m_nTabDepth(0) {} @@ -65,7 +65,7 @@ void Writer::Write_i(const ElementTypeT& element, std::ostream& ostr) ostr.flush(); // all done } -TPT_NO_INLINE void Writer::Write_i(const Array& array) +void Writer::Write_i(const Array& array) { if (array.Empty()) m_ostr << "[]"; @@ -91,7 +91,7 @@ TPT_NO_INLINE void Writer::Write_i(const Array& array) } } -TPT_NO_INLINE void Writer::Write_i(const Object& object) +void Writer::Write_i(const Object& object) { if (object.Empty()) m_ostr << "{}"; @@ -120,17 +120,17 @@ TPT_NO_INLINE void Writer::Write_i(const Object& object) } } -TPT_NO_INLINE void Writer::Write_i(const Number& numberElement) +void Writer::Write_i(const Number& numberElement) { m_ostr << std::setprecision(20) << numberElement.Value(); } -TPT_NO_INLINE void Writer::Write_i(const Boolean& booleanElement) +void Writer::Write_i(const Boolean& booleanElement) { m_ostr << (booleanElement.Value() ? "true" : "false"); } -TPT_NO_INLINE void Writer::Write_i(const String& stringElement) +void Writer::Write_i(const String& stringElement) { m_ostr << '"'; @@ -156,22 +156,22 @@ TPT_NO_INLINE void Writer::Write_i(const String& stringElement) m_ostr << '"'; } -TPT_NO_INLINE void Writer::Write_i(const Null& ) +void Writer::Write_i(const Null& ) { m_ostr << "null"; } -TPT_NO_INLINE void Writer::Write_i(const UnknownElement& unknown) +void Writer::Write_i(const UnknownElement& unknown) { unknown.Accept(*this); } -TPT_NO_INLINE void Writer::Visit(const Array& array) { Write_i(array); } -TPT_NO_INLINE void Writer::Visit(const Object& object) { Write_i(object); } -TPT_NO_INLINE void Writer::Visit(const Number& number) { Write_i(number); } -TPT_NO_INLINE void Writer::Visit(const String& string) { Write_i(string); } -TPT_NO_INLINE void Writer::Visit(const Boolean& boolean) { Write_i(boolean); } -TPT_NO_INLINE void Writer::Visit(const Null& null) { Write_i(null); } +void Writer::Visit(const Array& array) { Write_i(array); } +void Writer::Visit(const Object& object) { Write_i(object); } +void Writer::Visit(const Number& number) { Write_i(number); } +void Writer::Visit(const String& string) { Write_i(string); } +void Writer::Visit(const Boolean& boolean) { Write_i(boolean); } +void Writer::Visit(const Null& null) { Write_i(null); } diff --git a/src/client/Client.cpp b/src/client/Client.cpp index 9150caaba..db5764282 100644 --- a/src/client/Client.cpp +++ b/src/client/Client.cpp @@ -1221,9 +1221,7 @@ RequestBroker::Request * Client::SaveUserInfoAsync(UserInfo info) json::Reader::Read(objDocument, dataStream); json::Number tempStatus = objDocument["Status"]; - bool returnValue = tempStatus.Value() == 1; - - return (void*)(returnValue ? 1 : 0); + return (void*)(tempStatus.Value() == 1); } catch (json::Exception &e) { diff --git a/src/debug/ElementPopulation.cpp b/src/debug/ElementPopulation.cpp index 17e3c3d2d..33994a745 100644 --- a/src/debug/ElementPopulation.cpp +++ b/src/debug/ElementPopulation.cpp @@ -1,5 +1,3 @@ -#pragma once - #include "ElementPopulation.h" #include "gui/interface/Engine.h" #include "simulation/Simulation.h" diff --git a/src/graphics/OpenGLDrawMethods.inl b/src/graphics/OpenGLDrawMethods.inl index 44dc70525..4b20f4b81 100644 --- a/src/graphics/OpenGLDrawMethods.inl +++ b/src/graphics/OpenGLDrawMethods.inl @@ -163,7 +163,7 @@ TPT_INLINE int PIXELMETHODS_CLASS::drawchar(int x, int y, int c, int r, int g, i return x + w; } -TPT_NO_INLINE int PIXELMETHODS_CLASS::addchar(int x, int y, int c, int r, int g, int b, int a) +int PIXELMETHODS_CLASS::addchar(int x, int y, int c, int r, int g, int b, int a) { int i, j, w, bn = 0, ba = 0; char *rp = font_data + font_ptrs[c]; diff --git a/src/graphics/RasterDrawMethods.inl b/src/graphics/RasterDrawMethods.inl index d56952895..623f9ce14 100644 --- a/src/graphics/RasterDrawMethods.inl +++ b/src/graphics/RasterDrawMethods.inl @@ -128,7 +128,7 @@ TPT_INLINE int PIXELMETHODS_CLASS::drawchar(int x, int y, int c, int r, int g, i return x + w; } -TPT_NO_INLINE int PIXELMETHODS_CLASS::addchar(int x, int y, int c, int r, int g, int b, int a) +int PIXELMETHODS_CLASS::addchar(int x, int y, int c, int r, int g, int b, int a) { int i, j, w, bn = 0, ba = 0; char *rp = font_data + font_ptrs[c]; diff --git a/src/gui/game/GameModel.cpp b/src/gui/game/GameModel.cpp index c58bab022..8e5b0a325 100644 --- a/src/gui/game/GameModel.cpp +++ b/src/gui/game/GameModel.cpp @@ -13,8 +13,8 @@ #include "client/Client.h" #include "client/GameSave.h" #include "gui/game/DecorationTool.h" -#include "GameModelException.h" #include "QuickOptions.h" +#include "GameModelException.h" #include "Format.h" GameModel::GameModel(): diff --git a/src/gui/game/GameModel.h b/src/gui/game/GameModel.h index c47bdcebb..f77fe2672 100644 --- a/src/gui/game/GameModel.h +++ b/src/gui/game/GameModel.h @@ -12,7 +12,7 @@ #include "Brush.h" #include "client/User.h" #include "Notification.h" - +#include "QuickOption.h" #include "Tool.h" #include "Menu.h" @@ -23,7 +23,6 @@ class GameController; class Simulation; class Renderer; -class QuickOption; class ToolSelection { public: diff --git a/src/gui/game/GameView.cpp b/src/gui/game/GameView.cpp index 3dc677b8e..c245de3b9 100644 --- a/src/gui/game/GameView.cpp +++ b/src/gui/game/GameView.cpp @@ -15,7 +15,7 @@ #include "simulation/SimulationData.h" #include "gui/dialogues/ConfirmPrompt.h" #include "Format.h" -#include "QuickOption.h" +#include "QuickOptions.h" #include "IntroText.h" #include "DecorationTool.h" diff --git a/src/gui/interface/Button.cpp b/src/gui/interface/Button.cpp index dd58c1fd5..e4e688dc9 100644 --- a/src/gui/interface/Button.cpp +++ b/src/gui/interface/Button.cpp @@ -59,12 +59,12 @@ bool Button::GetTogglable() return isTogglable; } -TPT_NO_INLINE bool Button::GetToggleState() +bool Button::GetToggleState() { return toggle; } -TPT_NO_INLINE void Button::SetToggleState(bool state) +void Button::SetToggleState(bool state) { toggle = state; } diff --git a/src/gui/interface/Button.h b/src/gui/interface/Button.h index 42b0b4495..7513628e5 100644 --- a/src/gui/interface/Button.h +++ b/src/gui/interface/Button.h @@ -43,8 +43,8 @@ public: virtual void DoAltAction(); //action of button what ever it may be void SetTogglable(bool isTogglable); bool GetTogglable(); - TPT_NO_INLINE bool GetToggleState(); - TPT_NO_INLINE void SetToggleState(bool state); + bool GetToggleState(); + void SetToggleState(bool state); void SetActionCallback(ButtonAction * action); ButtonAction * GetActionCallback() { return actionCallback; } void SetText(std::string buttonText); diff --git a/src/gui/interface/Engine.h b/src/gui/interface/Engine.h index 6545b4ce0..4436f4bd0 100644 --- a/src/gui/interface/Engine.h +++ b/src/gui/interface/Engine.h @@ -63,7 +63,7 @@ namespace ui inline int GetMaxWidth() { return maxWidth; } inline int GetMaxHeight() { return maxHeight; } - TPT_NO_INLINE void SetMaxSize(int width, int height); + void SetMaxSize(int width, int height); inline void SetSize(int width, int height); diff --git a/src/gui/interface/Panel.cpp b/src/gui/interface/Panel.cpp index 3b1926456..0a81af37c 100644 --- a/src/gui/interface/Panel.cpp +++ b/src/gui/interface/Panel.cpp @@ -1,4 +1,3 @@ -#pragma once #include //#include "Platform.h" diff --git a/src/gui/preview/PreviewModel.cpp b/src/gui/preview/PreviewModel.cpp index 07982884e..af0e3bcb8 100644 --- a/src/gui/preview/PreviewModel.cpp +++ b/src/gui/preview/PreviewModel.cpp @@ -1,7 +1,7 @@ #include #include "PreviewModel.h" #include "client/Client.h" -#include "client/GameSave.h"; +#include "client/GameSave.h" #include "PreviewModelException.h" PreviewModel::PreviewModel(): diff --git a/src/simulation/Simulation.cpp b/src/simulation/Simulation.cpp index 60ca1f7d3..55dd6facc 100644 --- a/src/simulation/Simulation.cpp +++ b/src/simulation/Simulation.cpp @@ -1658,7 +1658,7 @@ void *Simulation::transform_save(void *odata, int *size, matrix2d transform, vec return ndata; } -TPT_NO_INLINE void Simulation::orbitalparts_get(int block1, int block2, int resblock1[], int resblock2[]) +void Simulation::orbitalparts_get(int block1, int block2, int resblock1[], int resblock2[]) { resblock1[0] = (block1&0x000000FF); resblock1[1] = (block1&0x0000FF00)>>8; @@ -1671,7 +1671,7 @@ TPT_NO_INLINE void Simulation::orbitalparts_get(int block1, int block2, int resb resblock2[3] = (block2&0xFF000000)>>24; } -TPT_NO_INLINE void Simulation::orbitalparts_set(int *block1, int *block2, int resblock1[], int resblock2[]) +void Simulation::orbitalparts_set(int *block1, int *block2, int resblock1[], int resblock2[]) { int block1tmp = 0; int block2tmp = 0; diff --git a/src/simulation/Simulation.h b/src/simulation/Simulation.h index 31185f614..0de75e1d6 100644 --- a/src/simulation/Simulation.h +++ b/src/simulation/Simulation.h @@ -123,36 +123,36 @@ public: Snapshot * CreateSnapshot(); void Restore(const Snapshot & snap); - TPT_NO_INLINE int is_blocking(int t, int x, int y); - TPT_NO_INLINE int is_boundary(int pt, int x, int y); - TPT_NO_INLINE int find_next_boundary(int pt, int *x, int *y, int dm, int *em); - TPT_NO_INLINE int pn_junction_sprk(int x, int y, int pt); - TPT_NO_INLINE void photoelectric_effect(int nx, int ny); - TPT_NO_INLINE unsigned direction_to_map(float dx, float dy, int t); - TPT_NO_INLINE int do_move(int i, int x, int y, float nxf, float nyf); - TPT_NO_INLINE int try_move(int i, int x, int y, int nx, int ny); - TPT_NO_INLINE int eval_move(int pt, int nx, int ny, unsigned *rr); + int is_blocking(int t, int x, int y); + int is_boundary(int pt, int x, int y); + int find_next_boundary(int pt, int *x, int *y, int dm, int *em); + int pn_junction_sprk(int x, int y, int pt); + void photoelectric_effect(int nx, int ny); + unsigned direction_to_map(float dx, float dy, int t); + int do_move(int i, int x, int y, float nxf, float nyf); + int try_move(int i, int x, int y, int nx, int ny); + int eval_move(int pt, int nx, int ny, unsigned *rr); void init_can_move(); bool IsWallBlocking(int x, int y, int type); void create_cherenkov_photon(int pp); void create_gain_photon(int pp); - TPT_NO_INLINE void kill_part(int i); + void kill_part(int i); bool FloodFillPmapCheck(int x, int y, int type); int flood_prop(int x, int y, size_t propoffset, void * propvalue, StructProperty::PropertyType proptype); int flood_prop_2(int x, int y, size_t propoffset, void * propvalue, StructProperty::PropertyType proptype, int parttype, char * bitmap); int flood_water(int x, int y, int i, int originaly, int check); int FloodINST(int x, int y, int fullc, int cm); - TPT_NO_INLINE void detach(int i); - TPT_NO_INLINE void part_change_type(int i, int x, int y, int t); + void detach(int i); + void part_change_type(int i, int x, int y, int t); //int InCurrentBrush(int i, int j, int rx, int ry); //int get_brush_flags(); - TPT_NO_INLINE int create_part(int p, int x, int y, int t); - TPT_NO_INLINE void delete_part(int x, int y); + int create_part(int p, int x, int y, int t); + void delete_part(int x, int y); void get_sign_pos(int i, int *x0, int *y0, int *w, int *h); - TPT_NO_INLINE int is_wire(int x, int y); - TPT_NO_INLINE int is_wire_off(int x, int y); - TPT_NO_INLINE void set_emap(int x, int y); - TPT_NO_INLINE int parts_avg(int ci, int ni, int t); + int is_wire(int x, int y); + int is_wire_off(int x, int y); + void set_emap(int x, int y); + int parts_avg(int ci, int ni, int t); void create_arc(int sx, int sy, int dx, int dy, int midpoints, int variance, int type, int flags); int nearest_part(int ci, int t, int max_d); void update_particles_i(int start, int inc); @@ -195,11 +195,11 @@ public: int GetParticleType(std::string type); void *transform_save(void *odata, int *size, matrix2d transform, vector2d translate); - TPT_NO_INLINE void orbitalparts_get(int block1, int block2, int resblock1[], int resblock2[]); - TPT_NO_INLINE void orbitalparts_set(int *block1, int *block2, int resblock1[], int resblock2[]); - TPT_NO_INLINE int get_wavelength_bin(int *wm); - TPT_NO_INLINE int get_normal(int pt, int x, int y, float dx, float dy, float *nx, float *ny); - TPT_NO_INLINE int get_normal_interp(int pt, float x0, float y0, float dx, float dy, float *nx, float *ny); + void orbitalparts_get(int block1, int block2, int resblock1[], int resblock2[]); + void orbitalparts_set(int *block1, int *block2, int resblock1[], int resblock2[]); + int get_wavelength_bin(int *wm); + int get_normal(int pt, int x, int y, float dx, float dy, float *nx, float *ny); + int get_normal_interp(int pt, float x0, float y0, float dx, float dy, float *nx, float *ny); void clear_sim(); void UpdateParticles(); Simulation(); From 3625bd407eccd38b08011d999f3eaa7b6d6d2876 Mon Sep 17 00:00:00 2001 From: mniip Date: Wed, 30 Oct 2013 05:07:27 +0400 Subject: [PATCH 5/5] moar const --- src/cat/LegacyLuaAPI.cpp | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/cat/LegacyLuaAPI.cpp b/src/cat/LegacyLuaAPI.cpp index 70ac24663..c4034b8ba 100644 --- a/src/cat/LegacyLuaAPI.cpp +++ b/src/cat/LegacyLuaAPI.cpp @@ -1917,7 +1917,8 @@ int luatpt_setfpscap(lua_State* l) } int luatpt_getscript(lua_State* l) { - char *filedata = NULL, *fileuri = NULL, *filename = NULL, *lastError = NULL, *luacommand = NULL; + char *filedata = NULL, *fileuri = NULL, *filename = NULL, *luacommand = NULL; + const char *lastError = NULL; std::string fileauthor = "", fileid = ""; int len, ret,run_script; FILE * outputfile; @@ -1927,7 +1928,7 @@ int luatpt_getscript(lua_State* l) run_script = luaL_optint(l, 3, 0); if(!fileauthor.length() || !fileid.length()) { - lastError = mystrdup("Script Author or ID not given"); + lastError = "Script Author or ID not given"; goto fin; } if(!ConfirmPrompt::Blocking("Do you want to install script?", fileid, "Install")) @@ -1941,12 +1942,12 @@ int luatpt_getscript(lua_State* l) if(len <= 0 || !filedata) { - strcpy(lastError, "Server did not return data."); + lastError = "Server did not return data."; goto fin; } if(ret != 200) { - lastError = mystrdup(http_ret_text(ret)); + lastError = http_ret_text(ret); goto fin; } @@ -1976,7 +1977,7 @@ int luatpt_getscript(lua_State* l) if(!outputfile) { - lastError = mystrdup("Unable to write to file"); + lastError = "Unable to write to file"; goto fin; } @@ -2001,7 +2002,6 @@ fin: if(lastError) { return luaL_error(l, lastError); - free(lastError); } return 0; }