diff --git a/uppsrc/CppBase/CppBase.h b/uppsrc/CppBase/CppBase.h index 5b42f20bf..1f31ab2df 100644 --- a/uppsrc/CppBase/CppBase.h +++ b/uppsrc/CppBase/CppBase.h @@ -12,13 +12,12 @@ const char *SkipString(const char *s); void RemoveComments(String& l, bool& incomment); -void LoadPPConfig(const String& json); +String GetStdDefs(); -String GetStdConfig(); +void SetPPDefs(const String& defs); const VectorMap& GetNamespaceMacros(); const Index& GetNamespaceEndMacros(); -const Vector& GetIgnoreList(); struct CppMacro : Moveable { diff --git a/uppsrc/CppBase/cpp.cpp b/uppsrc/CppBase/cpp.cpp index 0f3892609..f53cb4257 100644 --- a/uppsrc/CppBase/cpp.cpp +++ b/uppsrc/CppBase/cpp.cpp @@ -327,20 +327,9 @@ bool Cpp::Preprocess(const String& sourcefile, Stream& in, const String& current macro.Clear(); macro.Reserve(1000); segment_id.Clear(); + segment_id.Add(0); segment_id.Reserve(100); - const Vector& ignorelist = GetIgnoreList(); - - for(int i = 0; i < ignorelist.GetCount(); i++) { - PPMacro h; - PPMacro& pp = macro.GetAdd(h.macro.Define(ignorelist[i])); - pp = h; - pp.segment_id = -999999999; - } - segment_id.Add(-999999999); - - std_macros = macro.GetCount(); - ONCELOCK { const char **h = CppKeyword(); while(*h) { @@ -364,11 +353,9 @@ VectorMap Cpp::GetDefinedMacros() { LTIMING("GetDefinedMacros"); VectorMap r; - for(int i = std_macros; i < macro.GetCount(); i++) - r.GetAdd(macro.GetKey(i)) << macro[i].macro << "\n"; - LLOG("GetDefinedMacros " << r); for(int i = 0; i < r.GetCount(); i++) r[i] = MD5String(r[i]); + LLOG("GetDefinedMacros " << r); return r; } diff --git a/uppsrc/CppBase/ppconfig.cpp b/uppsrc/CppBase/ppconfig.cpp index ba03ba713..7614223c1 100644 --- a/uppsrc/CppBase/ppconfig.cpp +++ b/uppsrc/CppBase/ppconfig.cpp @@ -2,16 +2,7 @@ namespace Upp { -Value StringArray(const char *s) -{ - Vector h = Split(s, ';'); - ValueArray va; - for(int i = 0; i < h.GetCount(); i++) - va.Add(h[i]); - return va; -} - -String GetStdConfig() +String GetStdDefs() { static const char ns[] = "_STD_BEGIN:std;_C_STD_BEGIN:std;_STDEXT_BEGIN:stdext;NAMESPACE_UPP:Upp"; static const char endns[] = "_STD_END;_STDEXT_END;_C_STD_END;END_UPP_NAMESPACE"; @@ -23,65 +14,23 @@ String GetStdConfig() "__asm__(...);__asm(...);__restrict;__inline;__typeof;" ; - ValueMap json; - ValueArray va; + + String defs; Vector h = Split(ns, ';'); for(int i = 0; i < h.GetCount(); i++) { String id, n; SplitTo(h[i], ':', id, n); ValueMap m; m.Add(id, n); - va.Add(m); + defs << "#define " << id << " namespace " << n << " {\n"; } - json.Add("namespace", va); - json.Add("end_namespace", StringArray(endns)); - json.Add("ignore", StringArray(ignore)); - return AsJSON(json); -} - -static VectorMap s_namespace_macro; -static Index s_namespace_end_macro; -static Vector s_ignorelist; - -void LoadPPConfig(const String& json) -{ - Value m = ParseJSON(json); - - try { - s_namespace_macro.Clear(); - ValueArray va = m["namespace"]; - for(int i = 0; i < va.GetCount(); i++) { - ValueMap m = va[i]; - if(m.GetCount()) - s_namespace_macro.Add(m.GetKey(0), m.GetValue(0)); - } - - s_namespace_end_macro.Clear(); - va = m["end_namespace"]; - for(int i = 0; i < va.GetCount(); i++) - s_namespace_end_macro.Add(va[i]); - - s_ignorelist.Clear(); - va = m["ignore"]; - for(int i = 0; i < va.GetCount(); i++) - s_ignorelist.Add(va[i]); - } - catch(ValueTypeError) {} -} - -const VectorMap& GetNamespaceMacros() -{ - return s_namespace_macro; -} - -const Index& GetNamespaceEndMacros() -{ - return s_namespace_end_macro; -} - -const Vector& GetIgnoreList() -{ - return s_ignorelist; + h = Split(endns, ';'); + for(int i = 0; i < h.GetCount(); i++) + defs << "#define " << h[i] << " };\r\n"; + h = Split(ignore, ';'); + for(int i = 0; i < h.GetCount(); i++) + defs << "#define " << h[i] << "\n"; + return defs; } }; \ No newline at end of file diff --git a/uppsrc/CppBase/ppfile.cpp b/uppsrc/CppBase/ppfile.cpp index cdbcf4edf..4fb2d2be0 100644 --- a/uppsrc/CppBase/ppfile.cpp +++ b/uppsrc/CppBase/ppfile.cpp @@ -75,18 +75,6 @@ static VectorMap sAllMacros; static ArrayMap sPPfile; static int sPPserial; -void SerializePPFiles(Stream& s) -{ - s % sAllMacros % sPPfile % sPPserial; -} - -void CleanPP() -{ - sAllMacros.Clear(); - sPPfile.Clear(); - sPPserial = 0; -} - void SweepPPFiles(const Index& keep) { for(int i = 0; i < sPPfile.GetCount(); i++) @@ -118,13 +106,12 @@ PPMacro *FindPPMacro(const String& id, Index& segment_id, int& segmenti) while(q >= 0) { PPMacro& m = sAllMacros[q]; if(m.macro.IsUndef()) { - if(pass == 0 && segment_id.Find(m.segment_id) >= 0) { - undef.FindAdd(m.segment_id); - } + if(pass == 0 && segment_id.Find(m.segment_id) >= 0) + undef.FindAdd(m.segment_id); // cancel out undefined macro... } else if(pass == 0 || undef.Find(m.undef_segment_id) < 0) { - int si = segment_id.Find(m.segment_id); + int si = m.segment_id == 0 ? INT_MAX : segment_id.Find(m.segment_id); // defs macros always override if(si > best || si >= 0 && si == best && m.line > line) { best = si; line = m.line; @@ -479,4 +466,85 @@ String GetAllMacros(const String& id, Index& segment_id) return r; } +static VectorMap s_namespace_macro; +static Index s_namespace_end_macro; + +static String sDefs; + +void LoadPPConfig() +{ + for(int i = 0; i < sAllMacros.GetCount(); i++) + if(sAllMacros[i].segment_id == 0 && !sAllMacros.IsUnlinked(i)) + sAllMacros.Unlink(i); + + s_namespace_macro.Clear(); + s_namespace_end_macro.Clear(); + + StringStream ss(sDefs); + int linei = 0; + while(!ss.IsEof()) { + String l = ss.GetLine(); + try { + CParser p(l); + if(p.Char('#')) { + if(p.Id("define")) { + CppMacro def; + String id = def.Define(p.GetPtr()); + if(id.GetCount()) { + PPMacro m; + m.segment_id = 0; + m.line = linei; + m.macro = def; + sAllMacros.Put(id, m); + if(findarg(TrimBoth(def.body), "}", "};") >= 0) + s_namespace_end_macro.Add(id); + try { + CParser p(def.body); + if(p.Id("namespace") && p.IsId()) { + String n = p.ReadId(); + if(p.Char('{') && p.IsEof()) + s_namespace_macro.Add(id, n); + } + } + catch(CParser::Error) {} + } + } + } + } + catch(CParser::Error) {} + linei++; + } +} + +const VectorMap& GetNamespaceMacros() +{ + return s_namespace_macro; +} + +const Index& GetNamespaceEndMacros() +{ + return s_namespace_end_macro; +} + +void SetPPDefs(const String& defs) +{ + sDefs = defs; + LoadPPConfig(); +} + +void CleanPP() +{ + sAllMacros.Clear(); + sPPfile.Clear(); + sPPserial = 0; + LoadPPConfig(); +} + +void SerializePPFiles(Stream& s) +{ + s % sAllMacros % sPPfile % sPPserial; + if(s.IsLoading()) + LoadPPConfig(); +} + END_UPP_NAMESPACE diff --git a/uppsrc/ide/Browser/Base.cpp b/uppsrc/ide/Browser/Base.cpp index 517e5b515..f821ca951 100644 --- a/uppsrc/ide/Browser/Base.cpp +++ b/uppsrc/ide/Browser/Base.cpp @@ -146,6 +146,32 @@ void BaseInfoSync(Progress& pi) ClearSources(); const Workspace& wspc = GetIdeWorkspace(); LTIMING("Gathering files"); + Vector defs; + defs.Add(ConfigFile("global.defs")); + for(int i = 0; i < wspc.GetCount(); i++) { + pi.Step(); + const Package& pk = wspc.GetPackage(i); + String n = wspc[i]; + for(int i = 0; i < pk.file.GetCount(); i++) { + String path = SourcePath(n, pk.file[i]); + if(GetFileExt(path) == ".defs") + defs.Add(path); + } + } + + String fp; + for(int i = 0; i < defs.GetCount(); i++) + fp << defs[i] << "\n" << GetFileTimeCached(defs[i]) << "\n"; + + static String defs_fp; + if(fp != defs_fp) { + defs_fp = fp; + String h; + for(int i = 0; i < defs.GetCount(); i++) + h << LoadFile(defs[i]) << "\n"; + SetPPDefs(h); + } + pi.SetText("Gathering files"); pi.SetTotal(wspc.GetCount()); for(int pass = 0; pass < 2; pass++) @@ -193,7 +219,7 @@ Time GetDependsTime(const Vector& file) bool CheckFile(SourceFileInfo& f, const String& path) { LTIMING("CheckFile"); - if(f.time != FileGetTime(path)) + if(f.time != GetFileTimeCached(path)) return false; if(!f.check_info) return true; @@ -380,38 +406,10 @@ void CodeBaseScanFile(Stream& in, const String& fn, bool check_macros) namespace_info_changed, includes_changed); LDUMP(f.defined_macros); LDUMP(check_macros); - if(check_macros && (includes_changed || namespace_info_changed || cm.GetCount())) { + if(check_macros && (includes_changed || namespace_info_changed || cm.GetCount())) SyncCodeBase(); - return; - } -/* - if( && check_macros) { - } - if((namespace_info_changed || cm.GetCount()) && check_macros) { - SyncCodeBase(); return; _DBG_ - DLOG("Checking files"); - Progress pi; - BaseInfoSync(pi); - pi.SetText("Checking source files"); - pi.SetTotal(sSrcFile.GetCount()); - pi.SetPos(0); - Index parse_file; - for(int i = 0; i < sSrcFile.GetCount(); i++) { - pi.Step(); - String path = sSrcFile.GetKey(i); - DDUMP(path); - int q = GetSourceFileIndex(path); - const SourceFileInfo& f = source_file[q]; - if((namespace_info_changed || HasIntersection(f.ids, cm)) && !CheckFile(f, path)) - parse_file.Add(q); - } - - CodeBase().RemoveFiles(parse_file); - - ParseFiles(pi, parse_file); - } -*/ - FinishCodeBase(); + else + FinishCodeBase(); } void CodeBaseScanFile(const String& fn, bool check_macros) @@ -422,6 +420,7 @@ void CodeBaseScanFile(const String& fn, bool check_macros) void ClearCodeBase() { + // TODO: Create combined defs CleanPP(); CodeBase().Clear(); source_file.Clear(); diff --git a/uppsrc/ide/Common/ComDlg.cpp b/uppsrc/ide/Common/ComDlg.cpp index 04259333c..c9bc5d782 100644 --- a/uppsrc/ide/Common/ComDlg.cpp +++ b/uppsrc/ide/Common/ComDlg.cpp @@ -72,6 +72,9 @@ void IdeFileIcon0(bool dir, const String& filename, Image& img) else if(ext == ".key") img = IdeCommonImg::keyboard(); + else + if(ext == ".defs") + img = IdeCommonImg::Defs(); } struct sImageAdd : ImageMaker { diff --git a/uppsrc/ide/Common/common.iml b/uppsrc/ide/Common/common.iml index 53ccdbd05..8c540a791 100644 --- a/uppsrc/ide/Common/common.iml +++ b/uppsrc/ide/Common/common.iml @@ -4,6 +4,7 @@ IMAGE_ID(License) IMAGE_ID(Ddl) IMAGE_ID(Sql) IMAGE_ID(Sch) +IMAGE_ID(Defs) IMAGE_ID(Header) IMAGE_ID(FindBrokenRef) IMAGE_ID(InsertItem) @@ -28,160 +29,161 @@ IMAGE_ID(Qtf) IMAGE_ID(keyboard) IMAGE_BEGIN_DATA -IMAGE_DATA(120,156,237,154,91,72,30,215,22,128,151,158,154,246,65,161,5,207,1,9,125,72,31,106,248,161,61,88,57,45,57,181) -IMAGE_DATA(181,249,91,74,49,49,52,109,127,75,105,155,94,77,211,91,234,229,201,7,201,175,160,136,72,48,88,77,74,9,7,159) -IMAGE_DATA(36,42,65,17,170,120,137,162,190,248,224,21,21,197,75,188,160,191,140,120,33,94,227,109,117,175,217,29,29,103,246,158) -IMAGE_DATA(25,127,99,162,167,46,217,236,127,102,239,111,173,189,214,222,179,102,207,140,240,44,60,11,255,103,130,126,148,93,124,49) -IMAGE_DATA(22,56,46,50,62,39,39,7,181,223,154,29,253,121,170,173,120,253,56,68,191,13,186,247,204,219,141,223,200,232,207,123) -IMAGE_DATA(189,222,125,219,63,104,222,24,127,141,119,26,255,253,204,191,31,229,112,200,1,37,131,253,58,143,50,113,168,67,235,140) -IMAGE_DATA(137,46,48,241,58,61,126,241,14,124,145,242,2,93,199,188,13,47,42,78,121,105,113,194,219,136,21,191,135,114,120,228) -IMAGE_DATA(0,119,6,79,135,134,130,39,46,14,238,166,165,65,111,121,57,172,151,150,194,195,228,100,104,141,141,133,59,193,193,240) -IMAGE_DATA(46,235,243,15,17,248,212,83,224,74,77,133,206,142,14,192,169,41,192,133,5,192,205,77,192,141,13,192,153,25,192,145) -IMAGE_DATA(17,192,198,70,192,248,120,104,10,8,128,147,70,254,202,21,168,31,29,5,220,218,162,73,21,151,245,117,192,246,118,64) -IMAGE_DATA(183,27,10,141,252,239,191,131,178,186,106,207,43,10,221,97,64,49,242,191,253,6,202,202,10,160,207,7,56,55,7,184) -IMAGE_DATA(188,204,251,175,173,1,206,207,3,14,15,3,54,53,1,78,78,2,102,103,155,249,91,183,64,33,102,122,154,247,237,237) -IMAGE_DATA(5,236,233,1,236,236,228,92,109,45,96,67,3,224,196,4,96,86,150,153,191,121,19,148,165,37,192,217,89,110,99,108) -IMAGE_DATA(140,215,20,147,214,86,30,59,42,227,227,128,153,153,102,62,63,31,148,197,69,238,31,49,67,67,188,47,141,165,165,5) -IMAGE_DATA(176,174,14,176,190,158,235,205,200,48,243,121,121,160,208,156,145,255,196,246,247,243,57,27,24,0,108,110,6,172,170,2) -IMAGE_DATA(172,169,225,186,211,211,205,252,141,27,160,60,120,192,245,247,245,113,223,7,7,249,111,242,187,162,2,176,178,146,235,100) -IMAGE_DATA(235,196,196,231,230,130,162,197,185,187,27,176,171,139,219,166,56,210,184,203,202,184,14,106,79,73,49,243,215,175,131,66) -IMAGE_DATA(109,228,3,113,122,158,236,83,12,40,158,228,11,91,207,38,62,36,4,98,10,10,96,177,173,141,175,87,138,37,205,7) -IMAGE_DATA(213,180,30,200,175,234,106,192,132,4,240,5,5,193,127,140,60,73,96,32,156,138,138,130,219,108,125,205,23,22,2,150) -IMAGE_DATA(148,0,22,21,1,178,185,193,164,36,240,133,135,67,54,235,246,47,17,43,144,16,102,39,130,93,87,255,102,191,159,150) -IMAGE_DATA(246,58,208,100,240,204,51,158,184,23,95,188,155,118,230,76,111,249,133,11,235,165,177,177,15,147,35,35,91,99,95,120) -IMAGE_DATA(225,78,112,80,144,60,25,4,6,186,82,95,123,173,179,227,243,207,113,234,187,239,112,225,167,159,112,51,49,17,55,18) -IMAGE_DATA(18,112,230,251,239,113,228,219,111,177,49,46,14,227,95,122,169,41,0,4,201,224,229,151,235,71,89,159,45,198,176,200) -IMAGE_DATA(9,203,58,211,213,254,217,103,232,126,254,121,115,50,120,231,29,101,245,234,85,91,94,185,114,5,115,222,124,211,156,12) -IMAGE_DATA(222,126,91,89,97,188,143,141,125,238,135,31,112,249,231,159,213,254,107,191,252,130,243,63,254,136,195,223,124,131,77,31) -IMAGE_DATA(127,140,147,151,47,99,246,27,111,152,147,1,227,137,153,102,190,82,223,222,47,190,192,30,86,58,89,60,136,171,253,232) -IMAGE_DATA(35,108,240,120,112,130,241,89,81,81,230,100,192,248,37,198,207,50,219,100,99,44,62,94,173,41,38,173,159,126,170,198) -IMAGE_DATA(142,202,56,59,159,249,250,235,230,100,192,248,69,198,147,127,196,12,125,253,181,218,151,198,210,242,201,39,88,199,236,215) -IMAGE_DATA(51,251,164,55,67,192,231,185,221,10,205,25,249,79,108,255,87,95,169,115,54,192,234,102,54,254,170,15,62,192,154,15) -IMAGE_DATA(63,84,117,167,159,57,99,78,6,103,207,42,15,24,79,250,251,190,252,82,245,125,144,233,161,223,228,119,197,251,239,99) -IMAGE_DATA(229,197,139,170,78,182,78,204,201,224,173,183,20,45,206,221,151,46,97,23,139,27,217,166,56,210,184,203,46,92,80,117) -IMAGE_DATA(80,123,202,171,175,154,147,65,116,180,66,109,228,3,113,122,158,236,83,12,40,158,228,11,91,207,230,100,112,226,68,76) -IMAGE_DATA(129,219,189,216,198,214,23,173,87,138,37,205,7,213,180,30,200,175,106,230,127,66,68,132,47,40,48,80,156,12,2,2) -IMAGE_DATA(78,69,157,60,121,155,173,175,249,194,247,222,195,146,243,231,177,40,38,6,243,221,110,76,122,229,21,95,248,115,207,237) -IMAGE_DATA(45,25,4,6,70,176,235,234,201,37,3,8,13,245,64,92,220,93,72,75,235,133,242,242,117,40,45,125,8,201,201,173) -IMAGE_DATA(16,27,123,7,130,131,165,201,128,109,13,92,144,154,218,9,29,29,8,83,83,8,11,11,8,155,155,8,27,27,8,51) -IMAGE_DATA(51,8,35,35,8,141,141,8,241,241,77,16,16,96,74,6,108,107,80,15,163,163,8,91,91,146,251,58,43,235,235,8) -IMAGE_DATA(237,237,8,110,183,41,25,176,173,129,2,171,171,246,188,162,32,228,228,152,22,3,219,26,40,176,178,130,224,243,33,204) -IMAGE_DATA(205,33,44,47,243,254,107,107,8,243,243,8,195,195,8,77,77,8,147,147,8,217,217,102,254,214,45,69,101,166,167,121) -IMAGE_DATA(223,222,94,132,158,30,132,206,78,206,213,214,34,52,52,32,76,76,32,100,101,153,249,155,55,21,88,90,66,152,157,229) -IMAGE_DATA(54,198,198,120,77,49,105,109,229,177,163,50,62,142,144,153,105,230,243,243,21,88,92,228,254,17,51,52,196,251,210,88) -IMAGE_DATA(90,90,16,234,234,16,234,235,185,222,140,12,51,159,151,167,168,115,70,254,19,219,223,207,231,108,96,0,161,185,25,161) -IMAGE_DATA(170,10,161,166,134,235,78,79,55,243,55,110,40,240,224,1,215,223,215,199,125,31,28,228,191,201,239,138,10,132,202,74) -IMAGE_DATA(174,51,53,213,204,231,230,42,219,113,238,238,70,232,234,226,182,41,142,52,238,178,50,174,131,218,83,82,204,252,245,235) -IMAGE_DATA(138,218,70,62,16,167,231,201,62,197,128,226,73,190,36,39,155,249,144,144,24,40,40,88,132,182,54,190,94,41,150,52) -IMAGE_DATA(31,84,211,122,32,191,170,171,17,18,18,124,16,20,36,76,6,108,107,112,10,162,162,110,179,245,53,15,133,133,8,37) -IMAGE_DATA(37,8,69,69,200,230,6,33,41,201,7,225,225,123,74,6,204,78,4,187,174,236,147,1,94,115,168,242,177,11,61,151) -IMAGE_DATA(121,81,126,124,88,121,253,227,169,23,229,199,50,241,162,179,114,80,227,223,47,255,119,247,255,81,241,143,89,248,206,64) -IMAGE_DATA(58,49,162,23,29,123,121,249,33,122,209,98,247,242,69,19,143,3,251,30,43,219,197,197,197,194,151,54,58,251,86,99) -IMAGE_DATA(144,245,115,194,123,4,253,100,246,141,62,120,36,253,182,11,249,229,114,185,100,58,164,126,107,197,195,182,186,130,62,50) -IMAGE_DATA(255,132,113,22,244,17,242,255,100,236,53,86,123,65,189,231,108,215,46,139,249,213,241,42,251,171,139,61,251,23,51,191) -IMAGE_DATA(60,188,166,227,107,59,227,178,92,95,100,143,24,253,190,142,142,189,59,140,229,250,38,59,100,151,56,47,240,154,142,175) -IMAGE_DATA(201,249,93,226,192,190,165,216,248,111,43,46,235,248,239,22,255,31,19,180,12,231,111,166,243,151,183,191,83,156,59,119) -IMAGE_DATA(14,207,179,103,44,125,161,115,97,97,97,158,221,122,196,246,169,191,81,52,157,97,97,87,109,237,107,124,100,100,164,90) -IMAGE_DATA(72,232,92,19,219,226,115,29,52,14,255,236,83,77,197,9,175,183,175,23,106,183,138,176,200,190,63,188,102,223,56,142) -IMAGE_DATA(39,101,95,63,23,7,105,95,180,254,140,107,209,138,127,98,242,152,254,207,64,116,135,218,83,255,6,246,172,70,5,157) -IMAGE_DATA(233,218,53,121,26,143,124,11,180,125,215,165,115,214,60,207,228,0,250,79,82,26,191,243,189,221,49,143,142,120,225,221) -IMAGE_DATA(124,155,69,233,29,127,155,215,98,165,21,141,7,29,111,108,183,227,119,254,112,31,60,58,226,133,101,155,21,239,150,236) -IMAGE_DATA(226,191,195,162,163,249,163,113,81,251,78,31,206,106,227,221,221,102,230,205,5,141,254,58,189,22,100,49,121,244,114,20) -IMAGE_DATA(254,233,200,251,215,246,70,43,161,0,151,207,2,252,113,2,224,191,86,220,37,128,1,234,79,181,254,60,177,198,115,50) -IMAGE_DATA(155,212,215,216,70,118,69,231,141,118,189,126,76,26,249,166,177,167,1,114,197,189,140,143,117,59,199,196,104,188,56,62) -IMAGE_DATA(187,46,10,211,49,249,229,21,196,204,169,125,103,188,92,244,227,151,181,83,140,172,116,104,241,55,206,17,29,203,99,42) -IMAGE_DATA(31,135,87,183,238,156,176,71,86,142,147,129,181,205,195,153,12,228,98,159,12,172,101,191,23,243,113,50,56,194,178,143) -IMAGE_DATA(100,160,223,178,140,129,245,203,60,49,175,109,228,18,19,53,29,123,231,245,245,147,178,191,31,255,253,223,242,29,236,150) -IMAGE_DATA(241,88,254,126,114,184,63,45,30,203,1,202,126,159,67,183,159,201,17,253,231,143,186,125,63,184,109,222,79,187,7,39) -IMAGE_DATA(71,227,49,1,81,95,66,225,52,123,76,72,103,143,9,193,54,143,9,181,3,212,159,106,253,121,98,141,231,100,54,169) -IMAGE_DATA(175,177,141,236,138,206,27,237,122,45,191,165,139,133,124,211,216,211,112,209,143,119,6,23,115,53,94,28,31,187,119,6) -IMAGE_DATA(233,127,136,98,230,212,190,51,94,46,250,241,203,218,41,70,86,58,180,248,27,231,136,142,229,49,149,143,67,191,238,156) -IMAGE_DATA(123,114,4,229,16,39,3,227,119,104,81,17,109,205,85,142,190,165,119,119,119,75,63,15,81,27,245,49,232,81,89,25) -IMAGE_DATA(199,54,80,106,145,232,81,217,123,247,238,73,109,138,120,77,135,230,147,149,200,120,146,131,226,245,140,19,222,24,187,95) -IMAGE_DATA(93,174,93,60,29,27,69,231,191,41,254,221,197,197,42,227,253,139,165,99,11,118,215,186,177,155,127,39,235,200,143,245) -IMAGE_DATA(119,116,229,16,39,131,104,176,159,140,104,25,23,29,29,141,247,239,223,151,46,6,106,163,62,6,61,209,118,156,133,30) -IMAGE_DATA(213,174,198,210,247,127,125,29,29,253,63,108,104,24,81,107,253,121,77,135,230,147,38,162,254,90,49,242,252,120,55,175) -IMAGE_DATA(177,84,139,198,99,199,203,198,107,199,203,252,23,213,84,184,157,237,207,109,123,142,63,177,186,248,239,119,254,31,197,250) -IMAGE_DATA(59,178,242,39,251,237,148,83,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0) -IMAGE_END_DATA(2400, 16) +IMAGE_DATA(120,156,237,154,91,72,92,87,23,128,151,182,166,125,80,104,193,255,7,9,125,72,31,106,24,104,127,172,180,37,127,237) +IMAGE_DATA(37,211,242,83,140,134,166,237,88,74,219,244,106,154,222,82,47,79,62,72,70,65,17,145,96,176,154,148,146,7,159,36) +IMAGE_DATA(42,65,17,170,120,137,226,248,226,131,87,70,81,188,224,5,29,57,226,5,239,241,182,186,215,217,61,227,153,115,246,57) +IMAGE_DATA(115,156,201,36,250,199,37,155,61,231,156,245,173,181,215,218,123,214,217,231,140,240,28,60,7,255,103,130,1,52,31,190) +IMAGE_DATA(18,203,44,55,35,190,168,168,8,149,207,138,31,245,121,234,205,120,245,56,68,159,53,182,15,205,251,27,191,150,81,159) +IMAGE_DATA(119,58,157,65,251,15,53,175,205,191,194,91,205,127,48,243,31,64,59,26,18,162,98,16,108,240,104,36,22,109,40,202) +IMAGE_DATA(152,110,3,29,175,178,19,16,111,33,22,67,94,96,235,132,247,195,139,154,85,222,176,89,225,253,136,25,127,136,118,116) +IMAGE_DATA(36,132,59,131,103,162,163,193,145,146,2,247,114,114,96,176,182,22,118,170,171,225,65,102,38,116,37,39,195,221,200,72) +IMAGE_DATA(248,31,211,121,74,4,62,253,52,216,178,179,161,175,183,23,112,110,14,112,117,21,112,111,15,112,119,23,112,97,1,112) +IMAGE_DATA(98,2,176,189,29,48,53,21,92,97,97,112,90,203,95,189,10,173,147,147,128,251,251,52,169,226,182,179,3,216,211,3) +IMAGE_DATA(104,183,67,185,150,255,243,79,144,182,182,252,243,146,68,119,24,144,180,252,31,127,128,180,185,9,232,241,0,46,45,1) +IMAGE_DATA(110,108,112,253,237,109,192,229,101,192,241,113,64,151,11,112,118,22,176,176,80,207,223,190,13,18,49,243,243,92,119,112) +IMAGE_DATA(16,112,96,0,176,175,143,115,205,205,128,109,109,128,51,51,128,5,5,122,254,214,45,144,214,215,1,23,23,185,143,169) +IMAGE_DATA(41,222,83,78,186,186,120,238,168,77,79,3,230,231,235,249,210,82,144,214,214,120,124,196,140,141,113,93,26,75,103,39) +IMAGE_DATA(96,75,11,96,107,43,183,155,151,167,231,75,74,64,162,57,163,248,137,29,30,230,115,54,50,2,216,209,1,216,208,0) +IMAGE_DATA(216,212,196,109,231,230,234,249,155,55,65,90,89,225,246,135,134,120,236,163,163,252,51,197,93,87,7,88,95,207,109,178) +IMAGE_DATA(117,162,227,139,139,65,82,242,236,118,3,246,247,115,223,148,71,26,119,77,13,183,65,215,179,178,244,252,141,27,32,209) +IMAGE_DATA(53,138,129,56,53,79,254,41,7,148,79,138,133,173,103,29,31,21,5,137,101,101,176,214,221,205,215,43,229,146,230,131) +IMAGE_DATA(122,90,15,20,87,99,35,96,90,26,120,34,34,224,53,45,79,18,30,14,103,18,18,224,14,91,95,203,229,229,128,85) +IMAGE_DATA(85,128,21,21,128,108,110,48,35,3,60,177,177,80,200,212,254,45,98,5,18,197,252,196,177,239,213,127,216,231,103,12) +IMAGE_DATA(181,66,90,12,158,125,214,145,242,210,75,247,114,206,157,27,172,189,120,113,167,58,57,249,65,102,124,124,87,242,139,47) +IMAGE_DATA(222,141,140,136,48,46,6,225,225,182,236,55,222,232,235,253,242,75,156,251,225,7,92,253,229,23,220,75,79,199,221,180) +IMAGE_DATA(52,92,248,241,71,156,248,254,123,108,79,73,193,212,151,95,118,133,129,160,24,188,242,74,235,36,211,217,103,12,203,156) +IMAGE_DATA(176,237,48,91,61,95,124,129,246,23,94,208,23,131,247,223,151,182,174,93,243,203,75,87,175,98,209,219,111,235,139,193) +IMAGE_DATA(123,239,73,155,140,247,176,177,47,253,244,19,110,252,250,171,172,191,253,219,111,184,252,243,207,56,254,221,119,232,250,244) +IMAGE_DATA(83,156,189,114,5,11,223,122,75,95,12,24,79,204,60,139,149,116,7,191,250,10,7,88,235,99,249,32,174,249,147,79) +IMAGE_DATA(176,205,225,192,25,198,23,36,36,232,139,1,227,215,25,191,200,124,147,143,169,212,84,185,167,156,116,125,254,185,156,59) +IMAGE_DATA(106,211,236,124,254,155,111,234,139,1,227,215,24,79,241,17,51,246,237,183,178,46,141,165,243,179,207,176,133,249,111,101) +IMAGE_DATA(254,201,110,158,128,47,177,219,37,154,51,138,159,216,225,111,190,145,231,108,132,245,29,108,252,13,31,125,132,77,31,127) +IMAGE_DATA(44,219,206,61,119,78,95,12,206,159,151,86,24,79,246,135,190,254,90,142,125,148,217,161,207,20,119,221,135,31,98,253) +IMAGE_DATA(165,75,178,77,182,78,244,197,224,221,119,37,37,207,238,203,151,177,159,229,141,124,83,30,105,220,53,23,47,202,54,232) +IMAGE_DATA(122,214,235,175,235,139,193,59,239,72,116,141,98,32,78,205,147,127,202,1,229,147,98,97,235,89,95,12,78,157,74,44) +IMAGE_DATA(179,219,215,186,217,250,162,245,74,185,164,249,160,158,214,3,197,213,200,226,79,139,139,243,68,132,135,139,139,65,88,216) +IMAGE_DATA(153,132,211,167,239,176,245,181,92,254,193,7,88,149,148,132,21,137,137,88,106,183,99,198,171,175,122,98,159,127,254,112) +IMAGE_DATA(197,32,60,60,142,125,175,30,95,49,128,232,104,7,164,164,220,131,156,156,65,168,173,221,129,234,234,7,144,153,217,5) +IMAGE_DATA(201,201,119,33,50,210,176,24,176,173,129,13,178,179,251,160,183,23,97,110,14,97,117,21,97,111,15,97,119,23,97,97) +IMAGE_DATA(1,97,98,2,161,189,29,33,53,213,5,97,97,186,98,192,182,6,173,48,57,137,176,191,111,112,95,103,109,103,7,161) +IMAGE_DATA(167,7,193,110,215,21,3,182,53,144,96,107,203,63,47,73,8,69,69,186,197,192,182,6,18,108,110,34,120,60,8,75) +IMAGE_DATA(75,8,27,27,92,127,123,27,97,121,25,97,124,28,193,229,66,152,157,69,40,44,212,243,183,111,75,50,51,63,207,117) +IMAGE_DATA(7,7,17,6,6,16,250,250,56,215,220,140,208,214,134,48,51,131,80,80,160,231,111,221,146,96,125,29,97,113,145,251) +IMAGE_DATA(152,154,226,61,229,164,171,139,231,142,218,244,52,66,126,190,158,47,45,149,96,109,141,199,71,204,216,24,215,165,177,116) +IMAGE_DATA(118,34,180,180,32,180,182,114,187,121,121,122,190,164,68,146,231,140,226,39,118,120,152,207,217,200,8,66,71,7,66,67) +IMAGE_DATA(3,66,83,19,183,157,155,171,231,111,222,148,96,101,133,219,31,26,226,177,143,142,242,207,20,119,93,29,66,125,61,183) +IMAGE_DATA(153,157,173,231,139,139,37,111,158,221,110,132,254,126,238,155,242,72,227,174,169,225,54,232,122,86,150,158,191,113,67,146) +IMAGE_DATA(175,81,12,196,169,121,242,79,57,160,124,82,44,153,153,122,62,42,42,17,202,202,214,160,187,155,175,87,202,37,205,7) +IMAGE_DATA(245,180,30,40,174,198,70,132,180,52,15,68,68,8,139,1,219,26,156,129,132,132,59,108,125,45,67,121,57,66,85,21) +IMAGE_DATA(66,69,5,178,185,65,200,200,240,64,108,236,161,138,1,243,19,199,190,87,254,139,1,94,183,104,242,209,139,242,178,202) +IMAGE_DATA(232,248,168,242,222,103,66,229,101,155,193,177,80,72,199,74,11,225,248,131,229,159,244,248,31,22,255,104,229,104,23,3) +IMAGE_DATA(122,73,163,78,158,246,248,168,242,234,119,85,78,52,62,54,18,39,90,107,161,26,127,176,252,147,30,255,195,226,31,177) +IMAGE_DATA(240,199,4,195,137,17,85,241,195,188,9,21,189,117,245,247,38,86,17,135,5,255,14,51,223,149,149,149,168,209,71,141) +IMAGE_DATA(127,179,49,24,233,89,225,29,2,61,35,255,218,24,28,6,122,222,70,113,217,108,54,35,27,134,113,43,205,193,158,123) +IMAGE_DATA(5,58,70,241,9,243,44,208,17,242,255,98,236,117,186,35,130,124,207,241,246,54,147,249,85,241,50,251,187,13,208,93) +IMAGE_DATA(201,226,114,240,158,142,175,31,140,203,116,125,145,63,98,212,15,121,116,236,60,96,76,215,55,249,33,191,196,57,129,247) +IMAGE_DATA(116,124,221,152,247,17,11,254,77,197,79,252,126,197,102,158,127,95,9,252,157,129,82,225,2,173,116,129,242,254,239,20) +IMAGE_DATA(23,46,92,192,164,164,36,159,70,231,98,98,98,28,190,118,196,254,73,95,43,138,205,152,152,107,126,253,43,124,124,124) +IMAGE_DATA(188,220,72,232,156,139,61,239,115,27,52,142,192,252,83,79,205,10,175,246,175,22,186,110,150,97,145,255,64,120,197,191) +IMAGE_DATA(118,28,143,203,191,122,46,66,233,95,180,254,180,107,209,140,127,108,242,136,254,233,72,116,135,58,148,126,91,91,155,220) +IMAGE_DATA(208,154,45,159,201,83,120,228,91,32,239,93,151,206,153,243,188,146,3,168,127,159,86,120,159,231,95,107,60,90,226,133) +IMAGE_DATA(119,115,47,139,134,119,124,47,175,228,74,105,10,15,42,94,123,221,31,127,240,135,65,240,104,137,23,54,47,43,222,45) +IMAGE_DATA(249,203,255,1,139,150,230,143,198,165,122,55,225,101,149,241,250,94,211,243,250,134,218,120,173,126,23,140,114,242,240,229) +IMAGE_DATA(56,252,7,162,243,159,237,141,210,162,1,174,156,7,248,235,20,192,127,205,184,203,0,35,164,79,189,250,60,177,218,115) +IMAGE_DATA(70,62,73,87,123,141,252,138,206,107,253,58,3,152,52,138,77,97,207,2,20,139,181,180,143,117,7,199,196,40,188,56) +IMAGE_DATA(63,62,95,10,221,49,197,229,20,228,204,170,127,107,188,177,168,199,111,116,157,114,100,102,67,201,191,118,142,232,216,56) +IMAGE_DATA(167,198,227,112,170,214,157,21,246,216,202,73,49,48,247,121,52,139,129,177,248,47,6,230,18,236,151,249,164,24,28,99) +IMAGE_DATA(9,162,24,168,183,44,83,96,254,50,79,204,43,27,185,244,116,197,198,225,121,117,255,184,252,7,19,127,224,91,190,208) +IMAGE_DATA(110,25,79,228,201,147,163,253,211,226,137,132,80,130,125,14,245,62,147,35,6,206,31,119,255,1,112,94,62,64,191,161) +IMAGE_DATA(147,227,241,152,128,168,110,209,112,150,61,38,228,178,199,132,72,63,143,9,205,35,164,79,189,250,60,177,218,115,70,62) +IMAGE_DATA(73,87,123,141,252,138,206,107,253,58,77,127,75,23,11,197,166,176,103,225,82,0,239,12,46,21,43,188,56,63,254,222) +IMAGE_DATA(25,228,254,37,202,153,85,255,214,120,99,81,143,223,232,58,229,200,204,134,146,127,237,28,209,177,113,78,141,199,161,94) +IMAGE_DATA(119,214,35,57,134,114,132,139,129,246,119,104,81,19,109,205,101,142,126,75,119,187,221,134,63,15,209,53,210,209,216,145) +IMAGE_DATA(89,35,142,109,160,228,102,96,71,102,239,223,191,111,232,83,196,43,54,148,152,204,196,136,39,9,21,175,102,172,240,218) +IMAGE_DATA(220,253,110,179,249,240,116,172,21,85,252,186,252,187,43,43,101,198,249,15,75,199,38,172,207,186,241,55,255,86,214,81) +IMAGE_DATA(0,235,239,216,202,223,115,47,123,14,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0) +IMAGE_END_DATA(2336, 16) IMAGE_BEGIN_DATA IMAGE_DATA(120,156,237,154,123,76,91,215,29,199,173,104,127,76,202,254,168,218,37,107,179,237,175,228,143,38,127,77,154,34,173,83) -IMAGE_DATA(149,173,201,166,145,117,67,105,169,21,209,73,89,212,166,75,89,84,180,85,85,105,150,181,33,9,105,210,149,240,72,96) -IMAGE_DATA(132,60,72,128,132,135,73,8,196,6,243,126,25,3,54,143,240,48,6,27,204,251,77,48,132,55,198,230,187,115,142,123) -IMAGE_DATA(111,174,223,215,64,148,108,218,65,63,157,115,207,61,159,223,227,123,238,189,190,6,36,47,73,94,146,136,108,82,98,248) -IMAGE_DATA(174,247,183,73,165,239,73,32,203,148,128,246,126,250,224,89,172,249,237,227,41,107,179,243,180,23,233,195,33,46,199,114) -IMAGE_DATA(230,195,135,99,92,27,91,231,192,121,209,195,109,206,140,39,227,192,64,199,115,110,124,56,230,188,230,26,223,157,15,137) -IMAGE_DATA(125,111,61,214,205,241,212,116,109,246,152,94,116,224,125,112,177,184,245,66,94,140,134,185,57,142,249,210,60,184,121,191) -IMAGE_DATA(247,80,220,222,121,245,177,209,107,120,29,44,239,67,178,254,251,79,92,243,227,97,240,194,183,240,172,9,184,179,127,102) -IMAGE_DATA(142,33,236,206,8,254,118,123,0,39,174,15,224,131,132,126,4,199,152,240,238,183,6,28,60,223,137,125,225,122,236,13) -IMAGE_DATA(107,101,107,149,205,115,2,155,133,188,233,9,114,234,103,112,79,51,141,140,26,51,82,171,166,144,84,49,137,196,226,9) -IMAGE_DATA(196,41,199,16,173,24,193,55,57,67,216,25,218,200,243,153,53,211,72,171,158,70,74,149,25,73,229,143,113,181,100,18) -IMAGE_DATA(87,10,198,17,165,24,195,197,156,17,156,185,55,136,83,233,3,248,44,181,15,161,73,61,8,151,13,96,199,7,26,198) -IMAGE_DATA(231,61,154,133,121,222,138,91,132,155,154,91,197,252,178,13,243,75,54,204,45,89,161,233,154,39,62,70,97,28,89,194) -IMAGE_DATA(185,251,131,208,15,45,146,90,186,240,121,106,47,94,13,174,198,201,244,17,150,235,2,97,174,22,77,48,54,82,62,202) -IMAGE_DATA(142,195,101,131,24,54,175,64,209,104,102,199,81,242,97,44,174,216,112,56,186,19,159,36,153,176,61,176,2,161,68,159) -IMAGE_DATA(140,90,51,172,182,53,18,207,134,101,203,26,203,117,158,196,166,185,14,62,94,193,228,172,133,249,253,58,123,16,19,79) -IMAGE_DATA(44,248,227,55,237,248,75,162,17,219,14,148,50,93,147,43,31,179,92,35,238,15,99,118,209,74,116,239,103,199,33,215) -IMAGE_DATA(77,232,155,92,70,89,219,12,154,122,230,112,58,179,15,227,51,22,252,230,92,43,142,196,25,240,202,155,74,4,69,117) -IMAGE_DATA(49,93,41,119,50,173,31,79,22,172,56,113,211,196,142,143,196,25,209,51,190,132,119,34,245,40,106,153,38,126,123,176) -IMAGE_DATA(100,177,193,52,182,132,224,232,14,188,188,55,31,7,34,244,136,201,27,229,117,61,126,173,27,71,227,187,240,126,172,1) -IMAGE_DATA(65,151,58,88,174,1,231,219,112,224,76,43,246,125,213,140,55,78,61,194,222,147,77,120,239,82,59,94,254,185,130,93) -IMAGE_DATA(3,23,30,12,225,76,22,217,159,140,126,166,235,223,147,123,240,201,205,110,124,156,216,133,15,19,140,44,215,63,197,118) -IMAGE_DATA(16,221,58,24,23,20,105,55,202,211,107,224,199,31,105,176,227,104,29,217,143,26,252,40,168,138,233,186,237,119,165,216) -IMAGE_DATA(246,86,49,126,184,175,16,175,188,161,100,185,210,245,206,246,188,239,159,255,169,135,65,117,117,34,220,89,85,85,60,42) -IMAGE_DATA(42,226,80,94,30,131,210,210,75,40,46,190,0,165,50,2,10,69,56,177,83,200,201,9,67,86,214,167,108,109,79,79) -IMAGE_DATA(13,111,38,147,26,221,221,42,116,117,85,194,104,172,128,193,80,130,206,206,34,232,245,74,180,183,231,161,173,237,33,90) -IMAGE_DATA(90,114,208,220,124,31,233,233,33,60,223,209,81,72,214,20,64,167,203,39,107,20,104,109,205,37,107,178,241,232,81,22) -IMAGE_DATA(26,27,51,80,95,127,23,26,77,10,106,107,147,160,86,95,103,115,41,41,71,25,111,50,85,19,223,74,244,246,214,194) -IMAGE_DATA(106,93,193,236,236,24,139,191,178,178,136,165,165,39,208,106,83,177,184,56,67,142,231,137,111,57,171,173,190,62,21,73) -IMAGE_DATA(73,193,172,70,186,150,206,83,150,142,205,230,62,178,118,129,228,84,140,201,73,19,177,110,226,115,156,228,148,195,234,43) -IMAGE_DATA(43,139,65,93,93,18,18,19,223,37,218,196,144,58,75,89,174,148,231,114,157,153,25,194,218,154,141,196,157,38,220,67) -IMAGE_DATA(208,182,188,60,135,166,38,25,209,242,91,212,212,92,71,124,252,239,153,174,180,246,198,70,25,86,87,87,88,174,181,181) -IMAGE_DATA(183,201,249,27,172,182,133,5,51,166,166,250,72,204,104,150,155,197,178,132,194,194,175,161,82,37,224,242,229,3,200,207) -IMAGE_DATA(15,103,186,106,181,119,88,141,54,219,42,137,51,207,52,176,90,87,217,250,209,81,61,25,91,200,120,17,195,195,109,132) -IMAGE_DATA(57,139,202,202,56,196,196,252,26,15,31,158,100,90,115,186,170,84,87,217,185,242,242,88,82,91,20,203,181,168,232,34) -IMAGE_DATA(10,10,206,147,253,63,203,226,41,20,95,17,221,46,35,42,234,77,118,13,52,55,223,35,117,101,162,161,33,141,233,170) -IMAGE_DATA(209,36,51,127,180,6,181,58,145,229,74,53,167,126,43,43,47,19,54,150,25,229,233,53,144,150,246,33,217,203,35,100) -IMAGE_DATA(63,222,199,205,155,65,76,215,132,132,63,16,125,14,146,26,127,75,242,124,139,229,74,215,59,219,243,190,127,158,213,195) -IMAGE_DATA(0,62,204,215,171,14,60,53,145,62,188,242,50,153,204,151,15,49,241,133,175,214,162,121,55,190,60,242,228,93,199,3) -IMAGE_DATA(23,46,138,151,74,101,228,129,52,238,192,210,99,58,47,134,119,92,27,238,226,83,76,253,79,115,117,236,197,242,52,158) -IMAGE_DATA(76,166,115,232,253,225,41,19,24,152,238,208,251,195,123,107,222,120,63,236,197,105,207,226,97,16,28,28,12,95,182,125) -IMAGE_DATA(251,246,95,121,227,189,53,95,62,196,240,122,189,222,163,15,177,241,57,243,151,119,246,229,137,191,180,71,226,213,196,240) -IMAGE_DATA(53,30,76,44,191,145,248,27,173,255,39,167,37,94,77,12,255,11,153,123,19,203,111,36,254,70,234,247,199,156,249,117) -IMAGE_DATA(55,250,48,192,233,77,115,247,44,26,247,139,147,245,60,93,165,228,7,18,29,49,79,63,222,121,71,214,255,248,142,177) -IMAGE_DATA(164,126,255,2,200,145,151,249,237,195,181,118,255,124,216,245,147,57,249,208,249,245,169,230,222,135,127,159,138,118,31,254) -IMAGE_DATA(236,155,59,19,159,191,231,235,69,39,74,191,141,190,25,63,159,38,124,24,96,251,15,64,77,120,126,34,0,160,70,199) -IMAGE_DATA(210,119,190,47,197,220,107,192,220,14,103,33,217,13,235,139,183,179,175,129,250,113,102,37,174,98,177,241,141,159,201,16) -IMAGE_DATA(248,170,148,205,209,184,46,236,161,95,66,146,252,153,11,167,211,233,152,73,28,191,22,8,55,226,41,251,36,219,101,195) -IMAGE_DATA(40,75,155,132,127,101,119,250,122,65,89,77,172,157,21,240,220,218,61,123,246,184,240,92,207,179,212,232,120,214,53,190) -IMAGE_DATA(135,184,118,227,226,190,254,83,251,177,128,55,24,12,200,203,203,195,174,93,187,248,185,128,128,0,54,71,207,137,225,141) -IMAGE_DATA(70,163,91,227,121,47,249,211,53,67,35,177,152,158,13,128,133,220,60,212,232,152,206,241,188,23,253,104,28,186,62,136) -IMAGE_DATA(220,112,171,176,27,29,211,57,122,206,65,7,46,182,19,111,249,142,227,226,115,99,158,167,12,103,94,226,115,115,30,227) -IMAGE_DATA(187,49,170,51,87,63,151,63,87,63,61,231,116,13,58,55,41,183,95,177,177,177,188,238,116,76,231,124,176,46,126,156) -IMAGE_DATA(204,55,231,244,102,224,179,88,137,143,39,170,170,85,138,183,191,0,223,131,94,212,2,243,197,83,230,237,48,216,251,47) -IMAGE_DATA(92,95,171,158,117,124,167,117,254,106,225,144,39,141,127,225,174,204,33,39,122,204,213,230,150,23,196,167,107,235,218,3) -IMAGE_DATA(237,76,24,28,143,61,240,66,163,241,66,162,116,124,60,231,124,124,105,225,148,167,223,90,112,245,114,190,84,173,158,95) -IMAGE_DATA(151,221,241,92,174,79,181,244,236,195,151,22,92,45,33,81,162,121,183,90,132,28,211,185,92,83,98,175,235,11,135,72) -IMAGE_DATA(61,175,75,215,205,123,98,197,240,162,236,5,253,107,194,198,254,167,65,74,63,77,37,144,250,255,90,206,179,68,225,245) -IMAGE_DATA(248,224,89,206,232,177,196,251,70,109,102,124,7,31,235,96,121,31,146,245,235,255,255,246,223,218,54,249,97,224,207,167) -IMAGE_DATA(136,91,91,111,219,108,62,49,49,145,159,219,185,115,231,154,39,142,158,115,206,159,178,66,38,52,52,116,141,188,230,177) -IMAGE_DATA(99,181,90,205,142,185,49,55,47,228,221,197,163,115,116,61,183,142,114,220,88,152,171,55,158,246,148,163,126,184,188,184) -IMAGE_DATA(177,144,231,114,18,106,193,205,9,207,9,227,56,199,231,252,114,231,184,99,49,188,240,88,200,114,243,92,13,66,95,238) -IMAGE_DATA(246,159,230,205,105,237,220,232,57,106,222,120,46,71,225,58,174,9,181,243,198,139,109,155,113,239,108,240,222,125,49,255) -IMAGE_DATA(207,224,240,225,195,199,27,26,26,22,171,170,170,166,229,114,249,112,74,74,74,103,100,100,164,234,216,177,99,87,14,29) -IMAGE_DATA(58,244,229,254,253,251,67,119,239,222,125,112,203,150,45,223,115,199,107,181,218,101,149,74,181,28,24,24,120,124,61,241) -IMAGE_DATA(73,92,91,68,68,132,98,235,214,173,126,137,147,165,238,27,172,236,177,34,191,176,24,217,185,114,148,117,89,80,220,185) -IMAGE_DATA(12,101,251,34,228,173,115,200,110,154,129,76,51,133,59,234,9,220,170,24,197,181,146,65,196,43,251,16,253,208,132,127) -IMAGE_DATA(92,171,100,108,231,192,52,111,29,253,102,232,251,204,208,245,154,209,106,154,66,75,247,99,52,25,39,209,208,57,1,109) -IMAGE_DATA(199,4,106,219,199,160,110,27,69,85,203,40,206,101,180,131,227,173,86,43,74,26,134,88,175,212,244,179,62,71,213,203) -IMAGE_DATA(250,204,178,110,214,39,23,24,88,63,51,183,132,178,166,97,124,153,210,130,242,110,11,139,87,84,63,136,2,205,0,20) -IMAGE_DATA(53,125,200,173,238,197,253,170,30,200,202,187,145,86,98,68,74,161,1,73,249,29,184,38,215,67,171,31,103,62,232,250) -IMAGE_DATA(176,155,77,172,86,93,207,20,155,163,150,77,56,218,167,149,116,177,62,41,191,147,245,9,57,237,252,26,106,249,117,253) -IMAGE_DATA(248,52,81,139,124,221,2,154,73,141,15,84,61,200,42,55,33,189,180,11,169,69,6,220,82,118,226,134,66,143,132,220) -IMAGE_DATA(118,196,101,183,33,58,171,5,145,25,205,184,152,246,8,231,83,27,33,87,247,33,52,190,22,185,205,179,76,27,234,243) -IMAGE_DATA(78,145,209,33,134,59,59,155,220,192,107,243,215,203,106,100,213,155,201,215,48,162,169,110,140,124,29,25,69,101,243,48) -IMAGE_DATA(211,166,164,97,16,133,218,65,162,229,0,242,106,251,89,60,170,75,14,177,7,164,70,90,231,199,49,213,72,200,235,152) -IMAGE_DATA(116,222,215,127,101,27,112,62,83,143,211,119,219,112,234,118,51,62,191,209,200,106,13,253,119,29,78,92,169,65,8,225) -IMAGE_DATA(40,251,231,8,197,228,122,174,213,205,108,255,1,100,45,234,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0) -IMAGE_END_DATA(2496, 11) +IMAGE_DATA(21,214,100,211,200,186,161,180,212,138,232,164,44,106,211,165,44,42,218,170,170,52,203,218,144,132,52,233,74,120,36,48) +IMAGE_DATA(66,30,36,64,194,195,36,4,130,121,191,49,6,204,43,60,140,193,6,243,126,19,12,225,141,49,124,119,206,113,143,115) +IMAGE_DATA(253,190,54,68,73,167,29,235,167,243,252,252,94,231,222,235,115,13,146,151,36,47,73,94,208,226,67,4,110,196,199,25) +IMAGE_DATA(231,227,227,131,222,222,94,56,43,116,142,174,177,209,227,227,142,115,161,135,217,229,172,68,18,98,85,251,248,220,66,121) +IMAGE_DATA(121,31,171,133,227,92,7,143,137,23,71,235,185,216,242,230,190,53,207,89,90,59,242,199,29,239,204,95,119,188,179,248) +IMAGE_DATA(29,213,84,204,118,202,45,251,224,105,254,41,43,200,255,70,247,127,51,174,191,239,111,241,224,97,32,149,152,19,32,245) +IMAGE_DATA(194,140,84,250,158,4,178,52,9,104,237,161,14,11,139,117,143,117,60,101,215,204,60,173,69,234,176,178,203,89,46,110) +IMAGE_DATA(116,88,219,93,251,238,70,19,112,46,242,225,208,103,198,147,182,159,159,245,156,3,29,214,62,175,219,219,119,164,67,98) +IMAGE_DATA(222,91,167,113,115,158,138,186,205,108,211,69,30,44,58,184,45,190,94,200,139,201,97,86,166,181,191,212,15,62,238,241) +IMAGE_DATA(30,138,219,59,151,58,54,122,13,123,193,90,116,72,188,191,255,196,149,23,248,100,224,113,9,73,159,128,35,249,87,218) +IMAGE_DATA(24,130,239,140,224,239,183,7,112,226,250,0,62,136,237,71,64,164,30,239,126,171,197,193,243,157,216,23,162,193,222,224) +IMAGE_DATA(86,182,54,175,121,78,32,179,200,110,122,130,204,250,25,220,83,77,35,181,218,128,164,202,41,196,151,79,34,174,104,2) +IMAGE_DATA(209,121,99,136,144,143,224,155,204,33,236,12,106,180,240,105,213,211,72,174,154,70,98,165,1,241,101,143,113,181,120,18) +IMAGE_DATA(87,242,199,17,46,31,195,197,204,17,156,185,55,136,83,41,3,248,44,169,15,65,241,61,8,145,13,96,199,7,42,198) +IMAGE_DATA(231,60,154,133,97,222,132,91,132,155,154,91,197,252,242,26,230,151,214,48,183,100,130,170,107,158,232,24,133,110,100,9) +IMAGE_DATA(231,238,15,66,51,180,72,98,233,194,231,73,189,120,53,160,10,39,83,70,152,175,11,132,185,90,56,193,216,176,236,81) +IMAGE_DATA(214,15,145,13,98,216,176,2,121,163,129,245,195,179,135,177,184,178,134,195,17,157,248,36,94,143,237,126,229,8,34,249) +IMAGE_DATA(73,173,49,192,180,182,78,236,173,97,217,184,206,124,157,39,182,169,175,131,143,87,48,57,107,100,122,191,206,24,196,196) +IMAGE_DATA(19,35,254,244,77,59,254,26,167,195,182,3,37,44,175,9,21,143,153,175,161,247,135,49,187,104,34,121,239,103,253,192) +IMAGE_DATA(235,122,244,77,46,163,180,109,6,77,61,115,56,157,214,135,241,25,35,126,123,174,21,71,162,181,120,229,205,60,248,135) +IMAGE_DATA(119,177,188,82,238,100,114,63,158,44,152,112,226,166,158,245,143,68,235,208,51,190,132,119,194,52,40,108,153,38,122,123) +IMAGE_DATA(176,100,92,131,126,108,9,1,17,29,120,121,111,46,14,132,106,16,153,51,106,201,235,241,107,221,56,26,211,133,247,163) +IMAGE_DATA(180,240,191,212,193,124,245,61,223,134,3,103,90,177,239,171,102,188,113,234,17,246,158,108,194,123,151,218,241,242,47,229) +IMAGE_DATA(236,26,184,240,96,8,103,210,201,254,164,246,179,188,254,35,161,7,159,220,236,198,199,113,93,248,48,86,199,124,253,115) +IMAGE_DATA(84,7,201,91,7,227,252,195,204,66,121,122,13,252,244,35,21,118,28,173,37,251,81,141,159,248,87,178,188,110,251,125) +IMAGE_DATA(9,182,189,85,132,31,239,43,192,43,111,228,49,95,233,122,91,121,222,247,207,255,212,195,160,170,42,14,142,164,178,50) +IMAGE_DATA(134,28,39,163,81,86,22,137,146,146,75,40,42,186,128,188,188,80,200,229,33,68,78,33,51,51,24,233,233,159,178,181) +IMAGE_DATA(61,61,213,22,209,235,149,232,238,86,160,171,171,2,58,93,57,180,218,98,116,118,22,66,163,201,67,123,123,14,218,218) +IMAGE_DATA(30,162,165,37,19,205,205,247,145,146,18,104,225,59,58,10,200,154,124,168,213,185,100,141,28,173,173,89,100,77,6,30) +IMAGE_DATA(61,74,71,99,99,42,234,235,239,66,165,74,68,77,77,60,148,202,235,108,44,49,241,40,227,245,250,42,162,59,143,28) +IMAGE_DATA(99,107,96,50,173,96,118,118,140,217,95,89,89,196,210,210,19,212,213,37,97,113,113,134,244,231,137,238,108,22,91,125) +IMAGE_DATA(125,18,226,227,3,88,140,116,45,29,167,44,109,27,12,125,100,237,2,241,169,8,147,147,122,34,221,68,231,56,241,41) +IMAGE_DATA(147,197,87,90,26,137,218,218,120,196,197,189,75,114,19,73,226,44,97,190,82,158,251,58,51,51,132,245,245,53,98,119) +IMAGE_DATA(154,112,15,217,49,123,121,121,14,77,77,50,146,203,111,81,93,125,29,49,49,127,96,121,165,177,55,54,202,176,186,186) +IMAGE_DATA(194,124,173,169,185,77,230,111,176,216,22,22,12,152,154,234,35,54,35,152,111,70,227,18,10,10,190,134,66,17,139,203) +IMAGE_DATA(151,15,32,55,55,132,229,181,174,238,14,139,113,109,109,149,216,153,103,57,48,153,86,217,250,209,81,13,105,27,73,123) +IMAGE_DATA(17,195,195,109,132,57,139,138,138,104,68,70,254,6,15,31,158,100,185,230,121,85,40,174,178,185,178,178,40,18,91,56) +IMAGE_DATA(243,181,176,240,34,242,243,207,147,253,63,203,236,201,229,95,145,188,93,70,120,248,155,236,26,104,110,190,71,226,74,67) +IMAGE_DATA(67,67,50,203,171,74,149,192,244,209,24,148,202,56,230,43,205,57,213,91,81,113,153,176,81,76,40,79,175,129,228,228) +IMAGE_DATA(15,201,94,30,33,251,241,62,110,222,244,103,121,141,141,253,35,201,207,65,18,227,239,136,159,111,49,95,233,122,91,121) +IMAGE_DATA(222,247,207,179,122,24,184,123,215,114,119,212,113,250,174,39,82,135,75,94,38,147,185,211,33,198,190,240,104,45,154,119) +IMAGE_DATA(160,203,41,111,251,94,254,148,11,17,197,75,165,50,242,64,26,183,98,105,159,142,139,225,173,215,134,216,233,20,19,191) +IMAGE_DATA(171,223,26,196,240,212,158,76,166,182,170,61,225,41,227,231,151,98,85,123,194,187,42,174,120,15,228,197,41,207,226,97) +IMAGE_DATA(16,16,16,0,119,178,125,251,118,167,63,190,208,121,87,197,157,14,49,188,70,163,113,170,67,172,125,46,158,242,182,186) +IMAGE_DATA(156,241,151,246,72,92,138,24,190,218,137,136,229,55,98,127,163,241,255,236,180,196,165,136,225,127,37,115,44,98,249,141) +IMAGE_DATA(216,223,72,252,158,136,45,239,117,161,15,3,156,222,52,117,207,162,240,31,78,188,121,186,74,201,7,18,53,17,103,31) +IMAGE_DATA(215,188,53,235,185,125,107,91,82,143,127,0,178,230,101,30,235,176,143,221,51,29,230,252,201,108,116,168,61,250,86,115) +IMAGE_DATA(172,195,179,111,69,179,14,79,246,205,145,136,247,223,249,245,162,22,149,191,141,158,140,159,79,17,62,12,176,253,71,160) +IMAGE_DATA(34,156,159,240,5,168,208,182,244,157,31,74,49,247,26,48,183,195,54,145,236,134,117,199,155,217,215,64,245,216,178,18) +IMAGE_DATA(251,100,177,246,141,95,200,224,247,170,148,141,81,187,118,236,161,95,67,146,240,153,29,167,86,171,153,72,172,95,11,132) +IMAGE_DATA(27,241,148,125,146,97,183,97,148,165,69,98,57,178,219,188,94,80,86,21,101,102,5,60,95,187,103,207,30,59,158,215) +IMAGE_DATA(22,150,10,109,207,218,219,119,98,215,44,220,238,235,63,55,247,5,188,86,171,69,78,78,14,118,237,218,101,25,243,245) +IMAGE_DATA(245,101,99,116,78,12,175,211,233,28,138,133,119,225,63,93,51,52,18,133,233,89,95,24,201,205,67,133,182,233,152,133) +IMAGE_DATA(119,145,63,106,135,174,247,39,55,220,42,204,66,219,116,140,206,89,229,129,219,182,225,141,223,113,220,62,111,91,120,202) +IMAGE_DATA(112,113,97,159,143,57,181,239,64,104,158,121,252,220,127,30,63,157,179,185,6,109,139,148,239,87,84,84,148,37,239,180) +IMAGE_DATA(77,199,220,176,118,122,108,196,61,103,115,50,112,27,172,196,205,19,85,209,42,197,219,95,192,82,131,94,212,2,113,199) +IMAGE_DATA(83,230,237,96,152,235,47,236,143,85,207,218,190,205,58,79,115,97,229,39,181,127,225,174,204,202,39,218,231,177,57,228) +IMAGE_DATA(5,246,233,218,218,118,63,51,19,12,235,190,19,94,40,212,94,96,184,218,98,207,214,31,119,185,176,241,211,227,92,240) +IMAGE_DATA(120,185,46,69,171,243,227,178,35,158,251,250,52,151,206,117,184,203,5,143,37,48,92,52,239,48,23,129,199,212,118,215) +IMAGE_DATA(148,216,235,250,194,33,18,207,235,82,175,121,103,172,24,94,148,188,160,127,77,216,216,255,52,72,233,183,169,4,82,207) +IMAGE_DATA(143,229,22,150,100,216,27,29,22,150,11,237,75,92,111,212,102,218,183,210,225,5,107,209,33,241,62,255,255,47,223,215) +IMAGE_DATA(178,201,15,3,79,190,69,28,138,183,101,179,249,184,184,56,203,216,206,157,59,215,157,113,116,206,214,127,202,10,153,160) +IMAGE_DATA(160,160,117,114,204,99,125,165,82,201,250,188,205,199,133,188,35,123,116,140,174,231,235,40,199,219,66,95,93,241,180,166) +IMAGE_DATA(28,213,195,253,226,109,33,207,125,18,230,130,143,9,231,132,118,108,237,115,189,124,142,247,197,240,194,190,144,229,227,60) +IMAGE_DATA(6,161,46,71,251,79,253,230,185,182,45,116,142,138,43,158,251,40,92,199,139,48,119,174,120,177,101,51,238,157,13,222) +IMAGE_DATA(187,47,230,255,25,28,62,124,248,120,67,67,195,98,101,101,229,116,118,118,246,112,98,98,98,103,88,88,152,226,216,177) +IMAGE_DATA(99,87,14,29,58,244,229,254,253,251,131,118,239,222,125,112,203,150,45,63,112,196,215,213,213,45,43,20,138,101,63,63) +IMAGE_DATA(191,227,222,216,39,118,215,66,67,67,229,91,183,110,245,40,57,233,202,190,193,138,30,19,114,11,138,144,145,149,141,210) +IMAGE_DATA(46,35,138,58,151,145,215,190,136,236,214,57,100,52,205,64,166,154,194,29,229,4,110,149,143,226,90,241,32,98,242,250) +IMAGE_DATA(16,241,80,143,127,94,171,96,108,231,192,180,69,58,250,13,208,244,25,160,238,53,160,85,63,133,150,238,199,104,210,77) +IMAGE_DATA(162,161,115,2,117,29,19,168,105,31,131,178,109,20,149,45,163,56,151,218,14,206,155,76,38,20,55,12,177,58,79,213) +IMAGE_DATA(207,234,76,69,47,171,211,74,187,89,157,144,175,101,245,204,220,18,74,155,134,241,101,98,11,202,186,141,204,94,97,253) +IMAGE_DATA(32,242,85,3,144,87,247,33,171,170,23,247,43,123,32,43,235,70,114,177,14,137,5,90,196,231,118,224,90,182,6,117) +IMAGE_DATA(154,113,166,131,174,15,190,217,196,98,85,247,76,177,49,42,25,132,163,117,114,113,23,171,227,115,59,89,29,155,217,110) +IMAGE_DATA(89,67,37,183,182,31,159,198,213,33,87,189,128,102,18,227,3,69,15,210,203,244,72,41,233,66,82,161,22,183,242,58) +IMAGE_DATA(113,67,174,65,108,86,59,162,51,218,16,145,222,130,176,212,102,92,76,126,132,243,73,141,200,86,246,33,40,166,6,89) +IMAGE_DATA(205,179,44,55,84,231,157,66,157,149,13,71,114,54,161,193,146,155,191,93,86,34,189,222,64,94,195,72,78,213,99,228) +IMAGE_DATA(117,100,20,21,205,195,44,55,197,13,131,40,168,27,36,185,28,64,78,77,63,179,71,243,146,73,228,1,137,145,198,249) +IMAGE_DATA(113,100,21,98,115,58,38,109,247,245,223,25,90,156,79,211,224,244,221,54,156,186,221,140,207,111,52,178,88,131,254,83) +IMAGE_DATA(139,19,87,170,17,72,56,202,254,37,84,62,233,205,181,186,153,229,191,110,118,136,175,0,0,0,0,0,0,0,0,0) +IMAGE_END_DATA(2592, 12) diff --git a/uppsrc/ide/UppWspc.cpp b/uppsrc/ide/UppWspc.cpp index 717d84c09..c0dafa43b 100644 --- a/uppsrc/ide/UppWspc.cpp +++ b/uppsrc/ide/UppWspc.cpp @@ -306,6 +306,7 @@ void WorkspaceWork::PackageCursor() Vector d = GetUppDirs(); for(int i = 0; i < d.GetCount(); i++) actual.file.AddPick(Package::File(AppendFileName(d[i], "$.tpp"))); + actual.file.AddPick(Package::File(ConfigFile("global.defs"))); } else { String pp = PackagePathA(actualpackage); @@ -1106,5 +1107,7 @@ void UppList::Paint(Draw& w, const Rect& r, const Value& q, Color ink, Color pap FileList::File file = ValueTo(q); if(GetFileName(file.name) == "$.tpp" && IsFolder(file.name)) file.name = GetFileName(GetFileFolder(file.name)) + " templates"; + if(file.name == ConfigFile("global.defs")) + file.name = "Fixed macros"; FileList::Paint(w, r, RawToValue(file), ink, paper, style); } diff --git a/uppsrc/ide/idewin.cpp b/uppsrc/ide/idewin.cpp index e9c612d28..89abcfc6b 100644 --- a/uppsrc/ide/idewin.cpp +++ b/uppsrc/ide/idewin.cpp @@ -1066,13 +1066,13 @@ void AppMain___() Ini::user_log = true; } - String ppcfg = ConfigFile("pp_config.json"); + String ppdefs = ConfigFile("global.defs"); #ifndef _DEBUG - if(!FileExists(ppcfg)) + if(!FileExists(ppdefs)) #endif - SaveFile(ppcfg, GetStdConfig()); + SaveFile(ppdefs, GetStdDefs()); - LoadPPConfig(LoadFile(ppcfg)); + SetPPDefs(LoadFile(ppdefs)); ide.LoadLastMain(); if(clset || ide.OpenMainPackage()) {