mirror of
https://github.com/ultimatepp/ultimatepp.git
synced 2026-05-15 06:05:58 -06:00
Merge continued
git-svn-id: svn://ultimatepp.org/upp/trunk@10263 f0d560ea-af0d-0410-9eb7-867de7ffcac7
This commit is contained in:
parent
adf46bd64e
commit
2e4b276e07
3860 changed files with 1161787 additions and 438 deletions
|
|
@ -34,6 +34,7 @@ CONSOLE_APP_MAIN
|
|||
p.Create(1, 2);
|
||||
ASSERT(p.Top().x == 1);
|
||||
ASSERT(p.Top().y == 2);
|
||||
p.Create();
|
||||
}
|
||||
|
||||
{
|
||||
|
|
@ -41,6 +42,7 @@ CONSOLE_APP_MAIN
|
|||
p.Create<Point>(1, 2);
|
||||
ASSERT(p.Top().x == 1);
|
||||
ASSERT(p.Top().y == 2);
|
||||
p.Create<Point>();
|
||||
}
|
||||
|
||||
{
|
||||
|
|
|
|||
29
autotest/Skip/Skip.cpp
Normal file
29
autotest/Skip/Skip.cpp
Normal file
|
|
@ -0,0 +1,29 @@
|
|||
#include <Core/Core.h>
|
||||
|
||||
using namespace Upp;
|
||||
|
||||
CONSOLE_APP_MAIN
|
||||
{
|
||||
StdLogSetup(LOG_COUT|LOG_FILE);
|
||||
|
||||
String fn = GetHomeDirFile("test.txt");
|
||||
{
|
||||
FileOut out(fn);
|
||||
for(int i = 0; i < 10000; i++)
|
||||
out.Put('0');
|
||||
out.Put("test");
|
||||
}
|
||||
{
|
||||
FileIn in(fn);
|
||||
ASSERT(in.Skip(10000) == 10000);
|
||||
ASSERT(in.Get(1000) == "test");
|
||||
ASSERT(in.Skip(10) == 0);
|
||||
}
|
||||
{
|
||||
FileIn in(fn);
|
||||
ASSERT(in.Skip(20000) == 10004);
|
||||
}
|
||||
|
||||
FileDelete(fn);
|
||||
LOG("============= OK");
|
||||
}
|
||||
9
autotest/Skip/Skip.upp
Normal file
9
autotest/Skip/Skip.upp
Normal file
|
|
@ -0,0 +1,9 @@
|
|||
uses
|
||||
Core;
|
||||
|
||||
file
|
||||
Skip.cpp;
|
||||
|
||||
mainconfig
|
||||
"" = "";
|
||||
|
||||
4
autotest/Skip/init
Normal file
4
autotest/Skip/init
Normal file
|
|
@ -0,0 +1,4 @@
|
|||
#ifndef _Skip_icpp_init_stub
|
||||
#define _Skip_icpp_init_stub
|
||||
#include "Core/init"
|
||||
#endif
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
description "Animated Hello world example";
|
||||
description "Animated Hello world example\377";
|
||||
|
||||
uses
|
||||
CtrlLib;
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
description "Rudimentary HelloWorld application with menu and status bar";
|
||||
description "Rudimentary HelloWorld application with menu and status bar\377";
|
||||
|
||||
uses
|
||||
CtrlLib;
|
||||
|
|
|
|||
4
tutorial/Gui07/init
Normal file
4
tutorial/Gui07/init
Normal file
|
|
@ -0,0 +1,4 @@
|
|||
#ifndef _Gui07_icpp_init_stub
|
||||
#define _Gui07_icpp_init_stub
|
||||
#include "CtrlLib/init"
|
||||
#endif
|
||||
|
|
@ -11,11 +11,11 @@ struct MyAppWindow : TopWindow {
|
|||
}
|
||||
|
||||
void SubMenu(Bar& bar) {
|
||||
bar.Add("Exit", THISBACK(Exit));
|
||||
bar.Add("Exit", [=] { Exit(); });
|
||||
}
|
||||
|
||||
void MainMenu(Bar& bar) {
|
||||
bar.Add("Menu", THISBACK(SubMenu));
|
||||
bar.Sub("Menu", [=](Bar& bar) { SubMenu(bar); });
|
||||
}
|
||||
|
||||
typedef MyAppWindow CLASSNAME;
|
||||
|
|
@ -23,7 +23,7 @@ struct MyAppWindow : TopWindow {
|
|||
MyAppWindow() {
|
||||
Title("My application with menu").Sizeable();
|
||||
AddFrame(menu);
|
||||
menu.Set(THISBACK(MainMenu));
|
||||
menu.Set([=](Bar& bar) { MainMenu(bar); });
|
||||
}
|
||||
};
|
||||
|
||||
|
|
|
|||
11
tutorial/Gui07a/Gui07a.upp
Normal file
11
tutorial/Gui07a/Gui07a.upp
Normal file
|
|
@ -0,0 +1,11 @@
|
|||
description "Menu - as single lambda\377";
|
||||
|
||||
uses
|
||||
CtrlLib;
|
||||
|
||||
file
|
||||
main.cpp;
|
||||
|
||||
mainconfig
|
||||
"" = "GUI";
|
||||
|
||||
4
tutorial/Gui07a/init
Normal file
4
tutorial/Gui07a/init
Normal file
|
|
@ -0,0 +1,4 @@
|
|||
#ifndef _Gui07a_icpp_init_stub
|
||||
#define _Gui07a_icpp_init_stub
|
||||
#include "CtrlLib/init"
|
||||
#endif
|
||||
32
tutorial/Gui07a/main.cpp
Normal file
32
tutorial/Gui07a/main.cpp
Normal file
|
|
@ -0,0 +1,32 @@
|
|||
#include <CtrlLib/CtrlLib.h>
|
||||
|
||||
using namespace Upp;
|
||||
|
||||
struct MyAppWindow : TopWindow {
|
||||
MenuBar menu;
|
||||
|
||||
MyAppWindow() {
|
||||
Title("My application with menu").Sizeable();
|
||||
AddFrame(menu);
|
||||
menu.Set(
|
||||
[=](Bar& bar) {
|
||||
bar.Sub("Menu",
|
||||
[=](Bar& bar) {
|
||||
bar.Add("Exit",
|
||||
[=] {
|
||||
if(PromptOKCancel("Exit MyApp?"))
|
||||
Break();
|
||||
}
|
||||
);
|
||||
}
|
||||
);
|
||||
}
|
||||
);
|
||||
}
|
||||
};
|
||||
|
||||
GUI_APP_MAIN
|
||||
{
|
||||
MyAppWindow app;
|
||||
app.Run();
|
||||
}
|
||||
4
tutorial/Gui08/init
Normal file
4
tutorial/Gui08/init
Normal file
|
|
@ -0,0 +1,4 @@
|
|||
#ifndef _Gui08_icpp_init_stub
|
||||
#define _Gui08_icpp_init_stub
|
||||
#include "CtrlLib/init"
|
||||
#endif
|
||||
|
|
@ -8,16 +8,14 @@ struct MyAppWindow : TopWindow {
|
|||
Break();
|
||||
}
|
||||
|
||||
void LocalMenu(Bar& bar) {
|
||||
bar.Add("Exit", THISBACK(Exit));
|
||||
}
|
||||
|
||||
void RightDown(Point, dword) {
|
||||
MenuBar::Execute(THISBACK(LocalMenu));
|
||||
MenuBar::Execute(
|
||||
[=](Bar& bar) {
|
||||
bar.Add("Exit", [=] { Exit(); });
|
||||
}
|
||||
);
|
||||
}
|
||||
|
||||
typedef MyAppWindow CLASSNAME;
|
||||
|
||||
MyAppWindow() {
|
||||
Title("My application with local menu").Sizeable();
|
||||
}
|
||||
|
|
|
|||
4
tutorial/Gui09/init
Normal file
4
tutorial/Gui09/init
Normal file
|
|
@ -0,0 +1,4 @@
|
|||
#ifndef _Gui09_icpp_init_stub
|
||||
#define _Gui09_icpp_init_stub
|
||||
#include "CtrlLib/init"
|
||||
#endif
|
||||
|
|
@ -9,19 +9,17 @@ struct MyAppWindow : TopWindow {
|
|||
}
|
||||
|
||||
void RightDown(Point, dword) {
|
||||
CallbackArgTarget<int> result;
|
||||
int result = Null;
|
||||
MenuBar menu;
|
||||
for(int i = 0; i < 10; i++)
|
||||
menu.Add(AsString(i), result[i]);
|
||||
menu.Add(AsString(i), [=, &result] { result = i; });
|
||||
menu.Separator();
|
||||
menu.Add("Exit", THISBACK(Exit));
|
||||
menu.Add("Exit", [=] { Exit(); });
|
||||
menu.Execute();
|
||||
if(!IsNull(result))
|
||||
PromptOK("You have selected " + AsString((int)result));
|
||||
}
|
||||
|
||||
typedef MyAppWindow CLASSNAME;
|
||||
|
||||
MyAppWindow() {
|
||||
Title("My application with context menu").Sizeable();
|
||||
}
|
||||
|
|
|
|||
4
tutorial/Gui10/init
Normal file
4
tutorial/Gui10/init
Normal file
|
|
@ -0,0 +1,4 @@
|
|||
#ifndef _Gui10_icpp_init_stub
|
||||
#define _Gui10_icpp_init_stub
|
||||
#include "CtrlLib/init"
|
||||
#endif
|
||||
|
|
@ -15,19 +15,15 @@ struct MyAppWindow : TopWindow {
|
|||
}
|
||||
|
||||
void SubMenu(Bar& bar) {
|
||||
bar.Add("Exit", TutorialImg::Exit(), THISBACK(Exit));
|
||||
bar.Add("Exit", TutorialImg::Exit(), [=] { Exit(); });
|
||||
}
|
||||
|
||||
void MainMenu(Bar& bar) {
|
||||
bar.Add("Menu", THISBACK(SubMenu));
|
||||
}
|
||||
|
||||
typedef MyAppWindow CLASSNAME;
|
||||
|
||||
MyAppWindow() {
|
||||
Title("My application with menu and images").Sizeable();
|
||||
AddFrame(menu);
|
||||
menu.Set(THISBACK(MainMenu));
|
||||
menu.Set([=](Bar& bar) {
|
||||
bar.Sub("Menu", [=](Bar& bar) { SubMenu(bar); });
|
||||
});
|
||||
}
|
||||
};
|
||||
|
||||
|
|
|
|||
File diff suppressed because one or more lines are too long
|
|
@ -1,82 +1,81 @@
|
|||
TITLE("")
|
||||
COMPRESSED
|
||||
120,156,236,188,199,111,187,225,150,30,246,175,12,16,103,86,9,112,199,184,65,48,54,12,120,145,108,189,49,178,26,24,129,23,182,17,192,94,217,94,25,6,40,82,236,98,239,98,239,93,20,123,39,69,177,247,222,155,216,123,255,216,91,168,159,230,14,236,153,123,199,215,73,102,86,33,4,8,224,123,206,243,158,242,156,243,150,15,252,254,226,79,254,193,63,248,205,255,244,155,255,225,55,255,141,207,63,250,223,254,213,191,254,151,255,241,223,254,135,127,241,23,255,233,255,252,207,255,227,255,254,207,254,231,255,227,159,255,201,95,252,251,223,252,227,63,249,211,127,241,253,239,159,252,201,63,253,167,255,215,191,251,151,255,230,95,253,163,63,251,243,63,255,237,159,254,217,111,127,251,231,96,8,238,73,240,4,250,221,231,16,100,205,234,232,101,174,23,228,127,172,72,50,223,76,58,52,10,94,20,56,129,16,140,24,134,47,160,47,226,33,20,13,131,145,252,231,143,231,79,47,152,76,200,60,207,188,147,73,105,210,176,168,141,234,221,104,81,223,22,2,88,103,46,23,172,
|
||||
104,11,9,251,94,225,113,218,102,26,172,54,178,244,206,51,166,176,107,253,129,247,167,209,148,141,219,181,112,199,203,164,250,198,149,208,49,227,156,235,174,120,111,94,36,250,179,78,109,87,133,195,238,166,213,117,222,137,148,104,207,151,238,221,192,10,140,38,208,91,111,11,214,46,121,6,235,48,149,131,38,101,227,156,105,190,99,26,249,91,185,246,171,110,79,87,251,218,26,75,87,48,134,209,56,165,77,61,252,168,176,107,126,91,254,153,96,90,145,149,227,100,222,156,65,186,67,56,49,63,4,253,8,118,193,150,215,114,166,2,140,85,203,104,27,236,40,188,18,163,52,3,83,143,122,173,233,197,175,70,224,158,93,125,178,165,176,58,165,190,245,152,197,43,156,8,168,175,151,197,244,94,105,71,221,114,198,43,193,45,239,6,51,42,174,173,148,49,127,216,44,23,57,155,0,78,186,249,86,9,124,21,85,42,90,55,192,37,80,102,72,50,12,79,222,214,3,19,169,160,152,9,164,39,9,241,171,193,104,139,147,199,169,66,199,3,221,223,20,243,197,110,55,158,154,197,
|
||||
4,85,148,126,195,11,43,226,18,173,13,14,41,5,104,212,214,169,24,99,95,7,178,19,154,238,251,156,228,243,244,61,41,130,77,89,174,100,206,151,234,240,65,39,184,157,126,93,255,82,151,13,137,90,5,150,150,219,34,58,1,201,158,76,120,243,28,171,46,150,227,42,10,213,105,171,160,220,99,183,127,60,111,203,23,3,77,49,69,143,91,41,54,23,101,70,50,108,98,60,20,5,53,221,80,64,186,153,76,231,159,40,79,226,175,232,83,216,179,149,194,22,46,147,203,50,47,121,42,56,40,198,184,96,154,131,46,194,219,165,89,195,188,149,223,207,134,113,94,122,145,229,169,57,115,208,204,245,203,136,173,145,82,187,143,119,132,34,173,171,32,214,208,153,102,46,82,142,97,40,39,213,156,197,167,35,31,24,111,240,181,190,141,44,50,198,216,167,80,208,220,5,34,19,27,170,96,212,163,49,70,207,188,208,144,16,200,10,72,90,240,73,142,228,245,185,22,9,149,143,48,49,126,204,122,95,180,88,205,53,242,120,124,188,191,10,57,88,138,162,117,232,29,153,4,165,
|
||||
98,235,77,83,27,140,48,202,124,106,159,181,253,207,184,116,17,170,150,236,72,224,101,12,209,209,134,105,214,32,47,126,166,110,7,50,158,61,34,201,75,9,18,114,171,0,73,235,204,145,30,57,146,11,91,22,200,126,73,245,108,189,211,52,47,32,155,47,66,166,201,40,86,95,237,195,169,42,145,39,199,190,66,4,90,203,153,214,160,46,193,80,160,42,48,213,106,118,17,81,201,195,75,81,23,20,214,166,151,101,8,207,32,228,98,20,167,196,110,24,209,246,129,103,167,182,84,63,95,200,117,213,197,164,5,233,32,189,81,78,182,6,222,189,178,160,36,118,148,112,78,201,26,23,79,61,143,139,206,76,244,82,41,20,12,136,35,89,150,119,135,251,1,44,124,62,188,159,43,149,20,118,252,181,160,174,63,2,204,203,196,252,182,111,234,146,238,254,94,146,178,141,97,41,157,113,26,145,143,81,154,11,181,221,185,104,183,249,98,222,121,150,121,128,8,245,45,226,31,11,220,161,15,26,123,187,29,170,2,142,23,53,141,58,101,27,220,32,87,65,23,84,68,250,139,7,
|
||||
235,131,212,194,78,206,122,150,4,168,161,207,9,231,94,27,208,173,148,69,49,195,150,83,141,233,155,244,51,115,92,210,154,227,235,26,190,112,110,133,86,161,251,206,235,180,52,87,163,219,162,190,186,226,196,217,126,62,181,15,174,213,195,155,177,101,31,123,35,77,5,114,86,163,214,114,5,66,233,34,188,207,222,85,205,237,234,10,94,173,53,212,4,210,192,125,97,38,84,146,123,94,94,48,173,245,105,155,90,49,11,101,71,153,28,71,111,156,101,85,166,250,192,62,202,14,142,57,81,240,112,219,100,217,29,199,125,148,208,137,211,31,229,227,75,102,199,80,154,206,147,70,213,123,205,118,206,183,27,224,89,45,246,174,245,62,8,120,237,85,174,69,61,51,187,226,173,69,14,217,72,27,175,179,250,65,169,164,120,247,133,103,179,6,57,157,202,55,77,157,217,122,233,143,189,2,164,219,245,180,118,48,196,4,165,103,239,27,111,238,24,28,165,137,40,169,96,195,214,56,219,182,143,56,228,249,104,64,65,80,182,56,119,205,26,94,216,245,235,75,208,199,252,8,228,96,
|
||||
39,50,83,225,200,163,124,138,11,102,128,34,200,247,123,231,253,146,192,45,102,135,4,23,187,59,155,13,215,43,199,123,80,26,249,246,177,228,179,74,131,45,148,47,160,233,27,102,218,16,153,3,47,197,196,184,110,172,115,205,83,5,76,23,62,135,223,24,124,33,16,135,240,69,109,99,11,167,5,99,82,205,132,22,53,107,22,51,199,80,157,237,118,220,130,228,113,199,169,9,225,197,246,201,167,57,15,237,155,104,103,179,106,169,9,50,178,182,245,105,18,79,24,180,23,136,219,149,29,102,234,128,104,28,97,242,209,82,183,254,74,174,214,85,111,7,18,107,21,47,12,241,26,41,234,200,38,31,192,132,146,156,85,254,136,246,116,103,138,19,65,0,151,60,66,10,29,212,85,100,169,37,168,153,92,219,59,44,234,142,221,28,71,91,41,199,118,83,36,202,161,175,147,62,58,51,51,170,236,145,90,67,151,237,174,133,209,183,131,158,81,123,43,20,226,31,132,181,82,123,217,117,191,224,82,49,129,198,155,124,142,27,125,10,93,238,43,133,231,13,127,35,31,210,128,198,
|
||||
151,54,75,249,81,7,219,77,103,83,84,237,94,4,115,80,119,102,178,11,251,221,243,183,251,54,60,65,162,38,109,113,229,18,214,69,253,162,102,175,107,38,68,165,206,205,44,196,200,139,71,240,46,249,77,125,54,51,202,12,173,226,69,230,120,98,40,19,27,94,41,185,13,141,241,85,236,73,145,238,170,231,6,98,123,37,44,126,220,116,1,171,194,64,85,46,235,19,141,119,175,162,113,23,181,6,163,98,202,169,178,147,162,98,164,205,80,154,53,124,230,148,142,30,15,205,137,95,188,160,212,79,83,190,145,22,232,108,183,124,177,185,132,140,39,210,140,155,81,61,198,230,191,140,204,96,44,182,29,230,47,98,149,173,103,63,197,228,161,194,214,14,186,180,18,124,77,196,171,40,235,66,104,165,6,221,44,11,155,247,245,121,61,78,37,94,239,95,59,197,135,26,221,233,98,159,182,197,70,219,93,26,213,38,229,65,53,106,208,140,93,163,203,205,15,239,112,153,167,155,170,96,25,175,141,163,189,182,36,70,238,144,73,245,50,136,145,228,103,233,61,33,80,210,137,183,
|
||||
238,222,96,152,148,116,80,22,213,89,28,115,41,125,91,212,104,112,62,42,16,22,229,116,8,146,243,58,121,189,17,176,84,123,135,193,122,201,62,25,249,236,40,164,74,109,133,188,94,179,250,101,246,228,174,184,172,41,35,63,148,90,165,121,23,128,199,186,196,162,109,45,124,222,96,157,107,121,111,143,252,18,121,197,140,22,65,105,170,216,238,27,167,124,230,75,105,75,139,148,72,215,245,198,160,202,119,157,225,66,95,21,235,250,79,198,253,142,174,205,184,184,149,253,121,163,120,10,189,143,29,29,109,221,73,172,238,63,163,104,72,83,133,169,247,92,6,67,167,124,216,237,199,169,157,216,163,238,1,43,189,50,181,125,78,45,136,90,143,95,8,233,61,11,171,209,0,167,244,46,95,155,139,28,161,208,224,22,250,233,45,146,246,181,182,255,72,168,98,37,204,122,132,103,147,180,138,185,17,155,23,229,32,197,171,43,247,222,242,241,108,164,17,33,235,100,177,108,61,151,239,101,156,183,225,98,194,53,11,103,14,202,198,136,167,242,196,15,167,227,141,218,174,243,209,106,
|
||||
46,148,108,239,86,237,67,23,248,186,74,71,169,52,40,158,90,129,49,201,213,145,110,219,114,4,15,126,70,59,65,152,242,237,133,130,91,45,53,175,171,229,169,37,118,171,79,102,134,216,106,105,117,118,250,105,158,18,198,232,10,3,231,43,90,75,41,201,58,249,183,136,69,220,233,133,201,25,97,170,64,104,183,0,19,181,214,229,207,4,110,40,104,168,26,132,169,8,180,230,3,184,76,102,225,175,172,11,227,81,163,33,230,124,221,23,49,30,79,169,122,98,219,218,106,139,144,170,66,145,192,209,48,123,141,133,181,27,22,202,201,230,251,45,96,40,128,233,205,172,223,31,137,25,186,42,149,128,201,81,228,218,131,97,215,187,151,207,175,197,58,79,205,69,225,188,102,240,141,24,218,198,196,81,121,205,255,94,0,135,152,80,229,35,254,121,46,237,171,101,213,221,129,40,42,49,185,76,52,184,169,109,147,158,102,150,155,75,170,39,177,242,49,250,207,201,76,51,215,56,29,5,229,216,207,69,39,236,155,47,210,75,210,117,47,167,24,26,49,116,17,17,200,27,107,138,
|
||||
155,197,85,102,240,152,26,108,218,0,25,162,187,94,156,108,43,202,242,158,175,89,93,208,251,244,192,169,36,112,122,31,73,57,243,96,29,73,187,35,37,69,56,69,65,234,172,100,242,155,36,129,122,143,181,57,233,218,209,63,81,232,71,130,34,215,117,177,187,202,10,155,213,99,179,30,61,24,49,127,155,253,12,76,208,213,66,124,172,177,90,75,170,251,65,92,207,205,204,44,10,253,122,114,122,38,176,75,159,232,105,165,75,72,65,33,91,129,247,248,124,167,9,82,237,117,185,148,18,161,174,121,231,20,21,4,49,223,14,17,12,148,133,129,158,74,164,229,136,143,245,39,53,26,88,242,45,176,142,145,60,81,80,128,30,109,202,142,159,17,209,236,118,80,71,169,61,125,177,95,125,83,106,182,69,234,161,232,37,31,38,131,231,177,134,136,201,37,48,111,111,88,161,154,197,106,184,92,51,241,136,174,197,200,36,121,118,235,200,221,210,94,172,137,101,143,55,144,144,67,25,25,229,138,103,215,144,134,18,197,73,69,231,161,147,115,172,228,143,43,97,169,185,123,148,85,
|
||||
204,211,149,18,99,96,110,80,59,158,35,10,201,235,16,73,25,241,231,122,56,46,223,223,205,251,110,182,236,187,115,84,199,79,194,88,121,29,68,53,235,60,237,72,181,80,140,26,187,64,124,98,18,221,99,135,187,29,211,240,166,151,15,140,23,252,182,73,2,73,21,16,47,48,129,0,237,165,137,43,232,5,218,140,147,168,61,234,230,176,221,11,101,124,201,3,82,155,117,100,46,111,114,109,85,237,12,5,3,171,75,254,249,68,41,22,149,31,118,105,195,189,91,181,27,35,239,46,225,116,44,155,14,237,153,106,198,54,205,203,79,23,116,77,43,106,88,251,0,216,168,197,108,130,11,238,93,211,186,77,224,92,186,83,52,189,135,203,240,55,39,246,122,207,115,143,157,136,211,163,36,189,72,53,204,140,80,152,59,58,130,42,66,204,75,83,105,117,133,106,96,87,246,99,75,8,93,148,218,99,166,76,57,63,231,94,7,117,51,109,220,238,43,16,116,57,78,104,222,109,191,145,184,182,147,50,227,44,185,204,71,90,193,102,71,227,218,207,140,136,245,140,130,59,179,55,
|
||||
199,180,44,208,115,185,227,117,127,161,177,116,160,171,104,242,124,203,164,6,22,41,246,214,34,130,7,93,141,105,87,51,75,174,124,245,149,121,63,196,140,169,130,75,95,24,119,128,225,48,105,245,219,26,29,163,5,186,217,126,132,56,108,181,101,204,96,6,237,49,158,218,209,164,61,89,104,19,173,190,62,239,112,27,153,243,42,192,189,164,32,148,46,2,184,9,34,115,99,87,178,63,79,245,89,29,38,127,236,58,80,225,52,233,22,192,246,112,147,43,129,61,225,86,43,207,151,140,19,60,236,1,106,55,121,120,85,42,172,29,255,166,120,89,191,12,206,205,20,75,55,126,174,196,133,243,220,69,127,170,225,62,215,184,23,10,55,10,109,127,110,87,214,96,134,200,205,67,179,189,115,224,94,182,175,133,39,149,53,79,82,96,103,170,174,230,237,178,238,6,54,123,138,55,166,228,26,154,186,187,164,128,61,233,109,107,141,113,148,59,116,179,177,77,109,38,230,20,115,39,9,30,193,67,171,151,252,217,187,207,16,97,187,68,27,19,179,55,34,60,19,231,7,61,46,168,
|
||||
73,204,37,119,42,2,151,109,82,37,125,54,202,37,78,57,9,190,178,47,44,46,108,246,158,112,201,127,234,73,162,102,170,237,169,219,104,172,57,65,17,225,36,225,213,117,40,124,1,114,136,103,18,11,179,214,245,122,184,73,93,159,74,44,174,185,110,2,134,177,68,160,214,32,37,209,65,149,15,10,137,25,43,175,182,19,104,101,58,211,121,167,180,71,82,41,32,149,95,5,26,202,159,74,79,41,176,22,236,225,65,219,208,15,180,124,230,143,212,51,167,252,174,191,214,104,117,42,239,40,2,227,220,145,160,46,100,1,4,34,242,156,73,27,31,71,17,8,10,200,207,50,21,164,246,128,66,107,138,143,193,81,249,137,115,87,90,144,212,173,98,91,221,245,137,123,36,3,148,102,241,59,249,204,240,5,123,18,112,181,107,77,126,161,97,62,245,243,19,41,103,74,3,122,122,208,122,129,51,107,81,78,204,179,152,65,212,130,191,40,83,171,138,152,236,224,215,253,196,23,78,74,192,115,39,111,107,105,212,135,10,113,81,114,159,98,53,30,219,181,165,179,3,51,112,102,
|
||||
98,171,232,105,93,6,89,119,82,167,118,61,162,196,115,238,153,249,92,27,33,103,179,122,201,131,237,226,34,228,93,89,220,255,224,40,28,24,240,26,166,5,231,121,208,106,137,93,0,242,38,170,22,140,119,35,64,20,144,26,175,4,85,56,75,92,158,115,63,189,236,17,157,99,4,125,201,69,38,42,34,14,220,235,202,55,188,194,18,165,109,231,68,70,4,197,241,169,226,209,195,152,54,84,131,151,41,3,25,72,201,163,92,248,80,132,28,94,249,236,213,140,182,247,205,53,20,190,23,206,195,143,224,193,204,27,76,222,215,207,51,191,10,133,198,18,148,48,246,12,175,244,53,27,231,186,188,213,228,226,12,115,29,197,41,40,132,232,195,150,42,64,82,6,184,176,67,73,124,219,70,185,78,38,208,158,167,149,133,38,201,73,175,29,93,88,161,32,57,164,43,183,175,208,187,134,11,221,123,73,154,227,83,73,236,186,59,207,88,191,198,119,137,76,113,120,162,178,27,11,180,41,135,61,53,101,20,21,237,79,192,170,149,73,10,235,32,156,113,233,117,104,178,78,218,134,
|
||||
92,227,186,142,146,125,85,41,199,105,35,115,199,82,109,191,175,14,26,161,230,214,131,106,197,245,18,181,182,56,218,94,76,14,66,184,36,238,189,233,70,47,249,29,214,39,245,150,130,37,113,131,205,187,149,234,247,184,230,54,32,223,29,107,183,6,175,188,117,201,112,173,46,161,41,198,146,129,184,147,104,14,30,88,253,254,106,143,220,159,201,179,78,229,38,84,37,112,68,70,235,140,11,72,18,186,233,160,102,162,23,235,115,110,133,87,104,46,81,3,230,211,138,226,70,216,209,179,142,165,22,219,53,137,159,117,93,77,160,148,150,202,26,102,113,139,164,172,35,212,152,170,30,19,59,97,224,146,255,86,55,205,191,116,245,236,172,71,54,231,30,121,203,20,117,138,66,127,45,125,79,110,9,74,120,244,237,179,248,80,240,82,3,70,133,134,187,182,169,206,110,149,109,74,204,36,75,79,86,85,184,133,87,30,94,197,202,54,197,82,181,31,86,154,125,59,239,187,78,191,86,230,151,115,201,199,98,74,27,31,189,209,160,242,229,155,165,24,81,91,29,65,89,211,177,112,
|
||||
40,66,231,96,249,80,13,190,169,240,34,122,76,87,28,33,40,66,185,71,245,245,76,105,251,31,27,65,101,230,0,45,105,137,175,190,26,170,161,197,228,71,62,37,170,245,254,32,132,96,218,49,234,211,116,35,58,87,210,158,116,143,47,192,159,170,95,12,225,63,98,245,205,144,71,255,252,102,8,111,93,88,70,222,252,145,158,192,153,182,154,28,23,247,146,160,60,136,73,90,212,225,204,109,86,224,103,123,0,113,222,12,25,74,78,43,59,106,16,23,253,27,152,231,108,36,142,15,71,14,226,142,54,242,145,28,156,63,252,10,189,112,49,93,56,231,231,42,29,73,166,172,97,51,149,110,55,197,238,164,89,149,133,11,123,247,140,222,18,210,110,113,168,99,74,172,110,50,46,91,63,175,47,25,166,47,49,208,233,50,78,254,66,123,238,61,50,7,14,21,5,112,168,137,33,4,193,29,133,250,213,66,106,162,163,185,144,216,106,242,155,247,199,92,147,163,96,222,239,39,157,87,94,216,23,162,5,125,192,210,212,152,139,46,177,3,65,161,57,136,225,18,67,184,154,206,
|
||||
189,170,19,81,105,217,71,97,94,36,198,142,112,80,214,4,179,86,87,207,205,207,148,146,117,154,210,105,245,159,174,16,177,212,215,234,199,235,57,246,108,235,85,237,182,166,203,221,251,46,22,6,154,178,159,185,134,13,26,96,187,51,163,35,130,125,218,190,119,12,225,209,58,233,175,214,45,154,164,212,237,253,220,65,222,86,99,159,42,138,135,59,24,101,45,240,201,254,206,74,225,5,243,43,43,211,14,92,60,170,206,232,12,58,227,241,53,146,115,89,144,201,210,102,7,24,225,69,202,159,4,181,126,196,69,212,111,241,71,14,227,223,73,124,228,144,247,157,196,135,8,234,59,137,255,69,158,31,50,46,33,102,33,208,143,206,223,133,238,101,170,26,156,212,30,102,211,56,49,137,29,198,127,172,88,94,0,86,205,50,159,240,51,223,13,160,13,93,210,24,112,81,97,68,112,247,18,216,253,70,19,183,168,22,231,48,243,84,209,127,143,182,84,11,86,194,210,118,157,35,202,89,11,184,61,11,239,120,169,121,119,92,118,225,222,199,92,58,134,178,170,35,125,2,101,133,
|
||||
191,143,248,106,38,118,109,231,57,250,18,189,62,152,252,178,120,84,199,124,96,136,38,205,132,207,227,39,6,78,32,49,73,202,46,189,61,162,228,133,208,210,118,37,85,100,33,82,59,130,194,116,180,103,170,210,75,44,196,26,57,172,90,123,73,78,136,58,202,131,30,48,111,183,124,27,228,96,128,13,45,194,24,43,240,180,177,122,76,5,168,127,52,195,81,188,94,143,10,47,129,216,146,228,136,106,221,190,136,38,55,255,223,228,245,251,79,216,96,209,159,176,201,37,63,97,123,236,208,31,97,19,23,75,207,79,171,135,131,45,102,64,185,233,158,87,230,93,195,232,188,153,139,141,211,49,175,185,239,174,139,58,238,254,97,158,83,149,106,238,26,127,152,163,183,31,79,42,100,251,58,196,177,9,203,11,59,192,89,90,54,224,186,171,112,235,159,86,176,235,253,54,242,215,47,237,250,213,223,193,161,76,77,77,200,219,182,107,182,133,39,173,196,112,26,167,145,20,157,68,94,130,178,47,11,36,195,93,138,110,253,139,124,241,190,6,243,75,248,15,14,177,121,21,107,177,
|
||||
8,163,71,133,187,177,91,16,142,198,27,34,147,194,254,200,229,149,50,152,72,15,87,69,255,206,107,215,253,183,135,28,81,27,164,78,192,37,110,26,241,11,15,105,49,102,241,74,89,138,154,172,225,46,162,2,200,248,172,59,184,192,194,187,72,70,81,130,30,253,253,119,235,221,188,57,120,156,186,71,79,32,226,231,99,49,124,172,133,148,239,197,240,49,38,123,12,250,80,32,234,19,226,103,193,8,84,190,120,41,80,5,175,215,190,202,219,70,116,233,113,152,233,255,151,227,169,71,207,3,25,62,84,162,95,40,41,48,229,27,5,94,90,169,158,237,160,233,3,59,51,252,203,133,22,252,51,49,229,91,249,161,251,179,26,241,10,145,111,229,135,110,238,71,138,247,35,229,67,65,127,73,169,241,31,191,164,64,6,226,199,223,110,231,95,183,3,170,253,153,80,129,254,175,39,36,23,126,38,252,107,235,191,15,245,35,165,6,253,152,5,202,27,240,200,252,163,111,61,236,10,141,31,16,224,31,115,148,188,31,115,62,194,63,230,164,80,224,191,156,232,3,173,43,136,89,
|
||||
158,103,44,175,74,120,64,200,126,204,249,27,254,123,77,90,197,35,47,58,212,203,143,94,238,199,141,191,90,159,127,167,71,252,165,247,41,82,21,226,1,153,20,65,9,131,166,129,191,45,78,244,135,46,34,48,54,176,31,171,125,254,111,137,47,232,151,158,174,64,214,51,145,143,173,80,240,175,251,241,123,237,121,132,66,68,186,19,24,31,84,225,31,138,31,248,161,52,237,108,95,183,143,249,123,2,237,88,125,164,49,30,19,76,137,222,223,159,183,213,183,213,165,128,66,249,62,196,127,155,172,18,220,9,86,109,11,129,223,181,161,60,251,31,142,179,227,3,109,210,182,121,169,0,168,44,177,23,126,197,91,249,183,197,27,242,136,183,74,82,0,205,116,209,110,247,140,9,64,101,117,31,234,195,244,7,253,248,29,15,104,165,0,74,88,122,234,126,50,27,115,200,239,225,135,248,39,172,165,241,79,88,161,224,161,42,240,176,163,44,199,252,126,188,175,111,189,37,42,47,179,70,193,138,34,212,44,53,218,241,123,56,232,133,131,23,219,46,110,82,7,187,237,127,122,7,
|
||||
26,103,96,29,192,44,238,253,68,140,79,11,196,36,230,54,212,3,15,197,138,226,56,55,113,218,44,108,142,233,123,86,147,28,125,185,82,254,235,177,123,115,42,139,118,13,76,218,4,63,85,20,3,199,57,1,49,124,146,118,19,57,166,118,61,187,206,93,249,54,208,117,55,24,66,238,139,127,124,8,234,215,160,221,168,184,55,67,201,179,117,30,23,156,115,40,138,155,67,117,182,221,165,238,253,172,87,158,205,214,89,205,226,233,188,185,203,184,153,251,2,152,6,11,111,74,200,33,84,144,223,15,7,67,96,219,220,51,207,34,199,178,149,117,7,219,219,121,167,29,210,129,186,234,55,24,68,233,73,117,47,110,149,27,20,221,255,238,217,197,95,127,134,241,15,255,215,255,229,183,127,250,15,255,236,55,191,65,64,164,96,209,127,253,12,131,141,4,114,61,189,231,29,46,67,95,19,199,243,93,173,118,155,4,120,191,95,61,187,190,84,80,230,15,140,25,156,198,35,192,25,74,26,37,80,0,133,232,249,90,81,72,237,219,125,201,188,24,14,22,215,73,134,195,53,204,
|
||||
194,114,148,130,90,161,229,90,168,106,26,255,162,196,199,241,179,93,56,166,43,179,48,209,219,190,31,159,247,223,244,181,152,110,159,184,59,54,137,13,107,16,43,50,172,86,189,117,211,196,133,207,49,118,76,82,175,213,225,45,134,105,21,66,3,241,207,164,223,254,34,149,206,167,171,128,113,48,47,96,6,193,70,242,194,7,57,216,235,120,73,79,117,119,143,171,143,77,79,27,178,108,122,26,90,208,249,62,124,225,223,18,232,90,59,77,63,8,175,203,10,238,28,147,39,45,236,87,234,208,213,153,184,132,195,183,157,134,81,24,88,145,169,137,44,65,167,65,206,129,53,218,203,209,71,125,189,218,216,107,199,189,217,226,180,105,28,49,169,82,3,13,211,29,96,215,53,205,19,166,165,221,239,136,236,251,178,24,246,214,11,98,247,196,182,73,123,207,97,28,147,115,61,27,40,17,202,59,221,112,164,171,121,166,254,181,5,179,214,244,199,97,143,181,224,216,37,217,161,207,131,218,189,35,252,145,64,205,144,68,1,193,236,186,245,9,248,124,115,88,131,66,244,191,51,78,
|
||||
217,75,87,7,17,181,227,122,123,103,97,78,144,71,199,134,240,138,242,193,194,106,52,129,160,101,125,80,72,142,220,41,157,54,121,57,215,16,149,222,68,65,11,104,29,77,226,208,9,62,9,230,41,45,116,122,91,236,98,143,37,255,28,158,213,112,78,253,243,216,169,223,97,202,244,24,225,244,134,139,248,65,30,152,122,198,222,69,165,251,16,126,48,56,195,235,215,130,152,60,240,203,173,146,20,135,128,14,214,78,136,15,150,44,108,36,164,37,16,120,13,0,161,61,25,107,97,93,160,101,109,13,32,68,76,240,209,238,29,221,100,233,149,62,15,78,60,84,205,81,50,29,175,238,185,203,41,8,215,182,211,178,142,87,232,80,130,219,128,188,148,161,206,191,142,245,132,138,144,120,171,111,98,229,54,163,150,254,164,177,71,76,167,251,13,57,222,220,62,54,179,208,51,44,36,10,142,159,101,74,76,160,232,151,48,222,90,47,66,65,187,117,38,9,78,222,137,192,251,134,252,196,57,21,34,195,13,121,187,91,155,239,177,162,112,35,67,2,5,76,235,101,62,110,225,51,
|
||||
168,100,142,138,234,196,65,253,51,164,228,91,37,206,190,77,9,143,14,172,36,142,201,133,158,247,13,10,111,28,53,187,174,205,102,59,152,120,229,250,138,214,224,94,39,47,165,40,220,223,70,16,86,219,180,65,236,153,187,78,47,220,172,121,168,197,135,53,183,69,17,84,6,96,31,219,229,198,116,146,248,22,239,40,97,69,120,161,245,215,28,253,224,54,125,114,116,212,113,32,70,250,250,236,168,8,202,144,153,166,141,155,167,250,24,191,36,16,80,81,125,45,154,176,197,247,3,106,203,218,86,6,134,60,189,68,64,91,127,37,63,221,53,252,221,98,140,185,69,57,51,101,216,94,24,7,199,187,107,237,218,143,245,207,219,82,49,65,46,36,172,229,215,101,33,156,23,75,115,170,218,50,215,47,75,13,173,169,170,9,52,41,210,109,215,43,212,117,238,173,156,117,46,38,176,59,119,43,81,97,107,144,211,218,119,111,103,20,231,157,227,240,220,19,100,221,225,28,53,252,198,43,46,147,43,109,142,58,36,21,215,183,44,247,180,65,72,190,66,239,233,39,248,61,189,156,
|
||||
142,133,152,251,177,62,149,135,206,66,220,221,113,105,154,51,75,13,13,62,111,220,200,167,188,209,83,213,232,176,13,151,251,176,57,222,159,170,253,3,45,177,220,169,111,132,189,167,156,255,234,145,76,205,67,76,121,205,38,214,80,247,16,185,79,164,53,76,235,113,12,103,115,188,141,247,183,132,179,241,14,128,125,67,58,177,76,88,105,179,155,120,221,178,104,93,32,184,224,140,184,65,34,94,233,251,146,21,191,145,172,152,12,102,101,174,55,234,44,253,15,224,115,175,153,94,230,230,253,138,146,244,223,14,129,251,85,184,247,113,28,44,245,101,17,231,55,53,1,108,195,152,2,164,0,38,58,1,223,143,249,229,182,236,184,171,105,71,106,63,182,191,117,35,113,199,61,27,145,114,150,151,240,168,249,32,131,80,176,209,94,239,226,96,240,176,133,224,182,239,131,91,72,18,10,40,238,52,209,157,189,201,237,79,149,8,45,23,92,223,0,230,166,223,80,15,188,177,167,35,23,89,211,154,119,207,129,177,49,48,120,229,35,130,203,178,167,39,48,99,148,28,108,201,117,219,
|
||||
119,159,170,222,240,94,133,172,31,235,75,136,187,15,191,153,52,203,120,116,122,143,235,175,104,136,244,72,77,26,27,75,122,117,185,171,83,6,133,109,210,42,190,156,14,20,173,148,211,247,13,12,201,232,203,240,50,104,94,211,22,2,195,102,119,12,58,54,184,175,19,187,224,159,222,163,123,31,160,90,180,56,239,141,0,126,29,146,122,23,89,158,64,128,253,196,49,92,16,84,182,50,152,149,152,236,15,53,45,47,115,159,206,215,142,155,200,246,143,154,239,137,210,186,89,117,124,196,245,23,244,46,234,44,214,135,206,147,189,102,83,38,84,204,253,213,86,106,92,250,138,74,80,71,84,148,165,51,43,174,123,86,38,88,29,95,115,144,91,115,134,44,51,55,131,72,152,11,175,140,242,107,105,238,128,199,125,181,196,101,50,31,58,142,185,194,196,112,116,151,238,26,235,118,166,179,72,250,228,253,169,225,25,164,0,115,227,160,114,86,28,154,213,253,204,33,168,19,190,139,32,219,239,127,13,15,104,26,57,48,175,190,30,105,95,210,54,61,120,217,224,43,251,213,219,186,
|
||||
113,45,99,101,137,25,43,27,187,247,140,180,43,111,172,131,145,204,100,137,63,200,209,140,16,67,132,120,0,232,221,234,211,110,127,166,214,251,208,102,41,195,47,196,88,251,145,114,80,115,220,28,133,212,238,115,146,71,143,4,66,199,98,187,145,249,151,139,125,112,223,173,231,217,86,35,156,181,194,85,47,119,50,95,64,213,48,77,233,149,218,241,206,5,38,254,128,114,188,87,169,95,110,131,139,94,99,108,76,36,7,205,107,109,183,63,202,175,126,107,151,121,168,48,58,202,193,237,229,30,29,29,242,3,86,60,77,98,47,230,174,161,43,20,124,73,196,230,139,131,83,35,211,156,123,222,209,156,161,147,142,75,170,55,54,252,197,122,207,133,29,119,206,141,68,127,151,58,156,197,60,51,66,9,82,175,3,130,202,222,185,13,178,151,197,197,231,123,108,162,94,217,35,184,95,234,58,4,193,95,154,55,227,103,130,86,39,148,108,85,181,42,246,72,251,142,146,148,2,165,202,40,88,188,83,177,74,206,170,174,214,100,221,231,54,163,105,114,11,54,94,182,92,168,95,8,
|
||||
11,67,40,34,72,1,248,171,174,160,112,241,2,122,38,76,141,136,22,118,33,238,105,96,119,244,80,210,230,88,79,13,10,176,110,133,97,112,41,151,122,244,139,75,240,85,91,191,50,185,219,16,180,160,150,167,145,238,85,128,105,49,185,207,173,192,198,241,113,102,17,38,40,37,26,13,116,22,42,218,163,49,235,44,247,176,127,64,110,142,205,136,236,81,221,165,189,227,9,171,175,215,160,93,155,5,247,79,47,186,154,193,40,183,76,57,43,106,218,216,172,81,44,51,14,250,78,45,187,152,26,107,249,160,241,216,29,122,220,106,223,56,197,234,192,162,147,163,112,234,155,145,101,58,203,6,157,64,165,213,119,166,9,112,123,231,126,104,249,130,185,1,192,38,5,6,105,38,220,218,74,31,211,214,236,124,129,42,25,233,87,185,106,226,130,126,181,58,157,89,160,230,110,174,115,246,0,249,198,244,58,153,82,170,83,153,79,56,140,99,92,136,152,46,179,9,104,33,141,118,11,158,42,132,254,133,56,186,159,178,172,227,73,147,178,19,93,182,106,173,117,69,154,49,145,216,
|
||||
245,200,9,182,47,36,13,157,34,169,94,152,24,103,19,208,245,196,165,77,228,62,58,225,7,220,19,119,15,63,212,42,199,102,84,221,238,92,48,238,42,105,214,64,127,221,175,107,174,121,190,217,33,23,124,23,121,161,199,93,53,224,205,13,18,4,35,18,54,253,250,189,24,120,194,17,216,71,41,25,58,231,48,28,179,249,118,57,216,128,205,137,237,92,227,140,29,72,233,137,67,163,67,119,152,231,235,160,169,234,92,244,216,93,143,194,25,41,157,138,221,128,168,173,222,13,59,241,146,203,25,251,6,177,228,225,140,221,249,8,137,97,13,142,67,97,47,75,147,119,142,155,48,157,251,129,179,178,87,118,213,241,171,246,189,224,147,86,116,77,81,160,213,245,115,81,122,179,22,102,34,72,29,50,171,173,35,71,175,154,102,171,138,54,75,160,149,56,186,166,220,187,154,217,107,1,148,240,178,58,157,133,148,94,59,222,26,92,85,202,102,236,139,229,158,56,133,19,163,226,194,166,228,189,233,150,187,150,37,212,136,82,42,247,86,131,80,190,26,194,252,160,177,52,84,6,
|
||||
212,123,215,34,245,13,78,199,123,80,132,64,32,160,221,178,35,25,61,117,124,185,138,253,12,94,212,97,163,39,110,2,91,115,216,164,135,172,238,67,237,165,29,23,138,184,37,147,65,146,217,52,203,84,85,189,19,133,23,113,48,87,138,187,219,103,104,208,209,184,172,139,152,97,76,165,48,9,54,177,93,39,52,13,250,6,178,117,178,187,68,9,109,61,103,218,186,168,28,166,169,86,209,224,194,48,154,7,96,99,63,246,114,238,53,49,105,115,18,45,93,196,217,63,6,174,198,227,74,57,64,113,37,46,244,149,77,43,142,105,131,120,239,115,229,60,251,70,213,187,234,146,209,136,204,49,40,178,153,123,83,113,175,178,21,72,127,95,192,220,232,172,113,1,207,35,152,236,115,246,170,235,25,87,207,64,237,44,139,119,238,149,169,179,23,243,177,28,52,115,39,109,46,211,56,1,62,189,88,155,188,93,57,123,233,128,114,94,56,124,93,201,178,30,85,221,51,140,171,90,86,182,148,57,214,212,235,26,151,224,48,89,171,217,233,99,212,106,200,225,179,190,101,145,42,70,
|
||||
110,180,53,129,189,25,191,204,89,150,82,203,55,96,222,59,41,95,176,102,16,144,168,20,191,86,176,169,211,188,83,218,45,125,93,21,216,42,103,246,74,135,11,212,96,184,237,212,12,232,41,232,9,221,72,224,110,102,43,231,112,211,240,249,29,56,212,22,213,73,94,167,229,158,210,238,99,48,231,233,219,135,202,128,3,84,194,200,86,121,117,186,191,224,182,182,141,22,184,45,210,214,146,14,192,46,194,198,217,2,41,78,7,176,167,85,227,212,25,194,2,199,236,139,47,151,132,100,167,66,73,126,60,234,140,123,253,228,174,126,215,222,141,146,232,197,156,28,42,225,137,246,6,140,150,66,163,154,217,121,95,25,6,112,45,207,8,126,210,188,14,156,155,233,189,121,133,116,53,204,180,213,60,100,8,74,85,26,123,21,234,36,124,210,179,216,81,102,41,160,234,228,101,211,148,174,243,103,255,10,235,84,174,6,108,104,91,225,190,206,123,29,168,170,217,208,227,118,48,247,148,244,116,34,124,109,59,80,62,67,136,33,40,146,96,141,226,243,120,238,217,37,181,102,153,181,
|
||||
7,244,60,77,28,93,191,55,165,142,184,23,187,60,124,168,204,51,101,230,206,194,203,96,178,204,240,18,53,95,218,86,231,58,203,68,77,252,76,92,237,106,238,107,172,174,11,17,231,136,188,163,93,231,78,111,226,58,230,203,134,231,47,102,208,231,179,107,12,216,161,68,170,242,203,36,231,188,2,141,85,57,47,183,220,247,118,230,237,206,36,148,105,247,54,26,28,45,114,153,150,121,123,121,173,112,97,131,59,79,163,178,103,221,125,247,93,121,177,75,110,213,241,2,163,120,23,8,79,2,187,30,215,170,187,134,49,52,189,169,81,111,93,239,187,24,116,214,84,213,185,58,108,137,225,171,21,12,175,110,127,208,218,89,8,23,101,211,61,152,61,119,163,205,59,229,182,91,112,142,221,32,66,95,196,214,215,60,220,116,116,93,51,143,212,250,156,70,189,186,178,46,23,178,117,196,85,206,182,175,117,61,153,85,40,5,210,54,32,55,122,180,203,251,65,174,65,244,36,133,9,37,121,15,33,178,145,141,123,70,215,185,87,187,131,84,113,118,201,147,135,137,196,43,117,189,
|
||||
21,239,194,74,156,221,127,28,94,242,171,107,79,141,168,161,244,93,164,87,63,193,8,247,237,47,64,85,130,251,185,124,85,210,5,121,53,76,52,222,141,85,75,90,52,172,131,247,87,134,180,48,173,31,37,195,196,196,62,9,44,140,23,180,244,144,160,113,38,238,249,250,107,80,201,66,208,146,231,183,28,139,203,217,171,74,141,230,173,130,74,249,155,219,25,123,19,194,102,225,110,240,229,146,18,98,104,198,54,61,109,117,78,47,72,211,48,25,157,24,57,163,29,161,99,14,213,211,4,175,70,113,29,121,186,185,5,50,137,56,214,98,141,172,48,81,87,222,197,195,85,168,7,15,92,135,206,136,23,123,249,40,221,98,169,142,144,26,128,171,103,53,226,109,148,81,59,53,90,147,218,202,187,100,196,216,170,223,248,146,139,31,90,158,218,220,212,203,165,247,56,100,150,32,213,16,46,202,170,177,17,122,47,159,40,107,170,239,216,26,120,220,210,69,170,182,47,169,243,105,235,167,124,207,96,106,153,149,157,234,152,13,182,207,145,42,253,248,121,206,246,199,8,58,102,61,
|
||||
10,139,168,180,62,210,118,204,118,28,3,46,128,233,125,147,188,79,203,229,234,43,216,99,103,182,88,228,73,206,141,244,212,223,115,91,204,251,235,93,161,64,62,41,93,92,150,253,242,102,56,203,82,47,222,178,191,149,88,94,238,27,71,130,227,186,118,249,26,17,219,44,146,218,218,95,47,65,159,244,177,197,181,121,155,149,110,32,200,233,79,66,195,23,251,106,129,184,84,109,254,52,38,132,233,150,89,202,245,177,233,222,26,235,149,65,4,254,246,197,96,7,111,248,174,26,200,63,239,95,53,234,120,240,45,116,198,73,4,130,87,152,36,134,163,79,247,11,206,46,95,207,98,101,87,214,237,147,19,189,9,221,138,105,119,108,149,230,38,52,74,46,41,151,51,134,155,246,172,124,88,168,116,171,6,35,120,148,112,149,115,251,193,176,136,20,227,142,1,70,229,186,14,11,131,123,235,120,163,227,176,4,246,40,30,216,251,96,64,55,58,129,7,131,170,93,240,166,235,251,226,173,179,15,120,89,84,185,83,22,251,60,23,85,247,234,51,173,154,215,229,14,206,213,108,107,
|
||||
90,61,168,100,26,211,131,44,171,7,197,122,126,236,165,61,62,117,48,62,199,106,108,247,73,7,151,40,45,79,195,119,204,224,122,206,30,59,41,115,221,48,207,62,54,78,51,219,178,20,167,177,105,155,50,180,19,213,88,42,235,42,180,217,216,53,138,252,106,146,225,156,173,77,69,51,119,21,50,113,93,183,145,158,4,83,49,71,139,99,43,147,70,166,37,140,43,207,104,227,40,165,175,49,8,251,232,208,159,218,97,26,114,100,85,123,7,37,105,125,53,157,187,209,219,188,126,74,209,8,93,43,221,171,64,144,221,74,46,236,89,122,193,180,117,170,230,251,245,66,106,222,214,78,141,202,49,122,16,154,124,185,90,145,215,230,97,46,210,104,88,181,247,83,254,57,173,161,222,47,231,49,201,181,142,148,145,205,198,6,146,86,234,131,184,210,245,243,221,56,10,226,142,171,82,50,18,11,7,161,230,121,5,88,150,28,121,64,17,31,206,66,217,142,16,246,28,224,241,147,209,228,73,100,142,206,72,216,71,30,117,129,53,179,151,38,82,33,189,227,189,199,32,176,183,86,
|
||||
158,153,2,56,216,95,229,3,101,134,190,45,80,26,247,171,33,88,116,47,234,105,225,170,69,51,109,91,215,132,148,111,19,215,23,247,119,249,224,174,221,58,174,6,207,59,116,197,241,99,64,140,29,182,76,116,203,74,95,13,179,253,139,75,160,239,247,213,47,236,32,118,246,190,108,4,195,108,20,124,117,46,74,164,251,130,198,169,246,173,142,94,61,197,146,79,86,49,212,116,100,165,12,98,131,238,227,44,103,166,75,215,82,101,219,18,224,84,68,78,58,158,141,172,223,249,175,243,53,44,73,142,123,163,137,166,3,0,123,59,250,166,109,107,23,25,62,11,227,11,205,156,150,108,170,238,139,232,174,183,78,16,131,182,80,0,107,148,156,24,63,127,245,148,25,29,97,231,8,116,197,79,221,63,195,78,142,81,57,152,61,154,104,68,220,6,54,177,36,38,217,44,111,226,132,73,251,197,66,65,2,97,6,91,206,124,25,250,128,125,48,150,140,244,56,40,88,255,68,85,182,181,4,25,247,93,102,246,50,222,135,192,234,73,228,198,194,164,231,250,68,152,188,150,183,67,
|
||||
98,73,166,131,71,78,169,132,207,231,171,152,129,88,173,199,56,67,89,3,192,235,131,19,176,132,58,117,200,19,180,173,9,145,13,129,160,235,211,72,172,64,208,143,9,204,16,4,194,74,26,242,186,130,246,175,17,43,93,175,199,37,234,247,203,133,93,39,213,177,8,129,109,20,2,96,39,171,96,129,231,155,32,190,185,11,14,2,123,61,67,223,226,211,158,14,148,114,102,196,162,57,232,123,179,77,200,66,207,229,237,236,130,89,63,29,28,24,4,157,235,1,132,116,230,26,141,53,17,23,108,107,65,37,200,157,16,170,91,106,76,252,75,1,9,121,114,126,222,221,238,204,228,234,176,178,172,146,2,112,220,145,222,217,190,92,225,161,105,22,116,2,32,100,122,244,190,88,204,103,24,116,250,50,28,163,2,157,109,61,20,120,101,122,49,24,62,110,254,180,65,181,136,147,231,66,158,66,122,232,4,190,149,244,54,184,11,207,86,93,135,144,98,175,11,66,242,241,194,44,60,147,41,217,109,78,239,187,48,40,125,221,50,33,91,195,102,112,18,64,230,34,57,135,228,184,
|
||||
149,220,213,242,148,251,208,236,80,238,188,151,50,231,10,56,28,212,181,75,184,118,157,62,218,8,195,254,8,154,106,13,153,249,106,181,85,143,41,65,81,59,174,22,84,11,61,18,251,204,38,206,175,25,45,46,170,93,49,231,153,109,87,203,191,123,32,17,231,85,24,228,92,134,1,86,63,4,248,80,215,160,205,245,209,122,91,170,183,203,172,229,177,137,176,89,223,36,107,208,151,105,118,178,155,211,158,65,219,208,12,27,153,109,193,112,9,218,140,238,195,248,230,146,196,88,213,103,205,80,84,19,175,249,219,234,151,10,151,238,18,210,234,206,199,232,235,9,85,10,5,131,138,128,152,40,71,147,164,107,144,105,94,187,217,135,67,81,149,219,71,204,99,22,238,92,101,160,149,54,244,196,57,108,196,182,82,231,171,53,126,172,9,161,106,229,57,8,225,58,187,15,123,26,64,125,74,202,46,136,159,185,49,139,247,245,30,121,65,227,89,194,13,32,106,15,253,162,7,220,244,224,173,122,134,162,251,11,57,60,225,4,129,74,76,1,25,31,12,162,102,168,177,40,242,34,
|
||||
15,148,122,23,254,64,249,2,50,174,179,38,177,124,7,232,167,86,236,137,104,119,183,142,142,15,195,216,140,37,28,194,21,222,125,20,0,82,161,60,220,32,151,112,119,121,201,229,115,225,140,52,174,11,222,57,56,187,118,154,7,86,255,64,192,166,15,132,115,120,122,129,193,194,120,171,192,185,144,3,70,70,212,6,151,9,206,79,160,6,183,6,56,194,91,17,19,221,126,248,146,77,196,154,46,157,149,202,79,159,51,219,71,124,202,239,27,193,60,54,194,226,220,4,208,16,192,165,158,160,116,130,53,176,6,238,221,115,201,111,9,165,27,72,168,226,65,216,117,223,47,128,32,251,55,116,99,125,230,150,201,227,165,28,180,122,104,191,15,238,177,107,231,97,66,102,87,149,100,217,140,138,42,202,117,36,60,35,44,94,152,52,87,89,231,200,202,77,136,236,181,81,72,10,208,218,60,95,148,139,253,82,31,8,73,14,37,105,24,20,29,161,128,25,57,125,181,240,204,207,210,139,130,97,176,198,228,0,183,81,218,239,112,131,175,245,244,102,214,151,221,216,36,104,148,240,
|
||||
75,163,232,19,162,150,193,226,233,88,237,155,76,178,214,11,99,79,6,212,243,238,224,228,14,128,7,73,99,177,53,238,141,187,61,120,186,247,238,81,127,103,113,179,8,172,93,31,121,82,168,235,252,23,216,167,139,148,114,49,144,239,46,46,158,155,207,161,138,102,125,212,76,228,109,108,106,147,155,62,229,206,61,147,3,203,148,26,106,114,243,50,194,20,121,122,25,143,81,40,41,236,86,187,251,53,148,254,81,251,85,147,5,164,28,28,130,99,140,70,155,113,145,77,113,116,55,17,37,150,45,225,146,50,210,140,252,90,117,148,164,203,13,23,22,63,35,67,68,28,34,16,232,5,222,234,76,253,69,94,132,253,146,68,178,108,46,41,198,96,163,112,47,192,107,69,6,155,200,172,86,83,39,232,118,250,180,253,211,86,115,227,46,61,227,125,243,46,175,134,105,238,203,114,193,124,51,187,179,149,215,228,123,206,246,51,145,239,71,189,186,53,77,63,128,183,203,36,76,194,96,182,112,236,180,23,175,105,111,146,116,24,122,174,123,193,121,135,100,179,113,97,20,209,219,136,
|
||||
184,191,91,92,82,2,251,234,135,35,234,216,114,72,35,138,220,194,235,59,222,198,166,168,83,195,144,27,43,14,157,27,94,51,43,59,20,85,166,184,103,1,60,187,184,165,77,54,228,148,84,180,109,78,204,104,124,40,186,108,203,146,51,209,218,67,149,177,137,213,1,11,60,149,23,162,87,235,90,106,222,240,13,174,3,24,157,22,60,116,76,114,203,144,60,23,166,217,132,39,29,50,241,97,230,38,103,67,30,216,70,151,178,187,208,87,71,143,215,183,93,231,92,163,144,52,96,209,159,92,205,140,215,121,9,4,109,73,53,228,163,229,36,71,110,153,87,228,188,36,111,41,30,7,147,200,145,41,119,143,108,125,166,167,54,116,203,43,230,75,87,114,145,149,106,153,152,213,119,69,38,220,139,179,20,36,200,34,112,169,15,40,124,200,211,104,10,226,216,78,14,151,215,21,159,231,129,67,206,13,173,95,0,133,255,32,11,185,53,16,44,54,30,145,55,52,18,59,181,77,100,163,110,123,92,58,93,222,202,177,64,6,11,78,203,19,159,122,28,86,74,169,34,17,137,149,
|
||||
172,15,76,177,28,60,244,192,203,205,22,32,29,18,187,5,101,84,24,120,58,93,101,134,21,91,158,219,202,26,145,179,252,72,64,122,108,175,117,122,89,59,21,31,118,171,107,49,48,64,38,248,142,9,151,221,69,51,130,159,3,38,85,24,5,78,218,186,27,74,99,119,41,83,67,193,56,44,113,61,253,10,173,132,107,218,104,235,148,42,41,82,153,73,98,199,122,141,242,31,190,96,41,159,199,63,168,194,114,56,202,100,12,181,171,56,62,105,243,218,105,0,156,0,117,218,197,121,41,31,172,71,119,239,11,73,54,197,89,26,189,118,34,68,0,43,178,141,31,180,178,179,245,132,48,229,154,36,245,110,225,51,224,11,152,120,152,55,191,116,97,221,163,9,232,172,35,184,132,79,151,29,80,105,102,196,99,218,90,198,34,254,146,122,221,225,156,190,224,120,133,192,202,96,36,197,218,57,229,158,17,216,246,97,72,101,227,130,36,71,73,116,228,203,94,178,36,169,226,173,147,0,166,105,135,201,86,216,151,37,213,164,71,205,22,16,173,88,88,194,109,119,70,137,243,130,
|
||||
41,186,104,59,79,4,186,131,147,227,61,58,170,188,149,54,88,184,45,0,14,81,222,62,30,141,58,155,123,73,72,112,202,237,133,123,198,226,163,195,174,228,139,102,163,177,67,12,251,142,52,142,64,202,177,96,193,96,13,1,128,32,9,18,144,150,47,142,250,33,43,223,32,149,201,146,99,19,104,60,26,0,211,48,131,9,148,113,78,18,48,179,32,116,223,179,210,34,106,58,73,179,167,41,250,157,145,59,95,17,226,61,87,98,159,175,59,30,109,191,42,131,166,181,193,106,124,8,136,95,109,42,67,51,98,21,145,52,84,29,235,120,58,198,29,195,214,53,83,132,233,189,32,103,160,205,131,12,167,251,42,220,163,69,12,75,201,178,244,2,136,29,115,247,136,157,33,9,58,56,29,33,173,13,223,50,81,96,80,67,99,195,18,187,243,85,57,25,113,135,100,1,189,28,144,182,28,82,74,8,169,4,196,71,144,236,134,76,107,31,140,35,177,214,71,219,166,18,51,190,30,113,137,72,79,174,57,17,217,2,79,121,88,130,213,104,195,97,152,31,80,195,133,108,135,15,
|
||||
46,84,176,241,221,77,0,252,4,246,7,111,215,30,223,198,220,201,24,236,46,100,54,152,124,62,139,229,26,226,104,77,69,17,88,110,194,141,183,169,115,28,131,184,16,93,48,206,230,86,37,45,111,32,189,35,76,102,69,207,57,116,127,218,22,99,56,164,195,91,48,230,188,136,49,86,247,73,75,161,180,222,86,206,202,112,236,228,45,61,197,121,61,99,8,61,55,107,221,75,22,47,64,134,15,65,99,215,187,188,226,189,105,131,56,232,176,123,21,38,41,61,90,146,17,240,177,99,228,51,240,193,193,2,31,57,121,97,29,107,80,119,252,111,50,92,17,88,149,12,74,82,60,184,128,125,144,225,132,103,167,62,81,82,73,126,118,91,93,95,65,105,45,124,40,35,39,27,13,29,123,254,233,11,221,58,74,50,243,10,78,40,76,139,107,178,68,83,55,23,189,251,48,71,252,142,98,58,205,165,67,221,61,219,187,228,169,187,164,62,86,197,163,150,65,104,1,83,77,233,67,132,179,254,18,88,113,29,143,186,145,54,28,14,181,101,192,253,34,43,76,164,177,205,189,140,
|
||||
125,90,198,225,227,179,129,119,130,201,95,190,39,220,202,146,13,55,129,23,77,174,55,137,232,228,29,113,125,228,76,122,121,71,188,220,30,5,188,130,242,215,182,29,158,189,13,159,9,209,137,9,3,22,136,236,209,161,136,181,23,9,142,189,56,37,34,196,14,33,165,206,24,8,16,216,50,41,207,198,35,39,2,88,169,23,61,154,215,60,19,4,214,249,230,27,168,36,168,36,157,226,11,202,105,235,27,215,171,110,10,2,54,124,156,137,212,225,130,216,107,68,225,5,166,14,190,109,76,10,154,99,246,234,125,45,5,245,159,230,75,252,147,171,103,139,242,215,67,70,10,80,153,149,148,89,96,128,23,116,136,223,78,223,44,228,25,89,176,39,41,210,233,0,82,32,116,249,224,100,159,64,67,26,63,177,23,7,60,251,59,162,75,142,60,139,144,145,124,65,209,202,146,121,2,177,31,173,16,229,5,64,31,210,224,163,246,240,108,80,10,246,208,179,248,224,32,9,0,30,202,176,233,39,226,67,230,91,132,254,144,121,80,146,11,57,140,16,143,97,192,254,9,197,93,84,
|
||||
0,171,20,6,88,144,33,8,132,72,224,217,126,190,13,196,231,61,192,31,53,29,1,13,159,211,105,150,224,3,2,178,121,30,84,240,63,100,190,69,16,15,153,111,145,204,67,230,91,228,249,33,243,45,162,250,69,23,80,194,247,3,195,195,255,192,128,196,63,48,144,46,200,214,106,0,7,50,111,20,228,125,35,188,188,249,164,159,250,190,21,153,94,161,190,1,74,158,31,128,255,175,237,24,146,230,129,193,70,64,250,114,126,123,253,73,105,13,89,191,60,22,252,192,240,159,127,96,86,242,31,152,52,248,7,6,160,254,192,224,5,63,48,164,208,143,59,67,226,143,59,160,119,219,143,193,132,31,24,219,231,15,12,130,252,3,195,34,124,195,60,60,6,5,18,60,27,246,3,192,127,199,31,145,16,63,252,197,255,93,250,43,32,205,253,131,92,56,1,17,144,126,121,140,254,140,39,25,18,27,246,235,227,155,37,8,108,250,23,75,144,2,207,47,150,0,224,240,47,150,128,216,207,188,31,34,97,165,63,68,194,164,126,136,20,3,253,16,73,244,244,67,164,229,15,76,
|
||||
123,248,3,35,252,250,129,25,138,126,96,150,116,141,237,18,49,8,241,134,159,97,203,251,207,176,140,248,107,152,103,243,252,208,21,33,252,161,43,18,242,67,87,128,244,67,87,16,242,135,174,32,214,199,143,33,175,63,48,62,250,15,12,54,252,3,131,250,250,5,115,248,16,36,127,242,35,78,4,7,42,2,155,18,121,212,226,127,79,158,158,126,210,77,70,255,164,155,77,248,129,243,137,126,210,253,140,252,129,249,27,249,74,243,30,196,130,39,25,207,59,208,31,197,255,175,159,116,254,157,243,238,255,169,63,127,87,117,255,255,251,253,99,176,239,27,230,209,243,226,25,61,108,104,129,253,177,245,244,71,247,119,203,15,204,31,168,187,165,11,107,35,29,201,35,233,223,67,191,35,178,31,75,229,223,59,159,202,191,96,208,233,160,28,120,41,39,0,22,26,252,119,203,3,223,15,76,75,20,249,222,64,99,61,127,63,121,252,171,254,201,18,226,18,229,199,190,195,243,255,54,143,224,159,240,181,119,233,166,235,202,102,104,94,154,205,197,68,96,3,197,121,10,108,114,228,
|
||||
11,158,202,62,16,50,187,219,165,169,7,7,17,13,245,157,111,56,223,248,179,85,17,124,189,71,232,136,41,97,127,186,82,26,139,65,252,26,215,106,37,73,179,157,137,126,76,175,176,184,8,143,179,225,128,0,17,185,2,82,167,211,106,52,198,222,2,124,185,252,21,247,84,220,51,71,211,23,115,193,240,108,131,39,148,48,65,88,85,206,231,27,254,175,135,87,249,199,137,26,135,192,234,67,79,68,175,131,23,144,138,197,218,61,25,56,193,2,216,132,97,53,54,195,135,131,196,246,171,254,8,72,206,191,90,91,227,155,130,120,16,202,125,111,190,186,32,228,92,152,106,12,32,129,148,43,100,15,250,139,202,34,149,69,66,25,205,211,242,83,209,255,11,217,253,125,88,127,32,219,80,240,137,26,206,205,144,127,221,230,152,102,243,147,253,151,197,190,95,167,217,129,118,248,146,242,89,110,87,27,233,57,77,136,250,70,162,101,70,10,31,118,2,198,223,205,91,176,98,134,22,52,139,71,252,190,133,65,209,209,4,185,5,65,65,121,180,74,26,29,98,104,121,153,191,147,
|
||||
163,254,165,156,70,187,233,145,158,38,244,175,114,48,232,152,225,221,41,64,248,72,139,14,43,255,14,110,185,11,98,34,217,154,102,145,111,168,6,253,44,118,227,73,97,29,234,96,161,146,210,87,123,160,248,86,86,76,120,104,137,46,64,121,159,164,253,212,213,18,59,130,4,6,170,64,98,65,50,18,174,179,121,77,175,168,33,235,135,171,57,95,77,27,242,64,40,119,169,51,199,44,246,195,178,91,157,248,246,224,11,101,117,9,37,132,182,68,27,139,159,210,177,71,187,73,126,145,79,17,27,16,248,201,9,123,36,237,219,84,115,46,176,250,54,149,253,176,181,82,97,183,95,121,190,101,200,76,174,104,225,129,91,133,208,108,178,202,69,179,30,109,38,74,64,160,202,119,136,12,223,89,205,229,200,22,74,242,229,114,67,53,10,202,248,166,109,77,189,124,37,28,28,194,132,74,131,184,171,191,2,126,251,117,59,162,71,128,158,136,73,164,174,118,196,21,223,48,151,9,4,244,146,98,252,186,232,163,9,17,88,18,226,105,204,153,99,103,165,149,102,197,124,177,222,174,
|
||||
74,238,37,249,126,186,238,155,145,245,177,135,115,95,170,253,56,119,97,48,5,30,14,23,101,47,15,135,9,108,152,54,138,76,220,126,250,79,194,15,175,107,190,47,55,109,140,235,18,192,19,8,122,242,48,196,251,185,0,69,35,232,250,239,171,81,103,63,38,248,190,26,21,146,134,191,70,222,126,221,154,34,177,142,239,91,211,152,144,244,140,154,110,10,215,74,54,124,92,109,253,39,179,202,92,114,37,228,241,42,121,90,173,218,7,36,109,153,211,238,108,92,74,248,64,218,184,127,162,183,196,96,129,102,27,124,8,245,186,117,87,122,5,124,185,25,83,83,190,4,59,119,246,171,121,207,73,138,122,208,65,139,47,222,215,239,213,81,207,179,176,190,47,142,41,58,0,68,168,23,144,155,238,12,103,63,235,23,121,136,104,241,129,4,250,189,85,176,207,74,206,200,52,214,210,197,251,229,246,205,134,113,159,43,98,251,224,53,74,158,229,61,90,187,199,125,185,88,193,46,90,38,124,238,66,79,33,29,240,225,172,161,176,150,122,224,56,200,162,32,80,146,239,182,119,213,
|
||||
213,38,150,253,181,65,217,95,240,125,118,76,227,131,215,188,3,204,48,151,187,77,25,106,195,244,126,187,126,206,221,59,197,162,225,100,207,100,234,120,91,207,20,228,109,199,36,60,237,185,68,4,223,120,182,12,1,163,223,75,61,52,104,27,20,156,68,179,29,149,74,103,178,107,11,236,253,37,109,33,176,181,133,35,87,24,121,79,137,108,95,156,235,220,47,21,10,157,66,136,80,205,155,46,22,179,34,54,40,104,185,19,233,40,161,51,113,150,116,248,38,64,199,225,29,73,144,145,126,70,98,45,240,243,42,61,154,76,70,166,50,64,112,214,187,174,53,232,109,238,48,26,229,13,122,24,249,60,65,235,109,225,4,154,164,65,248,197,105,240,211,126,169,183,173,35,212,133,46,221,241,220,140,147,115,53,108,189,245,139,211,241,12,19,100,122,9,182,47,140,41,61,26,171,117,254,79,198,166,166,214,227,94,174,126,114,52,181,112,126,207,194,76,19,170,36,171,150,91,149,217,52,248,181,35,62,102,200,130,197,228,165,162,86,99,140,24,12,127,201,179,209,209,2,146,195,
|
||||
11,16,216,6,71,73,0,153,183,26,115,32,118,172,5,210,80,54,153,22,247,114,95,52,1,73,13,124,28,215,227,220,64,191,15,131,149,222,217,93,205,219,80,116,113,240,201,120,246,195,111,9,123,238,15,178,146,51,114,215,31,114,13,235,116,71,66,180,217,102,235,202,178,87,34,41,169,94,17,167,162,2,64,36,214,50,218,110,41,130,64,8,67,16,248,252,56,151,43,229,69,69,116,159,23,100,137,146,148,160,206,8,74,69,35,49,72,182,216,240,250,37,204,183,21,125,224,117,240,28,143,107,153,118,123,11,127,208,182,90,159,68,77,119,51,162,138,154,9,151,141,249,42,208,202,220,193,97,85,120,5,34,196,102,35,79,117,184,182,198,48,185,249,57,19,219,190,76,28,8,34,225,230,234,42,106,97,39,49,48,161,68,111,34,110,178,65,95,75,140,76,141,68,99,54,55,56,26,92,225,12,110,56,34,78,1,132,46,246,157,224,181,14,40,29,30,198,154,204,208,208,96,68,222,219,190,246,74,134,41,124,210,34,153,55,179,166,146,106,42,91,225,207,245,249,125,
|
||||
134,55,153,10,197,224,235,229,102,19,64,134,161,202,55,63,94,18,201,128,231,249,100,50,5,198,60,97,227,94,135,166,61,50,21,255,17,149,185,127,255,29,21,64,244,89,190,41,230,165,20,30,101,127,158,92,140,118,36,246,185,141,76,63,153,87,26,170,173,190,57,90,120,211,56,2,234,245,188,46,102,220,65,61,45,15,159,93,121,4,182,95,124,196,64,254,216,43,140,133,183,80,222,39,85,153,1,165,178,88,250,196,167,89,245,60,133,82,197,64,12,165,25,179,177,209,14,135,60,91,91,140,123,3,146,65,161,45,107,30,120,31,165,213,116,110,210,65,99,190,106,87,238,167,234,178,62,142,100,165,11,218,99,158,210,233,217,247,211,203,86,173,55,251,250,230,224,245,248,148,132,63,42,156,195,46,52,227,18,255,94,205,181,157,38,157,164,203,210,239,156,251,56,242,190,218,23,238,205,179,211,98,235,70,53,156,135,145,48,202,49,93,36,70,49,113,95,79,98,16,136,71,194,186,163,166,34,177,184,172,143,47,171,205,98,21,171,20,42,120,84,135,197,228,156,74,
|
||||
217,104,212,226,84,83,157,251,250,47,73,149,244,181,145,199,171,199,70,44,188,82,17,206,102,50,12,123,246,248,75,220,43,229,114,159,76,101,186,102,39,129,80,46,116,214,27,248,58,233,161,3,255,86,130,19,8,190,71,31,251,126,114,3,138,233,109,66,41,158,141,247,249,128,98,178,76,65,114,180,74,196,175,190,245,241,123,251,22,240,235,105,15,4,129,63,209,127,117,46,81,37,251,171,115,53,204,170,95,157,75,91,37,255,234,92,74,109,185,221,217,58,53,120,36,145,237,203,121,181,155,250,113,98,106,174,14,151,38,122,34,180,189,221,23,179,53,207,92,147,77,84,215,48,254,49,3,167,136,146,150,219,84,151,203,11,52,146,144,58,84,148,45,125,53,93,183,218,39,60,253,228,208,244,246,46,251,38,25,167,28,111,69,172,149,161,83,43,100,38,152,229,232,18,133,0,188,40,141,243,251,212,88,52,191,48,159,41,45,254,190,43,232,181,19,23,81,123,139,91,96,201,68,59,183,123,51,154,119,207,68,222,42,237,241,57,85,242,11,178,164,31,149,153,213,74,
|
||||
179,89,202,152,146,95,154,206,201,149,158,79,213,165,236,20,54,204,175,175,229,153,251,206,125,79,205,163,193,239,166,165,142,135,173,123,177,231,225,238,41,33,187,219,87,110,147,89,232,216,149,163,131,1,109,11,253,10,78,184,70,151,215,100,205,79,119,29,149,196,118,116,1,175,221,43,89,168,119,106,212,234,120,20,163,93,174,31,190,25,191,157,139,32,79,139,120,160,239,190,87,106,247,116,90,226,154,205,212,136,137,203,104,50,213,129,139,205,86,217,184,8,140,96,147,214,63,168,94,119,160,1,135,237,234,189,18,150,232,138,53,173,185,137,110,225,82,161,160,114,169,239,234,128,228,173,145,34,127,189,217,30,218,245,254,215,70,232,228,36,97,251,136,184,65,127,180,180,115,28,135,189,87,64,4,227,37,149,200,41,111,121,139,119,44,60,84,171,217,221,243,233,164,125,11,31,111,137,229,163,138,138,215,220,221,178,22,6,128,52,65,146,61,129,204,150,243,172,192,28,214,201,123,113,131,72,199,62,79,30,137,31,83,145,107,193,109,14,153,192,220,183,146,172,255,1,
|
||||
168,40,164,217,250,216,109,232,203,165,76,70,102,2,23,232,46,91,91,183,16,188,250,96,246,33,204,12,86,206,163,29,175,140,21,150,73,108,136,146,40,178,64,158,146,139,192,221,240,242,166,232,127,76,201,122,219,44,34,46,100,167,51,213,124,126,216,156,181,238,166,6,45,70,99,173,220,11,174,13,137,247,136,207,92,116,97,155,85,119,238,184,104,120,47,230,83,95,132,199,7,45,169,232,117,94,208,184,237,156,169,152,254,169,44,235,87,200,81,103,119,202,234,97,152,166,136,209,95,112,176,235,171,203,238,106,27,210,191,75,220,100,169,239,170,170,114,184,11,101,158,137,232,29,12,236,82,60,18,102,240,11,210,97,107,77,100,246,14,75,53,232,144,199,17,188,62,178,128,91,152,97,119,139,41,83,99,105,162,129,57,195,228,39,250,39,163,157,201,232,191,251,15,253,46,110,17,200,16,131,82,143,197,130,73,188,149,232,142,158,124,17,85,219,236,156,240,21,233,223,94,61,77,206,3,151,227,23,176,100,220,131,26,114,241,77,248,90,120,191,42,167,79,73,73,41,
|
||||
247,28,14,28,28,183,240,252,73,29,167,177,55,46,174,122,8,147,218,209,187,104,77,87,246,244,93,190,73,234,250,180,16,63,56,72,23,164,19,57,119,149,196,189,212,155,224,213,193,240,122,142,23,25,170,104,230,202,225,178,48,152,45,110,164,65,162,178,126,169,28,31,38,75,77,8,140,73,107,86,183,194,145,89,18,181,167,60,213,227,171,38,127,44,116,221,217,105,207,202,215,126,0,225,222,84,88,135,173,162,225,28,158,148,139,78,199,55,159,13,78,67,128,229,147,105,182,22,205,150,160,113,191,145,192,67,94,155,32,147,218,199,247,91,248,222,212,48,79,62,150,204,133,193,152,248,90,35,206,221,141,130,190,173,45,54,87,162,166,160,101,107,206,230,251,135,143,223,46,250,184,181,30,197,100,130,117,242,102,62,213,96,50,89,164,54,227,35,67,103,152,43,121,223,245,15,205,205,231,119,87,29,252,85,125,196,100,210,241,185,120,132,222,9,8,77,35,165,81,13,219,232,71,223,181,26,71,1,79,92,101,58,186,152,161,60,170,231,58,76,120,251,124,113,30,119,
|
||||
105,158,145,175,105,134,23,192,223,181,95,234,170,190,149,10,102,236,93,67,163,132,186,198,231,216,51,105,17,253,178,115,175,181,170,209,57,63,37,11,175,206,170,15,193,232,81,152,197,124,90,237,58,7,3,197,230,9,166,252,169,255,84,26,119,53,50,169,245,164,249,114,200,156,163,11,206,101,15,107,250,80,254,142,214,19,229,60,122,234,90,76,188,52,37,141,211,185,164,215,188,149,93,71,23,196,95,55,29,175,51,38,179,81,189,226,138,154,72,227,20,250,171,58,133,93,170,112,255,136,157,116,185,231,148,185,147,19,142,162,62,17,171,218,50,235,189,143,107,35,164,217,236,7,156,95,154,159,134,246,62,60,20,189,6,133,213,194,25,78,48,38,179,145,8,24,140,59,131,125,228,27,12,152,217,202,220,228,30,161,177,18,236,238,192,242,2,184,183,71,140,22,130,159,7,228,127,236,254,208,247,221,103,245,54,142,218,107,70,206,47,87,157,154,27,75,134,162,94,198,121,108,181,96,17,136,146,208,45,176,184,15,118,105,223,6,119,13,47,53,131,185,133,106,232,177,
|
||||
118,65,162,195,190,21,58,181,84,18,179,224,28,223,214,55,159,73,239,182,43,117,121,59,37,24,232,219,67,80,61,187,233,159,203,138,184,196,130,179,176,160,169,145,74,18,175,196,197,6,24,155,190,121,171,32,18,102,15,199,144,32,16,8,245,205,254,14,73,22,219,159,127,232,135,25,191,123,185,212,111,191,95,46,197,255,35,94,46,5,1,35,134,72,215,199,59,214,209,21,63,127,125,34,120,120,36,159,247,132,66,104,192,59,190,113,171,218,238,89,133,74,225,108,216,35,78,202,78,176,161,24,151,103,165,137,148,109,207,23,26,108,19,13,78,239,133,248,102,57,179,107,182,223,142,8,129,12,138,178,222,155,230,102,127,26,158,87,203,164,169,174,188,112,159,235,119,179,59,60,229,148,167,115,211,247,219,165,44,86,235,57,83,14,127,45,223,233,1,172,114,184,189,58,196,70,240,35,203,122,195,33,229,67,38,21,168,137,97,190,171,230,61,233,173,105,81,103,230,243,145,113,157,101,80,84,123,118,104,228,77,89,33,100,4,65,66,132,194,23,197,104,83,84,229,154,
|
||||
87,231,193,224,245,44,253,126,225,219,240,46,222,27,140,70,182,24,171,232,43,209,194,171,107,96,189,53,116,86,160,76,109,139,152,60,128,209,214,1,199,125,32,111,133,246,251,198,50,254,127,23,114,222,75,9,116,93,186,191,149,115,99,231,94,8,34,25,9,54,72,70,16,132,38,217,32,32,89,148,140,128,164,38,55,218,228,32,57,199,1,157,83,245,125,51,243,206,249,183,123,237,94,207,126,214,170,189,54,69,213,175,91,129,241,98,158,171,82,28,63,86,19,56,233,34,177,30,248,193,61,244,188,123,124,35,107,132,178,156,203,227,204,118,240,63,181,79,221,146,115,106,230,128,167,218,94,37,215,166,197,106,122,90,246,71,151,186,205,195,190,62,57,106,153,119,226,90,117,78,166,31,133,166,163,125,182,130,16,135,185,194,40,38,47,114,120,7,89,244,57,54,185,50,92,49,51,126,238,173,178,157,203,137,44,201,212,105,241,68,38,36,180,160,255,201,10,136,239,79,59,129,198,87,90,96,45,102,199,146,210,140,31,156,57,75,186,1,136,19,218,46,133,167,139,143,
|
||||
212,242,138,2,111,59,188,172,119,17,61,203,216,103,100,240,43,218,146,210,51,173,251,70,81,150,151,125,187,119,122,48,0,199,188,136,201,240,139,230,207,225,86,35,247,188,75,64,60,136,139,34,33,46,7,223,75,208,144,245,126,63,142,67,174,94,226,70,111,25,149,109,68,69,205,112,172,85,232,186,148,198,35,72,21,239,107,22,138,178,249,195,250,9,105,32,127,1,25,196,119,213,12,168,187,161,231,82,171,62,28,15,201,65,156,2,222,194,128,129,165,75,7,174,181,216,13,50,233,250,7,150,16,166,33,207,150,29,15,139,159,77,255,166,228,15,10,100,171,126,220,216,99,69,241,44,185,250,45,90,84,100,81,142,119,74,233,235,3,139,169,113,245,226,190,208,165,102,165,83,73,33,97,112,25,189,94,108,106,149,195,211,38,81,33,114,155,56,71,96,18,88,41,6,132,27,33,194,178,77,150,236,186,38,75,105,24,82,114,244,14,140,77,244,189,232,109,42,127,59,0,19,114,110,252,109,224,208,142,71,213,43,53,160,230,140,17,57,39,85,32,207,78,134,230,9,
|
||||
119,39,131,173,119,189,215,136,18,189,238,37,1,92,142,209,54,188,81,90,50,103,113,246,208,190,237,107,30,186,97,83,45,200,8,225,176,140,147,114,7,63,191,5,137,55,52,62,200,79,100,125,125,83,44,197,57,142,226,5,14,125,151,11,36,237,129,232,136,41,208,58,63,25,65,66,234,157,104,190,114,54,163,94,201,232,254,52,88,96,123,154,251,99,85,97,25,20,141,63,17,206,93,136,28,77,139,7,186,209,169,19,98,192,198,28,113,117,251,109,27,104,24,3,151,175,239,29,110,79,250,217,161,208,111,147,227,128,153,128,85,1,249,104,51,179,183,4,56,125,30,77,163,63,159,248,213,247,133,60,127,111,202,130,48,239,224,99,92,247,116,198,16,106,249,65,187,246,167,241,72,198,32,64,16,219,158,78,141,76,28,139,65,239,120,82,128,187,135,39,143,245,21,190,78,31,103,226,102,99,12,35,153,188,74,144,53,5,165,164,88,232,189,182,60,174,34,82,215,42,123,186,97,28,247,216,37,241,228,205,46,191,172,214,221,209,106,67,156,208,66,114,90,220,59,225,
|
||||
235,33,120,75,57,104,228,47,179,64,45,102,101,191,182,132,7,106,206,124,104,102,250,188,38,99,7,117,162,178,159,113,163,209,178,108,140,228,49,170,180,9,197,25,80,9,194,128,42,240,3,85,50,206,184,188,124,48,208,133,199,210,163,188,24,220,236,146,43,110,234,152,209,136,227,114,236,116,90,92,7,76,176,126,5,187,78,182,221,99,104,185,223,143,58,245,218,112,221,24,82,151,196,165,213,61,46,91,250,7,225,123,77,205,114,187,123,135,146,227,51,63,130,175,134,186,78,209,227,208,61,53,201,39,238,38,78,7,50,61,110,114,111,92,0,237,136,154,92,184,35,203,97,233,169,63,0,116,126,127,43,31,96,60,103,120,181,248,78,54,47,133,140,126,157,104,183,222,52,19,199,60,31,88,190,74,127,48,221,140,160,19,132,65,180,165,17,105,87,159,98,173,95,133,84,103,139,177,211,235,177,29,246,78,103,105,88,75,111,227,11,250,189,17,38,140,88,106,210,176,134,76,203,178,238,215,44,245,53,67,33,251,119,193,237,180,79,9,215,163,64,110,17,83,57,127,
|
||||
236,173,43,90,218,130,44,216,148,220,149,219,207,164,188,158,148,140,220,120,181,51,49,66,195,222,90,249,237,150,103,165,163,67,35,96,40,22,89,46,61,162,123,178,23,188,223,247,200,233,167,210,202,153,5,67,173,138,218,148,238,39,55,124,213,20,167,104,102,138,72,197,177,225,243,21,27,23,186,240,73,27,180,65,191,37,222,239,228,119,179,60,249,145,201,0,162,25,150,57,107,117,230,89,1,188,154,4,208,210,148,18,86,102,106,146,114,49,27,23,93,18,109,150,211,166,189,132,30,77,167,194,51,207,144,147,159,74,246,137,60,27,215,26,76,60,151,77,239,220,135,77,90,62,162,91,82,129,153,153,253,233,143,234,164,28,143,102,253,189,89,39,153,128,232,222,98,166,36,179,251,170,174,97,148,27,123,15,178,252,171,33,34,210,190,142,226,111,240,5,47,37,246,142,178,87,158,116,147,187,138,120,135,146,83,220,250,61,3,251,114,101,41,188,141,100,34,15,181,110,160,97,163,94,240,82,149,48,255,23,47,213,51,232,23,252,98,17,146,129,116,47,150,175,101,124,
|
||||
239,100,191,120,169,94,153,1,178,26,250,46,101,204,190,224,165,134,173,105,16,84,11,180,159,171,106,238,126,7,199,108,111,43,3,99,88,30,230,51,26,251,52,248,156,13,48,121,54,160,154,205,186,200,72,126,218,45,199,12,173,195,178,68,85,64,142,242,150,153,215,249,85,143,143,29,154,0,94,4,122,242,241,2,114,102,170,219,103,64,168,101,108,40,18,202,142,146,67,174,101,249,90,97,166,149,203,162,92,134,46,45,232,191,173,96,66,216,187,57,108,226,227,125,59,16,91,154,94,245,79,177,58,3,187,224,33,51,212,219,173,204,216,201,142,141,87,203,174,51,235,246,129,26,242,218,126,246,195,142,46,219,232,165,71,90,5,196,254,97,143,74,197,206,77,82,91,146,27,63,229,180,118,180,183,141,80,147,159,241,16,48,41,90,150,81,119,158,212,61,151,36,177,3,73,107,45,238,103,100,144,213,115,231,235,208,186,220,237,180,163,228,79,49,224,19,107,203,98,171,158,67,188,30,150,162,183,213,147,101,58,149,85,6,111,178,134,252,117,226,238,188,78,238,84,202,
|
||||
250,246,166,242,178,180,107,137,145,152,26,128,203,102,164,202,248,48,248,63,122,133,193,187,1,234,129,128,165,101,157,162,157,34,56,94,246,57,63,133,98,132,82,91,130,219,59,75,201,147,147,148,78,155,28,230,1,41,110,32,181,1,137,16,127,156,205,12,190,166,227,82,16,143,235,165,30,144,118,150,211,175,101,83,143,150,169,245,22,236,155,162,100,95,179,94,230,50,10,3,141,164,232,106,52,20,88,130,226,52,107,218,95,76,81,179,80,199,247,76,249,218,9,177,241,17,229,49,114,119,142,34,196,226,105,167,134,2,33,102,193,173,171,161,141,48,65,155,128,118,150,39,247,30,73,221,151,19,126,13,162,23,238,194,170,228,102,60,19,222,129,92,38,4,31,88,24,44,43,14,239,228,38,29,221,86,109,121,155,173,99,76,31,11,168,112,194,114,172,100,5,130,194,70,46,163,54,236,183,223,94,232,115,10,221,179,169,66,124,64,177,167,134,68,74,215,113,61,162,30,227,47,193,238,48,44,200,168,95,118,139,128,155,150,219,220,223,4,235,74,110,180,64,181,104,210,
|
||||
145,130,221,4,40,231,212,220,93,225,174,110,167,43,138,97,123,88,61,194,202,222,237,108,37,231,13,213,10,106,149,220,244,174,48,127,143,193,202,150,222,6,248,99,150,205,98,251,21,95,220,47,82,98,239,181,149,43,146,150,150,166,138,183,83,184,47,170,219,222,211,134,207,42,96,200,232,17,56,255,204,13,165,216,16,101,180,6,19,105,178,148,69,175,42,133,142,69,13,111,221,131,113,132,81,221,70,92,57,20,2,116,19,158,15,148,95,51,205,160,120,208,184,7,164,188,111,187,233,107,57,207,128,23,190,84,229,102,224,72,13,211,49,101,139,224,139,207,240,66,110,235,26,174,85,225,5,184,121,206,83,189,121,83,251,244,129,55,123,119,123,117,243,189,121,203,117,107,103,212,135,173,101,209,44,132,11,0,161,105,253,202,163,215,178,42,216,86,101,149,246,160,248,122,212,191,173,104,56,83,171,232,86,247,35,200,224,206,206,242,181,186,94,146,233,0,75,44,233,188,159,15,120,3,111,133,35,212,246,215,187,42,224,60,53,252,70,79,116,191,89,153,178,150,25,173,
|
||||
212,107,89,7,106,154,211,32,149,128,146,82,105,104,215,232,81,20,218,11,235,188,165,5,25,195,240,87,162,75,52,242,167,62,97,236,58,128,42,73,47,133,248,232,220,152,75,126,153,54,96,159,178,232,67,174,225,221,126,104,252,222,219,235,33,73,100,44,224,197,241,66,229,51,118,85,76,105,125,226,122,150,64,161,134,27,189,60,152,142,36,13,133,38,153,197,109,95,247,19,64,25,71,111,198,168,130,124,173,111,132,193,185,81,63,207,199,199,180,108,85,168,22,192,19,83,171,55,94,52,62,189,209,137,62,22,34,253,204,95,33,61,37,126,210,209,189,227,48,86,75,116,203,108,247,201,96,55,66,52,178,34,0,41,231,235,219,83,133,234,83,146,145,115,126,60,247,58,75,142,65,168,236,177,201,192,97,73,238,255,164,74,249,48,230,161,203,145,234,88,220,247,155,76,98,235,221,40,132,98,238,199,62,100,50,138,36,26,111,218,54,5,107,232,6,59,10,248,234,148,165,86,16,125,220,196,130,150,93,44,120,117,46,252,228,229,187,240,133,240,143,199,226,198,211,197,
|
||||
35,107,34,110,209,159,192,15,240,4,204,203,225,68,252,213,57,132,210,110,202,32,187,176,217,14,75,9,229,70,15,172,140,76,176,148,79,7,100,33,200,77,113,181,102,189,133,240,113,40,30,120,6,35,29,117,21,47,73,157,163,212,250,64,69,85,131,242,122,242,35,151,77,70,58,81,217,246,101,158,31,9,188,161,247,88,94,99,237,239,75,158,4,89,124,149,50,171,218,161,202,183,169,26,110,83,36,184,221,58,32,83,84,153,12,57,3,81,207,220,39,99,105,251,139,185,52,151,156,147,8,119,13,187,245,5,91,141,41,15,253,107,134,76,140,218,136,54,207,106,249,157,194,91,188,66,143,119,162,137,37,42,102,168,57,75,242,68,230,157,183,103,119,62,138,204,237,88,239,169,173,98,236,172,167,175,65,251,81,180,41,111,181,137,245,247,52,35,113,75,159,231,27,50,190,230,126,121,24,21,169,122,119,61,79,239,238,250,181,224,94,42,153,209,128,36,131,5,108,133,246,82,38,81,135,24,43,231,208,119,12,59,191,214,55,48,109,145,255,248,81,136,153,236,173,125,
|
||||
21,192,32,142,159,65,146,183,43,16,179,7,23,118,242,40,157,171,236,184,150,88,74,74,211,237,93,250,97,184,211,85,234,185,185,200,115,131,54,174,164,213,212,123,81,113,106,132,120,155,164,213,42,205,158,42,216,185,201,113,188,85,43,79,70,176,24,216,213,24,123,19,109,57,234,112,197,26,215,253,82,93,6,156,39,154,200,246,52,85,72,250,185,16,251,229,243,152,168,36,88,217,242,194,135,192,91,137,165,81,221,36,96,119,30,137,0,239,87,22,216,148,247,108,166,238,250,102,55,109,229,25,31,37,89,241,164,13,29,104,66,241,70,58,143,158,127,82,117,151,118,43,154,68,251,61,87,230,138,137,189,230,110,153,38,185,32,112,36,123,30,102,189,102,151,203,186,122,51,152,25,161,147,33,209,149,115,73,182,161,25,225,170,164,20,215,199,195,167,155,89,244,71,42,10,120,182,140,20,8,235,93,243,49,6,56,176,173,70,13,153,132,30,152,230,173,74,150,155,50,211,170,11,97,202,104,155,232,143,150,241,254,176,201,87,196,18,79,179,211,109,126,209,9,101,36,
|
||||
14,48,52,240,59,230,179,13,211,79,33,29,159,168,135,156,4,253,119,77,9,99,76,56,46,132,251,186,66,9,185,87,146,159,130,97,145,194,0,70,49,215,195,189,26,55,161,53,240,118,180,62,208,188,35,15,101,7,102,236,74,198,121,176,194,11,114,180,41,208,34,87,88,82,1,251,89,169,47,220,142,182,14,205,60,24,142,235,91,112,5,81,248,87,29,187,209,49,26,25,121,19,201,29,54,44,48,33,48,97,1,171,31,183,207,124,237,40,189,120,225,223,117,106,11,79,108,17,153,142,16,170,108,215,161,111,115,243,174,63,126,75,186,2,48,143,141,58,112,194,9,136,158,209,245,114,119,37,152,76,38,134,228,188,200,47,96,237,138,27,104,68,241,150,108,226,65,149,46,9,162,238,52,20,75,111,103,8,166,248,104,241,66,211,14,16,35,46,45,101,183,164,67,238,87,203,23,196,20,195,51,120,52,247,132,216,205,244,25,164,132,249,151,141,61,157,181,150,124,229,32,217,79,121,29,94,160,8,180,87,29,230,206,231,252,128,119,199,62,36,187,118,46,1,174,93,
|
||||
19,42,216,3,82,66,52,220,244,81,117,50,42,132,62,88,190,73,192,252,66,97,89,94,67,56,131,159,194,226,103,101,240,39,161,0,21,217,2,20,24,91,92,150,225,72,71,223,214,122,95,84,73,231,70,156,245,20,24,138,208,75,16,244,230,190,152,16,250,194,128,142,209,253,143,133,215,91,106,15,155,240,1,73,105,37,40,225,153,236,239,61,231,32,116,222,35,229,208,68,222,187,47,198,140,195,45,215,221,91,230,40,145,58,176,92,220,217,223,252,220,130,38,163,235,28,185,134,237,245,50,89,214,177,165,181,19,114,144,231,209,236,81,105,37,146,129,244,135,234,7,162,216,169,106,85,41,93,175,110,237,79,53,205,35,11,36,70,147,67,102,50,181,121,206,53,89,136,119,178,88,221,30,1,57,10,172,191,202,171,246,9,157,132,106,135,88,129,138,198,158,44,77,239,247,37,141,92,12,225,162,145,106,250,78,171,72,7,71,117,192,251,116,156,49,14,82,20,120,57,85,133,181,67,242,180,110,188,158,144,123,56,172,165,31,160,105,194,56,88,5,145,15,55,106,91,
|
||||
179,227,185,56,58,100,207,12,121,113,104,126,144,145,37,254,76,236,201,123,252,32,228,121,27,246,42,151,87,30,192,59,63,197,209,169,209,168,52,141,255,163,90,145,214,66,117,211,138,237,169,60,4,70,70,23,218,156,28,235,121,45,121,8,12,174,206,118,42,223,91,176,98,201,150,188,251,116,14,186,179,29,146,52,237,139,53,91,219,16,211,40,0,221,237,74,57,29,51,141,12,150,144,209,22,65,228,189,197,66,189,184,147,13,87,19,166,66,160,246,179,61,232,80,238,67,111,118,123,249,142,2,5,124,222,178,243,104,92,237,219,185,245,225,11,178,209,150,155,194,90,24,170,189,54,235,221,199,159,181,31,140,155,251,72,115,178,107,7,226,233,117,132,169,237,244,80,212,119,79,163,227,153,5,31,239,130,223,185,61,63,187,240,162,152,116,148,80,37,1,10,189,198,247,219,9,254,11,108,108,62,161,139,115,221,115,23,124,49,81,109,71,94,183,104,145,107,129,133,90,128,182,230,127,234,19,224,194,54,114,52,50,44,157,11,225,136,155,239,194,122,219,175,147,197,28,
|
||||
207,117,96,230,240,220,222,108,70,121,214,178,157,74,167,97,151,36,57,67,107,179,143,157,111,235,170,180,225,115,218,88,9,5,164,215,210,21,150,154,219,58,130,163,100,15,61,176,43,45,148,160,107,8,180,188,103,49,222,157,234,114,171,174,228,29,179,99,32,39,18,225,207,174,53,62,157,30,213,254,213,40,62,147,118,203,157,137,136,44,201,60,146,206,245,35,124,243,241,111,66,93,10,47,113,106,19,136,136,28,168,91,123,141,148,40,95,222,205,92,90,219,77,238,116,147,148,12,58,147,219,92,66,101,118,207,215,211,59,137,109,7,183,47,18,94,28,245,230,205,218,78,167,158,93,215,161,134,114,135,156,232,84,34,58,230,136,62,15,70,23,246,254,32,135,54,33,95,232,3,165,216,101,239,104,224,35,5,154,39,51,151,209,89,67,82,187,229,129,239,111,81,28,15,122,216,176,43,202,119,149,116,125,104,48,248,111,42,93,174,212,95,23,138,36,82,67,43,168,113,111,60,7,190,65,40,159,79,50,10,148,32,34,63,52,91,129,167,21,147,242,87,6,250,235,185,
|
||||
12,149,122,179,115,31,251,185,235,158,123,170,235,240,39,60,54,10,135,53,130,182,151,138,12,238,255,168,81,18,195,47,211,11,206,124,254,193,147,222,40,142,95,218,215,127,173,235,248,175,174,118,135,130,96,148,119,15,50,211,185,109,124,58,68,242,254,153,191,86,109,249,226,64,159,74,153,141,11,26,240,197,62,249,120,87,246,68,231,117,236,47,175,169,113,19,214,165,143,49,29,44,66,218,200,184,128,80,119,28,235,188,205,212,206,58,114,8,38,39,94,14,168,123,23,29,178,58,145,61,25,62,37,134,3,226,228,43,194,56,167,210,164,249,218,60,231,109,126,237,0,3,173,175,81,194,188,68,93,59,90,232,224,38,3,231,65,19,127,61,140,204,165,102,169,243,78,216,188,233,175,30,109,42,16,14,155,252,160,34,232,146,162,185,152,150,44,217,186,138,151,6,68,112,5,136,127,231,77,175,213,211,250,242,73,33,236,28,138,109,160,227,127,155,28,218,156,68,156,85,226,60,11,103,29,156,9,223,191,209,77,31,85,30,152,246,78,199,23,238,169,115,113,90,115,91,
|
||||
104,110,194,185,247,61,229,215,137,207,11,97,234,236,196,235,47,18,173,74,122,254,101,170,201,168,172,203,97,247,47,126,102,13,238,32,133,228,211,237,100,132,190,110,192,25,157,2,149,66,126,188,173,205,145,93,247,114,100,245,87,222,213,9,95,115,12,203,186,231,176,15,117,246,140,23,90,20,105,145,186,215,175,95,119,14,154,74,196,250,34,45,87,133,205,70,216,239,47,15,27,141,146,183,162,46,22,60,214,141,23,60,186,229,196,54,121,228,41,16,253,130,208,231,64,171,132,195,66,254,3,10,204,189,202,22,235,136,234,1,111,174,134,63,196,168,232,59,198,254,17,222,175,2,14,25,44,184,130,60,207,68,70,111,89,35,178,20,108,10,208,93,91,64,56,57,217,29,179,31,167,128,131,82,129,31,60,59,148,161,135,229,231,56,166,246,33,206,78,67,236,190,74,6,7,83,247,231,211,110,202,17,149,176,217,168,236,64,120,11,14,195,32,140,145,225,168,127,115,239,240,74,66,218,230,244,209,55,199,188,222,195,24,218,5,222,116,135,45,96,175,158,112,191,1,32,
|
||||
225,111,48,94,224,77,138,241,167,58,139,81,132,11,113,54,68,40,5,116,152,134,233,223,223,95,224,78,193,243,112,57,207,150,171,223,175,60,189,125,227,10,147,43,39,230,227,2,175,250,199,239,254,247,117,56,223,159,188,87,240,111,44,3,152,223,168,224,5,10,245,59,185,238,127,163,32,220,231,111,20,233,2,239,185,68,41,48,191,81,255,111,190,97,11,36,236,95,194,236,95,20,6,199,250,75,40,195,252,37,36,235,254,51,33,238,223,239,1,152,63,89,193,11,172,136,198,100,228,148,120,11,165,128,13,119,128,127,151,3,71,255,228,96,153,127,114,190,72,191,114,76,176,146,32,242,49,100,25,214,235,159,156,255,230,171,227,28,101,128,162,143,204,243,29,132,118,126,162,254,207,109,16,254,182,193,252,175,235,190,158,222,94,96,58,172,142,62,158,95,127,4,255,209,167,215,63,97,164,238,121,198,66,56,102,234,255,231,239,203,89,171,185,71,6,34,24,90,232,95,247,241,79,122,76,103,47,240,39,22,95,254,122,173,248,159,252,3,254,252,171,168,235,11,193,57,
|
||||
255,247,80,14,245,142,82,62,153,125,86,253,254,191,212,173,124,185,52,156,239,12,219,179,230,183,19,203,142,243,12,73,23,190,20,214,252,63,251,220,249,93,110,128,204,168,236,19,195,87,105,31,224,139,223,138,127,244,123,251,231,183,116,26,61,183,45,119,28,177,173,122,250,148,243,2,235,58,155,249,191,236,251,146,125,76,7,66,150,39,124,248,217,85,185,254,167,250,252,107,95,179,10,116,249,165,174,130,255,197,199,8,83,13,183,117,84,53,130,52,107,217,150,15,153,139,49,233,215,219,222,212,123,98,220,228,248,84,70,82,234,222,135,249,54,79,242,192,183,19,93,5,115,80,224,34,17,165,50,243,216,5,88,31,96,233,77,168,63,121,58,223,13,148,59,236,238,109,209,102,237,98,11,157,203,43,40,121,42,4,188,37,209,217,37,4,248,231,183,11,95,42,85,57,236,182,141,174,101,6,55,188,69,133,148,230,14,246,214,23,190,212,160,155,207,19,60,229,230,66,35,189,113,129,198,109,114,246,132,72,19,167,161,183,252,126,62,144,149,181,106,13,55,74,170,165,
|
||||
219,246,177,59,15,5,13,218,37,126,29,62,28,39,169,195,115,112,113,225,75,209,93,227,111,111,168,190,32,12,235,168,9,211,208,45,83,224,137,24,216,88,177,129,191,191,46,254,207,255,253,15,251,107,142,126,
|
||||
120,156,236,186,121,175,237,94,144,21,246,85,144,146,32,34,39,242,60,17,33,97,31,207,243,241,241,140,80,228,121,158,103,71,249,238,241,251,209,208,77,11,210,116,8,144,68,185,255,188,173,251,182,183,107,87,173,90,181,214,57,247,95,253,147,255,254,191,135,254,39,232,191,131,254,129,159,127,206,229,69,188,119,219,191,254,87,255,219,255,250,191,255,15,188,241,63,187,191,127,242,175,86,232,127,249,39,255,244,95,255,249,231,95,252,147,127,249,47,235,62,46,243,127,14,211,52,246,79,97,12,163,255,25,131,81,172,92,242,204,191,251,145,234,148,204,32,45,21,156,110,76,185,139,191,43,158,204,107,120,44,207,185,185,213,79,45,86,74,33,179,101,174,87,218,47,148,21,217,101,248,179,213,63,2,203,243,164,107,44,4,220,44,166,138,192,75,17,77,36,232,249,215,72,208,158,225,196,107,22,153,38,154,207,135,51,109,218,137,93,119,107,236,110,147,40,199,33,127,109,143,215,132,192,4,19,18,52,144,200,202,82,136,184,123,10,201,193,32,1,81,240,236,87,116,191,
|
||||
247,251,81,110,7,44,204,224,64,38,117,215,78,159,57,55,246,18,137,124,21,162,194,255,172,197,167,220,204,234,235,201,129,53,139,35,146,28,97,178,253,36,120,245,217,108,135,165,36,218,206,84,239,98,248,254,238,203,62,163,227,87,24,51,219,89,188,74,225,17,234,183,205,15,236,163,110,57,200,13,225,87,183,236,49,184,172,98,98,215,253,144,126,92,41,254,168,203,229,140,219,117,13,54,118,127,196,237,124,38,123,132,51,195,186,206,9,25,170,13,205,178,148,71,167,128,183,50,1,189,83,161,176,51,114,87,139,237,11,131,182,56,225,122,241,91,20,138,112,155,140,217,151,138,154,35,254,243,144,64,101,254,146,235,38,214,57,12,112,72,158,143,95,75,212,134,108,202,79,102,174,195,216,101,34,228,111,230,100,207,208,222,34,110,188,113,126,136,121,104,81,79,123,2,70,51,169,165,93,27,63,90,81,49,13,50,123,161,112,106,178,122,203,90,125,248,115,60,18,49,78,84,68,175,219,31,2,246,60,81,177,212,166,251,96,96,100,151,139,213,48,61,203,131,151,163,
|
||||
245,111,182,199,152,19,103,174,42,220,236,219,136,211,144,186,124,76,178,200,131,165,135,133,180,183,146,93,23,49,176,38,185,242,153,215,81,6,155,207,31,100,169,32,22,41,234,177,143,246,218,255,86,223,25,41,198,9,114,61,218,130,191,188,199,196,94,121,83,29,155,253,82,49,121,48,96,55,241,240,204,70,171,113,130,67,124,50,201,154,113,42,128,111,67,235,58,210,16,39,111,2,207,241,77,51,106,147,105,113,217,74,21,199,235,69,67,72,51,113,60,224,205,254,251,76,90,212,113,107,136,249,145,120,90,197,175,213,55,210,202,226,94,1,85,233,243,217,100,210,74,218,80,91,37,158,81,133,23,95,107,28,143,37,183,40,231,163,223,204,192,98,253,109,39,111,133,157,138,63,23,85,196,96,161,9,52,116,215,122,52,80,236,153,56,168,88,198,9,179,139,23,44,10,218,132,143,247,249,132,69,63,152,6,165,62,150,26,120,164,254,108,209,227,54,182,208,196,58,40,46,205,187,67,42,91,50,252,174,98,35,24,39,74,242,87,71,158,130,243,125,232,197,156,155,200,
|
||||
232,111,178,85,152,111,49,18,235,194,69,254,226,5,158,31,12,183,188,109,244,13,84,173,227,81,254,67,107,66,181,228,121,56,79,12,123,247,79,39,173,45,17,169,221,44,106,150,176,21,159,175,75,88,87,176,182,105,147,72,207,121,43,76,212,186,167,119,252,98,210,48,7,244,26,191,244,234,85,25,168,216,217,98,221,200,234,200,92,228,119,174,42,201,231,151,168,164,105,125,112,233,88,172,128,5,190,194,190,4,86,166,105,160,49,249,155,92,225,221,167,241,238,60,17,155,177,216,99,235,136,145,237,99,18,251,199,167,86,78,20,193,103,89,142,162,208,87,224,69,87,242,221,251,89,132,52,109,253,205,221,92,207,52,21,238,22,165,23,158,231,145,48,57,243,18,244,155,34,245,202,231,218,162,42,102,40,2,56,86,47,209,250,64,65,183,159,153,193,81,128,215,40,146,218,78,253,186,197,240,117,37,62,61,157,188,178,134,254,205,171,57,8,63,131,168,245,30,76,171,217,108,199,48,244,43,62,208,49,156,29,77,211,84,89,28,86,225,55,227,67,131,163,105,85,26,
|
||||
233,130,187,138,210,199,10,111,52,130,175,59,146,209,128,138,193,88,178,189,181,2,230,79,14,167,194,118,249,124,86,81,35,10,110,154,64,195,105,129,124,210,31,224,59,101,15,13,216,99,46,159,4,132,127,157,159,46,150,109,206,200,156,120,198,228,110,223,92,39,3,71,211,146,44,34,143,9,7,59,87,209,51,12,220,204,44,124,30,144,72,223,130,187,108,4,132,215,79,140,119,36,7,142,28,1,81,39,68,55,160,56,156,43,65,83,32,29,10,233,251,28,137,68,214,27,153,144,6,230,131,110,237,17,112,225,195,25,240,217,151,19,45,124,86,75,143,143,127,78,20,77,221,27,217,245,241,106,214,117,2,0,84,115,70,138,205,47,223,212,153,41,20,48,26,220,151,17,245,22,9,81,154,177,101,155,164,201,222,137,200,151,187,192,181,14,250,81,146,103,127,168,227,146,68,136,19,61,38,34,58,117,166,188,112,225,213,225,25,62,147,56,101,104,74,131,58,97,145,0,138,61,35,137,0,100,14,189,101,225,0,117,135,71,103,155,191,219,30,176,61,176,112,226,185,115,
|
||||
254,149,43,92,170,195,20,62,7,78,144,109,192,61,87,139,162,228,4,22,201,177,1,57,161,217,134,141,87,113,36,255,129,4,208,92,191,211,22,208,26,126,11,72,102,145,151,212,153,75,115,196,160,172,56,219,242,93,50,143,117,226,0,120,210,149,82,129,8,34,167,59,239,15,195,208,36,170,124,40,0,130,149,44,83,237,249,158,118,77,121,168,167,136,236,100,249,144,88,139,95,215,227,215,223,229,206,213,60,130,49,102,18,194,217,190,162,31,226,222,249,229,210,181,172,132,223,159,233,137,12,51,187,120,20,178,73,238,102,207,141,45,111,213,54,108,197,187,162,171,3,194,118,63,32,188,68,227,246,219,126,55,121,119,79,190,238,206,45,67,251,158,107,86,170,117,137,255,184,140,173,146,2,149,237,78,89,17,190,221,221,236,114,246,83,223,69,245,116,9,141,18,172,65,14,187,245,81,74,79,45,169,27,131,134,42,2,60,137,182,36,244,1,203,111,65,251,13,185,19,122,95,6,26,254,229,187,26,35,106,231,15,151,242,163,220,54,0,130,214,160,214,193,10,172,237,
|
||||
199,246,93,28,102,109,247,33,182,13,239,162,62,17,231,134,59,89,49,222,76,234,102,173,204,109,230,86,216,77,117,19,218,37,39,160,118,16,27,15,98,129,117,141,103,131,141,23,202,128,151,19,204,215,238,2,143,128,29,226,109,251,173,46,176,207,68,34,252,58,15,76,221,97,178,127,96,135,5,148,223,37,184,151,1,251,13,11,80,212,100,133,91,109,112,173,56,46,105,139,142,191,17,35,233,97,90,32,61,252,3,19,130,71,45,220,210,153,232,162,171,94,4,155,24,75,133,41,241,14,26,125,246,19,69,158,9,74,67,225,182,9,64,141,164,246,229,251,76,75,73,207,11,179,132,71,195,149,18,236,193,100,125,32,93,26,211,195,240,146,196,17,47,248,4,90,184,128,225,64,146,15,216,234,245,211,109,228,3,186,122,181,146,141,157,165,21,172,52,117,193,6,5,169,109,55,114,151,37,96,23,1,117,143,97,51,166,73,123,103,213,7,79,127,167,183,215,250,249,163,213,11,105,150,147,44,26,158,254,120,144,143,120,24,14,106,167,228,248,149,148,238,28,130,39,242,
|
||||
23,210,81,45,124,182,3,30,1,211,99,96,217,99,47,55,102,169,76,101,41,71,63,234,245,155,237,146,117,164,112,106,116,29,63,198,77,222,29,246,157,5,97,31,194,228,71,76,124,201,15,238,174,116,138,192,132,94,129,209,30,105,215,47,250,213,94,193,12,211,83,125,185,11,81,32,199,241,204,165,36,175,230,212,232,25,66,183,219,134,254,176,149,11,238,211,64,19,12,218,68,35,2,172,100,134,172,176,59,99,180,75,29,115,113,45,159,135,20,245,58,83,183,41,1,183,241,169,77,148,186,242,164,154,44,24,106,179,49,84,75,232,77,209,89,237,9,253,234,196,250,8,181,17,71,76,198,147,226,76,142,184,55,9,63,14,70,97,119,53,37,126,212,70,167,245,116,122,96,111,2,119,127,58,177,249,68,3,61,247,192,80,168,77,84,51,227,117,203,245,77,195,87,33,181,199,31,158,28,30,39,42,240,4,47,189,35,248,157,183,144,77,185,144,93,190,232,111,238,123,113,130,50,123,233,162,20,237,194,194,69,43,111,175,1,153,67,28,164,19,216,69,80,43,70,84,
|
||||
140,93,60,244,13,100,5,30,79,8,161,219,219,83,90,28,119,207,255,84,13,28,227,170,226,27,221,29,57,63,25,14,237,176,151,32,99,138,90,57,71,234,227,21,92,154,152,41,93,89,107,11,106,83,49,2,43,161,161,27,103,140,104,37,153,121,23,63,195,64,49,125,209,32,168,232,68,8,24,122,157,159,18,8,184,34,61,36,41,26,225,237,109,19,20,23,13,33,254,244,2,40,92,238,164,111,226,111,149,171,61,159,59,167,142,16,155,203,136,110,7,179,188,212,34,64,109,32,19,45,38,69,206,220,179,251,209,151,160,27,225,231,102,247,69,123,235,231,217,84,16,58,237,93,160,142,86,247,7,69,16,148,245,118,172,77,10,202,73,129,207,119,106,250,138,115,172,15,65,188,125,75,66,20,60,111,194,112,30,166,9,90,101,163,83,64,65,119,95,49,246,5,146,26,235,217,195,188,227,58,139,153,86,191,40,147,172,104,201,64,63,36,48,58,110,9,102,35,40,19,15,170,35,87,99,187,201,252,184,65,166,186,134,251,89,39,243,162,43,179,109,136,197,87,30,52,
|
||||
246,10,195,226,163,8,124,88,210,14,164,78,32,136,101,26,187,180,56,142,147,244,227,153,216,83,145,48,83,222,80,98,9,134,40,101,169,233,205,119,252,249,216,189,114,5,193,186,11,124,8,29,88,63,44,138,133,141,177,132,194,39,133,133,188,82,145,187,196,65,118,191,26,29,8,97,224,163,149,112,47,228,51,228,144,186,116,230,99,191,50,9,109,80,225,104,208,175,48,128,89,133,165,249,233,139,63,149,135,125,213,187,47,102,175,62,190,207,135,76,230,138,169,52,8,125,161,89,163,44,62,123,194,242,219,15,58,203,125,192,200,93,64,220,6,86,156,15,46,179,77,46,198,118,110,70,82,73,192,128,163,71,39,81,227,13,85,141,60,44,232,11,58,74,117,51,224,186,209,76,123,65,47,199,46,128,190,131,119,43,62,235,211,194,120,120,108,113,232,190,238,25,51,22,237,22,210,57,115,79,218,190,210,13,27,141,249,24,216,170,159,31,219,240,147,222,157,131,50,18,221,0,26,104,214,186,244,192,23,247,131,159,147,52,171,40,170,45,160,226,9,96,239,11,142,123,
|
||||
236,132,218,229,147,10,198,203,13,134,237,93,146,214,195,188,35,235,147,82,224,219,29,15,228,216,7,116,85,185,30,96,212,51,46,194,239,176,213,107,237,49,145,30,111,143,232,60,104,34,103,156,72,138,199,19,213,21,149,118,33,179,4,202,251,218,132,144,229,203,201,237,67,176,208,23,182,225,211,9,38,230,33,113,197,161,73,164,48,146,197,134,114,159,163,116,95,137,74,165,52,21,127,214,47,250,216,0,80,20,128,4,16,88,90,244,28,188,22,84,23,177,4,70,23,5,232,13,104,215,252,86,126,105,177,123,88,174,181,25,97,27,63,248,124,125,120,61,208,52,254,246,214,4,241,83,223,244,229,74,235,122,55,129,180,200,29,6,48,99,68,251,135,29,73,121,173,41,96,73,115,9,14,197,163,52,56,140,68,29,57,13,207,78,196,202,147,85,121,177,163,135,106,6,187,90,61,176,99,153,79,52,46,102,49,160,90,159,16,20,134,97,129,230,188,122,4,218,184,65,57,113,0,139,212,79,116,83,8,221,157,232,116,32,91,97,111,96,174,159,176,215,96,143,183,79,
|
||||
13,45,86,150,153,186,4,186,191,147,160,48,224,83,47,243,197,105,230,62,218,36,243,102,182,195,160,2,38,105,150,53,49,50,178,215,11,247,56,174,107,162,41,72,9,218,143,100,3,114,59,194,184,154,160,57,112,63,235,8,123,121,254,165,234,141,119,138,53,52,163,16,164,91,27,93,36,250,136,11,65,165,153,190,234,50,141,122,181,44,180,204,205,32,80,112,70,165,227,51,160,52,147,174,251,204,35,179,177,195,214,249,228,219,243,161,70,64,23,108,90,195,90,13,78,157,78,114,43,208,99,61,171,203,161,36,218,65,181,1,230,27,111,239,217,76,226,171,93,208,231,198,245,232,161,175,64,159,47,10,10,30,13,244,70,146,208,159,229,214,128,238,197,179,227,60,146,177,41,17,25,192,210,220,127,62,140,166,21,76,149,184,95,232,87,33,192,36,233,9,158,183,118,165,40,187,126,210,210,66,145,251,52,197,114,67,91,69,55,135,89,189,96,157,171,33,182,239,58,138,226,189,239,161,186,208,14,166,78,89,119,127,31,133,22,221,240,219,38,126,54,48,135,101,240,157,
|
||||
191,94,105,189,201,85,142,141,20,1,113,104,128,99,85,23,174,4,95,214,251,65,196,28,215,90,12,244,63,164,120,135,25,43,247,129,196,233,190,37,134,190,181,38,189,21,102,88,235,149,234,37,44,12,59,150,94,201,66,140,122,49,51,35,132,165,199,124,136,65,248,189,163,40,223,2,36,157,129,75,175,31,142,248,198,121,129,181,76,36,91,208,181,206,147,167,197,23,209,238,114,205,186,204,229,68,254,68,30,162,218,8,6,49,42,218,92,140,249,76,214,74,247,250,65,186,72,122,254,200,21,49,252,164,178,111,120,80,95,235,249,172,22,107,32,31,94,12,36,101,30,121,4,145,173,29,232,116,235,201,222,13,153,95,117,131,24,149,210,254,214,175,82,118,254,189,242,45,216,180,150,210,135,50,48,180,54,83,16,168,58,220,212,75,52,44,53,93,159,229,138,251,87,116,74,43,197,229,57,237,14,130,6,28,74,196,104,237,112,36,194,77,68,129,97,33,8,154,211,215,84,231,112,134,232,188,137,203,148,75,119,175,12,107,63,185,37,67,31,170,140,255,186,59,2,215,
|
||||
217,107,118,16,97,225,63,45,7,200,194,151,217,248,207,202,248,195,199,130,35,18,204,203,91,198,192,78,173,193,199,141,137,243,215,156,74,135,91,250,59,13,25,117,245,229,214,120,147,119,240,234,42,242,127,150,254,193,127,54,209,29,141,240,252,29,124,61,73,46,175,238,252,2,116,112,129,26,244,109,209,126,14,84,140,13,214,37,14,172,39,53,218,219,194,204,26,87,241,75,181,67,223,153,122,165,195,176,79,97,6,20,205,227,236,66,2,213,222,90,135,127,188,14,127,111,226,128,69,161,18,144,240,141,3,52,109,42,59,20,111,126,64,34,97,32,245,0,87,27,22,193,150,75,22,141,194,130,3,2,77,153,206,130,9,161,146,144,224,81,108,194,66,57,212,175,63,45,190,222,90,71,143,106,33,72,125,87,243,91,152,60,160,212,23,126,206,109,100,220,227,157,223,231,60,92,60,123,58,227,46,142,161,67,17,98,157,56,82,80,45,235,179,237,40,120,1,170,121,128,187,43,172,191,32,20,182,231,0,156,89,183,20,73,241,213,160,211,250,94,247,130,216,188,62,69,
|
||||
120,193,101,23,84,72,233,27,40,248,196,32,128,163,20,69,189,112,125,243,211,118,114,126,173,43,113,60,58,40,58,9,244,219,192,58,197,251,232,202,176,129,236,76,184,65,14,162,113,74,224,215,251,18,201,221,137,185,246,215,16,104,81,16,248,175,126,170,89,159,146,151,161,199,132,171,11,107,178,6,208,102,23,46,36,192,181,207,235,174,82,149,200,66,255,7,36,222,139,117,170,157,253,71,125,116,37,65,196,178,107,132,32,73,118,76,211,50,8,112,221,141,254,138,235,155,205,181,158,124,124,80,7,7,117,109,21,43,52,173,203,21,33,80,56,225,213,201,26,78,223,251,124,145,139,182,172,237,166,89,190,214,174,63,159,255,170,104,217,205,136,234,237,194,74,166,63,26,197,182,128,7,125,246,218,176,139,68,244,111,162,208,36,131,251,221,16,234,246,6,41,157,182,191,221,70,77,181,201,98,238,109,177,15,255,233,176,202,27,239,150,93,196,143,135,149,158,76,116,236,98,50,94,184,122,114,92,49,75,46,123,161,254,58,163,139,153,242,53,68,189,56,253,169,152,243,
|
||||
145,133,228,172,195,199,127,32,187,134,107,184,188,128,70,125,127,247,118,3,91,41,156,47,11,203,197,44,118,167,114,190,206,47,151,60,219,240,231,205,21,63,238,87,186,116,86,198,227,70,243,80,214,197,47,249,199,119,214,112,34,37,24,140,43,112,39,63,214,241,196,108,187,12,155,49,5,149,114,224,7,86,30,30,110,230,246,27,203,199,107,214,116,97,30,240,96,174,223,248,140,0,125,88,57,73,250,120,253,230,73,21,147,248,188,179,18,71,38,90,95,119,133,58,207,188,221,157,58,107,9,77,77,148,165,5,59,195,202,0,80,161,94,215,96,70,164,124,187,13,82,173,197,209,117,76,126,149,93,90,191,57,65,196,88,151,44,33,202,10,167,116,106,234,112,111,213,197,183,37,67,1,207,46,164,121,1,65,116,190,207,187,243,225,245,240,117,42,198,80,178,8,142,217,165,254,64,161,93,187,176,255,25,87,210,154,43,80,169,203,174,239,226,121,246,198,254,230,53,157,68,116,77,148,44,25,94,189,169,117,235,107,101,159,111,67,202,109,247,142,65,96,186,147,145,36,
|
||||
163,108,37,247,13,0,44,236,79,207,174,81,141,7,219,177,87,121,7,254,136,158,58,166,54,57,86,108,55,161,59,31,238,135,10,178,253,3,90,211,3,114,217,168,239,169,63,241,139,242,145,44,165,139,244,226,155,253,169,151,236,197,250,196,196,239,221,178,53,36,130,9,65,160,80,180,155,183,230,132,50,12,215,33,124,138,34,4,237,233,237,131,23,4,229,213,86,203,63,10,15,127,123,126,254,202,53,172,105,124,160,38,138,245,37,161,143,250,37,158,92,218,56,148,109,102,186,73,73,132,75,223,34,202,23,52,24,39,70,206,210,239,47,174,50,181,83,192,91,73,17,162,119,100,123,38,119,100,143,70,150,43,9,110,138,8,142,207,159,156,98,189,184,14,58,129,97,13,73,222,59,90,101,22,198,143,40,53,24,104,132,83,226,87,250,211,55,122,213,46,200,101,125,50,161,159,47,63,42,3,232,37,162,6,38,27,125,163,107,219,187,27,51,127,121,30,31,54,125,71,219,84,195,191,37,34,181,215,234,168,192,55,12,39,207,147,49,47,164,11,113,134,48,125,48,177,
|
||||
63,113,41,219,98,148,186,195,94,147,165,181,151,249,158,242,123,158,40,2,60,40,220,37,158,58,135,1,135,154,227,14,33,252,21,51,248,249,206,159,42,13,166,230,10,184,19,18,215,150,49,137,231,178,213,69,82,168,73,220,0,59,126,74,193,215,132,159,56,190,253,90,11,62,39,254,196,245,171,6,239,178,81,255,77,239,191,115,172,153,93,113,197,88,239,53,103,213,252,167,38,83,150,133,76,32,202,130,115,85,226,125,60,184,180,93,6,24,194,199,59,129,96,152,36,224,31,13,210,7,122,160,5,200,108,0,230,171,55,122,183,86,179,215,168,199,44,76,87,23,126,105,73,5,75,73,110,156,167,92,253,65,29,220,7,247,132,168,6,24,44,246,65,64,125,37,3,211,160,105,176,169,88,168,138,195,150,245,128,75,241,82,22,135,32,198,215,153,213,241,228,203,1,149,96,125,116,192,149,118,249,160,231,129,224,93,110,229,247,203,98,63,20,69,46,110,44,225,111,124,90,82,46,114,195,12,114,55,107,40,175,185,164,196,42,88,38,176,162,213,61,1,195,14,22,138,
|
||||
74,43,10,71,146,132,126,255,248,236,59,219,28,185,127,85,186,242,58,224,239,76,52,95,97,187,45,80,181,95,163,229,222,185,134,125,100,148,106,133,223,202,80,204,252,183,186,0,32,135,21,212,40,226,43,50,223,249,100,98,89,8,153,140,121,117,170,90,178,254,159,113,249,82,250,200,248,127,52,129,246,242,5,35,44,229,40,48,140,63,125,174,190,238,234,45,220,66,38,173,250,191,14,28,255,28,8,125,213,147,253,235,152,191,6,173,248,34,142,145,190,204,242,215,49,146,47,241,188,137,113,235,127,218,187,254,200,152,191,14,252,127,213,94,94,238,188,246,17,213,247,222,114,252,215,230,248,111,117,199,159,116,252,181,249,63,160,209,30,197,87,236,135,229,106,46,225,127,255,192,94,50,190,212,250,79,109,101,253,63,61,118,246,243,242,130,113,205,229,240,231,232,132,143,255,94,125,188,191,30,253,251,181,172,245,104,54,180,87,63,25,254,127,242,61,244,107,87,222,55,174,54,241,143,203,27,143,2,182,232,126,124,25,254,15,225,231,239,196,215,95,77,102,191,56,158,
|
||||
216,110,92,164,25,176,243,232,79,58,18,222,252,7,238,132,134,215,60,159,4,251,249,243,172,39,15,128,189,59,82,245,145,162,154,253,125,200,127,240,110,111,222,177,153,253,50,70,223,155,112,152,158,95,172,156,223,153,251,127,142,147,29,89,127,227,170,116,111,66,218,163,197,165,253,173,65,245,103,158,48,70,109,252,199,223,69,253,45,118,16,61,86,101,186,100,35,246,120,137,215,248,247,254,239,63,30,243,71,248,75,91,254,193,82,8,255,3,53,152,206,122,115,241,223,169,206,30,230,162,91,178,127,179,51,103,56,246,211,237,199,13,242,136,1,227,171,198,189,126,144,78,215,216,72,80,186,127,106,62,184,214,119,24,3,26,203,82,149,238,221,158,241,28,203,67,146,35,149,8,250,225,32,67,121,116,28,157,231,54,96,253,142,96,193,194,1,197,84,214,239,115,42,167,48,110,227,53,132,184,91,3,149,96,50,7,126,19,157,38,173,117,245,205,128,61,66,124,212,15,53,178,72,236,21,104,21,57,91,186,249,150,125,17,222,124,96,212,98,109,224,59,163,81,50,247,
|
||||
94,87,166,57,11,2,176,0,8,140,18,172,129,36,104,75,222,76,44,12,216,200,106,1,98,185,102,139,116,145,39,0,241,163,82,83,4,47,68,129,201,222,170,245,242,21,68,63,76,44,41,233,27,89,39,184,112,180,150,157,255,226,95,252,143,255,246,171,205,191,255,21,39,66,226,216,63,69,96,8,250,103,204,157,126,38,230,239,125,197,25,65,74,38,56,221,153,48,146,42,31,180,115,108,160,22,35,224,54,43,130,253,131,55,240,123,197,6,197,24,219,169,216,60,163,252,132,140,87,229,87,154,254,192,141,70,230,121,160,139,44,220,0,112,140,64,116,129,38,172,216,76,100,250,212,179,239,87,133,91,119,219,251,204,189,180,10,187,209,107,167,235,91,107,252,64,18,197,91,120,215,22,43,117,56,13,125,150,231,121,14,51,197,169,59,218,147,246,217,3,171,120,5,190,62,184,103,31,120,144,132,69,61,146,166,13,244,184,154,101,59,171,62,1,228,154,186,49,28,193,177,129,83,89,254,128,55,99,177,240,237,100,229,99,1,14,158,166,236,19,165,37,150,34,254,209,
|
||||
65,249,25,203,119,5,174,152,22,118,98,8,168,6,77,49,32,233,168,131,101,42,144,79,112,100,67,60,88,163,13,225,209,123,175,24,203,216,69,213,177,80,56,45,145,42,15,110,88,44,45,242,158,249,251,172,214,210,34,65,162,35,50,1,111,34,186,68,32,205,194,25,10,206,6,230,72,104,86,161,96,42,20,202,23,134,186,3,88,9,10,150,184,59,164,146,225,64,201,77,31,189,149,173,161,220,174,75,99,79,232,48,12,113,29,29,70,60,186,142,97,78,156,248,21,22,245,16,202,182,251,106,66,205,182,50,61,115,168,94,248,100,188,189,87,29,230,241,171,27,229,157,65,225,154,204,133,45,242,152,136,117,24,151,51,1,25,214,20,225,40,254,98,72,227,109,241,250,178,190,115,24,54,225,38,17,39,13,168,44,76,181,90,101,177,182,86,121,175,215,218,167,77,138,85,64,199,63,95,153,234,154,73,147,191,28,77,155,7,122,226,6,121,178,18,142,68,86,32,150,145,86,237,240,35,106,62,148,101,237,62,220,10,55,68,224,254,94,48,236,58,179,16,230,164,251,
|
||||
14,19,175,217,244,69,124,217,115,188,29,215,118,191,166,132,190,140,85,67,60,14,15,138,223,193,38,145,233,245,239,153,121,237,184,106,100,23,131,240,60,234,47,27,35,249,140,175,148,5,96,192,17,43,74,96,94,209,90,115,62,134,7,240,53,119,161,91,37,123,238,193,166,198,74,230,114,24,58,146,171,175,89,230,131,193,111,19,203,1,118,98,48,128,83,50,182,223,107,250,39,62,155,217,79,109,92,93,33,40,83,187,55,31,189,14,123,137,108,209,133,139,223,160,151,178,181,142,223,216,26,18,161,20,228,80,172,250,19,140,68,253,226,60,54,176,151,68,177,136,251,125,86,208,253,236,150,193,188,226,159,129,236,203,57,14,62,165,75,205,30,248,254,16,55,202,115,237,1,158,223,46,204,160,11,162,173,134,115,97,186,47,247,163,185,150,197,231,119,233,242,101,153,47,60,219,248,4,44,185,188,90,17,54,81,66,19,191,11,138,31,240,201,70,52,207,193,148,244,94,163,142,14,93,30,27,191,182,40,252,80,115,29,200,128,68,187,26,205,133,33,135,53,62,225,125,
|
||||
218,42,85,163,107,138,160,137,102,232,242,79,174,133,113,233,245,240,128,121,49,18,23,167,186,253,194,30,71,205,236,229,67,43,31,72,5,3,246,131,109,233,13,78,198,15,37,68,237,48,242,12,47,80,21,160,129,249,169,36,47,112,42,199,127,154,33,74,141,72,129,99,119,240,132,235,132,205,40,154,30,103,213,4,26,10,112,127,192,121,179,209,119,11,196,156,110,159,108,49,11,65,224,167,54,203,11,53,254,250,34,198,228,196,28,233,100,63,182,68,149,70,26,250,10,157,102,203,221,236,16,72,100,69,24,193,126,151,210,32,130,234,137,10,247,16,24,51,16,42,184,85,198,96,16,240,208,117,14,214,134,3,41,170,48,192,31,165,82,65,5,224,185,96,45,222,150,74,201,114,146,185,213,128,24,133,246,44,2,36,88,71,145,167,86,16,118,70,73,17,236,187,142,209,209,216,163,30,142,115,168,194,1,212,202,179,137,135,72,14,56,49,33,249,9,99,167,214,146,185,110,253,62,151,89,134,126,36,92,122,102,60,78,82,29,88,113,115,28,149,255,82,172,151,197,169,
|
||||
65,77,155,125,166,131,79,250,236,117,94,164,127,155,98,4,125,135,244,72,164,103,167,65,209,115,168,0,200,37,144,30,209,140,151,150,115,43,76,208,24,61,234,224,54,2,118,165,239,64,235,219,82,30,52,238,5,92,100,89,212,214,129,189,239,88,5,16,241,139,113,24,150,58,225,228,9,234,67,241,7,99,50,161,61,96,64,117,54,85,96,111,34,97,93,204,128,223,39,18,213,1,8,20,9,200,96,43,35,252,55,43,176,165,1,52,187,61,209,70,14,95,234,102,243,136,82,116,167,64,170,87,166,108,126,30,143,223,74,74,141,161,147,155,212,80,47,194,180,6,28,197,255,152,107,48,93,63,25,140,7,197,7,196,203,12,48,106,250,188,145,7,124,28,131,126,61,22,46,180,20,28,12,108,242,166,55,235,252,204,127,158,190,43,172,5,235,226,52,143,90,103,216,120,64,39,164,103,8,80,212,230,237,150,216,201,103,8,207,130,15,169,135,106,25,225,133,184,13,45,38,93,233,6,41,182,150,34,43,0,232,200,31,185,230,86,53,58,70,83,117,225,105,64,216,61,
|
||||
59,63,72,0,59,52,145,131,112,115,92,154,16,103,192,249,116,213,141,144,15,243,36,6,85,67,59,13,195,232,120,20,75,186,215,135,185,40,27,186,119,77,14,154,241,140,44,234,111,238,218,33,73,134,22,32,14,83,18,13,30,167,157,123,216,203,116,163,85,249,89,10,95,172,250,216,23,9,170,130,80,222,25,158,133,220,75,10,240,162,101,147,122,208,183,0,156,206,145,219,84,163,62,67,151,252,155,103,223,204,32,177,133,67,227,227,3,130,249,133,217,75,74,190,74,204,234,241,157,27,1,37,119,237,29,79,196,97,40,39,64,14,47,244,122,252,33,187,180,67,201,139,16,27,157,29,73,93,234,233,182,168,160,71,115,190,121,50,119,149,214,147,164,189,151,9,185,236,112,244,7,46,175,75,166,193,213,199,203,160,64,12,185,130,171,11,37,226,109,8,180,147,130,55,14,57,247,195,35,98,185,57,68,26,78,33,239,76,192,76,162,17,199,147,146,254,221,250,92,8,248,128,221,135,175,133,105,71,160,130,223,14,142,131,8,42,16,103,100,66,181,239,3,224,232,253,
|
||||
104,52,190,76,67,125,244,221,133,2,113,71,95,127,242,99,140,17,70,108,67,49,208,26,81,84,94,116,61,54,143,163,71,210,144,227,79,207,245,103,125,246,228,129,14,85,5,73,60,181,118,241,29,104,241,86,175,82,152,235,123,0,186,191,128,202,193,201,12,215,79,74,123,180,159,220,147,39,21,175,150,209,180,173,41,54,139,34,209,139,191,76,205,21,39,120,98,33,119,200,245,252,131,169,192,110,184,68,16,216,66,104,110,251,234,24,136,23,129,161,55,129,78,136,244,157,4,227,177,57,227,228,133,198,168,115,128,71,45,102,20,50,30,22,55,196,125,163,19,150,79,200,174,124,225,110,149,230,223,26,62,30,238,149,209,162,22,54,26,220,214,5,208,231,228,97,186,3,138,204,143,208,166,181,69,204,16,142,94,145,175,84,212,81,43,37,106,201,201,128,6,114,229,133,27,244,109,65,202,141,19,147,3,73,204,77,158,87,236,165,173,191,171,51,182,107,33,2,172,2,240,206,33,167,1,127,110,48,116,2,245,26,104,11,215,242,95,192,179,194,21,42,139,100,210,250,
|
||||
39,26,102,125,237,78,88,77,170,117,56,120,127,243,232,84,72,170,109,56,0,223,79,176,68,123,6,76,131,68,242,224,76,139,134,113,194,49,80,136,164,127,158,212,193,15,241,238,115,169,156,206,140,165,178,50,241,101,145,163,1,17,129,183,105,103,160,21,84,196,97,62,169,94,208,3,30,143,187,0,126,212,141,27,22,113,191,198,36,89,134,185,209,36,110,148,162,160,230,238,84,236,22,171,73,139,68,238,191,18,210,180,52,111,110,160,250,135,216,144,253,33,244,160,131,10,2,153,94,96,43,26,152,119,102,154,23,243,97,94,50,96,110,91,138,133,45,218,164,139,14,22,157,132,29,183,179,92,165,231,131,119,194,57,104,145,137,126,231,75,150,10,34,237,23,191,64,98,0,115,41,16,38,28,165,246,237,221,107,88,240,234,144,25,89,130,40,122,75,79,182,211,99,119,200,9,225,146,24,72,107,231,203,83,165,249,169,117,140,208,81,245,188,70,209,226,35,24,159,78,111,31,170,158,74,124,242,140,64,253,179,81,36,172,145,168,14,176,150,77,220,212,93,3,102,2,
|
||||
160,104,177,152,6,165,99,36,210,217,228,164,62,200,76,79,234,133,160,20,68,207,110,33,245,19,143,83,143,149,159,56,114,41,146,73,48,169,85,143,36,149,106,201,222,32,107,98,5,197,128,12,249,130,171,168,81,36,172,111,127,138,120,237,104,49,204,109,65,194,198,103,13,99,132,143,115,74,213,166,70,13,143,11,125,242,85,64,80,179,38,86,75,131,187,14,76,210,44,45,125,155,147,4,2,184,173,46,92,225,10,71,161,21,165,174,114,224,192,197,202,119,88,29,206,172,243,2,27,115,232,212,189,164,84,193,195,162,216,78,78,240,176,198,243,179,156,122,167,123,55,128,237,254,41,120,224,24,64,251,126,135,45,227,181,126,114,89,63,116,225,97,97,36,115,76,59,170,190,103,7,10,51,81,110,28,0,195,188,255,240,30,224,83,179,227,52,47,173,127,51,129,172,214,197,2,126,50,120,119,54,109,27,22,162,145,149,155,83,133,165,5,77,94,233,175,10,169,83,234,66,48,168,146,108,51,31,211,21,108,223,164,19,81,130,218,123,182,96,164,193,86,48,249,53,250,
|
||||
12,196,104,75,39,113,239,11,82,147,102,237,147,140,225,114,67,94,254,68,27,69,119,205,64,174,78,11,161,129,17,20,120,87,49,56,185,247,161,18,148,39,188,227,189,240,243,155,180,66,175,190,67,225,125,238,2,140,171,171,228,172,163,90,0,13,34,131,3,14,235,68,10,54,167,240,125,56,253,58,16,42,109,70,136,130,113,242,38,211,102,111,170,123,178,6,202,250,96,104,227,170,23,178,69,59,144,156,190,139,1,64,0,202,54,191,125,170,175,43,72,171,81,241,74,109,83,232,115,51,99,98,142,194,114,17,127,46,210,229,166,48,35,166,10,128,48,146,102,131,223,65,4,47,142,158,120,124,246,65,168,170,247,206,9,136,24,188,13,159,208,88,153,254,229,136,117,250,202,142,239,149,1,80,1,95,240,4,209,46,136,132,44,33,111,44,57,17,1,20,62,66,190,135,70,196,23,41,130,208,177,100,228,151,238,83,245,225,171,24,68,211,137,233,46,38,245,139,68,128,4,190,159,19,106,208,223,122,31,238,82,56,8,24,106,75,189,87,153,88,244,0,238,115,10,212,
|
||||
188,29,69,250,128,162,100,146,200,13,82,158,239,214,88,173,137,195,241,142,251,96,150,35,223,137,71,244,67,67,236,145,69,119,48,184,190,236,244,3,79,244,1,202,229,217,181,135,41,215,129,141,193,45,7,179,56,214,147,234,204,123,41,175,169,248,40,172,181,128,65,186,188,169,4,114,90,148,120,61,49,114,189,152,76,171,198,86,11,114,114,174,104,96,252,205,1,175,7,189,51,15,128,188,171,89,144,5,191,32,33,156,103,16,244,131,166,138,175,2,93,44,164,90,192,149,63,5,2,147,188,134,141,249,72,198,249,249,193,228,67,109,53,50,114,246,30,53,192,40,67,127,207,168,210,198,7,164,139,137,124,140,47,134,99,239,221,81,50,62,126,131,242,25,171,185,249,17,252,138,130,166,138,31,133,154,212,253,38,244,175,80,216,144,248,216,19,146,106,151,71,93,229,21,200,17,107,177,142,206,243,147,31,47,66,175,171,224,246,99,19,235,126,34,46,65,253,36,222,92,238,230,162,161,148,103,2,48,254,202,58,16,151,34,1,4,235,207,169,5,195,181,99,73,175,157,
|
||||
72,5,136,56,248,39,65,155,115,0,33,8,222,43,169,28,100,66,236,128,161,171,114,3,212,42,169,3,82,118,236,149,254,185,234,227,29,229,192,42,37,58,233,1,107,96,83,55,87,117,124,96,196,144,184,128,146,153,27,135,140,128,81,65,21,78,14,56,90,128,7,0,189,3,57,144,255,228,149,78,205,32,80,75,210,28,104,170,218,112,97,199,130,238,64,128,151,188,20,172,232,45,228,88,137,180,131,45,247,158,151,113,215,160,217,241,216,53,224,176,57,6,100,60,78,252,46,165,95,55,216,56,247,2,110,34,167,130,84,17,14,234,176,3,115,10,98,211,170,15,71,77,6,32,189,24,146,31,126,47,55,184,138,220,221,106,225,86,113,185,227,244,119,252,201,128,86,210,159,39,172,40,191,90,116,0,40,175,17,90,40,227,217,29,209,121,37,211,176,42,115,164,208,81,150,199,201,171,31,118,242,218,41,24,100,246,1,96,243,156,32,233,61,221,185,24,194,116,77,25,127,187,196,2,121,70,92,33,122,144,113,189,113,66,0,250,89,74,213,166,139,229,96,97,93,95,
|
||||
249,132,2,195,110,108,211,129,87,80,238,198,135,218,150,45,194,39,62,55,209,159,129,218,109,12,204,133,223,177,145,241,83,94,139,138,7,250,147,143,20,158,189,183,234,8,189,234,88,40,161,9,13,230,154,225,97,124,137,212,195,91,247,237,49,221,72,91,1,136,76,221,172,24,64,52,167,45,65,67,238,124,202,135,27,193,54,114,93,72,147,38,234,96,67,180,234,76,183,39,2,176,85,120,135,209,181,62,17,59,184,133,213,193,177,60,7,21,132,254,6,82,17,194,158,136,159,245,128,138,137,152,248,71,188,230,158,85,3,212,148,136,210,240,129,128,104,174,149,218,160,214,182,21,166,172,175,147,197,9,159,55,73,224,207,248,211,95,113,31,7,176,0,95,213,240,106,102,19,244,90,18,125,20,112,233,7,64,76,10,124,1,231,178,103,85,18,43,6,110,221,13,107,31,33,249,225,46,95,48,41,235,2,41,8,203,143,3,109,199,31,149,25,196,119,48,119,165,180,161,223,235,89,244,198,220,192,56,226,163,87,167,37,50,193,220,100,154,3,178,255,44,2,20,162,114,
|
||||
227,181,233,140,42,56,74,2,112,144,77,195,61,230,187,104,195,82,81,113,237,226,185,60,125,205,199,146,34,251,109,173,150,82,171,53,59,71,122,131,87,107,134,147,8,156,193,78,51,215,105,177,170,249,13,18,205,188,63,45,241,134,235,41,185,231,233,212,52,71,221,19,246,104,148,155,192,154,102,88,100,131,125,47,1,4,153,107,246,113,119,57,21,97,200,106,13,232,24,129,96,149,23,88,216,92,98,70,164,176,248,71,91,227,175,151,96,161,76,202,218,2,88,251,132,119,138,141,207,152,235,64,112,42,149,138,99,87,140,3,5,174,34,129,29,205,205,45,97,163,147,228,154,30,12,33,166,70,146,180,142,149,100,27,7,79,129,181,95,179,67,142,216,177,15,96,211,64,100,152,90,203,200,249,25,157,211,22,30,62,89,102,136,164,99,167,217,182,31,92,248,188,11,138,238,133,144,90,95,177,173,37,108,6,230,217,70,84,8,69,69,135,143,222,30,153,23,105,90,35,18,74,78,43,110,138,11,123,28,185,47,253,220,112,176,197,2,41,13,103,206,85,124,209,203,11,
|
||||
198,15,206,168,111,59,87,136,164,223,112,186,28,130,64,88,201,241,128,225,196,90,187,31,0,80,142,28,203,179,226,188,25,207,146,76,58,122,196,74,12,16,164,65,214,2,168,5,57,22,238,153,226,27,112,11,11,193,63,25,141,145,243,239,88,240,243,204,55,159,135,126,128,15,90,199,220,146,228,125,143,93,17,28,38,231,198,135,212,192,21,125,46,12,124,157,52,78,121,141,117,183,157,84,37,217,238,31,118,104,9,30,52,175,232,120,11,86,51,158,49,127,189,34,240,7,209,196,196,21,91,123,18,100,234,3,119,58,29,157,107,203,126,9,118,32,110,183,246,80,248,165,113,5,208,161,192,37,192,122,91,13,190,218,109,1,226,77,207,130,3,1,109,25,148,170,238,73,96,208,197,6,217,153,59,180,0,206,57,207,222,249,224,209,134,46,158,85,193,231,205,247,19,101,37,30,181,115,19,98,6,129,238,200,199,238,173,2,69,16,198,124,172,87,221,75,175,92,209,95,117,225,160,135,175,188,172,139,147,9,190,244,20,234,125,82,213,63,174,71,124,38,51,242,6,71,
|
||||
76,145,124,14,81,81,45,238,25,80,49,187,34,99,69,41,191,67,56,100,224,45,236,84,153,88,29,15,115,207,70,81,52,163,112,24,253,182,180,179,183,27,175,204,160,146,162,208,239,213,197,224,217,130,164,142,19,72,86,191,134,69,12,186,218,176,99,233,42,51,101,170,134,77,173,10,177,130,94,42,58,34,2,158,129,162,54,19,84,85,114,13,122,116,202,112,104,48,162,112,97,193,198,19,19,194,78,121,173,241,212,99,207,152,73,133,228,240,180,138,127,103,17,63,102,95,69,84,91,101,169,115,214,50,110,125,143,163,66,190,181,206,120,0,104,120,145,161,119,70,229,175,158,85,235,251,62,150,175,211,190,214,146,43,32,199,120,58,177,216,211,8,180,57,155,73,109,62,67,124,226,195,212,225,138,181,230,88,203,61,103,42,92,45,215,120,123,215,37,86,203,102,100,141,242,71,169,159,250,75,188,191,14,245,199,180,158,13,6,11,22,205,90,26,49,107,110,153,126,210,87,4,154,238,104,63,60,194,80,246,206,98,159,207,73,73,163,173,171,36,148,70,33,172,101,71,
|
||||
128,20,253,23,54,10,146,212,11,89,10,73,121,143,236,11,72,161,113,183,48,70,238,105,216,32,115,126,164,165,112,17,25,196,2,236,159,0,97,1,187,234,94,217,114,165,3,127,14,18,252,17,32,66,237,78,219,195,135,131,103,149,158,217,130,237,255,205,25,34,35,15,118,236,211,71,210,35,70,253,10,197,120,92,68,12,12,50,187,26,147,243,132,140,49,39,88,10,155,42,190,223,124,47,114,29,201,181,93,111,45,6,131,211,137,234,250,100,139,133,142,37,92,180,140,220,86,188,106,57,208,166,133,230,51,210,223,219,144,148,107,129,251,211,132,82,32,35,198,209,218,85,155,112,44,137,12,45,122,88,37,234,61,195,180,64,89,126,245,197,0,67,22,155,220,199,108,221,86,203,213,31,205,65,129,144,185,12,67,219,211,66,130,137,42,144,38,81,51,52,239,240,163,151,44,128,11,222,65,79,190,26,104,189,122,4,255,101,249,239,26,83,145,187,23,148,30,169,140,34,244,56,197,219,10,250,12,168,100,54,56,131,5,159,141,46,88,103,151,72,218,108,218,125,26,84,
|
||||
198,232,97,194,124,10,251,204,85,8,133,90,184,7,148,145,98,216,39,126,109,51,133,62,86,227,180,27,0,212,45,170,122,247,24,4,229,194,128,54,206,74,54,6,113,19,198,136,170,207,103,146,186,134,29,63,247,206,132,254,57,15,79,77,160,25,39,99,47,240,30,215,77,133,222,53,206,9,41,188,50,129,247,252,48,227,72,208,233,140,252,167,11,75,124,144,54,102,210,248,159,56,59,28,34,89,203,33,113,229,3,179,119,25,106,172,218,200,107,42,163,6,52,137,202,56,73,127,206,190,176,63,184,80,44,64,23,244,62,191,80,39,118,212,153,203,181,111,139,66,77,78,18,156,10,64,57,23,228,142,56,152,81,153,9,50,176,80,248,185,90,191,16,88,79,150,111,86,16,43,58,198,48,103,180,153,4,12,169,89,144,112,35,8,18,92,201,80,219,94,2,227,190,208,149,227,149,158,57,121,115,228,5,160,52,246,231,79,68,142,218,230,54,222,206,161,225,157,229,177,216,114,237,43,93,169,137,254,243,39,22,101,62,142,195,206,4,21,157,102,220,165,76,236,235,99,
|
||||
183,230,233,117,82,15,30,226,54,163,196,206,97,5,254,147,207,85,210,107,114,189,166,102,1,236,210,172,32,14,254,8,34,203,227,246,160,64,184,117,132,87,210,200,208,183,23,230,197,180,156,67,17,198,81,87,162,131,208,210,99,47,144,200,158,41,153,189,254,58,71,44,116,48,183,176,193,76,126,62,145,56,82,52,196,139,242,210,244,42,76,220,196,89,27,188,166,57,53,93,109,186,160,235,43,90,92,142,39,78,255,227,129,218,150,69,132,233,28,234,238,216,183,141,87,193,15,173,237,17,27,181,148,159,192,51,218,184,65,87,139,111,225,91,5,210,0,89,73,13,24,186,210,45,216,172,244,228,180,238,240,59,55,34,16,100,179,101,75,83,255,213,61,181,232,205,195,240,42,107,69,216,17,209,3,127,161,188,163,63,119,115,129,240,91,161,22,68,126,79,113,221,5,132,213,230,74,141,236,60,163,153,252,141,62,199,100,124,173,170,63,173,10,248,74,176,231,122,100,250,220,79,250,147,181,121,51,26,32,36,21,154,37,222,188,27,27,55,194,38,25,213,92,162,50,254,
|
||||
52,215,111,166,217,1,7,237,24,240,240,161,191,130,79,37,42,23,97,213,92,160,221,52,104,40,220,132,31,240,171,23,148,147,176,230,60,130,236,206,163,134,182,135,178,46,63,74,124,19,24,189,29,42,5,138,210,120,15,236,245,1,141,84,204,19,186,168,133,58,53,27,98,224,156,47,49,160,15,36,110,227,27,108,141,155,73,212,92,36,200,235,121,66,208,49,13,80,186,52,211,52,13,170,105,31,88,224,115,38,248,138,30,180,21,139,43,117,154,67,15,6,88,21,14,220,8,76,39,4,153,219,142,36,58,11,45,199,179,180,47,127,208,223,212,36,117,56,93,3,172,135,210,129,12,82,253,227,57,103,79,145,152,161,174,7,64,4,5,104,114,196,192,219,168,192,98,77,214,108,131,60,233,11,112,7,26,200,179,136,247,82,244,120,115,84,119,91,71,254,125,210,148,80,237,56,145,41,126,220,172,3,236,120,196,44,91,199,35,151,39,159,14,141,248,56,20,237,181,61,240,12,221,167,235,77,103,224,95,123,39,69,36,241,139,169,58,69,41,66,132,172,82,214,220,88,
|
||||
115,200,87,58,239,102,233,146,179,97,183,95,241,126,209,206,24,20,184,17,234,231,99,86,117,134,203,110,108,153,110,105,30,232,46,61,126,211,226,119,88,58,120,1,173,22,101,175,57,241,16,16,23,58,144,251,170,183,95,191,227,161,154,243,243,199,163,213,60,90,167,3,233,9,145,146,210,152,3,38,228,120,218,63,138,13,17,46,125,119,109,186,118,9,16,32,114,102,236,76,185,129,24,129,69,234,82,35,94,219,106,133,83,117,15,217,247,216,134,227,211,23,63,230,129,212,54,192,102,189,62,74,236,165,170,116,156,52,34,38,187,93,254,13,1,137,114,244,75,226,129,111,102,130,106,50,27,63,125,223,222,105,234,212,67,176,202,76,95,235,155,137,103,222,202,1,38,11,246,86,106,170,210,12,62,3,149,144,4,101,66,210,67,29,60,114,0,46,153,173,59,166,47,203,128,93,77,53,230,24,118,156,65,136,206,61,5,206,240,198,249,218,58,224,205,195,59,112,144,60,17,106,67,203,172,37,179,78,55,24,242,175,103,8,49,76,8,117,113,122,115,128,48,116,177,79,
|
||||
217,119,225,95,123,166,229,206,33,105,247,231,141,61,20,56,254,116,189,193,63,95,105,147,111,115,229,236,235,235,41,11,48,55,242,140,143,125,210,252,89,175,97,73,255,204,181,168,54,29,245,88,135,27,68,155,223,240,123,135,233,50,115,213,135,148,18,211,254,69,1,221,2,193,139,137,13,186,184,184,108,126,184,160,0,32,250,185,68,13,34,47,137,69,174,51,196,184,247,16,198,192,26,49,34,33,248,43,30,177,101,185,182,148,134,165,57,51,177,51,55,232,42,161,187,220,236,202,40,84,136,117,225,38,165,72,109,53,203,151,211,18,243,142,65,47,15,11,47,158,182,4,69,226,40,57,99,36,27,43,25,111,90,2,220,31,88,227,123,12,185,1,186,62,130,217,182,88,220,29,13,90,49,242,215,124,104,101,129,5,63,110,6,113,134,191,96,18,150,47,243,157,36,11,109,211,100,51,113,26,97,218,101,71,142,129,148,150,17,61,25,243,61,90,145,243,122,198,221,173,160,76,85,153,113,178,78,142,123,50,247,238,158,58,62,44,68,50,68,116,126,185,138,221,54,118,
|
||||
150,151,39,194,45,227,186,57,81,255,241,243,109,23,86,100,109,165,127,159,189,231,144,197,183,236,134,23,19,201,161,53,103,30,189,100,241,118,183,91,24,132,244,235,250,102,94,3,104,198,21,197,60,132,234,193,243,97,48,14,177,161,221,46,21,117,202,100,174,94,45,75,160,89,51,172,96,245,176,25,125,29,24,138,247,185,67,36,192,193,147,157,177,55,173,117,227,175,95,64,254,126,168,147,214,216,123,212,178,211,42,176,77,3,80,186,114,215,137,10,32,82,202,229,42,42,250,235,242,239,103,252,100,226,53,97,159,119,104,42,248,126,88,177,195,121,248,171,231,85,252,215,30,252,4,213,103,54,188,125,112,7,132,88,41,111,123,73,50,142,80,182,156,54,82,196,182,20,20,127,24,247,117,103,3,220,201,206,130,204,108,159,189,29,185,17,148,202,43,191,254,104,15,217,255,76,124,122,224,124,73,209,72,126,152,133,81,211,33,156,248,4,174,210,62,212,62,31,217,104,178,238,240,107,240,187,76,7,139,25,205,40,2,17,217,142,176,35,192,252,4,87,182,254,44,145,
|
||||
123,215,214,131,146,54,41,211,220,247,107,134,158,9,87,32,93,113,25,251,147,8,153,157,117,117,136,79,144,184,108,44,24,113,11,106,156,203,15,28,188,19,109,5,213,115,212,97,164,17,135,190,159,215,122,182,79,46,252,13,198,138,23,99,47,81,255,45,198,142,241,43,121,140,58,221,145,151,4,228,213,151,156,189,134,197,56,243,116,142,54,106,150,180,138,92,236,250,34,176,7,237,204,35,146,160,176,229,171,104,65,34,1,24,11,223,55,247,186,5,121,252,171,88,232,110,95,152,158,9,24,255,143,134,0,18,209,14,3,103,93,224,138,225,158,190,14,79,208,118,35,138,178,235,2,159,104,140,210,146,102,24,0,198,53,94,156,237,13,120,58,92,51,255,130,150,55,84,70,156,191,207,223,196,240,78,80,92,44,111,80,123,158,117,91,116,249,223,212,30,212,62,114,81,3,253,142,242,194,159,252,243,44,10,223,197,161,197,79,104,148,181,220,222,64,217,14,214,75,41,251,219,250,233,220,52,251,235,21,144,9,178,43,62,83,110,134,24,89,199,124,227,224,106,160,219,
|
||||
3,94,148,155,6,217,109,51,95,63,43,16,10,175,108,84,11,13,24,222,233,16,220,50,209,234,80,242,113,84,171,57,80,85,109,13,136,252,240,4,49,89,210,6,61,9,136,170,67,105,134,108,170,124,216,163,247,137,27,84,70,209,123,231,9,151,123,164,155,12,252,75,101,127,184,79,2,49,76,80,190,245,43,162,102,40,227,149,113,214,1,155,201,93,185,6,156,184,228,51,242,98,178,252,157,191,192,193,76,239,28,30,91,232,229,2,167,249,49,223,79,38,115,179,250,69,191,239,50,127,249,64,254,74,95,238,251,137,213,198,228,191,18,35,253,62,196,167,52,161,47,207,12,63,134,168,223,248,152,119,137,202,171,41,129,205,244,249,107,143,243,169,190,32,181,88,223,244,23,124,211,18,40,153,146,199,190,82,234,86,102,249,41,121,232,223,240,14,99,190,75,143,79,199,82,103,204,86,128,4,185,24,25,153,53,223,220,190,57,30,153,145,53,222,177,39,202,92,201,189,203,247,78,170,204,49,220,196,254,133,69,230,195,56,21,147,93,63,158,96,84,198,121,13,199,85,
|
||||
51,24,67,188,75,215,190,107,230,100,8,204,195,33,64,177,39,251,205,255,159,61,90,251,27,206,198,232,223,161,112,125,230,127,220,89,223,224,235,86,255,215,239,177,219,123,246,140,147,78,191,222,136,201,116,213,35,216,75,201,216,155,251,175,240,238,255,64,14,151,42,120,237,190,83,51,4,215,178,127,213,47,144,43,83,121,243,194,255,35,115,252,159,23,155,181,219,254,75,237,238,11,163,7,230,217,147,133,206,21,182,250,95,248,239,226,170,101,178,230,223,37,196,244,245,248,84,127,237,41,247,114,124,117,55,203,40,80,105,142,19,151,49,239,242,197,50,246,198,202,24,204,31,172,99,127,229,89,214,70,149,33,237,127,20,166,3,230,48,135,71,221,62,250,127,18,238,255,239,143,175,192,78,30,252,183,249,49,109,32,93,249,8,242,108,61,157,254,203,227,226,63,92,247,164,141,165,151,227,17,230,191,42,54,254,243,122,255,255,127,247,255,119,223,253,135,199,161,198,20,9,174,20,255,203,247,227,63,200,23,128,57,89,175,2,106,135,255,170,57,220,133,215,35,132,63,
|
||||
233,151,150,255,207,169,113,205,127,104,113,162,229,43,114,134,55,176,253,191,209,220,119,39,168,169,191,68,243,158,253,223,4,19,127,7,143,131,12,154,190,237,241,23,244,95,32,231,190,98,163,36,78,15,81,127,4,48,120,16,175,118,124,207,152,255,124,46,99,235,89,116,49,31,5,2,19,164,27,74,138,31,87,225,178,8,203,54,151,15,150,77,229,202,143,225,199,60,109,224,64,188,96,7,135,39,133,174,53,78,172,141,220,181,63,49,205,77,9,76,23,159,69,56,207,41,124,60,28,9,130,111,142,187,219,179,56,169,246,108,193,104,154,196,254,169,27,207,143,223,203,194,84,177,72,89,132,206,243,50,92,248,147,75,207,254,183,159,239,148,44,223,234,165,61,231,221,148,8,104,38,205,162,61,226,166,97,142,40,139,52,195,115,120,217,159,60,123,122,112,153,41,252,188,118,121,184,217,55,95,247,240,231,51,211,6,50,200,129,161,146,239,79,59,164,43,203,23,239,186,157,186,241,209,68,24,2,59,120,107,33,184,233,64,155,114,179,88,50,243,157,165,152,64,164,1,
|
||||
150,113,109,142,238,146,139,182,124,249,123,247,33,121,221,229,127,88,113,32,68,245,194,236,71,217,147,34,200,195,27,75,115,45,127,39,150,16,29,77,121,77,71,241,115,254,202,91,21,153,125,50,153,210,171,91,254,234,240,146,219,68,137,19,225,191,52,139,123,21,60,222,228,37,86,95,103,185,22,86,215,158,210,34,10,157,100,63,215,214,106,52,36,63,47,166,57,213,124,144,238,181,192,127,238,213,103,26,13,6,178,227,72,151,125,103,104,41,206,4,39,139,183,81,47,127,222,15,235,206,191,121,63,127,28,140,16,240,225,40,181,186,173,53,114,137,8,243,216,154,140,90,91,24,170,199,80,192,251,166,203,0,40,130,95,228,103,120,159,119,168,32,90,211,193,127,99,62,200,76,251,11,223,222,27,30,214,152,43,94,115,19,19,114,71,79,26,243,64,145,76,245,148,140,202,90,30,121,224,127,221,131,115,175,227,223,222,227,46,145,109,204,194,154,227,83,189,70,5,97,150,236,1,143,219,140,46,124,47,71,87,108,69,249,242,195,32,127,7,35,176,241,117,5,151,210,
|
||||
65,139,80,131,250,48,40,68,197,221,215,235,91,44,102,199,120,28,28,244,246,239,227,2,251,131,11,74,209,187,11,135,9,194,0,197,149,99,4,38,250,243,185,187,254,204,77,45,99,175,60,21,230,100,36,55,196,226,143,52,188,241,183,102,139,132,222,39,112,160,104,0,45,55,254,165,64,208,56,250,39,7,160,109,141,21,174,252,140,141,105,60,125,37,102,122,186,43,206,128,253,77,175,224,2,75,35,14,26,18,178,57,117,116,198,50,54,159,152,238,63,234,251,137,119,155,92,107,253,163,223,13,127,78,43,5,71,180,223,89,120,26,4,66,222,228,43,162,145,166,154,190,176,20,182,100,7,82,103,205,186,26,3,77,96,126,77,61,122,128,159,15,234,255,236,43,39,112,232,211,232,164,210,78,40,12,93,134,179,45,116,71,93,128,1,74,78,129,74,43,208,70,223,160,26,99,15,13,10,48,193,93,225,216,29,238,0,236,234,181,112,179,95,200,159,240,72,7,231,220,96,234,102,101,236,237,239,90,39,251,154,134,205,30,192,122,211,20,191,223,235,215,147,20,222,129,
|
||||
201,188,232,52,136,106,157,8,123,223,68,98,15,244,161,246,80,6,160,117,32,35,217,35,126,146,195,88,222,173,54,77,35,230,121,225,212,165,249,242,3,142,90,27,180,25,205,26,163,83,128,22,44,147,61,42,205,179,244,195,53,121,227,122,18,185,246,137,189,130,32,78,159,61,137,204,59,152,31,17,188,105,46,92,175,215,94,123,193,96,177,180,196,130,252,4,157,28,156,154,155,108,175,104,62,156,118,42,132,109,182,252,96,163,209,62,39,178,63,130,63,20,25,181,179,124,246,210,20,62,80,243,233,126,190,4,198,146,187,29,231,205,72,34,205,72,64,101,34,210,71,18,146,210,216,139,160,179,137,54,134,236,180,207,169,95,90,169,173,86,187,172,82,169,200,183,60,88,133,30,118,236,111,11,145,36,17,239,160,89,164,145,119,41,18,212,150,184,19,90,213,10,43,238,154,254,44,202,7,55,143,154,119,59,232,43,161,41,167,19,105,59,29,235,38,52,103,128,193,0,189,41,123,64,246,48,50,109,77,154,38,39,46,148,141,147,216,68,62,110,118,42,71,41,125,111,
|
||||
58,246,208,87,100,107,174,8,40,220,82,75,61,205,219,45,217,94,3,189,142,251,196,221,135,14,207,253,175,9,30,240,138,181,31,98,52,95,164,74,213,15,33,170,170,99,233,6,196,219,16,229,191,220,79,254,153,221,250,131,163,124,98,87,111,193,159,212,44,184,15,213,163,178,130,199,29,106,92,123,210,87,99,20,234,230,247,88,246,186,45,184,219,125,231,87,107,238,76,79,182,129,52,232,111,51,241,158,124,244,85,214,107,103,75,129,129,19,252,142,104,154,163,80,99,71,25,152,23,168,230,201,91,85,178,115,146,117,174,205,107,38,39,202,72,250,173,147,7,29,168,23,43,78,91,135,117,96,119,210,116,59,83,249,105,142,244,230,250,191,137,173,207,216,153,255,51,15,68,114,39,91,169,188,66,95,250,180,187,243,16,81,216,162,16,70,244,248,92,175,113,9,18,198,222,20,129,173,182,27,233,117,203,13,100,137,239,6,144,182,41,206,82,74,47,123,58,11,80,232,53,210,132,20,57,24,227,184,43,10,109,5,83,117,27,209,126,40,53,240,94,148,56,26,58,33,
|
||||
153,13,87,173,88,229,122,213,123,177,118,53,165,33,41,132,64,37,183,89,66,70,56,212,151,169,93,179,140,250,2,53,253,180,38,61,144,142,90,66,119,248,164,199,182,241,92,136,192,91,38,21,22,70,140,163,49,254,133,235,236,214,157,149,102,43,107,68,140,54,153,101,24,7,131,111,96,127,127,103,245,119,115,72,171,206,7,172,167,29,49,152,111,61,58,75,161,249,47,158,240,250,147,241,172,129,242,135,185,161,79,158,148,101,34,151,194,73,241,113,2,160,3,154,137,211,29,172,64,205,144,189,71,252,77,45,205,177,1,219,134,87,136,19,165,63,251,130,232,234,215,141,174,12,142,188,164,249,154,144,47,162,57,245,72,227,203,55,132,18,82,123,198,131,210,8,155,104,68,153,213,20,228,52,69,75,210,230,5,201,12,102,235,146,245,143,19,93,182,183,8,184,103,7,221,142,102,239,72,241,183,141,178,123,131,42,232,255,163,154,51,217,114,22,187,178,240,171,212,156,1,125,55,20,162,239,69,15,107,121,64,43,250,30,4,60,125,161,200,63,211,233,85,118,218,30,
|
||||
214,48,34,4,130,123,207,217,103,111,133,248,242,148,18,165,74,238,196,18,46,174,56,226,233,19,41,242,109,173,47,146,192,162,125,239,216,195,66,17,32,65,87,4,38,18,208,5,131,25,198,8,91,87,197,254,236,86,219,183,105,24,209,111,61,139,110,25,110,208,115,52,72,244,58,129,128,191,72,144,215,252,54,124,85,157,145,118,7,73,184,208,170,110,42,180,182,123,150,213,225,173,143,247,152,21,238,125,230,20,248,30,165,69,236,79,230,154,188,160,44,9,161,140,116,201,24,201,250,174,149,227,36,41,166,106,32,186,218,204,176,23,26,153,104,16,34,247,229,182,34,115,112,150,230,110,191,52,246,115,25,149,214,115,12,204,89,162,21,92,112,227,245,53,55,223,190,167,146,182,232,49,220,181,83,177,157,243,175,245,185,36,132,199,127,168,193,168,79,223,45,98,139,174,227,190,46,49,3,252,5,65,65,17,11,62,251,60,144,183,130,1,232,57,168,89,58,25,43,109,71,236,32,41,82,94,77,69,20,142,33,176,239,78,238,124,244,140,137,157,16,227,41,0,108,175,
|
||||
39,20,10,148,138,120,168,185,155,166,19,5,56,216,166,120,151,40,171,82,189,17,195,236,0,153,43,33,142,231,204,195,125,173,245,123,247,147,14,154,13,205,235,44,202,32,155,13,84,13,156,190,187,233,221,208,51,120,17,57,217,0,184,244,134,220,251,128,248,28,65,253,125,197,89,147,248,240,92,32,186,130,92,200,115,7,102,220,74,186,115,69,140,83,136,249,224,44,178,14,44,112,224,227,26,164,138,206,72,150,220,162,122,22,105,251,186,251,167,18,135,1,36,247,195,188,98,116,55,163,200,70,138,158,199,188,247,129,108,197,154,16,200,230,121,75,214,25,139,177,119,64,198,204,77,97,107,215,110,3,183,126,35,250,18,176,103,225,118,47,226,249,172,196,101,146,243,5,21,240,153,6,145,245,178,160,56,6,200,28,89,227,11,131,215,58,202,50,118,32,144,221,184,135,85,95,180,64,132,169,204,140,68,7,150,153,157,27,115,175,53,54,60,97,7,39,75,70,244,196,159,85,98,157,211,184,155,87,242,213,62,49,34,241,161,21,205,163,75,186,160,220,193,18,84,206,
|
||||
176,176,122,89,51,128,81,6,72,15,15,46,241,94,206,106,207,224,234,99,196,164,99,62,188,58,116,63,18,139,141,203,121,128,127,214,57,17,60,20,117,55,83,169,143,221,177,26,207,36,222,108,138,1,8,148,16,58,228,210,103,144,11,18,198,197,216,219,144,202,88,78,39,25,32,7,67,216,81,50,84,140,228,161,50,190,147,20,42,142,179,102,132,232,170,173,168,145,223,177,24,17,214,242,46,44,47,193,64,42,65,63,247,237,150,111,86,97,206,65,174,39,201,127,58,74,85,204,38,9,37,224,250,196,38,124,97,22,158,213,215,179,10,124,8,56,214,164,35,49,10,221,110,123,13,168,99,184,25,70,68,153,225,96,234,120,164,112,21,157,192,16,1,215,5,181,203,52,225,150,252,251,194,171,23,86,241,195,122,14,45,9,100,51,252,186,36,49,250,62,184,222,114,123,147,200,87,91,71,11,162,167,158,191,51,112,118,27,58,122,219,170,144,2,155,183,94,215,25,189,46,203,233,191,248,14,92,236,234,19,63,247,106,250,246,3,47,173,188,188,101,159,230,3,212,97,
|
||||
32,5,183,119,81,226,115,232,9,22,1,4,144,124,35,208,250,73,79,42,217,58,39,225,185,109,29,233,58,132,173,2,196,162,237,101,38,80,98,91,68,198,24,234,91,119,218,42,220,13,119,36,161,141,48,112,82,46,194,150,7,93,177,16,167,187,190,56,191,234,239,149,200,159,40,117,8,75,169,189,178,110,138,202,165,161,168,190,167,122,33,87,47,224,204,137,245,251,101,164,244,194,10,226,17,247,219,103,71,236,75,142,62,121,12,88,119,143,61,124,170,133,92,145,147,90,222,128,85,58,225,192,43,67,49,245,200,89,139,188,188,60,154,185,213,238,75,32,173,67,20,174,9,74,126,174,58,63,18,173,204,63,83,164,122,64,200,122,194,165,157,206,171,131,230,222,35,131,239,101,2,39,233,194,65,49,227,153,67,144,173,187,118,204,249,141,81,219,58,236,125,95,205,201,61,134,45,1,95,129,173,134,68,206,30,102,242,189,211,150,176,239,4,113,231,53,166,106,236,119,79,236,52,112,22,96,161,130,51,39,42,21,192,190,160,114,73,92,243,54,94,42,127,192,151,217,
|
||||
102,69,234,81,21,230,140,5,233,19,63,235,61,140,231,32,194,87,203,59,33,82,174,62,42,89,33,180,206,97,111,212,193,189,207,30,105,222,46,41,235,34,44,160,84,70,232,192,21,167,122,84,118,133,31,237,82,158,197,4,192,25,94,70,130,52,211,228,107,38,142,234,9,153,140,48,119,240,209,240,250,204,38,248,190,212,222,115,243,129,92,88,209,59,84,109,78,130,237,79,107,182,4,247,246,17,170,248,158,179,237,194,50,214,222,128,23,20,180,149,114,249,132,1,224,230,126,94,75,81,120,71,178,38,48,113,209,113,108,102,59,39,248,174,215,193,153,231,38,56,121,80,81,128,162,195,12,36,216,45,138,175,151,251,162,105,61,90,238,64,85,80,128,46,147,54,112,143,35,44,41,142,199,200,47,41,255,199,220,40,120,160,67,247,57,92,78,96,67,18,18,127,80,65,182,238,61,157,68,123,238,131,200,109,37,233,28,104,234,191,107,200,144,80,62,21,140,189,75,1,38,66,110,102,132,203,231,103,124,166,222,241,129,32,29,140,187,70,94,201,130,207,84,232,190,47,
|
||||
41,179,116,135,141,197,50,120,145,246,100,88,248,16,99,200,45,61,30,180,178,30,178,178,235,24,33,121,226,194,227,182,110,157,90,79,177,65,247,37,155,73,192,70,159,30,243,239,231,197,191,246,243,206,237,3,251,69,67,171,28,167,64,71,41,28,13,148,108,74,139,136,185,193,234,251,60,136,10,84,6,75,99,219,153,18,37,137,15,133,126,66,88,56,231,26,70,144,82,103,100,224,26,213,129,254,212,73,156,196,213,94,5,244,218,0,141,115,57,225,40,16,173,45,38,207,135,159,161,144,183,77,122,106,222,203,191,111,143,197,63,27,224,165,96,160,22,97,208,133,162,100,92,105,24,218,215,150,193,89,156,133,22,5,248,128,192,0,91,164,127,253,104,231,239,244,90,236,55,122,237,235,191,161,215,190,101,179,121,124,76,195,110,75,129,121,62,239,128,40,217,15,166,122,87,79,122,18,224,44,190,3,170,158,196,222,190,65,244,93,38,33,149,229,202,45,222,190,176,245,189,179,123,95,126,4,143,165,33,110,115,168,18,173,141,78,174,120,165,40,67,25,78,56,74,22,
|
||||
5,190,93,50,185,222,34,163,170,81,66,130,25,120,229,224,153,159,57,41,96,200,153,54,32,122,53,120,78,171,209,233,63,62,2,23,26,19,80,195,251,211,135,223,115,48,12,170,131,221,209,92,190,206,113,94,5,18,241,97,143,161,157,104,15,162,213,131,253,57,19,213,215,228,3,62,127,86,196,140,140,188,109,225,188,194,219,66,227,24,167,130,244,168,167,122,238,109,162,97,75,19,63,37,167,98,239,121,136,3,158,245,146,39,136,216,219,243,185,51,91,112,150,62,234,147,236,188,59,74,43,176,25,12,153,34,216,79,62,143,102,48,249,113,252,62,125,224,72,96,234,71,68,233,168,241,46,105,248,234,75,78,217,207,67,55,183,254,25,55,137,116,103,220,125,117,134,59,116,23,208,243,227,128,128,231,181,9,91,200,149,50,67,35,50,212,54,91,105,168,51,203,132,28,120,11,63,87,238,0,199,28,50,43,186,255,158,211,226,36,193,195,69,117,114,131,179,114,183,79,57,106,65,232,109,207,150,154,218,24,119,119,62,199,151,78,239,101,110,170,167,180,69,39,79,185,
|
||||
76,137,121,170,31,72,107,65,101,1,46,227,199,155,225,183,227,94,217,48,182,87,129,144,94,38,55,173,133,26,19,210,4,51,135,238,202,83,78,223,100,70,27,98,77,218,17,183,19,24,238,188,209,12,121,110,211,153,11,203,23,83,230,126,38,142,52,75,215,209,238,37,147,30,102,155,20,144,59,197,10,208,79,3,171,188,101,5,29,99,231,141,140,6,171,227,84,33,178,250,146,92,19,75,32,48,9,47,104,73,3,91,209,210,105,109,159,163,89,142,22,98,139,69,85,5,109,18,137,171,69,242,156,175,227,203,21,220,203,59,157,102,237,5,22,65,39,186,69,40,211,251,246,31,94,233,110,141,125,240,101,181,48,128,71,30,135,240,129,143,15,219,12,237,66,140,98,176,230,249,30,31,90,28,75,98,54,207,200,100,157,111,205,26,26,89,241,99,221,197,74,243,172,182,109,61,138,91,104,200,138,94,225,211,141,215,25,244,43,35,175,199,104,34,150,253,212,43,217,143,194,180,22,85,228,108,142,224,56,138,188,38,37,63,65,71,1,77,131,208,158,178,151,18,61,73,
|
||||
107,40,171,201,70,185,149,88,70,203,195,173,101,106,176,202,73,213,197,152,214,79,130,189,134,54,190,127,212,49,231,75,160,75,65,106,3,63,74,40,241,49,210,113,172,44,231,146,64,44,192,211,11,241,126,110,110,179,168,238,81,122,58,125,171,116,77,156,190,79,148,138,196,247,32,24,197,233,145,186,166,10,12,70,105,157,213,27,158,198,207,203,157,161,138,142,214,17,198,208,225,212,51,183,52,80,200,99,152,13,248,105,88,239,128,101,46,141,219,144,224,251,205,245,18,4,46,248,97,119,101,177,66,245,154,159,123,226,118,78,199,229,178,59,194,203,44,208,32,33,145,254,12,187,98,134,219,104,242,108,140,68,189,152,29,192,9,240,68,47,208,95,239,108,132,120,26,230,119,188,151,41,145,167,83,135,101,206,60,118,142,106,178,79,168,171,195,67,155,159,222,115,244,121,16,102,152,109,90,102,40,171,244,92,30,183,132,249,144,196,131,95,18,193,54,60,217,90,70,3,158,43,132,88,148,153,148,217,7,176,54,15,1,218,241,171,247,131,198,107,113,199,35,226,24,230,
|
||||
226,226,201,237,226,7,166,239,225,209,124,241,181,110,141,145,0,40,137,72,73,130,46,189,61,145,117,95,144,149,38,200,165,240,115,58,22,72,120,72,182,233,61,210,147,173,96,41,20,168,235,168,62,240,114,167,225,68,167,113,79,191,175,21,39,23,191,84,6,3,110,34,33,132,129,24,144,195,202,189,61,41,234,76,211,232,183,118,196,147,14,239,24,20,82,33,40,178,117,183,140,142,119,63,89,251,106,102,120,98,125,41,182,142,173,48,233,126,255,206,145,253,185,40,252,93,45,200,145,42,16,208,188,6,140,6,183,220,112,54,122,200,144,181,134,63,62,176,210,29,100,22,19,35,208,241,142,198,219,202,4,240,224,108,179,80,71,123,117,126,162,176,7,219,190,211,249,204,156,248,6,164,232,40,232,79,251,46,184,71,83,121,35,8,198,200,185,88,154,213,193,144,107,184,71,81,56,197,246,206,184,124,183,148,51,205,193,186,117,122,50,232,162,0,17,17,232,17,123,90,76,240,241,132,117,225,40,42,251,171,143,87,110,92,239,166,45,30,164,73,18,40,232,44,36,178,
|
||||
145,5,180,207,48,27,11,187,247,14,246,233,81,110,1,141,159,62,210,190,83,152,127,127,63,94,11,189,55,189,145,237,89,118,32,239,5,158,42,111,8,30,13,182,6,213,30,220,12,179,87,178,40,247,108,24,80,14,113,47,53,183,179,110,138,237,14,220,165,25,203,174,8,208,180,101,147,145,111,9,212,108,159,159,45,171,192,48,230,65,50,187,58,216,49,98,133,136,85,220,2,41,42,234,58,106,144,234,200,51,243,128,157,241,206,234,234,93,144,225,79,116,7,94,97,237,250,226,32,135,177,14,42,59,125,213,99,160,52,137,238,234,243,26,52,161,54,84,140,171,185,195,192,12,172,218,86,124,160,182,155,138,48,100,14,23,64,134,104,113,126,130,244,251,222,120,183,186,109,63,62,180,150,174,16,196,217,94,233,186,129,151,180,84,123,174,138,177,218,6,218,229,106,150,162,202,148,99,238,101,153,23,165,217,48,110,169,39,134,114,193,22,53,11,246,62,76,244,52,242,217,67,109,154,116,130,88,253,179,38,164,190,108,235,142,128,110,169,226,118,20,20,242,142,16,121,
|
||||
1,193,37,69,140,243,48,121,113,222,180,206,105,91,5,145,191,208,234,76,233,20,128,37,33,14,198,18,177,93,117,130,225,206,235,163,197,30,116,243,195,69,211,135,36,37,142,134,109,99,122,249,24,54,53,190,189,18,193,211,78,99,61,120,9,248,121,76,195,32,76,251,11,205,252,50,167,19,245,206,55,27,219,225,73,178,230,227,22,200,194,202,59,60,127,165,94,144,89,238,29,10,130,116,107,19,251,196,105,122,29,84,137,20,8,96,100,130,89,123,117,35,80,105,93,27,193,135,63,126,104,135,35,93,26,38,120,107,155,217,189,83,196,126,83,188,12,19,36,190,8,41,98,171,6,110,242,85,93,137,9,72,70,189,229,13,2,1,140,59,1,211,91,233,142,44,203,115,181,17,205,120,20,126,16,108,10,24,123,215,213,44,20,202,195,160,155,235,38,6,134,187,104,94,197,10,10,213,2,27,95,188,58,80,47,150,186,114,27,29,19,15,218,156,232,161,154,79,73,139,160,121,202,151,222,132,56,84,228,3,62,162,155,137,246,176,122,228,61,217,0,136,65,202,159,235,
|
||||
74,158,216,59,132,221,67,13,202,36,246,235,254,92,31,25,159,114,153,2,111,136,26,25,98,217,225,49,175,195,224,26,200,231,32,28,207,193,176,171,151,41,14,47,83,8,199,201,171,89,250,131,209,115,55,151,212,50,240,89,148,104,52,97,56,10,201,93,194,28,190,78,226,32,170,201,91,157,228,196,186,50,154,246,59,179,2,112,136,164,157,66,79,51,209,169,94,188,143,120,12,162,189,247,80,172,8,72,132,97,110,73,153,76,246,214,253,232,133,250,152,243,189,62,177,16,10,6,122,87,223,116,231,222,161,242,14,176,109,194,80,239,158,137,124,61,105,7,124,81,44,50,218,5,167,121,135,110,93,160,102,107,56,178,162,225,219,210,57,88,52,161,156,136,107,151,82,175,126,104,172,205,193,197,251,57,223,213,108,95,30,134,186,25,46,64,152,54,213,141,101,174,119,126,142,249,196,105,236,49,152,80,242,124,38,38,16,48,87,167,12,126,163,242,126,17,62,24,206,69,253,252,148,150,218,201,178,59,90,183,197,93,163,54,228,119,239,117,87,253,57,246,172,114,245,92,
|
||||
226,189,21,230,92,46,25,123,46,177,96,63,49,147,151,192,83,181,142,147,42,246,114,127,130,184,110,117,237,118,202,179,163,136,43,108,37,136,6,7,157,105,117,90,203,47,99,184,198,173,125,122,111,92,155,60,168,130,253,208,103,42,188,182,245,200,86,123,41,249,112,239,207,213,217,114,170,86,202,49,23,1,239,134,136,104,177,39,29,183,106,146,123,22,183,125,9,182,239,43,240,75,58,19,64,102,142,253,158,161,99,109,61,193,88,175,74,196,79,193,2,108,162,230,158,139,97,143,121,220,185,28,80,164,28,207,142,198,166,86,145,123,156,211,131,216,39,104,15,96,215,254,51,161,183,17,1,154,134,130,29,193,83,69,46,248,196,131,208,176,218,36,230,199,237,89,190,4,219,238,12,69,199,153,254,76,176,109,85,21,127,7,140,19,24,172,128,196,2,220,130,153,215,123,248,202,231,170,73,167,39,72,157,172,118,129,36,40,120,108,20,189,252,221,222,212,81,28,96,58,15,238,123,117,121,220,137,222,240,39,126,7,246,216,143,171,141,91,35,36,36,192,226,42,150,121,
|
||||
174,227,199,157,229,209,121,79,247,158,200,221,66,220,54,220,152,198,184,71,173,217,163,92,208,242,106,64,243,51,46,4,26,239,138,220,203,82,40,160,48,91,116,105,95,48,5,143,19,62,71,139,242,56,183,254,32,166,126,29,99,35,238,86,172,83,14,208,48,130,108,14,242,148,143,222,215,214,136,243,113,103,38,104,17,44,95,186,43,229,150,42,252,238,131,62,73,88,225,180,65,216,170,60,223,6,243,230,28,45,217,22,200,161,74,103,184,202,46,175,76,93,110,225,32,123,101,250,92,119,203,215,46,69,198,45,168,173,106,170,109,221,62,45,193,47,183,221,224,189,237,89,167,139,218,221,145,244,94,179,137,86,168,149,230,11,157,229,173,76,32,170,24,158,229,46,238,89,24,215,89,133,138,81,245,192,202,245,197,10,235,115,65,193,89,165,63,167,196,205,204,5,161,146,75,11,113,218,136,77,218,121,183,54,51,49,205,135,65,194,154,245,45,184,171,48,15,244,168,109,99,62,124,225,254,116,182,173,171,155,141,193,29,19,190,207,250,46,92,20,177,16,69,18,59,122,
|
||||
143,0,60,210,64,45,63,213,227,51,238,180,130,82,213,88,228,33,191,91,174,88,87,213,22,159,85,129,159,84,66,218,84,200,181,227,167,216,4,62,12,117,34,186,135,41,190,111,29,139,238,119,238,200,215,195,171,44,127,106,211,202,91,72,253,99,16,135,59,35,10,201,219,168,14,194,72,63,76,102,27,228,123,243,188,155,4,242,223,214,37,208,207,249,184,136,221,77,190,15,189,153,221,181,207,143,253,139,169,37,19,90,196,138,112,233,72,126,197,210,28,169,82,159,90,68,126,67,67,211,1,24,171,216,118,148,196,222,78,207,210,101,158,103,57,27,67,96,86,128,81,131,142,155,77,107,75,75,0,243,112,104,205,212,30,228,206,159,53,14,125,44,110,142,81,15,234,225,0,170,36,63,140,216,14,121,120,176,58,22,232,204,84,207,12,155,83,81,191,72,4,203,56,118,77,128,196,4,133,241,164,200,84,3,188,203,57,242,116,65,247,105,75,238,236,164,234,61,49,51,253,248,198,201,117,99,23,156,200,83,32,91,230,171,175,75,106,53,242,254,114,32,32,236,216,128,
|
||||
124,55,36,221,169,179,131,6,181,223,146,49,13,10,226,65,94,181,28,152,245,232,17,194,213,199,46,68,28,117,159,146,201,34,2,6,194,96,53,28,106,116,122,173,195,129,188,184,125,70,173,23,155,111,27,188,180,224,30,150,176,69,239,38,215,139,232,171,51,94,82,214,99,165,205,38,253,8,250,36,57,243,71,237,89,31,160,70,212,166,148,65,235,69,119,53,136,56,34,144,2,136,62,210,110,241,225,161,101,158,1,94,169,65,149,24,35,171,88,139,66,85,52,186,163,7,126,106,168,161,136,7,255,8,192,154,57,209,197,148,234,152,14,196,102,46,95,69,123,25,77,102,37,89,202,251,192,72,192,56,143,226,222,140,6,104,211,120,159,203,243,151,54,5,242,64,173,243,98,63,241,53,53,252,138,141,192,115,21,65,107,201,128,136,134,236,254,60,227,34,198,215,77,53,99,96,160,220,143,253,122,91,9,209,176,82,37,52,174,188,79,206,69,108,193,200,133,206,83,157,53,195,34,72,131,136,21,191,82,211,235,206,46,157,136,77,148,204,63,233,134,111,185,211,214,125,
|
||||
10,76,100,95,242,200,200,46,212,54,153,152,72,7,243,212,205,155,198,156,58,137,15,206,134,151,88,64,131,109,149,204,14,176,14,62,160,120,95,239,1,229,251,22,12,113,238,234,140,183,230,78,228,223,78,84,123,64,66,225,179,105,190,116,97,190,46,201,182,134,25,213,122,239,199,249,165,181,134,15,171,98,210,135,244,197,97,113,63,56,44,19,82,189,100,186,227,205,60,143,25,121,239,97,43,72,237,54,152,176,202,60,31,206,200,70,126,229,206,237,237,29,242,82,42,195,135,199,164,33,234,19,17,113,85,16,241,218,114,217,158,104,82,80,58,255,141,207,215,184,39,39,120,220,5,196,156,204,112,122,67,0,195,211,187,7,202,102,38,97,21,222,152,118,8,80,31,56,81,79,78,104,76,149,204,125,184,243,23,20,167,142,222,74,247,181,40,89,19,30,30,40,12,41,144,124,34,36,63,198,131,10,184,205,65,237,200,127,8,248,240,1,142,106,6,227,245,64,23,52,194,5,108,134,109,205,93,9,10,198,30,136,157,195,75,161,14,109,186,137,217,186,208,125,87,201,
|
||||
4,140,134,159,23,217,212,53,185,44,192,148,60,110,59,172,63,102,73,72,191,184,46,62,253,66,66,63,217,42,124,137,97,228,151,244,117,175,202,252,120,132,31,103,245,115,144,156,53,251,41,208,163,235,111,113,47,250,154,91,48,233,44,225,174,176,12,143,237,8,171,23,92,49,30,244,7,89,178,34,127,200,181,18,159,188,126,35,84,142,85,91,60,224,221,192,239,190,71,9,20,25,84,177,123,155,98,102,127,169,179,226,166,133,211,14,60,94,139,175,96,236,204,43,160,129,192,45,48,35,96,209,74,160,71,90,10,162,240,171,212,115,113,109,31,225,110,77,183,254,85,30,9,82,136,187,236,100,25,223,254,63,241,170,165,243,232,222,13,141,84,229,124,165,119,84,163,4,248,126,18,232,133,78,102,70,45,64,154,164,135,54,171,138,202,191,59,176,249,50,210,215,37,28,240,39,81,198,208,166,103,249,220,124,166,56,183,166,33,83,174,131,53,161,162,129,224,60,200,205,219,133,209,135,5,12,157,226,229,6,147,100,32,88,81,238,173,65,183,166,135,205,246,89,125,31,
|
||||
252,121,95,91,201,150,123,90,5,158,20,42,167,46,144,136,230,237,23,11,212,59,84,132,163,143,129,248,122,31,3,130,185,97,129,95,130,164,253,220,244,37,80,141,25,184,208,163,57,105,108,46,48,110,65,245,112,195,108,234,36,131,3,117,232,65,106,114,75,219,62,38,74,106,76,86,224,205,158,121,240,233,209,130,246,82,182,174,46,88,233,158,73,218,145,5,12,40,98,164,122,171,59,153,90,62,176,155,130,218,166,190,25,76,88,191,181,249,231,237,173,143,246,133,68,62,61,74,249,11,18,22,99,94,251,3,199,91,35,112,109,5,177,179,90,154,188,221,185,172,237,26,47,197,11,243,167,47,119,165,117,186,239,68,156,174,100,177,131,148,56,125,205,43,200,0,89,194,49,110,136,93,251,57,231,128,72,222,14,47,100,81,209,40,168,7,24,232,63,190,4,91,28,49,223,201,65,131,15,12,233,250,36,168,185,105,214,103,116,243,142,28,40,116,119,47,101,238,185,15,225,38,51,195,235,212,223,112,201,240,200,47,202,38,80,254,65,162,13,194,95,20,83,229,161,254,
|
||||
78,73,206,68,65,135,253,254,174,45,254,253,61,135,212,105,240,68,99,241,151,16,169,5,95,242,232,95,213,224,221,240,243,216,184,196,135,10,74,35,139,92,243,158,22,246,50,112,11,17,30,193,101,204,132,203,2,116,192,21,73,15,101,178,191,51,184,73,33,106,113,153,43,147,207,87,138,223,235,54,112,123,124,239,165,208,131,57,83,193,30,97,109,180,73,108,42,205,117,81,85,198,87,35,76,27,212,223,210,14,249,141,191,115,64,216,24,239,173,114,73,9,50,26,196,41,100,96,226,44,148,164,208,139,200,246,129,138,62,178,56,229,146,228,37,18,147,11,236,171,220,22,232,165,229,19,133,231,189,212,243,33,50,55,144,117,5,8,186,81,211,149,154,119,8,51,251,237,26,40,203,242,174,218,160,105,177,60,59,134,36,225,31,22,26,163,26,157,222,214,96,133,179,247,158,57,241,81,169,237,34,59,93,157,218,241,249,170,11,71,56,123,31,39,96,175,194,19,158,57,168,143,178,217,12,27,46,193,237,133,245,35,37,63,251,70,147,22,0,38,244,87,15,182,233,181,
|
||||
122,19,73,14,253,154,222,189,177,205,141,109,162,70,227,247,144,157,244,12,86,168,91,34,236,65,3,128,86,183,9,168,115,184,231,109,54,173,179,137,252,132,215,196,244,31,247,209,59,234,40,175,213,196,42,199,159,186,109,44,99,175,115,165,1,168,35,175,191,47,120,253,65,174,85,23,91,105,178,215,93,91,207,63,104,171,91,249,139,72,204,113,193,239,52,91,226,15,90,182,151,221,137,30,151,48,119,31,182,158,254,238,181,124,107,18,90,146,47,248,19,118,121,217,101,196,103,83,82,148,9,39,167,194,211,244,96,71,255,91,103,149,141,177,183,49,133,170,197,237,73,245,54,88,57,14,147,31,95,39,201,230,74,160,232,150,62,66,145,14,111,232,141,205,144,104,128,154,183,38,175,169,167,151,128,78,71,46,84,206,202,236,119,18,101,82,164,208,169,243,233,95,196,180,120,93,40,208,6,189,73,84,142,93,98,17,54,222,50,92,200,229,178,187,70,207,45,178,213,44,224,42,43,243,76,81,185,77,190,72,205,105,128,194,34,92,3,117,194,154,220,212,191,181,254,84,
|
||||
209,182,58,4,235,13,186,125,121,134,104,252,145,240,117,64,252,220,35,52,231,73,229,169,115,45,136,133,140,90,146,2,239,231,50,232,243,108,42,253,88,227,62,43,33,172,255,228,212,76,134,198,150,47,91,192,173,61,80,26,195,151,149,253,34,211,238,195,107,250,132,246,143,84,35,18,111,27,227,43,62,223,79,146,175,126,219,168,63,237,67,141,10,207,161,252,94,15,31,19,215,114,239,52,143,234,117,64,153,119,6,233,247,241,71,123,139,28,204,64,138,69,201,49,153,85,71,122,229,10,169,210,33,179,216,177,68,199,220,154,115,44,105,12,159,180,201,31,82,182,103,33,96,173,51,113,215,23,16,187,65,134,173,48,109,229,166,121,142,192,110,75,98,149,3,128,255,40,184,110,101,151,233,188,221,182,188,53,97,25,64,251,233,117,96,39,173,124,66,123,1,136,170,79,68,102,31,108,43,21,102,193,27,21,235,51,42,7,172,82,106,196,45,32,54,246,29,84,199,0,211,237,217,119,64,145,244,238,208,113,36,147,130,62,109,0,64,20,67,205,66,110,113,176,151,66,
|
||||
88,186,59,115,118,76,220,213,211,10,229,234,187,96,58,234,241,35,115,148,65,132,238,248,142,75,74,27,62,190,115,237,209,125,109,65,240,120,234,100,191,208,42,64,63,152,135,228,133,143,250,139,195,100,190,67,146,251,60,254,169,143,208,63,238,243,253,144,168,50,188,67,201,129,52,254,242,16,94,231,207,185,180,239,188,21,190,120,204,159,211,88,127,154,181,95,170,166,198,41,207,95,4,91,237,75,176,21,190,164,79,231,75,213,148,127,14,251,124,15,27,190,135,185,191,29,246,125,195,247,247,172,255,191,94,203,73,184,247,190,252,223,8,182,255,110,77,190,164,209,223,247,130,149,253,242,55,130,173,243,165,142,254,229,107,21,226,56,171,204,127,176,223,118,251,79,175,157,121,26,124,168,195,191,8,182,206,151,96,251,151,123,253,61,148,17,42,205,250,69,176,253,207,239,227,246,97,95,130,173,246,37,216,254,55,235,246,0,127,8,182,194,151,96,251,151,181,232,253,65,176,45,165,89,156,192,18,248,33,216,58,95,130,237,95,222,147,129,29,213,4,98,191,17,108,173,
|
||||
207,254,37,216,146,219,47,130,237,245,111,239,237,94,247,31,130,173,220,117,202,47,130,237,240,37,216,254,101,157,84,219,146,78,133,125,215,124,36,39,159,179,40,166,217,19,200,255,102,15,82,9,242,44,242,193,158,172,77,161,143,248,31,254,246,125,187,127,181,86,141,87,233,210,221,243,90,57,253,253,30,254,105,77,158,47,133,79,122,245,177,13,193,22,20,176,17,49,104,9,61,160,230,233,18,187,10,214,3,120,15,129,197,232,73,148,58,153,6,221,119,36,218,194,148,242,85,45,222,165,183,40,158,207,203,100,92,68,214,227,162,6,246,99,121,64,180,169,248,12,0,169,48,142,139,36,29,127,168,253,24,227,253,237,178,107,74,14,255,135,96,187,89,227,154,37,141,9,255,16,108,133,63,17,108,131,210,33,19,60,110,138,250,58,167,25,156,175,69,39,10,167,7,55,132,50,46,100,243,219,128,166,158,36,5,12,34,56,3,68,97,137,214,47,130,109,81,144,7,148,252,35,193,214,66,244,63,8,182,42,47,76,224,167,224,129,36,225,127,253,123,243,127,254,246,183,
|
||||
255,5,18,135,102,209,
|
||||
|
||||
|
|
|
|||
|
|
@ -53,6 +53,7 @@ file
|
|||
forum.txt,
|
||||
spam.txt,
|
||||
2008.txt,
|
||||
NewCoreDone.txt,
|
||||
www.t,
|
||||
forum-header.txt;
|
||||
|
||||
|
|
|
|||
|
|
@ -30,10 +30,6 @@ TOPIC("LearnCpp$en-us")
|
|||
#include "LearnCpp$en-us.tppi"
|
||||
END_TOPIC
|
||||
|
||||
TOPIC("LearnCppFirstApp$en-us")
|
||||
#include "LearnCppFirstApp$en-us.tppi"
|
||||
END_TOPIC
|
||||
|
||||
TOPIC("Roadmap$en-us")
|
||||
#include "Roadmap$en-us.tppi"
|
||||
END_TOPIC
|
||||
|
|
@ -50,10 +46,6 @@ TOPIC("apps$de-de")
|
|||
#include "apps$de-de.tppi"
|
||||
END_TOPIC
|
||||
|
||||
TOPIC("apps$en-us")
|
||||
#include "apps$en-us.tppi"
|
||||
END_TOPIC
|
||||
|
||||
TOPIC("bazaar$de-de")
|
||||
#include "bazaar$de-de.tppi"
|
||||
END_TOPIC
|
||||
|
|
@ -90,10 +82,6 @@ TOPIC("chss$de-de")
|
|||
#include "chss$de-de.tppi"
|
||||
END_TOPIC
|
||||
|
||||
TOPIC("chss$en-us")
|
||||
#include "chss$en-us.tppi"
|
||||
END_TOPIC
|
||||
|
||||
TOPIC("codestyle$en-us")
|
||||
#include "codestyle$en-us.tppi"
|
||||
END_TOPIC
|
||||
|
|
@ -254,10 +242,6 @@ TOPIC("ss$en-us")
|
|||
#include "ss$en-us.tppi"
|
||||
END_TOPIC
|
||||
|
||||
TOPIC("svnInstall$en-us")
|
||||
#include "svnInstall$en-us.tppi"
|
||||
END_TOPIC
|
||||
|
||||
TOPIC("tutoring$en-us")
|
||||
#include "tutoring$en-us.tppi"
|
||||
END_TOPIC
|
||||
|
|
|
|||
562
uppdev/$.tpp/Reference$en-us.tpp
Normal file
562
uppdev/$.tpp/Reference$en-us.tpp
Normal file
|
|
@ -0,0 +1,562 @@
|
|||
topic "template <class T, class V, class HashFn> class AIndex";
|
||||
[ $$0,0#00000000000000000000000000000000:Default]
|
||||
[i448;a25;kKO9; $$1,0#37138531426314131252341829483380:class]
|
||||
[l288;2 $$2,0#27521748481378242620020725143825:desc]
|
||||
[0 $$3,0#96390100711032703541132217272105:end]
|
||||
[H6;0 $$4,0#05600065144404261032431302351956:begin]
|
||||
[i448;a25;kKO9;2 $$5,0#37138531426314131252341829483370:item]
|
||||
[l288;a17;*@5;1 $$6,6#70004532496200323422659154056402:requirement]
|
||||
[l288;i1121;b17;O9;~~~.1408;2 $$7,0#10431211400427159095818037425705:param]
|
||||
[{_}%EN-US
|
||||
[s5;%- [*@(64) template_<][*@(0.0.255) class][*@(64) _][*@4 T][*@(64) , ][*@(0.0.255) class][*@(64) _
|
||||
][*@4 V][*@(64) , ][*@(0.0.255) class][*@(64) _][*@4 HashFn][*@(64) >__][*@(0.0.255) class][*@(64) _
|
||||
][* AIndex]&]
|
||||
[s0;:`:`:AbortExc`:`:`:`:AbortExc`(`): [t class ][*t AIndex]&]
|
||||
[s0; &]
|
||||
[s0; [*C@4 T]-|Type of [^topic`:`/`/CoreTopics`/src`/AIndex`$en`-us^ elements]
|
||||
to store. T must satisfy requirements for container flavor identified
|
||||
by parameter V and must have [*C operator`=`=] defined.&]
|
||||
[s0; [*C@4 V]-|Basic random access container.&]
|
||||
[s0; [*C@4 HashFn]-|Hashing class. Must have defined [*C unsigned operator()(const
|
||||
T`& x)] method returning hash value for elements.&]
|
||||
[s0; This template class adds associative capabilities to basic random
|
||||
access containers, forming flavors of Index. It is used as base
|
||||
class for concrete index flavors, [* Index] and [* ArrayIndex].&]
|
||||
[s0; It allows adding elements at the end of sequence in constant
|
||||
amortized time like basic random container. Additionally, it
|
||||
also allows fast retrieval of a position of the element with
|
||||
specified value. Hashing is used for this operation. AIndex stores
|
||||
hash`-values of elements, so it has no sense to cache them externally.&]
|
||||
[s0; Building of internal hash maps of AIndex is always deferred
|
||||
till search operation. This effectively avoids unneeded remapping
|
||||
if large number of elements is added.&]
|
||||
[s0; Removing elements from an AIndex causes an interesting problem.
|
||||
While it is possible to simply remove (or insert) an element
|
||||
at a specified position, such operation has to move a lot of
|
||||
elements and also scratches internal hash maps. Thus removing
|
||||
elements this way is slow, especially when combined with searching.&]
|
||||
[s0; The solution for this problem is [*/ unlinking] of elements. Unlinked
|
||||
elements are not removed from index, but they are [*/ ignored][/
|
||||
]by search operations. Unlinking is a simple, constant time,
|
||||
fast operation. Further, it is possible to place an element at
|
||||
the first available unlinked position (rather than to the end
|
||||
of sequence) using the [* Put] method, reusing unlinked position
|
||||
in short constant time.&]
|
||||
[s0; The only problem of unlinking is that it breaks the so`-called
|
||||
[* multi`-key ordering]. This term means that if there are more
|
||||
elements with the same value in the index and they are iterated
|
||||
through using the FindNext method, their positions (got as the
|
||||
result of Find and subsequent FindNext methods) are in ascending
|
||||
order. The problem is that it is impossible to implement placing
|
||||
elements at unlinked positions in short time while preserving
|
||||
this ordering. On the other hand, usage scenarios for indexes
|
||||
show that need for unlinking elements and multi`-key ordering
|
||||
is almost always disjunct. For the rest of the cases, it is always
|
||||
possible to restore ordering by the [* Reindex] or the [* Sweep]
|
||||
method.&]
|
||||
[s0; Like any other NTL container, AIndex is [*/^topic`:`/`/Core`/srcdoc`/Moveable`$en`-us^ m
|
||||
oveable][*/ ]type with [*/^topic`:`/`/Core`/srcdoc`/Moveable`$en`-us^ pick
|
||||
and optional deep copy] transfer semantics, although these features
|
||||
are more important in derived concrete index flavors.&]
|
||||
[s0; Members&]
|
||||
[s0; &]
|
||||
[s3;%- &]
|
||||
[s4;%- &]
|
||||
[s5;:`:`:AIndex`:`:Add`(const T`&`,unsigned`):%- [@(0.0.255) void]_[* Add]([@(0.0.255) cons
|
||||
t]_[*@4 T]`&_[*@3 x], [@(0.0.255) unsigned]_[*@3 `_hash])&]
|
||||
[s2; Adds a new element with a precomputed hash value.The precomputed
|
||||
hash value must be the same as the hash value that would be the
|
||||
result of HashFn. The benefit of this variant is that sometimes
|
||||
you can compute hash`-value as the part of an other process,
|
||||
like fetching strings from an input stream.&]
|
||||
[s6; Requires T to have deep copy constructor.&]
|
||||
[s6; Invalidates iterators to AIndex.&]
|
||||
[s6; Invalidates references to Index.&]
|
||||
[s7; [*C@3 x]-|Element to add.&]
|
||||
[s7; [*C@3 `_hash]-|Precomputed hash value.&]
|
||||
[s3;%- &]
|
||||
[s4;%- &]
|
||||
[s5;:`:`:AIndex`:`:Add`(const T`&`):%- [@(0.0.255) void]_[* Add]([@(0.0.255) const]_[*@4 T]`&
|
||||
_[*@3 x])&]
|
||||
[s2; Adds a new element to AIndex.&]
|
||||
[s6; Requires T to have deep copy constructor.&]
|
||||
[s6; Invalidates iterators to AIndex.&]
|
||||
[s6; Invalidates references to Index.&]
|
||||
[s7; [*C@3 x]-|Element to add.&]
|
||||
[s3;%- &]
|
||||
[s4;%- &]
|
||||
[s5;:`:`:AIndex`:`:Find`(const T`&`,unsigned`)const:%- [@(0.0.255) int]_[* Find]([@(0.0.255) c
|
||||
onst]_[*@4 T]`&_[*@3 x], [@(0.0.255) unsigned]_[*@3 `_hash])_[@(0.0.255) const]&]
|
||||
[s2; Retrieves the position of the first element with the specified
|
||||
value in AIndex, using a precomputed hash value. The precomputed
|
||||
hash value must be the same as the hash value that would be result
|
||||
of HashFn. If multi`-key ordering is not broken and more than
|
||||
one element with the same value exists in AIndex, the lowest
|
||||
position is retrieved. If the specified value does not exist
|
||||
in AIndex, a negative number is returned. Unlinked elements are
|
||||
ignored.&]
|
||||
[s7; [*C@3 x]-|Element to find.&]
|
||||
[s7; [*C@3 `_hash]-|Precomputed hash value.&]
|
||||
[s7; [*/ Return value]-|Position of the element or negative value if
|
||||
value is not in AIndex.&]
|
||||
[s3;%- &]
|
||||
[s4;%- &]
|
||||
[s5;:`:`:AIndex`:`:Find`(const T`&`)const:%- [@(0.0.255) int]_[* Find]([@(0.0.255) const]_[*@4 T
|
||||
]`&_[*@3 x])_[@(0.0.255) const]&]
|
||||
[s2; Retrieves the position of the first element with the specified
|
||||
value in AIndex. If multi`-key ordering is not broken and more
|
||||
than one element with the same value exists in AIndex, lowest
|
||||
position is retrieved. If the specified value does not exist
|
||||
in AIndex, a negative number is returned. Unlinked elements are
|
||||
ignored.&]
|
||||
[s7; [*C@3 x]-|Element to find.&]
|
||||
[s7; [*/ Return value]-|Position of the element or negative value if
|
||||
value is not in AIndex.&]
|
||||
[s3;%- &]
|
||||
[s4;%- &]
|
||||
[s5;:`:`:AIndex`:`:FindNext`(int`)const:%- [@(0.0.255) int]_[* FindNext]([@(0.0.255) int]_[*@3 i
|
||||
])_[@(0.0.255) const]&]
|
||||
[s2; Retrieves the position of the next element with the same value
|
||||
as the element at specified position. If multi`-key ordering
|
||||
is not broken and more than one element with that value exists
|
||||
in AIndex, the lowest position greater than specified one is
|
||||
retrieved, so positions returned by subsequent calls to FindNext
|
||||
are in ascending order. When there are no more elements with
|
||||
the required value, a negative number is returned. Unlinked elements
|
||||
are ignored.&]
|
||||
[s7; [*C@3 i]-|Position of the element.&]
|
||||
[s7; [*/ Return value]-|Position of the next element with same value.&]
|
||||
[s3;%- &]
|
||||
[s4;%- &]
|
||||
[s5;:`:`:AIndex`:`:FindLast`(const T`&`,unsigned`)const:%- [@(0.0.255) int]_[* FindLast](
|
||||
[@(0.0.255) const]_[*@4 T]`&_[*@3 x], [@(0.0.255) unsigned]_[*@3 `_hash])_[@(0.0.255) const]&]
|
||||
[s2; Retrieves the position of the last element with specified value
|
||||
in AIndex, using a precomputed hash value. The precomputed hash
|
||||
value must be the same as the hash value that would be the result
|
||||
of HashFn. If multi`-key ordering is not broken and more than
|
||||
one element with the same value exists in AIndex, the greatest
|
||||
position is retrieved. If the specified value does not exist
|
||||
in AIndex, a negative number is returned. Unlinked elements are
|
||||
ignored.&]
|
||||
[s7; [*C@3 x]-|Element to find.&]
|
||||
[s7; [*C@3 `_hash]-|Precomputed hash value.&]
|
||||
[s7; [*/ Return value]-|Position of the element or negative number if
|
||||
value is not in AIndex.&]
|
||||
[s3;%- &]
|
||||
[s4;%- &]
|
||||
[s5;:`:`:AIndex`:`:FindLast`(const T`&`)const:%- [@(0.0.255) int]_[* FindLast]([@(0.0.255) c
|
||||
onst]_[*@4 T]`&_[*@3 x])_[@(0.0.255) const]&]
|
||||
[s2; Retrieves the position of the last element with specified value
|
||||
in AIndex. If multi`-key ordering is not broken and more than
|
||||
one element with the same value exists in AIndex, the greatest
|
||||
position is retrieved. If element does not exist in AIndex, a
|
||||
negative number is returned. Unlinked elements are ignored.&]
|
||||
[s7; [*C@3 x]-|Element to find.&]
|
||||
[s7; [*C@3 `_hash]-|Precomputed hash value.&]
|
||||
[s7; [*/ Return value]-|Position of the element or negative number if
|
||||
value is not in AIndex.&]
|
||||
[s3;%- &]
|
||||
[s4;%- &]
|
||||
[s5;:`:`:AIndex`:`:FindPrev`(int`)const:%- [@(0.0.255) int]_[* FindPrev]([@(0.0.255) int]_[*@3 i
|
||||
])_[@(0.0.255) const]&]
|
||||
[s2; Retrieves the position of the previous element with the same
|
||||
value as the element at the specified position. If multi`-key
|
||||
ordering is not broken and more than one element with that value
|
||||
exists in AIndex, the greatest position lower than specified
|
||||
one is retrieved (so that positions got by subsequent calls to
|
||||
FindNext are in descending order). When there are no more elements
|
||||
with required value, negative number is returned. Unlinked elements
|
||||
are ignored.&]
|
||||
[s7; [*C@3 i]-|Position of the element.&]
|
||||
[s7; [*/ Return value]-|Position of the previous element with same value.&]
|
||||
[s3;%- &]
|
||||
[s4;%- &]
|
||||
[s5;:`:`:AIndex`:`:FindAdd`(const T`&`,unsigned`):%- [@(0.0.255) int]_[* FindAdd]([@(0.0.255) c
|
||||
onst]_[*@4 T]`&_[*@3 key], [@(0.0.255) unsigned]_[*@3 `_hash])&]
|
||||
[s2; Retrieves position of first element with specified value in
|
||||
AIndex, using a precomputed hash value. Precomputed hash value
|
||||
must be same as hash value that would be result of HashFn. If
|
||||
multi`-key ordering is not broken and more than one element with
|
||||
the same value exists in AIndex, the lowest position is retrieved.
|
||||
If element does not exist in AIndex, it is added to AIndex and
|
||||
position of this newly added element is returned. Unlinked elements
|
||||
are ignored.&]
|
||||
[s7; [*C@3 key]-|Element to find or add.&]
|
||||
[s7; [*C@3 `_hash]-|Precomputed hash value.&]
|
||||
[s7; [*/ Return value]-|Position of the found or added element.&]
|
||||
[s3;%- &]
|
||||
[s4;%- &]
|
||||
[s5;:`:`:AIndex`:`:FindAdd`(const T`&`):%- [@(0.0.255) int]_[* FindAdd]([@(0.0.255) const]_
|
||||
[*@4 T]`&_[*@3 key])&]
|
||||
[s2; Retrieves position of first element with specified value in
|
||||
AIndex. If multi`-key ordering is not broken and more than one
|
||||
element with the same value exists in AIndex, lowest position
|
||||
is retrieved. If element does not exist in AIndex, it is added
|
||||
to AIndex and position of this newly added element is returned.
|
||||
Unlinked elements are ignored.&]
|
||||
[s7; [*C@3 key]-|Element to find or add.&]
|
||||
[s7; [*/ Return value]-|Position of the found or added element.&]
|
||||
[s3;%- &]
|
||||
[s4;%- &]
|
||||
[s5;:`:`:AIndex`:`:operator`<`<`(const T`&`):%- [_^`:`:AIndex^ AIndex]`&_[* operator<<]([@(0.0.255) c
|
||||
onst]_[*@4 T]`&_[*@3 x])&]
|
||||
[s2; Operator replacement of [* void Add(const T`& x)]. By returning
|
||||
reference to AIndex it allows adding multiple elements in a single
|
||||
expression, thus e.g. allowing to construct a temporary Index
|
||||
as part of an expression like Foo((Index<int>() << 1 << 2)).&]
|
||||
[s6; Requires T to have deep copy constructor.&]
|
||||
[s6; Invalidates iterators to AIndex.&]
|
||||
[s6; Invalidates references to Index.&]
|
||||
[s7; [*C@3 newt]-|Element to be added.&]
|
||||
[s7; [*/ Return value]-|Reference to AIndex.&]
|
||||
[s3;%- &]
|
||||
[s4;%- &]
|
||||
[s5;:`:`:AIndex`:`:Unlink`(int`):%- [@(0.0.255) void]_[* Unlink]([@(0.0.255) int]_[*@3 i])&]
|
||||
[s2; Unlinks the element at the specified position. The unlinked
|
||||
item stays in AIndex but is ignored by any Find operation.&]
|
||||
[s7; [*C@3 i]-|Position of item to unlink.&]
|
||||
[s3;%- &]
|
||||
[s4;%- &]
|
||||
[s5;:`:`:AIndex`:`:Put`(const T`&`,unsigned`):%- [@(0.0.255) int]_[* Put]([@(0.0.255) const
|
||||
]_[*@4 T]`&_[*@3 x], [@(0.0.255) unsigned]_[*@3 `_hash])&]
|
||||
[s2; If there are any unlinked elements in AIndex, one of them is
|
||||
replaced by specified value. If there are no unlinked elements,
|
||||
the element with the specified value is appended to the end of
|
||||
AIndex using [* Add]. The precomputed hash should be same as the
|
||||
result of HashFn. The position of the placed element is returned.&]
|
||||
[s6; Invalidates multi`-key ordering.&]
|
||||
[s6; Requires T to have deep copy constructor.&]
|
||||
[s6; Invalidates iterators to AIndex.&]
|
||||
[s6; Invalidates references to Index.&]
|
||||
[s7; [*C@3 x]-|Element to put into AIndex.&]
|
||||
[s7; [*C@3 `_hash]-|Precomputed hash value.&]
|
||||
[s7; [*/ Return value]-|Position where the element was placed.&]
|
||||
[s3;%- &]
|
||||
[s4;%- &]
|
||||
[s5;:`:`:AIndex`:`:Put`(const T`&`):%- [@(0.0.255) int]_[* Put]([@(0.0.255) const]_[*@4 T]`&_
|
||||
[*@3 x])&]
|
||||
[s2; If there are any unlinked elements in AIndex, one of them is
|
||||
replaced by specified value. If there are no unlinked elements,
|
||||
the element with the specified value is appended to the end of
|
||||
AIndex using [* Add]. The position of the placed element is returned.&]
|
||||
[s6; Invalidates multi`-key ordering.&]
|
||||
[s6; Requires T to have deep copy constructor.&]
|
||||
[s6; Invalidates iterators to AIndex.&]
|
||||
[s7; [*C@3 x]-|Element to put into AIndex.&]
|
||||
[s7; [*/ Return value]-|Position where element is placed.&]
|
||||
[s3;%- &]
|
||||
[s4;%- &]
|
||||
[s5;:`:`:AIndex`:`:FindPut`(const T`&`,unsigned`):%- [@(0.0.255) int]_[* FindPut]([@(0.0.255) c
|
||||
onst]_[*@4 T]`&_[*@3 key], [@(0.0.255) unsigned]_[*@3 `_hash])&]
|
||||
[s2; Retrieves the position of the first element with the specified
|
||||
value in AIndex, using a precomputed hash value. The precomputed
|
||||
hash value must be the same as the hash value that would be the
|
||||
result of HashFn. If the specified value does not exist in the
|
||||
AIndex, it is placed to it using [* Put(const T`& x, unsigned `_hash).]
|
||||
The position of the found or placed element is returned.&]
|
||||
[s6;~~~.992; Invalidates multi`-key ordering.&]
|
||||
[s6; Requires T to have deep copy constructor.&]
|
||||
[s6; Invalidates iterators to AIndex.&]
|
||||
[s6; Invalidates references to Index.&]
|
||||
[s7; [*C@3 key]-|Element to find or put.&]
|
||||
[s7; [*C@3 `_hash]-|Precomputed hash value.&]
|
||||
[s7; [*/ Return value]-|Position of the found or placed element.&]
|
||||
[s3;%- &]
|
||||
[s4;%- &]
|
||||
[s5;:`:`:AIndex`:`:FindPut`(const T`&`):%- [@(0.0.255) int]_[* FindPut]([@(0.0.255) const]_
|
||||
[*@4 T]`&_[*@3 key])&]
|
||||
[s2; Retrieves the position of the first element with the specified
|
||||
value in AIndex. If the element does not exist in the AIndex,
|
||||
it is placed to it using [* Put(const T`& x).] The position of
|
||||
the found or placed element is returned.&]
|
||||
[s6; Invalidates multi`-key ordering.&]
|
||||
[s6; Requires T to have deep copy constructor.&]
|
||||
[s6; Invalidates iterators to AIndex.&]
|
||||
[s6; Invalidates references to Index.&]
|
||||
[s7; [*C@3 key]-|Element to find or put.&]
|
||||
[s7; [*C@3 `_hash]-|Precomputed hash value.&]
|
||||
[s7; [*/ Return value]-|Position of the found or placed element.&]
|
||||
[s3;%- &]
|
||||
[s4;%- &]
|
||||
[s5;:`:`:AIndex`:`:Set`(int`,const T`&`,unsigned`):%- [@(0.0.255) void]_[* Set]([@(0.0.255) i
|
||||
nt]_[*@3 i], [@(0.0.255) const]_[*@4 T]`&_[*@3 x], [@(0.0.255) unsigned]_[*@3 `_hash])&]
|
||||
[s2; Replaces the element at the specified position with a new element
|
||||
with the specified value, using a precomputed hash`-value. Speed
|
||||
of this operation depends on the total number of elements with
|
||||
the same value as the specified one.&]
|
||||
[s6; Requires T to have deep copy constructor.&]
|
||||
[s6; Invalidates iterators to AIndex.&]
|
||||
[s6; Invalidates references to Index.&]
|
||||
[s7; [*C@3 i]-|Position of the element.&]
|
||||
[s7; [*C@3 x]-|Value to set.&]
|
||||
[s7; [*C@3 `_hash]-|Precomputed hash value.&]
|
||||
[s3;%- &]
|
||||
[s4;%- &]
|
||||
[s5;:`:`:AIndex`:`:Set`(int`,const T`&`):%- [@(0.0.255) void]_[* Set]([@(0.0.255) int]_[*@3 i
|
||||
], [@(0.0.255) const]_[*@4 T]`&_[*@3 x])&]
|
||||
[s2; Replaces the element at the specified position with a new element
|
||||
with the specified value. Speed of this operation depends on
|
||||
total number of elements with the same value as specified the
|
||||
specified one.&]
|
||||
[s6; Requires T to have deep copy constructor.&]
|
||||
[s6; Invalidates iterators to AIndex.&]
|
||||
[s6; Invalidates references to Index.&]
|
||||
[s7; [*C@3 i]-|Position of the element.&]
|
||||
[s7; [*C@3 x]-|Value to set.&]
|
||||
[s3;%- &]
|
||||
[s4;%- &]
|
||||
[s5;:`:`:AIndex`:`:operator`[`]`(int`)const:%- [@(0.0.255) const]_[*@4 T]`&_[* operator`[`]
|
||||
]([@(0.0.255) int]_[*@3 i])_[@(0.0.255) const]&]
|
||||
[s2; Returns the element at the specified position.&]
|
||||
[s7; [*C@3 i]-|Position of the element.&]
|
||||
[s7; [*/ Return value]-|Constant reference to element.&]
|
||||
[s3;%- &]
|
||||
[s4;%- &]
|
||||
[s5;:`:`:AIndex`:`:GetCount`(`)const:%- [@(0.0.255) int]_[* GetCount]()_[@(0.0.255) const]&]
|
||||
[s2; Returns number of elements in AIndex.&]
|
||||
[s7; [*/ Return value]-|Actual number of elements.&]
|
||||
[s3;%- &]
|
||||
[s4;%- &]
|
||||
[s5;:`:`:AIndex`:`:IsEmpty`(`)const:%- [@(0.0.255) bool]_[* IsEmpty]()_[@(0.0.255) const]&]
|
||||
[s2; Tests whether AIndex is empty. Same as GetCount() `=`= 0.&]
|
||||
[s7; [*/ Return value]-|true if AIndex is empty, false otherwise.&]
|
||||
[s3;%- &]
|
||||
[s4;%- &]
|
||||
[s5;:`:`:AIndex`:`:Clear`(`):%- [@(0.0.255) void]_[* Clear]()&]
|
||||
[s2; Removes all elements from AIndex.&]
|
||||
[s3;%- &]
|
||||
[s4;%- &]
|
||||
[s5;:`:`:AIndex`:`:ClearIndex`(`):%- [@(0.0.255) void]_[* ClearIndex]()&]
|
||||
[s2; Restores multi`-key ordering.&]
|
||||
[s3;%- &]
|
||||
[s4;%- &]
|
||||
[s5;:`:`:AIndex`:`:UnlinkKey`(const T`&`,unsigned`):%- [@(0.0.255) int]_[* UnlinkKey]([@(0.0.255) c
|
||||
onst]_[*@4 T]`&_[*@3 k], [@(0.0.255) unsigned]_[*@3 h])&]
|
||||
[s2; Unlinks all elements with specified value using precomputed
|
||||
hash`-value. Unlinked elements stay in AIndex but are ignored
|
||||
by any Find operations. Precomputed hash value must be same as
|
||||
hash value that would be result of HashFn. &]
|
||||
[s7; [*C@3 k]-|Value of elements to unlink.&]
|
||||
[s7; [*C@3 h]-|Precomputed hash value.&]
|
||||
[s7; [*/ Return value]-|Number of elements unlinked.&]
|
||||
[s3;%- &]
|
||||
[s4;%- &]
|
||||
[s5;:`:`:AIndex`:`:UnlinkKey`(const T`&`):%- [@(0.0.255) int]_[* UnlinkKey]([@(0.0.255) con
|
||||
st]_[*@4 T]`&_[*@3 k])&]
|
||||
[s2; Unlinks all elements with specified value. Unlinked elements
|
||||
remain in the AIndex but are ignored by any Find operations.&]
|
||||
[s7; [*C@3 k]-|Value of elements to unlink.&]
|
||||
[s7; [*/ Return value]-|Number of elements unlinked.&]
|
||||
[s3;%- &]
|
||||
[s4;%- &]
|
||||
[s5;:`:`:AIndex`:`:IsUnlinked`(int`)const:%- [@(0.0.255) bool]_[* IsUnlinked]([@(0.0.255) i
|
||||
nt]_[*@3 i])_[@(0.0.255) const]&]
|
||||
[s2; Tests whether the element at the specified position is unlinked.&]
|
||||
[s7; [*C@3 i]-|Position.&]
|
||||
[s7; [*/ Return value]-|true if element is unlinked.&]
|
||||
[s3;%- &]
|
||||
[s4;%- &]
|
||||
[s5;:`:`:AIndex`:`:Sweep`(`):%- [@(0.0.255) void]_[* Sweep]()&]
|
||||
[s2; Removes all unlinked elements from AIndex. Complexity of the
|
||||
operation depends on the number of elements in AIndex, not on
|
||||
the number of unlinked elements. Also restores multi`-key ordering.&]
|
||||
[s3;%- &]
|
||||
[s4;%- &]
|
||||
[s5;:`:`:AIndex`:`:Insert`(int`,const T`&`,unsigned`):%- [@(0.0.255) void]_[* Insert]([@(0.0.255) i
|
||||
nt]_[*@3 i], [@(0.0.255) const]_[*@4 T]`&_[*@3 k], [@(0.0.255) unsigned]_[*@3 h])&]
|
||||
[s2; Inserts an element with the specified value at the specified
|
||||
position, using a precomputed hash value. The precomputed hash
|
||||
value must be the same as the hash value that would be the result
|
||||
of HashFn. This is a slow operation, especially when combined
|
||||
with any search operations.&]
|
||||
[s6; Requires T to have deep copy constructor.&]
|
||||
[s6; Invalidates iterators to AIndex.&]
|
||||
[s6; Invalidates references to Index.&]
|
||||
[s7; [*C@3 i]-|Insert position.&]
|
||||
[s7; [*C@3 k]-|Element to insert.&]
|
||||
[s7; [*C@3 h]-|Precomputed hash value.&]
|
||||
[s3;%- &]
|
||||
[s4;%- &]
|
||||
[s5;:`:`:AIndex`:`:Insert`(int`,const T`&`):%- [@(0.0.255) void]_[* Insert]([@(0.0.255) int
|
||||
]_[*@3 i], [@(0.0.255) const]_[*@4 T]`&_[*@3 k])&]
|
||||
[s2; Inserts an element with the specified value at the specified
|
||||
position. This is a slow operation, especially when combined
|
||||
with any search operations.&]
|
||||
[s6; Requires T to have deep copy constructor.&]
|
||||
[s6; Invalidates iterators to AIndex.&]
|
||||
[s6; Invalidates references to Index.&]
|
||||
[s7; [*C@3 i]-|Insert position.&]
|
||||
[s7; [*C@3 k]-|Element to insert.&]
|
||||
[s3;%- &]
|
||||
[s4;%- &]
|
||||
[s5;:`:`:AIndex`:`:Remove`(int`):%- [@(0.0.255) void]_[* Remove]([@(0.0.255) int]_[*@3 i])&]
|
||||
[s2; Removes the element at the specified position. This is a slow
|
||||
operation, especially when combined with any search operations.&]
|
||||
[s6; Invalidates iterators to AIndex.&]
|
||||
[s6; Invalidates references to Index.&]
|
||||
[s7; [*C@3 i]-|Position of the element to remove.&]
|
||||
[s3;%- &]
|
||||
[s4;%- &]
|
||||
[s5;:`:`:AIndex`:`:Remove`(const int`*`,int`):%- [@(0.0.255) void]_[* Remove]([@(0.0.255) c
|
||||
onst]_[@(0.0.255) int]_`*[*@3 sorted`_list], [@(0.0.255) int]_[*@3 count])&]
|
||||
[s2; Removes multiple elements from AIndex. Time of operation only
|
||||
slightly depends on the number of removed elements. This is a
|
||||
slow operation, especially when combined with any search operations.&]
|
||||
[s6; Invalidates iterators to AIndex.&]
|
||||
[s6; Invalidates references to Index.&]
|
||||
[s7; [*C@3 sorted`_list]-|Pointer to array of positions to remove, in
|
||||
ascending order.&]
|
||||
[s7; [*C@3 count]-|Number of elements to remove.&]
|
||||
[s3;%- &]
|
||||
[s4;%- &]
|
||||
[s5;:`:`:AIndex`:`:Remove`(const`:`:Vector`<int`>`&`):%- [@(0.0.255) void]_[* Remove]([@(0.0.255) c
|
||||
onst]_[_^`:`:Vector^ Vector]<int>`&_[*@3 sorted`_list])&]
|
||||
[s2; Removes multiple elements from AIndex. Same as Remove(sorted`_list,
|
||||
sorted`_list.GetCount()).&]
|
||||
[s6; Invalidates iterators to AIndex.&]
|
||||
[s6; Invalidates references to Index.&]
|
||||
[s7; [*C@3 sorted`_list]-|Sorted Vector of positions to remove.&]
|
||||
[s3;%- &]
|
||||
[s4;%- &]
|
||||
[s5;:`:`:AIndex`:`:RemoveKey`(const T`&`,unsigned`):%- [@(0.0.255) int]_[* RemoveKey]([@(0.0.255) c
|
||||
onst]_[*@4 T]`&_[*@3 k], [@(0.0.255) unsigned]_[*@3 h])&]
|
||||
[s2; Removes all elements with the specified value using a precomputed
|
||||
hash`-value. The precomputed hash value must be the same as the
|
||||
hash value that would be the result of HashFn. This is a slow
|
||||
operation, especially when combined with any search operations.&]
|
||||
[s7; [*C@3 k]-|Value of the elements to remove.&]
|
||||
[s7; [*C@3 h]-|Precomputed hash value.&]
|
||||
[s3;%- &]
|
||||
[s4;%- &]
|
||||
[s5;:`:`:AIndex`:`:RemoveKey`(const T`&`):%- [@(0.0.255) int]_[* RemoveKey]([@(0.0.255) con
|
||||
st]_[*@4 T]`&_[*@3 k])&]
|
||||
[s2; Removes all elements with the specified value. This is a slow
|
||||
operation, especially when combined with any search operations.&]
|
||||
[s7; [*C@3 k]-|Value of the elements to remove.&]
|
||||
[s3;%- &]
|
||||
[s4;%- &]
|
||||
[s5;:`:`:AIndex`:`:Trim`(int`):%- [@(0.0.255) void]_[* Trim]([@(0.0.255) int]_[*@3 n])&]
|
||||
[s2; Reduces the number of elements in AIndex to the specified number.
|
||||
Requested number must be less than or equal to actual number
|
||||
of elements in AIndex.&]
|
||||
[s7; [*C@3 n]-|Requested number of elements.&]
|
||||
[s3;%- &]
|
||||
[s4;%- &]
|
||||
[s5;:`:`:AIndex`:`:Drop`(int`):%- [@(0.0.255) void]_[* Drop]([@(0.0.255) int]_[*@3 n]_`=_[@3 1])
|
||||
&]
|
||||
[s2; Drops the specified number of elements from the end of the AIndex
|
||||
(same as Trim(GetCount() `- n)).&]
|
||||
[s7; [*C@3 n]-|Number of elements.&]
|
||||
[s3;%- &]
|
||||
[s4;%- &]
|
||||
[s5;:`:`:AIndex`:`:Top`(`)const:%- [@(0.0.255) const]_[*@4 T]`&_[* Top]()_[@(0.0.255) const]&]
|
||||
[s2; Returns a reference to the last element in the AIndex.&]
|
||||
[s7; [*/ Return value]-|Reference of thr last element in the AIndex.&]
|
||||
[s3;%- &]
|
||||
[s4;%- &]
|
||||
[s5;:`:`:AIndex`:`:Reserve`(int`):%- [@(0.0.255) void]_[* Reserve]([@(0.0.255) int]_[*@3 n])&]
|
||||
[s2; Reserves capacity. If the requested capacity is greater than
|
||||
current capacity, capacity is increased to the requested value.&]
|
||||
[s7; [*C@3 n]-|Requested capacity.&]
|
||||
[s3;%- &]
|
||||
[s4;%- &]
|
||||
[s5;:`:`:AIndex`:`:Shrink`(`):%- [@(0.0.255) void]_[* Shrink]()&]
|
||||
[s2; Minimizes the memory consumption of AIndex by decreasing the
|
||||
capacity to the number of elements.&]
|
||||
[s3;%- &]
|
||||
[s4;%- &]
|
||||
[s5;:`:`:AIndex`:`:GetAlloc`(`)const:%- [@(0.0.255) int]_[* GetAlloc]()_[@(0.0.255) const]&]
|
||||
[s2; Returns the current capacity of AIndex.&]
|
||||
[s7; [*/ Return value]-|Capacity of AIndex.&]
|
||||
[s3;%- &]
|
||||
[s4;%- &]
|
||||
[s5;:`:`:AIndex`:`:Serialize`(`:`:Stream`&`):%- [@(0.0.255) void]_[* Serialize]([_^`:`:Stream^ S
|
||||
tream]`&_[*@3 s])&]
|
||||
[s2; Serializes content of AIndex to/from Stream. Works only if NTL
|
||||
is used as part of UPP.&]
|
||||
[s6; Requires T to have serialization operator defined.&]
|
||||
[s7; [*C@3 s]-|Target/source stream.&]
|
||||
[s3;%- &]
|
||||
[s4;%- &]
|
||||
[s5;:`:`:AIndex`:`:PickKeys`(`)pick`_:%- [*@4 V]_[* PickKeys]()_pick`_&]
|
||||
[s2; Returns a basic random access container of elements. Destroys
|
||||
AIndex by picking.&]
|
||||
[s7; [*/ Return value]-|Basic random access container of elements in
|
||||
AIndex.&]
|
||||
[s3;%- &]
|
||||
[s4;%- &]
|
||||
[s5;:`:`:AIndex`:`:GetKeys`(`)const:%- [@(0.0.255) const]_[*@4 V]`&_[* GetKeys]()_[@(0.0.255) c
|
||||
onst]&]
|
||||
[s2; Returns a constant reference to basic random access container
|
||||
of elements.&]
|
||||
[s7; [*/ Return value]-|Constant reference to a basic random access
|
||||
container of elements.&]
|
||||
[s3;%- &]
|
||||
[s4;%- &]
|
||||
[s5;:`:`:AIndex`:`:operator`=`(pick`_ V`&`):%- [_^`:`:AIndex^ AIndex]`&_[* operator`=](pi
|
||||
ck`__[*@4 V]`&_[*@3 s])&]
|
||||
[s2; Assigns basic random access container to AIndex. Transfers the
|
||||
source container in short constant time, but destroys it by picking.&]
|
||||
[s7; [*C@3 s]-|Source container.&]
|
||||
[s3;%- &]
|
||||
[s4;%- &]
|
||||
[s5;:`:`:AIndex`:`:operator`<`<`=`(const V`&`):%- [_^`:`:AIndex^ AIndex]`&_[* operator<<`=
|
||||
]([@(0.0.255) const]_[*@4 V]`&_[*@3 s])&]
|
||||
[s2; Assigns the basic random access container to AIndex, while preserving
|
||||
the value of the source container.&]
|
||||
[s6; Requires T to have deep copy constructor or optional deep copy.&]
|
||||
[s7; [*C@3 s]-|Source container.&]
|
||||
[s3;%- &]
|
||||
[s4;%- &]
|
||||
[s5;:`:`:AIndex`:`:AIndex`(pick`_ V`&`):%- [* AIndex](pick`__[*@4 V]`&_[*@3 s])&]
|
||||
[s2; Pick`-constructs AIndex from a basic random access container.
|
||||
Transfers the source container in short constant time, but destroys
|
||||
it by picking.&]
|
||||
[s7; [*C@3 s]-|Source basic random access container.&]
|
||||
[s3;%- &]
|
||||
[s4;%- &]
|
||||
[s5;:`:`:AIndex`:`:AIndex`(const V`&`,int`):%- [* AIndex]([@(0.0.255) const]_[*@4 V]`&_[*@3 s
|
||||
], [@(0.0.255) int])&]
|
||||
[s2; Deep`-copy constructs AIndex from basic random access container.&]
|
||||
[s6; Requires T to have deep copy constructor or optional deep copy
|
||||
constructor.&]
|
||||
[s7; [*C@3 s]-|Source AIndex.&]
|
||||
[s5;K%- typedef_T_ValueType&]
|
||||
[s2; Typedef of T for use in templated algorithms.&]
|
||||
[s5;K%- typedef_typename_[^V`:`:ConstIterator^ V`::ConstIterator]_ConstIterator&]
|
||||
[s2; Constant iterator type.&]
|
||||
[s3;%- &]
|
||||
[s4;%- &]
|
||||
[s5;:`:`:AIndex`:`:Begin`(`)const:%- [_^`:`:AIndex`:`:ConstIterator^ ConstIterator]_[* Be
|
||||
gin]()_[@(0.0.255) const]&]
|
||||
[s2; Returns a constant iterator to the first element in AIndex.&]
|
||||
[s7; [*/ Return value]-|Iterator.&]
|
||||
[s3;%- &]
|
||||
[s4;%- &]
|
||||
[s5;:`:`:AIndex`:`:End`(`)const:%- [_^`:`:AIndex`:`:ConstIterator^ ConstIterator]_[* End](
|
||||
)_[@(0.0.255) const]&]
|
||||
[s2; Returns a constant iterator to the position just beyond the
|
||||
last element in AIndex.&]
|
||||
[s7; [*/ Return value]-|Iterator.&]
|
||||
[s3;%- &]
|
||||
[s4;%- &]
|
||||
[s5;:`:`:AIndex`:`:GetIter`(int`)const:%- [_^`:`:AIndex`:`:ConstIterator^ ConstIterator
|
||||
]_[* GetIter]([@(0.0.255) int]_[*@3 pos])_[@(0.0.255) const]&]
|
||||
[s2; Returns a constant iterator to the element at specified position.
|
||||
Same as [* Begin() `+ i]. The benefit of this method is that [* pos]
|
||||
is range checked in debug mode.&]
|
||||
[s7; [*C@3 pos]-|Required position.&]
|
||||
[s7; [*/ Return value]-|Iterator.&]
|
||||
[s3;%- &]
|
||||
[s4;%- &]
|
||||
[s5;:`:`:AIndex`:`:AIndex`(`):%- [* AIndex]()&]
|
||||
[s2; Constructor. Constructs an empty AIndex.&]
|
||||
[s3;%- &]
|
||||
[s4;%- &]
|
||||
[s5;:`:`:AIndex`:`:AIndex`(const`:`:AIndex`&`,int`):%- [* AIndex]([@(0.0.255) const]_[* AIn
|
||||
dex]`&_[*@3 s], [@(0.0.255) int])&]
|
||||
[s2; Optional deep copy constructor.&]
|
||||
[s6; Requires T to have deep copy constructor or optional deep copy
|
||||
constructor.&]
|
||||
[s7; [*C s]-|Source AIndex.&]
|
||||
[s0; ]
|
||||
123
uppdev/$.tpp/Test$en-us.tpp
Normal file
123
uppdev/$.tpp/Test$en-us.tpp
Normal file
|
|
@ -0,0 +1,123 @@
|
|||
topic "Heap implementation";
|
||||
[ $$0,0#00000000000000000000000000000000:Default]
|
||||
[i448;a25;kKO9;2 $$1,0#37138531426314131252341829483370:item]
|
||||
[{_}%EN-US
|
||||
[s0;2%- &]
|
||||
[ {{10000F(128)G(128)@1 [s0; [* Constructor Detail]]}}&]
|
||||
[s0; &]
|
||||
[s1;K:`:`:Size`_`:`:`:`:Size`_`(`):%- &]
|
||||
[ {{10000F(128)G(128)@1 [s0; [* Public Field Detail]]}}&]
|
||||
[s0; &]
|
||||
[s1;K:`:`:Size`_`:`:cx:* &]
|
||||
[ {{10000F(128)G(128)@1 [s0; [* Method Detail]]}}&]
|
||||
[s0; &]
|
||||
[s0; Heap implementation&]
|
||||
[s0; U`+`+ heap is divided into 3 categories based on the block size
|
||||
`- small, medium and big.&]
|
||||
[s0; &]
|
||||
[s0; Small blocks&]
|
||||
[s0; Blocks <`= 256 bytes. Such blocks are 16 bytes rounded, so there
|
||||
is 16 possible sizes there. According to our research, blocks
|
||||
<`= 256 represent the majority of blocks used in C`+`+/U`+`+
|
||||
applications (>98% of all blocks).&]
|
||||
[s0; &]
|
||||
[s0; Small blocks are allocated in 4KB pages. U`+`+ always expects
|
||||
to get any memory from the system 4KB aligned (this is provided
|
||||
by platform specific SysAllocRaw and SysFreeRaw functions).&]
|
||||
[s0; &]
|
||||
[s0; Each 4KB pages is dedicated to single block size. Therefore
|
||||
there is no need to store any per`-block information; instead
|
||||
informations about the whole block is stored in the 32 bytes
|
||||
header at the beginning of 4KB page. This header stores pointer
|
||||
to the list of free blocks in the page, double`-link pointers
|
||||
for the block so that it can be stored in allocator structures,
|
||||
total number of blocks in the 4KB page and number of free blocks
|
||||
in 4KB page.&]
|
||||
[s0; &]
|
||||
[s0; Allocator keeps the list of 4KB page is that are completely
|
||||
used (no free blocks) in 16 element (one element per block size)
|
||||
sFull array of lists, using double`-linked pointers. It stores
|
||||
partially used pages in sWork 16 elements array of litst and
|
||||
unused pages in sFree list.&]
|
||||
[s0; &]
|
||||
[s0; Allocator also uses per`-thread cache of small blocks. In this
|
||||
cache, up to 32 blocks for each of 16 block sizes is cached (linked)
|
||||
without being really deallocated (deallocation requires costly
|
||||
serialization using critical section). If there is no block available
|
||||
in the cache for allocation, 16 blocks are allocated and put
|
||||
into the cache at once (means that serialization is only used
|
||||
once per 16 allocations in the worst case). If block is deallocated
|
||||
and there is already 32 blocks in the cache, 16 blocks from the
|
||||
cache are deallocated within single serialization event (means
|
||||
that serialization is only used once per 16 deallocations in
|
||||
the worst case).&]
|
||||
[s0; &]
|
||||
[s0; Now the critical implementation detail is how, given the pointer
|
||||
to the block in the Free, the header of 4KB page and that way
|
||||
the size of block is decided. More specifically, how is small
|
||||
block determined, because if we know we have small block, we
|
||||
can look at the start of 4KB page. The trick is that larger than
|
||||
256 bytes block are always placed at the address that ends with
|
||||
8 in hex (is 8 bytes aligned and 16 bytes misaligned), while
|
||||
small blocks are always 16 bytes aligned. That makes test simple
|
||||
`- blocks whose address `& 8 is nonzero are >256, if `&8 is zero
|
||||
we have small block and can look at the beginning of 4KB page
|
||||
to get more info.&]
|
||||
[s0; &]
|
||||
[s0; If allocation/deallocation runs out of cache, the real work
|
||||
has to be done:&]
|
||||
[s0; &]
|
||||
[s0; When allocating small block, first sWork list is checked for
|
||||
the block. If no available, sFree list is checked to get free
|
||||
block, if even that is empty, new block is obtained from the
|
||||
system (using SysAllocRaw). Note that allocator keeps the number
|
||||
of free blocks in the header. Implementation detail: there are
|
||||
two possibilities how free blocks can be recorded in the block
|
||||
header. First, there is a single`-linked list of free blocks.
|
||||
Second, for blocks that are initially free (got from sFree or
|
||||
system), portion of free blocks in the 4KB page is left out of
|
||||
free list and managed by `'free`' member `- the offset of last
|
||||
such free block in page. If this offset is >32, free block is
|
||||
obtained using it (subtracting the block size). This is used
|
||||
to avoid the need to link all free blocks in the page when getting
|
||||
new free page.&]
|
||||
[s0; &]
|
||||
[s0; When freeing, number of free blocks in 4KB page is incremented.
|
||||
If it is now 1, it means block has to be moved from sFull to
|
||||
sWork. If it now equals the total number of blocks in page, 4KB
|
||||
page moves to sFree.&]
|
||||
[s0; &]
|
||||
[s0; &]
|
||||
[s0; Medium blocks &]
|
||||
[s0; Blocks >256 and < 65504 bytes. Approximate best`-fit allocator
|
||||
is used for these blocks. Memory is organized in 64KB chunks
|
||||
(obtained using SysAllocRaw). Each allocated block has header
|
||||
with its size and the size of previous block.&]
|
||||
[s0; &]
|
||||
[s0; Allocator keeps an array of lists of free blocks of particular
|
||||
sizes. Size distribution is mostly exponential, blocks lower
|
||||
than 2048 are rounded up to 32 bytes, between 2048 and about
|
||||
35000, rounding exponentially grows up to 2048 and then stays
|
||||
at this value. Each such size has its index in the array of free
|
||||
blocks.&]
|
||||
[s0; &]
|
||||
[s0; When allocating, index is decided based on the size and array
|
||||
is searched starting with that index to obtain the smallest free
|
||||
block (best`-fit) greater than required size. Bigger blocks are
|
||||
divided.&]
|
||||
[s0; &]
|
||||
[s0; When freeing, allocator merges the freed block with previous
|
||||
or next free block if any.&]
|
||||
[s0; &]
|
||||
[s0; Note that master header of 64KB blocks and all operations are
|
||||
designed so that resulting pointers are NOT 16 byte aligned (see
|
||||
description of small blocks).&]
|
||||
[s0; &]
|
||||
[s0; &]
|
||||
[s0; Big blocks&]
|
||||
[s0; For blocks bigger than 65504 bytes, allocator simply uses SysAllocRaw
|
||||
to directly obtain virtual memory. It stores information about
|
||||
the block in the header at the beginning of block, also makeing
|
||||
block 16`-bytes unaligned in the process. Free then returns virtual
|
||||
memory back to the system.&]
|
||||
[s0; ]
|
||||
4
uppdev/$.tpp/Testtemplate$en-us.tpp
Normal file
4
uppdev/$.tpp/Testtemplate$en-us.tpp
Normal file
|
|
@ -0,0 +1,4 @@
|
|||
TITLE("This is test template!")
|
||||
COMPRESSED
|
||||
120,156,139,86,80,81,49,208,49,80,54,32,0,172,92,82,211,18,75,115,74,98,163,171,227,107,85,93,253,116,67,131,21,162,139,13,172,21,66,50,50,139,21,128,168,36,181,184,4,72,228,22,228,36,150,164,42,198,2,0,142,132,23,245,
|
||||
|
||||
12
uppdev/AAA/AAA.upp
Normal file
12
uppdev/AAA/AAA.upp
Normal file
|
|
@ -0,0 +1,12 @@
|
|||
uses
|
||||
CtrlLib;
|
||||
|
||||
file
|
||||
test.iml,
|
||||
srcdoc.tpp,
|
||||
Upscale.cpp,
|
||||
main.cpp;
|
||||
|
||||
mainconfig
|
||||
"" = "GUI SSE2";
|
||||
|
||||
405
uppdev/AAA/Upscale.cpp
Normal file
405
uppdev/AAA/Upscale.cpp
Normal file
|
|
@ -0,0 +1,405 @@
|
|||
#include <Draw/Draw.h>
|
||||
|
||||
using namespace Upp;
|
||||
|
||||
int sqr(int x)
|
||||
{
|
||||
return x * x;
|
||||
}
|
||||
|
||||
RGBA Blend(RGBA a, RGBA b)
|
||||
{
|
||||
RGBA r;
|
||||
r.a = ((int)a.a + b.a) >> 1;
|
||||
r.r = ((int)a.r + b.r) >> 1;
|
||||
r.g = ((int)a.g + b.g) >> 1;
|
||||
r.b = ((int)a.b + b.b) >> 1;
|
||||
return r;
|
||||
}
|
||||
|
||||
RGBA Get(const Image& img, int x, int y)
|
||||
{
|
||||
return Rect(img.GetSize()).Contains(x, y) ? img[y][x] : White();
|
||||
}
|
||||
|
||||
int SqrDistance(RGBA a, RGBA b)
|
||||
{
|
||||
return sqr(77 * ((int)a.r - b.r)) + sqr(151 * ((int)a.g - b.g)) + sqr(28 * ((int)a.b - b.b));
|
||||
}
|
||||
|
||||
bool IsSimilar(RGBA a, RGBA b, int max)
|
||||
{
|
||||
return SqrDistance(a, b) <= sqr(max);
|
||||
}
|
||||
|
||||
int GetColorIndex(Vector<RGBA>& colors, Color c, int max_distance)
|
||||
{
|
||||
for(int i = 0; i < colors.GetCount(); i++)
|
||||
if(IsSimilar(colors[i], c, max_distance))
|
||||
return i;
|
||||
colors.Add(c);
|
||||
return colors.GetCount() - 1;
|
||||
}
|
||||
|
||||
struct Colors : Vector<RGBA> {
|
||||
const Image& m;
|
||||
int x, y;
|
||||
|
||||
int DX(int r) {
|
||||
r &= 7;
|
||||
return findarg(r, 0, 7, 6) >= 0 ? -1 : findarg(r, 2, 3, 4) >= 0 ? 1 : 0;
|
||||
}
|
||||
|
||||
int DY(int r) {
|
||||
r &= 7;
|
||||
return findarg(r, 0, 1, 2) >= 0 ? -1 : findarg(r, 4, 5, 6) >= 0 ? 1 : 0;
|
||||
}
|
||||
|
||||
RGBA Get(int dx, int dy) {
|
||||
return ::Get(m, x + dx, y + dy);
|
||||
}
|
||||
|
||||
RGBA Get(int r) {
|
||||
return ::Get(m, x + DX(r), y + DY(r));
|
||||
}
|
||||
|
||||
int GetCI(Color c)
|
||||
{
|
||||
return GetColorIndex(*this, c, 500);
|
||||
}
|
||||
|
||||
int GetCI(int r) {
|
||||
return GetCI(Get(r));
|
||||
}
|
||||
|
||||
int GetCI(int dx, int dy) {
|
||||
return GetColorIndex(*this, Get(dx, dy), 500);
|
||||
}
|
||||
|
||||
Colors(const Image& m, int x, int y) : m(m), x(x), y(y) {}
|
||||
};
|
||||
|
||||
Image Upscale(const Image& simg)
|
||||
{
|
||||
Size isz = simg.GetSize();
|
||||
|
||||
Image lan = RescaleFilter(simg, 2 * isz, FILTER_BILINEAR);
|
||||
|
||||
ImageBuffer ib(2 * isz);
|
||||
|
||||
Fill(~ib, RGBAZero(), ib.GetLength());
|
||||
|
||||
for(int x = 0; x < isz.cx; x++)
|
||||
for(int y = 0; y < isz.cy; y++) {
|
||||
DLOG("---------- " << x << ", " << y);
|
||||
RGBA c = simg[y][x];
|
||||
int p[16];
|
||||
// 0 1 2
|
||||
// 7 c 3
|
||||
// 6 5 4
|
||||
Colors colors(simg, x, y);
|
||||
for(int i = 0; i < 8; i++) {
|
||||
p[i] = p[i + 8] = colors.GetCI(i);
|
||||
DLOG(i << ": " << p[i]);
|
||||
}
|
||||
int ci = colors.GetCI(c);
|
||||
DDUMP(colors);
|
||||
// 0 1
|
||||
// 3 2
|
||||
int *pp = p;
|
||||
/* Index<int> in;
|
||||
in.FindAdd(p[1]);
|
||||
in.FindAdd(p[3]);
|
||||
in.FindAdd(p[5]);
|
||||
in.FindAdd(p[7]);
|
||||
DDUMP(in.GetCount()); */
|
||||
bool cq = (x ^ y) & 1;
|
||||
|
||||
for(int r = 0; r < 4; r++) {
|
||||
int ix = 2 * x + (r == 1 || r == 2);
|
||||
int iy = 2 * y + (r >= 2);
|
||||
RGBA& t = ib[iy][ix];
|
||||
t = c;
|
||||
bool mrule = ci == pp[4] && ci == pp[3] && ci == pp[5] && ci != pp[0];
|
||||
if(pp[1] == pp[7] && pp[0] == pp[1] &&
|
||||
(!mrule || (Grayscale(colors.Get(2 * r + 0)) > Grayscale(c)))
|
||||
// && pp[1] != pp[3] && pp[1] != pp[4] && pp[1] != pp[5]
|
||||
// && !(pp[0] == pp[7] && pp[0] == pp[6] && pp[0] == pp[1] && pp[0] == pp[2]) // Box rule
|
||||
// && ((cq/* && (r == 0 || r == 2)*/) || (pp[1] != pp[0]))
|
||||
) {
|
||||
t = Blend(colors.Get(2 * r + 7), colors.Get(2 * r + 1));
|
||||
}
|
||||
pp += 2;
|
||||
}
|
||||
}
|
||||
|
||||
return ib;
|
||||
}
|
||||
|
||||
bool TryAA(int m, int d, RGBA a, RGBA b, RGBA c)
|
||||
{
|
||||
DDUMP(m);
|
||||
DDUMP(d);
|
||||
DDUMP(abs(m * (c.r - a.r) / d + a.r - b.r));
|
||||
DDUMP(abs(m * (c.g - a.g) / d + a.g - b.g));
|
||||
DDUMP(abs(m * (c.b - a.b) / d + a.b - b.b));
|
||||
if(abs(m) > abs(d) || m * d < 0 || abs(m) < 10)
|
||||
return false;
|
||||
return (abs(m * (b.r - a.r) / d + a.r - b.r) < 4 &&
|
||||
abs(m * (c.g - a.g) / d + a.g - b.g) < 4 &&
|
||||
abs(m * (c.b - a.b) / d + a.b - b.b) < 4);
|
||||
}
|
||||
|
||||
int AADetected(RGBA a, RGBA b, RGBA c)
|
||||
{
|
||||
DLOG("AADetect " << a << ", " << b << ", " << c);
|
||||
|
||||
if(IsSimilar(a, c, 500) || IsSimilar(b, c, 500) || IsSimilar(a, b, 500))
|
||||
return false;
|
||||
|
||||
return TryAA(b.g - a.g, c.g - a.g, a, b, c) ||
|
||||
TryAA(b.r - a.r, c.r - a.r, a, b, c) ||
|
||||
TryAA(b.g - a.g, c.g - a.g, a, b, c);
|
||||
}
|
||||
|
||||
Image UpscaleA(const Image& simg)
|
||||
{
|
||||
Size isz = simg.GetSize();
|
||||
|
||||
ImageBuffer ib(2 * isz);
|
||||
|
||||
Fill(~ib, RGBAZero(), ib.GetLength());
|
||||
|
||||
for(int x = 0; x < isz.cx; x++)
|
||||
for(int y = 0; y < isz.cy; y++) {
|
||||
DLOG("---------- " << x << ", " << y);
|
||||
RGBA c = simg[y][x];
|
||||
int p[16];
|
||||
// 0 1 2
|
||||
// 7 c 3
|
||||
// 6 5 4
|
||||
Colors m(simg, x, y);
|
||||
for(int i = 0; i < 8; i++) {
|
||||
p[i] = p[i + 8] = m.GetCI(i);
|
||||
DLOG(i << ": " << p[i]);
|
||||
}
|
||||
int ci = m.GetCI(c);
|
||||
|
||||
RGBA t[4];
|
||||
t[0] = t[1] = t[2] = t[3] = c;
|
||||
bool hl = p[0] == p[1] && p[1] == p[2] ||
|
||||
p[6] == p[5] && p[5] == p[4];
|
||||
bool vl = p[0] == p[7] && p[7] == p[6] ||
|
||||
p[2] == p[3] && p[3] == p[4];
|
||||
bool dia = !hl && !vl;
|
||||
dia = true;
|
||||
int horz = AADetected(m.Get(7), c, m.Get(3)) * 1;
|
||||
int vert = AADetected(m.Get(1), c, m.Get(5)) * 1;
|
||||
int dia1 = AADetected(m.Get(0), c, m.Get(4)) * 1 * dia;
|
||||
int dia2 = AADetected(m.Get(2), c, m.Get(6)) * 1 * dia;
|
||||
const int *pp = p;
|
||||
if(horz || vert || dia1 || dia2) {
|
||||
if(horz && !vert)
|
||||
t[1] = t[3] = m.Get(3);
|
||||
else
|
||||
if(vert && !horz)
|
||||
t[2] = t[3] = m.Get(5);
|
||||
else
|
||||
const int *pp = p;
|
||||
for(int i = 0; i < 4; i++) {
|
||||
if(pp[0] == pp[1] && pp[1] == pp[7])
|
||||
t[decode(i, 2, 3, 3, 2, i)] = m.Get(i * 2);
|
||||
pp += 2;
|
||||
}
|
||||
}
|
||||
|
||||
ib[2 * y + 0][2 * x + 0] = t[0];
|
||||
ib[2 * y + 0][2 * x + 1] = t[1];
|
||||
ib[2 * y + 1][2 * x + 0] = t[2];
|
||||
ib[2 * y + 1][2 * x + 1] = t[3];
|
||||
}
|
||||
|
||||
return ib;
|
||||
}
|
||||
|
||||
Image UpscaleA2(const Image& simg)
|
||||
{
|
||||
Size isz = simg.GetSize();
|
||||
|
||||
ImageBuffer ib(2 * isz);
|
||||
|
||||
Fill(~ib, RGBAZero(), ib.GetLength());
|
||||
|
||||
for(int y = 0; y < isz.cy; y++)
|
||||
for(int x = 0; x < isz.cx; x++) {
|
||||
DLOG("---------- " << x << ", " << y);
|
||||
RGBA c = simg[y][x];
|
||||
int p[16];
|
||||
// 0 1 2
|
||||
// 7 c 3
|
||||
// 6 5 4
|
||||
Colors m(simg, x, y);
|
||||
for(int i = 0; i < 8; i++) {
|
||||
p[i] = p[i + 8] = m.GetCI(i);
|
||||
DLOG(i << ": " << p[i]);
|
||||
}
|
||||
int ci = m.GetCI(c);
|
||||
|
||||
RGBA t[4];
|
||||
t[0] = t[1] = t[2] = t[3] = c;
|
||||
bool h = AADetected(m.Get(7), c, m.Get(3));
|
||||
bool v = AADetected(m.Get(1), c, m.Get(5));
|
||||
if(h && v) {
|
||||
const int *pp = p;
|
||||
for(int i = 0; i < 4; i++) {
|
||||
if(pp[0] == pp[1] && pp[1] == pp[7])
|
||||
t[decode(i, 2, 3, 3, 2, i)] = m.Get(i * 2);
|
||||
pp += 2;
|
||||
}
|
||||
}
|
||||
else
|
||||
if(h)
|
||||
t[1] = t[3] = m.Get(3);
|
||||
else
|
||||
if(v)
|
||||
t[2] = t[3] = m.Get(5);
|
||||
|
||||
ib[2 * y + 0][2 * x + 0] = t[0];
|
||||
ib[2 * y + 0][2 * x + 1] = t[1];
|
||||
ib[2 * y + 1][2 * x + 0] = t[2];
|
||||
ib[2 * y + 1][2 * x + 1] = t[3];
|
||||
}
|
||||
|
||||
return ib;
|
||||
}
|
||||
/* int best = max(horz, vert, dia1, dia2);
|
||||
if(best == horz) t[1] = t[3] = m.Get(3);
|
||||
else
|
||||
if(best == vert) t[2] = t[3] = m.Get(5);
|
||||
else
|
||||
if(best == dia1) t[3] = m.Get(4);
|
||||
else
|
||||
if(best == dia2) t[2] = m.Get(6);*/
|
||||
|
||||
static inline int GetResult(uint32 A, uint32 B, uint32 C, uint32 D)
|
||||
{
|
||||
int x = 0;
|
||||
int y = 0;
|
||||
int r = 0;
|
||||
if (A == C) x++; else if (B == C) y++;
|
||||
if (A == D) x++; else if (B == D) y++;
|
||||
if (x <= 1) r++;
|
||||
if (y <= 1) r--;
|
||||
return r;
|
||||
}
|
||||
|
||||
RGBA Blend(RGBA a, RGBA b, RGBA c, RGBA d)
|
||||
{
|
||||
return Blend(Blend(a, b), Blend(c, d));
|
||||
}
|
||||
|
||||
Image Upscale2(const Image& simg) // Super SAI
|
||||
{
|
||||
Size isz = simg.GetSize();
|
||||
|
||||
ImageBuffer ib(2 * isz);
|
||||
|
||||
Fill(~ib, RGBAZero(), ib.GetLength());
|
||||
|
||||
for(int x = 0; x < isz.cx; x++)
|
||||
for(int y = 0; y < isz.cy; y++) {
|
||||
DLOG("---------- " << x << ", " << y);
|
||||
|
||||
Colors m(simg, x, y);
|
||||
|
||||
int colorB0 = m.GetCI(-1, -1);
|
||||
int colorB1 = m.GetCI(0, -1);
|
||||
int colorB2 = m.GetCI(1, -1);
|
||||
int colorB3 = m.GetCI(2, -1);
|
||||
|
||||
int color4 = m.GetCI(-1, 0);
|
||||
int color5 = m.GetCI(0, 0);
|
||||
int color6 = m.GetCI(1, 0);
|
||||
int colorS2 = m.GetCI(2, 0);
|
||||
|
||||
int color1 = m.GetCI(-1, 1);
|
||||
int color2 = m.GetCI(0, 1);
|
||||
int color3 = m.GetCI(1, 1);
|
||||
int colorS1 = m.GetCI(2, 1);
|
||||
|
||||
int colorA0 = m.GetCI(-1, 2);
|
||||
int colorA1 = m.GetCI(0, 2);
|
||||
int colorA2 = m.GetCI(1, 2);
|
||||
int colorA3 = m.GetCI(2, 2);
|
||||
|
||||
RGBA product1a, product1b, product2a, product2b;
|
||||
|
||||
RGBA c2 = m.Get(0, 1);
|
||||
RGBA c3 = m.Get(1, 1);
|
||||
RGBA c5 = m.Get(0, 0);
|
||||
RGBA c6 = m.Get(1, 0);
|
||||
|
||||
if(color2 == color6 && color5 != color3)
|
||||
product2b = product1b = c2;
|
||||
else
|
||||
if(color5 == color3 && color2 != color6)
|
||||
product2b = product1b = c5;
|
||||
else
|
||||
if(color5 == color3 && color2 == color6) {
|
||||
int r = 0;
|
||||
|
||||
r += GetResult (color6, color5, color1, colorA1);
|
||||
r += GetResult (color6, color5, color4, colorB1);
|
||||
r += GetResult (color6, color5, colorA2, colorS1);
|
||||
r += GetResult (color6, color5, colorB2, colorS2);
|
||||
|
||||
if(r > 0)
|
||||
product2b = product1b = c6;
|
||||
else
|
||||
if(r < 0)
|
||||
product2b = product1b = c5;
|
||||
else
|
||||
product2b = product1b = Blend(c5, c6);
|
||||
}
|
||||
else {
|
||||
if(color6 == color3 && color3 == colorA1 && color2 != colorA2 && color3 != colorA0)
|
||||
product2b = Blend(c3, c3, c3, c2);
|
||||
else
|
||||
if(color5 == color2 && color2 == colorA2 && colorA1 != color3 && color2 != colorA3)
|
||||
product2b = Blend(c2, c2, c2, c3);
|
||||
else
|
||||
product2b = Blend(c2, c3);
|
||||
|
||||
if(color6 == color3 && color6 == colorB1 && color5 != colorB2 && color6 != colorB0)
|
||||
product1b = Blend(c6, c6, c6, c5);
|
||||
else
|
||||
if(color5 == color2 && color5 == colorB2 && colorB1 != color6 && color5 != colorB3)
|
||||
product1b = Blend(c6, c5, c5, c5);
|
||||
else
|
||||
product1b = Blend(c5, c6);
|
||||
}
|
||||
|
||||
if (color5 == color3 && color2 != color6 && color4 == color5 && color5 != colorA2)
|
||||
product2a = Blend(c2, c5);
|
||||
else
|
||||
if (color5 == color1 && color6 == color5 && color4 != color2 && color5 != colorA0)
|
||||
product2a = Blend(c2, c5);
|
||||
else
|
||||
product2a = c2;
|
||||
|
||||
if (color2 == color6 && color5 != color3 && color1 == color2 && color2 != colorB2)
|
||||
product1a = Blend(c2, c5);
|
||||
else
|
||||
if (color4 == color2 && color3 == color2 && color1 != color5 && color2 != colorB0)
|
||||
product1a = Blend(c2, c5);
|
||||
else
|
||||
product1a = c5;
|
||||
|
||||
ib[2 * y][2 * x] = product1a;
|
||||
ib[2 * y][2 * x + 1] = product1b;
|
||||
ib[2 * y + 1][2 * x] = product2a;
|
||||
ib[2 * y + 1][2 * x + 1] = product2b;
|
||||
}
|
||||
|
||||
return ib;
|
||||
}
|
||||
4
uppdev/AAA/init
Normal file
4
uppdev/AAA/init
Normal file
|
|
@ -0,0 +1,4 @@
|
|||
#ifndef _AAA_icpp_init_stub
|
||||
#define _AAA_icpp_init_stub
|
||||
#include "CtrlLib/init"
|
||||
#endif
|
||||
85
uppdev/AAA/main.cpp
Normal file
85
uppdev/AAA/main.cpp
Normal file
|
|
@ -0,0 +1,85 @@
|
|||
#include <CtrlLib/CtrlLib.h>
|
||||
|
||||
using namespace Upp;
|
||||
|
||||
#define IMAGECLASS TestImg
|
||||
#define IMAGEFILE <AAA/test.iml>
|
||||
#include <Draw/iml_header.h>
|
||||
|
||||
#define IMAGECLASS TestImg
|
||||
#define IMAGEFILE <AAA/test.iml>
|
||||
#include <Draw/iml_source.h>
|
||||
Image Upscale(const Image& simg);
|
||||
Image Upscale2(const Image& simg);
|
||||
Image UpscaleA(const Image& simg);
|
||||
Image UpscaleA2(const Image& simg);
|
||||
|
||||
struct Test : TopWindow {
|
||||
virtual void Paint(Draw& w);
|
||||
|
||||
EditIntSpin passes, amount;
|
||||
|
||||
void DoRefresh() { Refresh(); }
|
||||
|
||||
void PutImage(Draw& w, int& y, const Image& m)
|
||||
{
|
||||
w.DrawImage(20, y, m);
|
||||
y += m.GetSize().cy + 10;
|
||||
}
|
||||
|
||||
typedef Test CLASSNAME;
|
||||
|
||||
Test();
|
||||
};
|
||||
|
||||
void Test::Paint(Draw& w)
|
||||
{
|
||||
w.DrawRect(GetSize(), SColorFace());
|
||||
Image simg = TestImg::test2();
|
||||
int y = 10;
|
||||
PutImage(w, y, simg);
|
||||
|
||||
Size isz = simg.GetSize();
|
||||
w.DrawImage(10, 150 + 12 * isz.cy, Magnify(simg, 8, 8));
|
||||
|
||||
simg = Unmultiply(simg);
|
||||
|
||||
|
||||
Image r = Upscale(simg);
|
||||
w.DrawImage(10, 100, r);
|
||||
|
||||
w.DrawImage(10, 150 + 2 * isz.cy, Magnify(r, 4, 4));
|
||||
|
||||
#if 0
|
||||
for(int i = FILTER_NEAREST; i <= FILTER_LANCZOS5; i++) {
|
||||
Image img = RescaleFilter(simg, 2 * simg.GetSize(), i);
|
||||
w.DrawImage(10, y, img);
|
||||
img = Unmultiply(img);
|
||||
for(int j = 0; j < (int)~passes; j++)
|
||||
img = Sharpen(img, ~amount);
|
||||
w.DrawImage(300, y, Premultiply(img));
|
||||
w.DrawText(600, y + 10, AsString(i));
|
||||
|
||||
y += img.GetSize().cy + 20;
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
Test::Test()
|
||||
{
|
||||
amount <<= 50;
|
||||
passes <<= 2;
|
||||
Add(amount.BottomPos(2, 20).LeftPos(2, 50));
|
||||
Add(passes.BottomPos(2, 20).LeftPos(60, 50));
|
||||
|
||||
// amount <<= THISBACK(Amount);
|
||||
// passes <<= THISBACK(Passes);
|
||||
Zoomable().Sizeable();
|
||||
}
|
||||
|
||||
using namespace std;
|
||||
|
||||
GUI_APP_MAIN
|
||||
{
|
||||
Test().Run();
|
||||
}
|
||||
29
uppdev/AAA/srcdoc.tpp/hh$en-us.tpp
Normal file
29
uppdev/AAA/srcdoc.tpp/hh$en-us.tpp
Normal file
|
|
@ -0,0 +1,29 @@
|
|||
topic "TheIDE";
|
||||
[ $$0,0#00000000000000000000000000000000:Default]
|
||||
[{_}%EN-US
|
||||
[s0; Ahoj Jášo,&]
|
||||
[s0; &]
|
||||
[s0; Posílám pozdravy ze Suchdola.&]
|
||||
[s0; &]
|
||||
[s0; Moc jsi nás pobavil že si necháváš dopisy psát za sebe.
|
||||
Papírové (nebo Papyrové ?) zlaťáky vypadají dobře, díky
|
||||
za ukázku.&]
|
||||
[s0; &]
|
||||
[s0; Doma se máme dobře. Maminka s Ellou byly většinu času na
|
||||
chatě, já pořád dokola (a na kole) jezdím do práce a programuje.&]
|
||||
[s0; &]
|
||||
[s0; Maminka Elle sehnala (koupila od Aniny) domeček na zahradu,
|
||||
tak ho dneska budeme asi stavět. Snad se jí to bude líbit.&]
|
||||
[s0; &]
|
||||
[s0; K narozeninám jsem ti definitivně koupil Arduino `- a sám
|
||||
sobě jsem hned koupil takovou jednodušší víc hard`-core
|
||||
verzi. Už se těším až to přijde, vypadá to jak dost šikovná
|
||||
věcička. Ten tvůj nápad na zařízení které zahraje zvuk
|
||||
když někdo vejde se s tím úplně přesně dá udělat.&]
|
||||
[s0; &]
|
||||
[s0; Přeju příjemnou poslední třetinu tábora, uvidíme se cca
|
||||
za týden.&]
|
||||
[s0; &]
|
||||
[s0; Ahoj,&]
|
||||
[s0; &]
|
||||
[s0; Táta]]
|
||||
29
uppdev/AAA/srcdoc.tpp/hhh$en-us.tpp
Normal file
29
uppdev/AAA/srcdoc.tpp/hhh$en-us.tpp
Normal file
|
|
@ -0,0 +1,29 @@
|
|||
topic "Ahoj Klárko,";
|
||||
[ $$0,0#00000000000000000000000000000000:Default]
|
||||
[{_}%EN-US
|
||||
[s0; Ahoj Klárko,&]
|
||||
[s0; &]
|
||||
[s0; &]
|
||||
[s0; Posílám pozdravy ze Suchdola.&]
|
||||
[s0; &]
|
||||
[s0; Doma se máme dobře. Maminka s Ellou byly většinu času na
|
||||
chatě, já pořád dokola (a na kole) jezdím do práce a programuju.
|
||||
Trochu ješte také uklízíme sklep. Snad už zase budu mít
|
||||
dílnu...&]
|
||||
[s0; &]
|
||||
[s0; Maminka Elle sehnala (koupila od Aniny) domeček na zahradu,
|
||||
tak ho dneska budeme asi stavět. Snad se jí to bude líbit.&]
|
||||
[s0; &]
|
||||
[s0; Elle v poslední době zažila několik večerních akcí `-
|
||||
s maminkou byla na večirku u Aniny a včera byla s námi v hospodě.
|
||||
Začalo se jí to líbit chodit spát v devět večer...&]
|
||||
[s0; &]
|
||||
[s0; Rybu jsem poctivě krmil, vypadá fit.&]
|
||||
[s0; &]
|
||||
[s0; Přeju příjemnou poslední třetinu tábora, uvidíme se cca
|
||||
za týden.&]
|
||||
[s0; &]
|
||||
[s0; &]
|
||||
[s0; Ahoj,&]
|
||||
[s0; &]
|
||||
[s0; Táta]]
|
||||
452
uppdev/AAA/test.iml
Normal file
452
uppdev/AAA/test.iml
Normal file
|
|
@ -0,0 +1,452 @@
|
|||
PREMULTIPLIED
|
||||
IMAGE_ID(test)
|
||||
IMAGE_ID(test1)
|
||||
IMAGE_ID(t)
|
||||
IMAGE_ID(test3)
|
||||
IMAGE_ID(test2)
|
||||
|
||||
IMAGE_BEGIN_DATA
|
||||
IMAGE_DATA(120,156,237,157,9,84,20,87,22,134,27,212,49,57,232,57,153,100,36,78,22,199,153,152,196,144,68,147,81,140,30,53)
|
||||
IMAGE_DATA(81,81,92,136,38,140,98,196,40,110,113,67,209,16,137,130,168,20,42,202,166,128,162,2,34,130,40,72,43,173,70,84)
|
||||
IMAGE_DATA(80,217,26,68,16,100,223,87,217,65,246,29,90,224,159,122,21,219,211,52,221,77,3,182,168,169,255,156,123,124,85,117)
|
||||
IMAGE_DATA(235,213,19,222,119,239,125,175,23,56,28,165,209,28,5,73,121,250,151,28,234,188,9,39,193,217,144,243,128,62,30,42)
|
||||
IMAGE_DATA(238,160,164,196,121,151,92,63,245,43,39,106,200,96,206,167,253,121,216,112,14,71,135,226,112,32,203,136,79,127,158,49)
|
||||
IMAGE_DATA(97,194,6,244,214,250,243,60,86,172,94,81,13,209,156,192,177,14,243,152,87,36,168,12,70,148,207,247,229,59,55,125)
|
||||
IMAGE_DATA(25,62,83,255,72,200,58,143,180,42,98,164,189,99,195,56,126,220,85,221,202,36,127,253,42,199,173,156,168,65,202,156)
|
||||
IMAGE_DATA(15,123,243,16,81,230,185,180,149,211,6,41,86,254,212,135,234,71,44,32,60,167,166,166,50,150,158,158,142,204,204,76)
|
||||
IMAGE_DATA(198,114,115,115,145,159,159,143,194,194,194,103,86,94,94,222,43,254,33,69,189,29,35,43,86,3,45,245,79,56,166,124)
|
||||
IMAGE_DATA(143,5,197,109,101,55,16,203,91,82,227,239,50,177,193,50,188,18,142,209,229,56,19,95,202,24,105,31,229,231,34,216)
|
||||
IMAGE_DATA(117,92,83,14,127,103,83,12,111,245,227,147,91,56,15,233,219,135,200,243,12,194,111,79,204,247,20,11,122,27,3,228)
|
||||
IMAGE_DATA(225,159,112,95,90,90,218,39,254,57,34,97,64,216,238,205,248,88,177,234,143,168,75,143,33,201,246,248,148,97,215,249)
|
||||
IMAGE_DATA(18,252,234,94,128,45,167,11,176,246,84,62,116,237,115,240,63,155,12,204,183,72,199,183,84,42,212,119,37,62,155,171)
|
||||
IMAGE_DATA(52,255,123,227,253,244,171,162,185,75,106,130,220,38,63,57,118,191,0,62,9,37,240,226,63,194,73,94,10,142,93,74)
|
||||
IMAGE_DATA(129,123,96,46,188,226,138,224,22,26,140,36,222,156,142,218,28,175,118,239,125,31,100,12,25,36,123,29,32,204,249,132)
|
||||
IMAGE_DATA(223,228,62,176,47,180,100,145,122,64,222,56,64,120,38,220,11,217,207,206,206,238,150,251,9,251,44,255,172,94,69,17)
|
||||
IMAGE_DATA(214,111,197,55,136,88,61,174,199,214,225,106,116,45,46,71,213,224,98,68,53,60,249,85,112,11,169,128,243,157,199,112)
|
||||
IMAGE_DATA(188,85,6,59,191,18,88,93,45,194,71,219,30,62,155,171,195,222,224,76,63,189,253,111,25,55,236,212,154,172,131,115)
|
||||
IMAGE_DATA(225,29,85,0,94,112,30,178,11,235,80,89,215,128,138,186,70,100,20,212,193,243,118,54,220,194,242,224,115,205,22,247)
|
||||
IMAGE_DATA(92,39,182,218,252,242,70,172,44,254,251,147,243,159,71,45,64,120,22,230,124,33,251,162,53,191,40,251,21,21,21,44)
|
||||
IMAGE_DATA(255,172,94,41,9,249,247,137,168,129,87,120,13,206,241,171,225,22,92,9,167,187,21,56,238,79,215,235,126,101,176,188)
|
||||
IMAGE_DATA(90,2,243,203,133,48,245,46,128,145,231,35,108,115,203,5,197,45,192,123,107,163,186,204,213,255,140,83,183,217,229,155)
|
||||
IMAGE_DATA(4,151,240,60,112,233,92,79,84,93,91,139,204,226,82,180,208,109,98,13,157,128,147,95,54,78,134,100,97,31,151,143)
|
||||
IMAGE_DATA(15,62,87,183,144,57,190,231,204,190,104,12,32,125,247,244,243,33,60,19,238,9,223,196,164,177,79,172,150,254,191,202)
|
||||
IMAGE_DATA(226,95,156,109,121,248,103,227,1,43,69,138,240,127,35,174,30,213,141,237,56,75,115,95,213,240,4,141,173,29,104,108)
|
||||
IMAGE_DATA(233,64,67,75,59,162,178,26,233,24,80,138,204,146,22,28,240,45,68,106,81,51,189,22,200,194,78,207,60,140,212,13)
|
||||
IMAGE_DATA(239,50,55,39,44,53,10,249,253,114,18,156,110,101,32,149,206,251,77,79,58,209,208,212,132,19,110,103,81,78,179,81)
|
||||
IMAGE_DATA(223,218,10,223,128,32,240,51,107,113,152,155,8,226,75,238,145,54,54,97,238,127,222,236,11,141,244,109,166,163,131,225)
|
||||
IMAGE_DATA(195,135,75,173,3,8,207,36,231,139,179,47,92,247,139,154,44,254,37,237,237,201,203,63,27,3,88,41,74,38,222,37)
|
||||
IMAGE_DATA(76,173,223,68,51,239,116,251,49,195,190,237,245,82,230,152,226,22,162,184,186,13,126,15,171,153,227,163,215,139,209,220)
|
||||
IMAGE_DATA(214,129,159,236,210,97,224,150,3,213,69,33,93,230,229,60,83,239,42,67,175,88,88,93,72,64,121,179,0,213,244,61)
|
||||
IMAGE_DATA(109,244,220,53,161,204,113,158,119,13,187,204,204,113,59,34,10,73,181,2,252,118,50,10,196,151,220,35,105,92,66,246)
|
||||
IMAGE_DATA(37,174,247,105,102,193,229,254,249,111,79,156,203,240,37,125,59,142,24,193,196,0,105,63,31,194,179,248,62,191,104,206)
|
||||
IMAGE_DATA(39,53,63,225,190,190,190,158,49,73,252,247,144,219,229,201,255,108,12,96,165,16,109,115,47,192,197,251,213,104,239,160)
|
||||
IMAGE_DATA(115,53,157,243,91,5,157,76,173,223,72,231,126,82,235,23,86,182,161,162,94,192,196,133,67,188,66,60,174,19,96,161)
|
||||
IMAGE_DATA(85,10,54,56,103,98,132,70,96,151,57,57,203,200,173,106,131,107,20,168,179,113,40,104,16,208,49,160,3,133,181,245)
|
||||
IMAGE_DATA(56,104,123,132,97,159,31,151,136,138,39,64,76,165,0,6,246,247,65,124,201,61,146,198,69,73,171,251,133,60,19,245)
|
||||
IMAGE_DATA(20,3,228,240,237,105,29,64,120,150,197,62,49,194,125,99,99,35,99,226,252,11,249,229,136,112,46,42,142,4,254,37)
|
||||
IMAGE_DATA(249,112,216,24,192,74,1,34,251,250,30,161,149,76,173,127,208,183,24,245,205,237,216,117,62,159,57,222,124,58,7,143)
|
||||
IMAGE_DATA(42,90,17,148,84,139,216,220,6,152,249,60,162,235,120,1,102,31,72,132,158,99,6,222,153,118,171,203,124,28,171,185)
|
||||
IMAGE_DATA(38,100,153,93,48,204,61,31,34,52,171,22,244,146,1,133,116,236,184,25,114,15,185,85,117,40,107,7,242,154,128,43)
|
||||
IMAGE_DATA(201,53,248,205,57,18,196,151,220,35,105,92,148,52,166,133,60,11,37,45,6,136,178,47,234,43,161,79,242,44,138,162)
|
||||
IMAGE_DATA(36,174,3,132,252,23,23,23,119,217,231,19,103,191,185,185,153,49,81,254,69,217,149,101,226,156,247,228,219,175,95,56)
|
||||
IMAGE_DATA(43,86,34,90,124,52,139,217,215,39,220,155,120,229,163,174,169,29,91,206,228,48,199,122,142,153,200,45,111,129,182,109)
|
||||
IMAGE_DATA(42,110,39,212,208,113,33,23,45,130,14,228,148,181,64,215,46,13,111,171,223,236,50,23,223,250,112,44,181,128,186,138)
|
||||
IMAGE_DATA(237,167,35,96,201,205,64,69,39,80,45,0,234,59,104,163,219,53,52,255,21,116,123,183,103,6,182,58,243,65,124,201)
|
||||
IMAGE_DATA(61,226,99,146,185,238,151,198,181,104,12,144,199,71,124,31,64,95,31,102,102,102,221,216,34,60,139,239,243,137,214,252)
|
||||
IMAGE_DATA(66,246,91,91,91,25,99,243,63,171,87,73,26,7,83,97,127,163,244,217,190,254,70,151,108,172,62,145,133,229,14,25)
|
||||
IMAGE_DATA(88,124,36,141,169,245,231,89,36,65,195,60,17,223,238,139,199,20,211,56,168,155,196,98,201,145,20,188,61,193,175,203)
|
||||
IMAGE_DATA(124,84,30,252,183,137,99,191,223,148,162,185,247,58,12,105,190,173,184,233,136,203,171,65,67,179,0,13,77,2,36,208)
|
||||
IMAGE_DATA(109,11,239,52,108,117,12,2,241,33,190,228,30,241,49,81,210,106,255,158,248,86,83,251,211,122,193,190,112,13,96,70)
|
||||
IMAGE_DATA(223,71,106,0,241,177,136,243,79,216,175,174,174,150,155,127,34,81,182,165,157,151,199,167,79,191,96,86,172,100,136,188)
|
||||
IMAGE_DATA(135,231,240,149,34,152,95,42,132,233,197,124,102,95,223,208,35,23,6,103,178,177,201,57,11,235,78,101,50,181,254,207)
|
||||
IMAGE_DATA(14,105,248,137,206,249,132,251,197,182,127,154,56,255,68,111,188,165,186,113,245,158,19,77,179,141,175,64,207,246,14,12)
|
||||
IMAGE_DATA(143,243,97,228,16,14,67,187,48,108,181,15,198,74,107,127,232,30,242,195,138,221,199,155,136,175,164,49,81,61,237,233)
|
||||
IMAGE_DATA(73,139,1,146,36,231,62,33,37,101,13,240,188,222,255,47,194,120,151,115,28,57,248,103,217,103,165,40,145,247,240,188)
|
||||
IMAGE_DATA(191,62,10,239,173,142,196,72,221,8,188,187,152,207,236,235,143,152,27,136,17,51,239,224,31,223,6,224,157,41,183,152)
|
||||
IMAGE_DATA(90,159,240,46,110,226,253,13,27,54,108,102,82,82,18,110,5,220,109,159,186,197,21,234,91,189,240,205,118,30,99,164)
|
||||
IMAGE_DATA(189,96,167,7,66,249,97,157,97,225,225,157,42,42,42,223,74,26,19,37,15,255,242,196,0,121,95,35,120,202,63,169)
|
||||
IMAGE_DATA(255,37,173,1,158,151,250,145,255,89,177,122,233,165,164,164,52,226,220,185,115,13,89,89,89,112,118,113,169,82,81,253)
|
||||
IMAGE_DATA(151,249,200,175,231,132,124,172,181,185,138,24,105,171,168,142,162,206,186,187,215,103,100,100,128,199,227,61,25,52,104,208)
|
||||
IMAGE_DATA(71,226,253,80,242,242,79,140,212,251,210,68,174,201,217,15,245,2,248,23,151,60,252,179,98,245,10,105,152,145,145,81)
|
||||
IMAGE_DATA(186,139,139,75,219,224,193,131,63,151,230,164,172,172,60,218,206,206,174,118,255,254,253,197,116,204,24,41,126,157,98,249)
|
||||
IMAGE_DATA(103,197,106,32,164,178,240,208,156,202,129,30,4,245,154,214,255,226,98,249,103,245,50,105,149,151,78,219,150,219,171,58)
|
||||
IMAGE_DATA(251,122,255,37,51,221,162,100,87,3,36,186,232,35,238,212,6,196,56,174,65,164,253,10,132,219,46,69,136,165,54,238)
|
||||
IMAGE_DATA(30,212,194,45,179,57,208,155,49,58,64,86,63,212,0,237,255,245,129,255,126,177,42,109,200,34,46,111,250,219,205,122)
|
||||
IMAGE_DATA(28,97,183,168,35,210,126,17,220,119,125,148,167,172,196,249,103,127,158,201,138,149,36,45,119,213,110,182,121,72,225,112)
|
||||
IMAGE_DATA(212,30,108,242,95,137,181,215,150,97,133,207,98,44,245,88,136,31,156,231,98,190,195,76,204,178,156,138,169,148,58,212)
|
||||
IMAGE_DATA(141,199,99,252,175,106,221,230,62,97,255,113,218,77,148,167,94,71,89,210,53,148,38,248,162,56,142,139,162,24,47,20)
|
||||
IMAGE_DATA(70,121,32,63,226,12,30,133,57,131,183,243,27,153,220,80,156,129,121,253,175,151,252,67,196,20,162,140,139,63,34,253)
|
||||
IMAGE_DATA(130,62,90,242,163,208,90,24,141,7,39,102,97,249,52,85,158,162,158,199,234,175,41,29,199,133,13,214,49,102,184,148)
|
||||
IMAGE_DATA(126,14,222,169,110,240,76,118,193,217,196,147,112,137,59,142,19,49,71,97,255,192,10,54,247,45,112,248,158,57,246,243)
|
||||
IMAGE_DATA(247,98,95,136,49,62,219,252,113,183,121,31,239,180,9,101,41,127,208,156,59,209,156,59,34,55,216,14,217,119,173,145)
|
||||
IMAGE_DATA(233,111,129,116,63,51,164,94,53,65,78,208,49,204,61,16,138,57,84,16,102,237,185,131,233,70,127,180,191,249,247,15)
|
||||
IMAGE_DATA(54,136,246,51,144,239,255,145,147,127,133,179,95,116,123,60,26,147,189,209,154,127,15,109,133,49,140,181,100,5,226,158)
|
||||
IMAGE_DATA(237,194,14,69,61,147,213,95,83,63,218,206,173,59,20,105,138,11,41,174,240,72,114,194,153,120,71,56,197,218,227,120)
|
||||
IMAGE_DATA(180,13,142,70,29,134,85,196,126,28,12,219,7,42,116,55,246,4,237,132,113,224,111,24,179,238,223,221,230,126,140,227)
|
||||
IMAGE_DATA(218,158,235,113,90,179,247,5,130,159,86,131,224,148,106,120,134,20,96,220,202,147,221,62,3,64,73,227,95,65,239,255)
|
||||
IMAGE_DATA(21,178,47,7,255,47,132,253,214,170,48,180,22,92,68,14,111,43,26,227,46,48,70,248,15,180,90,216,162,168,231,178)
|
||||
IMAGE_DATA(250,235,234,135,163,115,155,76,131,12,177,215,223,8,139,29,22,116,74,171,249,73,222,39,236,143,214,251,176,219,252,39)
|
||||
IMAGE_DATA(107,253,61,126,57,88,226,18,15,109,199,88,44,60,26,141,5,150,145,208,52,191,7,13,211,48,124,247,123,8,54,218)
|
||||
IMAGE_DATA(69,99,134,73,0,238,38,85,163,180,30,168,109,6,254,187,145,219,173,47,74,218,26,64,1,159,255,17,173,253,101,125)
|
||||
IMAGE_DATA(22,152,243,2,217,111,111,188,142,166,140,77,104,136,219,142,248,51,186,200,185,180,3,81,14,63,176,123,131,172,20,38)
|
||||
IMAGE_DATA(45,107,141,182,85,23,117,58,245,3,244,250,180,7,24,102,163,195,172,243,51,110,238,71,218,31,123,144,194,219,133,68)
|
||||
IMAGE_DATA(174,33,226,189,182,32,246,220,122,196,184,173,70,234,53,51,76,221,225,135,7,217,53,136,204,172,70,13,205,255,151,107)
|
||||
IMAGE_DATA(46,116,155,215,47,250,243,191,47,67,237,223,133,253,236,213,104,76,157,13,65,245,81,148,248,173,68,134,221,84,150,125)
|
||||
IMAGE_DATA(86,10,213,210,147,139,250,181,7,24,116,104,17,242,195,79,51,235,252,164,203,59,144,112,113,27,226,206,111,194,67,247)
|
||||
IMAGE_DATA(117,136,118,93,137,7,206,203,144,236,187,27,147,12,174,224,94,122,21,78,223,205,71,112,114,5,198,254,236,46,113,110)
|
||||
IMAGE_DATA(191,144,239,255,16,89,247,15,228,222,31,203,62,171,129,148,246,145,249,253,222,3,244,167,52,145,27,114,2,217,129,246)
|
||||
IMAGE_DATA(200,188,109,139,196,107,7,113,225,152,49,172,45,45,224,230,230,134,67,251,247,32,208,117,7,190,217,120,30,22,150,54)
|
||||
IMAGE_DATA(204,57,43,107,91,204,94,101,65,250,81,145,52,46,170,167,215,2,250,104,226,117,191,180,207,255,202,144,180,24,208,107)
|
||||
IMAGE_DATA(86,131,237,63,101,217,103,53,160,210,58,168,209,239,61,192,165,179,191,130,142,198,56,44,158,249,5,180,103,168,97,145)
|
||||
IMAGE_DATA(230,84,56,56,56,160,172,172,12,57,57,57,8,13,13,197,110,227,223,177,105,171,33,146,83,82,152,115,225,225,225,140)
|
||||
IMAGE_DATA(143,170,170,170,181,164,113,41,234,251,63,197,235,254,94,178,47,148,36,54,123,85,23,4,88,125,130,250,146,32,150,125)
|
||||
IMAGE_DATA(86,3,46,45,203,217,204,30,224,1,154,241,95,184,63,75,173,249,101,237,1,142,26,53,42,151,243,148,1,3,3,131)
|
||||
IMAGE_DATA(206,216,164,36,232,234,234,98,254,252,249,157,235,215,175,199,177,99,199,96,98,98,2,210,214,210,210,98,174,145,24,64)
|
||||
IMAGE_DATA(31,215,74,27,215,243,254,254,111,38,239,139,176,255,156,223,243,39,215,218,64,89,137,51,154,176,159,31,125,21,145,62)
|
||||
IMAGE_DATA(27,89,246,89,189,20,154,127,104,102,219,143,78,115,59,149,7,43,173,235,203,253,202,202,202,211,70,142,28,25,49,102)
|
||||
IMAGE_DATA(204,152,124,83,83,83,1,225,159,62,14,153,50,101,74,83,96,96,32,98,99,99,193,231,243,225,235,235,139,105,211,166)
|
||||
IMAGE_DATA(181,147,107,132,127,58,38,244,248,186,22,97,150,228,237,190,254,253,15,38,231,139,173,247,251,80,247,247,36,112,228,136)
|
||||
IMAGE_DATA(1,199,13,70,161,62,63,18,130,210,4,220,216,59,17,97,206,95,35,59,220,0,113,174,11,112,255,192,68,150,125,86)
|
||||
IMAGE_DATA(3,37,149,241,43,212,42,250,219,201,208,161,67,55,47,95,190,188,134,240,175,166,166,22,48,125,250,116,129,166,166,38)
|
||||
IMAGE_DATA(180,181,181,25,35,109,114,142,92,35,252,19,223,158,250,36,156,146,24,64,113,122,255,247,191,36,229,252,126,212,253,178)
|
||||
IMAGE_DATA(36,87,254,39,252,183,21,70,163,146,187,6,101,78,51,192,223,56,2,220,213,170,240,219,249,5,203,62,171,215,65,159)
|
||||
IMAGE_DATA(77,154,52,41,141,174,1,106,232,154,191,138,199,227,225,212,169,83,48,52,52,132,177,177,49,211,38,231,200,53,226,67)
|
||||
IMAGE_DATA(124,123,211,57,201,219,76,46,39,223,219,195,145,252,183,63,25,230,197,242,189,130,114,190,168,228,90,255,235,206,122,27)
|
||||
IMAGE_DATA(201,174,43,209,20,231,133,202,56,31,132,218,204,99,217,103,245,58,105,16,189,22,248,106,242,228,201,121,116,110,111,92)
|
||||
IMAGE_DATA(183,110,93,11,189,198,111,83,81,81,209,27,50,100,136,198,170,85,171,234,201,57,114,141,248,16,223,222,116,206,212,2)
|
||||
IMAGE_DATA(79,89,102,98,129,24,227,178,76,129,236,19,201,197,240,178,25,239,64,111,214,8,184,110,254,152,225,94,231,187,247,125)
|
||||
IMAGE_DATA(21,56,38,86,172,94,91,9,99,193,0,50,207,138,213,43,169,255,3,147,97,245,231,0,0,0,0,0,0,0,0,0)
|
||||
IMAGE_END_DATA(3520, 1)
|
||||
|
||||
IMAGE_BEGIN_DATA
|
||||
IMAGE_DATA(120,156,237,157,121,84,20,215,158,199,59,231,205,204,63,115,78,206,59,201,152,121,39,115,230,205,228,36,153,121,47,227)
|
||||
IMAGE_DATA(76,50,73,156,140,33,209,68,140,70,141,123,22,121,198,184,197,29,141,184,43,91,35,34,171,160,2,178,131,138,32,130)
|
||||
IMAGE_DATA(224,74,92,144,29,68,4,105,101,7,1,5,148,69,16,145,69,1,225,126,167,126,133,229,180,77,85,119,53,221,8,230)
|
||||
IMAGE_DATA(245,247,156,223,161,168,186,117,107,161,62,247,247,251,221,123,171,80,40,94,249,147,66,16,76,50,201,36,147,140,160,190)
|
||||
IMAGE_DATA(190,62,4,121,219,178,211,94,163,217,113,143,143,88,87,87,215,128,50,13,13,13,160,237,49,30,31,179,210,210,82,131)
|
||||
IMAGE_DATA(142,23,23,29,13,37,215,132,105,51,42,99,136,62,250,104,185,222,102,210,208,201,210,210,146,145,219,50,134,101,102,102)
|
||||
IMAGE_DATA(242,102,140,186,2,2,2,180,158,183,182,227,208,54,65,111,189,245,22,27,202,235,29,42,245,244,244,32,192,115,35,203)
|
||||
IMAGE_DATA(58,102,193,122,154,147,145,19,103,193,188,93,231,179,117,30,71,153,101,68,9,111,180,188,223,229,39,118,253,204,82,86)
|
||||
IMAGE_DATA(152,176,129,69,185,126,204,106,106,106,244,58,142,58,243,209,156,53,82,8,35,97,141,79,203,24,210,22,16,207,197,197)
|
||||
IMAGE_DATA(197,188,81,123,85,94,94,206,91,85,85,21,170,171,171,81,91,91,251,204,26,27,27,127,211,252,235,251,188,137,41,234)
|
||||
IMAGE_DATA(228,69,88,238,137,99,211,221,46,179,153,30,87,48,203,45,149,205,114,77,99,83,157,211,153,237,190,227,76,116,39,53)
|
||||
IMAGE_DATA(169,243,160,201,220,164,73,147,6,176,162,89,134,248,146,226,65,108,127,169,235,208,228,89,27,255,194,49,53,217,214,60)
|
||||
IMAGE_DATA(31,177,50,67,121,189,198,84,200,129,93,184,28,245,23,214,221,16,15,213,169,31,217,133,96,51,230,146,209,12,159,156)
|
||||
IMAGE_DATA(70,132,92,175,231,141,150,61,211,170,144,28,242,49,171,72,219,206,242,78,175,97,81,187,63,96,212,118,200,17,241,171)
|
||||
IMAGE_DATA(139,121,93,109,129,190,109,128,28,254,137,251,250,250,250,65,241,175,254,124,25,35,29,147,251,252,106,219,87,219,118,125)
|
||||
IMAGE_DATA(234,18,211,148,93,41,172,185,237,49,90,58,186,112,191,189,223,154,219,186,80,82,215,6,219,211,53,88,234,153,47,26)
|
||||
IMAGE_DATA(55,10,18,120,16,227,77,14,15,234,229,52,121,144,242,209,218,36,212,37,197,191,54,246,5,209,190,186,248,31,138,235)
|
||||
IMAGE_DATA(37,41,99,238,137,154,205,177,6,108,61,82,135,245,7,107,176,38,168,6,75,252,170,97,177,183,18,115,220,203,48,197)
|
||||
IMAGE_DATA(169,20,227,148,197,24,179,53,255,89,61,65,62,59,113,227,220,6,150,27,251,35,75,12,25,203,246,103,213,224,216,141)
|
||||
IMAGE_DATA(58,68,166,221,198,129,184,34,236,143,41,194,193,196,42,68,170,238,32,52,53,25,55,142,79,100,45,55,35,184,92,193)
|
||||
IMAGE_DATA(76,103,30,32,248,124,226,183,112,16,236,11,86,168,22,15,200,109,7,136,103,58,63,129,253,138,138,138,1,190,159,216)
|
||||
IMAGE_DATA(31,110,254,7,235,143,245,57,15,97,189,82,169,124,102,114,234,83,215,12,231,20,246,176,179,27,215,106,123,57,123,130)
|
||||
IMAGE_DATA(43,183,187,145,86,209,133,174,39,125,184,86,215,139,93,191,214,96,147,91,148,36,43,196,3,61,207,98,219,228,242,32)
|
||||
IMAGE_DATA(112,110,12,254,133,107,21,59,142,186,239,166,101,109,117,8,109,128,24,255,67,117,189,36,98,253,220,245,118,53,107,195)
|
||||
IMAGE_DATA(153,188,135,56,153,211,138,227,217,15,16,117,185,5,225,105,247,17,154,210,132,128,132,123,240,57,215,0,175,179,117,112)
|
||||
IMAGE_DATA(61,121,7,111,175,187,246,172,158,140,244,52,28,221,249,103,22,191,239,3,230,150,92,133,163,217,53,136,75,190,133,138)
|
||||
IMAGE_DATA(218,135,104,126,216,142,166,135,29,40,171,121,136,240,139,21,8,77,191,133,99,167,60,144,17,252,9,11,179,31,163,149)
|
||||
IMAGE_DATA(127,67,124,190,49,98,1,226,89,240,249,2,251,234,49,191,58,251,77,77,77,195,194,191,161,49,185,216,122,185,235,180)
|
||||
IMAGE_DATA(157,147,152,190,217,221,207,191,138,227,95,117,167,23,87,171,123,144,81,217,141,91,141,29,160,184,160,241,65,39,38,218)
|
||||
IMAGE_DATA(38,105,229,95,202,215,202,229,129,68,156,25,139,127,169,115,82,143,189,117,241,47,156,191,24,255,67,117,189,36,129,255)
|
||||
IMAGE_DATA(99,151,31,32,50,227,1,14,167,181,32,52,185,25,254,151,154,224,125,158,139,215,207,54,192,229,100,29,28,142,215,194)
|
||||
IMAGE_DATA(250,40,215,54,135,223,198,186,208,42,40,163,107,240,230,146,236,231,234,218,229,238,201,182,198,22,32,48,227,22,162,57)
|
||||
IMAGE_DATA(95,79,106,105,109,69,249,221,122,60,230,150,201,218,185,171,243,63,91,129,3,41,55,97,23,157,134,221,158,222,90,239)
|
||||
IMAGE_DATA(139,210,200,236,171,183,1,74,25,127,91,226,153,184,39,190,201,164,216,39,107,229,174,245,175,129,127,117,255,47,102,82)
|
||||
IMAGE_DATA(251,63,122,244,136,231,191,181,163,27,5,156,175,47,168,239,123,26,3,244,32,161,184,19,241,133,237,104,229,242,130,201)
|
||||
IMAGE_DATA(202,36,70,101,197,68,60,72,229,177,250,240,32,86,143,92,254,53,253,49,29,67,236,56,114,207,69,253,248,98,252,15)
|
||||
IMAGE_DATA(213,245,146,136,255,120,85,27,151,143,245,34,140,227,254,126,251,19,116,116,245,161,227,113,31,218,31,247,34,251,102,7)
|
||||
IMAGE_DATA(215,6,212,163,188,238,49,28,99,107,81,124,231,17,151,11,220,196,150,240,91,248,131,69,198,115,117,45,181,245,97,155)
|
||||
IMAGE_DATA(143,23,192,255,92,25,138,57,191,223,249,132,161,189,179,19,190,161,97,104,228,216,104,227,242,186,216,11,73,72,43,111)
|
||||
IMAGE_DATA(133,115,116,62,168,44,237,35,117,63,4,223,111,108,246,5,163,186,237,191,251,14,113,113,113,146,127,19,226,153,124,190)
|
||||
IMAGE_DATA(38,251,66,222,175,110,195,193,191,62,236,139,61,207,218,142,41,85,150,24,79,73,73,225,77,125,89,248,93,108,95,186)
|
||||
IMAGE_DATA(199,246,246,246,236,27,215,76,60,224,248,47,169,103,40,226,248,207,231,218,129,220,234,39,124,14,144,88,254,136,219,214)
|
||||
IMAGE_DATA(131,175,29,51,48,127,254,124,22,21,21,165,215,189,208,135,7,49,201,229,95,91,46,175,89,78,179,46,169,88,94,253)
|
||||
IMAGE_DATA(26,228,158,175,161,215,75,218,126,180,142,143,245,59,57,230,253,47,222,227,217,247,56,83,207,255,174,140,174,197,221,150)
|
||||
IMAGE_DATA(110,156,189,214,194,255,238,121,230,46,30,117,247,225,7,175,82,172,13,173,196,27,51,82,158,171,107,206,206,24,102,21)
|
||||
IMAGE_DATA(153,7,215,136,27,104,124,212,131,22,110,159,110,58,134,210,1,71,226,78,97,171,189,3,46,94,206,70,65,107,15,54)
|
||||
IMAGE_DATA(28,200,6,149,165,125,196,206,75,96,95,52,223,231,152,5,197,238,244,83,23,231,90,202,82,221,62,163,70,241,109,128)
|
||||
IMAGE_DATA(148,136,103,205,126,126,117,159,79,49,63,113,223,214,214,198,155,20,255,114,124,175,62,254,89,125,219,112,240,175,143,255)
|
||||
IMAGE_DATA(79,79,79,71,96,96,32,114,115,115,49,195,61,11,247,57,254,75,27,24,74,56,43,184,219,135,27,92,30,144,197,197)
|
||||
IMAGE_DATA(0,233,92,30,112,159,227,127,170,83,22,191,207,166,77,155,144,156,156,44,121,126,154,122,17,252,11,101,6,123,62,114)
|
||||
IMAGE_DATA(219,129,193,214,175,47,255,235,14,214,32,42,171,5,189,125,156,175,230,124,126,87,15,227,99,253,14,206,247,83,172,95)
|
||||
IMAGE_DATA(219,220,141,166,182,30,190,93,216,29,87,139,123,15,123,48,221,181,8,203,3,202,49,202,60,241,185,186,166,91,31,102)
|
||||
IMAGE_DATA(203,131,179,161,12,83,161,166,189,135,107,3,250,80,219,218,134,93,30,123,120,246,211,84,249,104,122,2,228,54,247,96)
|
||||
IMAGE_DATA(237,222,44,80,89,218,71,236,188,36,227,126,129,103,146,174,54,64,70,89,93,121,0,241,172,141,125,50,226,190,163,163)
|
||||
IMAGE_DATA(131,55,49,254,229,198,222,218,202,232,218,54,146,253,191,163,163,35,203,207,207,231,231,126,216,218,218,202,50,42,155,145)
|
||||
IMAGE_DATA(145,129,197,139,23,191,48,127,40,135,127,225,24,134,212,167,110,114,99,9,49,25,131,127,234,215,63,148,218,204,199,250)
|
||||
IMAGE_DATA(187,98,239,162,237,81,47,182,30,169,230,127,95,21,84,137,219,77,93,72,42,104,69,94,85,59,236,143,221,230,226,248)
|
||||
IMAGE_DATA(30,76,116,204,199,79,62,101,120,253,179,115,207,213,53,223,106,55,155,231,149,12,135,240,107,72,189,217,10,46,101,64)
|
||||
IMAGE_DATA(45,215,118,252,154,146,137,170,251,15,209,208,11,220,234,4,78,20,62,192,134,128,43,160,178,180,143,216,121,41,165,152)
|
||||
IMAGE_DATA(214,236,179,147,106,3,212,217,87,47,43,82,39,29,139,158,91,177,60,64,224,255,238,221,187,207,245,243,105,178,79,249)
|
||||
IMAGE_DATA(42,153,38,255,250,240,168,47,187,114,247,25,110,255,79,113,127,111,111,47,200,114,114,114,158,197,74,82,118,249,242,101)
|
||||
IMAGE_DATA(8,229,215,173,91,55,98,248,87,239,207,151,43,245,177,61,109,54,152,120,192,24,252,207,245,188,201,247,235,19,247,219)
|
||||
IMAGE_DATA(35,171,241,176,179,23,107,66,42,249,223,127,242,41,71,85,227,99,204,246,40,198,197,27,15,184,118,161,10,143,123,250)
|
||||
IMAGE_DATA(80,217,240,24,22,94,37,120,109,204,175,207,213,229,228,190,143,77,85,158,196,47,65,151,225,18,93,134,38,238,138,90)
|
||||
IMAGE_DATA(122,128,182,62,206,184,229,7,28,255,77,220,242,142,240,50,88,6,164,129,202,210,62,154,231,164,53,239,151,226,90,189)
|
||||
IMAGE_DATA(13,144,83,70,205,248,126,128,213,171,233,57,29,112,127,136,103,205,126,62,245,152,95,96,159,198,172,201,94,54,255,47)
|
||||
IMAGE_DATA(117,92,185,235,164,164,94,214,206,206,14,221,221,221,188,197,196,196,224,214,173,91,124,59,32,102,180,45,60,60,252,89)
|
||||
IMAGE_DATA(121,206,255,203,62,230,80,241,47,231,30,14,71,189,198,224,223,124,87,49,246,198,215,63,235,215,95,17,88,129,69,190)
|
||||
IMAGE_DATA(55,241,151,125,101,152,187,167,132,143,245,191,118,42,128,185,67,62,198,217,93,199,88,107,21,198,108,207,195,183,123,138)
|
||||
IMAGE_DATA(240,218,71,103,159,171,43,39,39,23,83,86,216,177,73,182,103,96,197,241,237,26,93,10,213,173,7,104,127,212,131,246)
|
||||
IMAGE_DATA(206,30,220,224,150,157,142,150,192,210,39,9,84,134,202,210,62,154,34,127,172,181,207,95,138,239,247,222,235,55,61,216)
|
||||
IMAGE_DATA(199,211,99,217,115,251,137,141,103,107,242,79,236,183,180,180,232,197,63,201,80,254,181,201,16,246,165,234,151,179,78,174)
|
||||
IMAGE_DATA(255,223,177,99,7,74,74,74,120,243,243,243,227,231,82,80,94,47,102,84,198,211,211,243,89,249,241,227,199,107,189,118)
|
||||
IMAGE_DATA(117,13,181,255,87,175,127,48,146,59,151,87,174,140,193,63,205,225,113,62,113,7,14,49,181,176,142,170,230,251,245,173)
|
||||
IMAGE_DATA(14,85,97,109,72,5,86,6,220,196,82,191,114,62,214,159,191,175,4,63,112,62,159,184,159,235,209,111,154,252,147,130)
|
||||
IMAGE_DATA(66,15,226,103,123,63,54,113,219,9,252,228,145,0,43,239,52,108,218,151,1,43,175,116,88,238,77,198,2,183,243,176)
|
||||
IMAGE_DATA(216,125,22,139,108,125,25,149,21,147,82,27,251,218,218,0,49,201,236,39,164,99,138,229,0,67,61,255,95,14,255,114)
|
||||
IMAGE_DATA(234,48,212,191,232,211,14,169,231,251,154,38,86,199,230,205,155,145,144,144,192,219,158,61,123,80,88,88,136,11,23,46)
|
||||
IMAGE_DATA(136,90,65,65,1,245,23,60,43,255,30,181,231,50,53,210,242,127,41,233,106,7,228,204,21,80,63,23,67,248,167,57)
|
||||
IMAGE_DATA(60,255,180,44,27,111,46,186,130,63,88,92,198,63,206,77,227,251,245,71,77,78,196,168,47,19,240,15,227,46,224,245)
|
||||
IMAGE_DATA(177,231,248,88,159,120,215,52,77,165,166,166,242,127,195,248,115,23,153,217,154,96,140,177,140,196,39,191,196,241,70,203)
|
||||
IMAGE_DATA(83,183,28,66,114,74,42,75,77,75,99,212,199,43,38,89,252,203,105,3,228,142,17,60,229,159,226,127,177,28,96,40)
|
||||
IMAGE_DATA(101,12,254,133,125,13,245,43,250,180,17,114,234,18,180,126,253,122,196,199,199,243,230,235,235,11,7,7,7,222,182,111)
|
||||
IMAGE_DATA(223,78,249,61,31,227,207,153,51,7,230,230,230,152,48,97,2,191,78,40,255,238,187,239,202,62,230,72,236,255,215,182)
|
||||
IMAGE_DATA(93,170,29,144,219,39,104,12,254,141,169,123,247,238,225,200,145,35,236,230,205,155,8,13,11,99,14,206,238,108,230,98)
|
||||
IMAGE_DATA(43,246,225,119,253,70,203,59,93,60,216,161,195,135,89,89,89,25,98,99,99,25,205,173,209,148,108,254,201,180,249,7)
|
||||
IMAGE_DATA(218,38,179,30,57,252,203,141,147,245,145,177,248,87,175,99,176,241,228,96,234,150,211,222,172,90,181,138,29,61,122,148)
|
||||
IMAGE_DATA(231,153,184,143,62,126,2,137,41,153,162,22,21,29,139,209,163,71,243,101,131,130,130,240,246,219,111,203,62,191,225,30)
|
||||
IMAGE_DATA(255,215,244,219,114,239,189,216,60,1,57,26,105,252,183,183,183,195,217,217,153,5,6,6,50,138,241,164,68,125,60,222)
|
||||
IMAGE_DATA(222,222,204,195,195,131,81,94,173,169,145,200,191,216,223,198,24,140,25,155,127,67,21,205,197,76,98,12,68,27,240,30)
|
||||
IMAGE_DATA(181,139,139,11,91,189,122,53,155,55,111,30,22,251,102,225,209,227,110,52,63,236,70,19,103,141,173,93,168,187,255,24)
|
||||
IMAGE_DATA(213,247,58,80,213,208,134,71,93,61,88,236,147,133,119,222,121,135,226,1,122,70,100,31,231,69,241,47,229,215,53,219)
|
||||
IMAGE_DATA(5,125,142,175,217,6,200,145,177,249,167,190,172,121,123,102,25,60,47,193,80,141,180,248,95,219,223,197,208,54,96,164)
|
||||
IMAGE_DATA(241,47,198,186,208,38,24,210,6,8,90,180,63,147,45,243,191,138,101,126,255,111,63,243,150,205,27,109,91,180,47,115)
|
||||
IMAGE_DATA(80,207,224,139,226,95,76,98,239,233,232,19,203,107,123,7,80,74,198,230,127,81,228,15,108,213,249,5,131,230,255,148)
|
||||
IMAGE_DATA(219,74,86,24,188,22,249,129,171,161,242,91,142,92,159,197,184,178,247,71,100,120,124,143,20,151,217,184,180,107,26,206)
|
||||
IMAGE_DATA(217,127,5,151,13,243,117,206,249,55,152,125,65,122,244,255,137,241,47,231,57,24,138,88,155,68,227,10,151,252,102,177)
|
||||
IMAGE_DATA(76,207,25,236,202,222,25,136,113,254,156,213,213,213,105,221,231,244,233,36,172,88,225,138,113,227,214,224,195,15,151,98)
|
||||
IMAGE_DATA(252,120,75,172,94,237,198,197,211,169,178,142,169,111,140,111,172,118,193,24,26,46,254,133,253,196,226,127,50,57,99,251)
|
||||
IMAGE_DATA(218,222,243,151,146,49,249,95,16,242,29,115,191,166,132,115,182,13,86,158,95,128,37,167,230,225,199,99,115,241,253,161)
|
||||
IMAGE_DATA(233,152,25,48,25,83,246,125,137,9,46,102,48,83,142,193,152,109,239,227,253,245,3,227,110,98,255,94,201,175,104,44)
|
||||
IMAGE_DATA(62,131,134,130,83,168,191,17,139,187,170,104,220,201,141,68,109,246,33,84,95,14,193,237,244,0,196,109,249,68,235,185)
|
||||
IMAGE_DATA(16,139,195,49,254,167,201,191,62,207,192,80,180,1,101,81,179,80,26,177,26,143,171,179,209,85,155,131,171,190,19,176)
|
||||
IMAGE_DATA(103,251,66,201,103,105,235,86,95,124,246,153,37,151,99,7,113,237,64,34,210,210,178,57,238,83,224,232,24,2,51,179)
|
||||
IMAGE_DATA(53,176,177,209,253,108,244,159,63,205,135,150,195,116,52,119,107,117,199,69,47,42,174,17,203,163,135,154,127,245,125,52)
|
||||
IMAGE_DATA(143,165,94,135,174,54,64,56,119,125,230,1,25,122,189,130,230,251,205,101,110,185,246,136,41,61,140,163,197,161,8,47)
|
||||
IMAGE_DATA(12,68,88,254,1,4,170,188,225,155,235,137,189,87,93,225,158,229,4,231,76,7,236,76,179,133,93,202,54,252,121,213)
|
||||
IMAGE_DATA(192,126,217,235,254,43,209,80,116,154,227,220,159,227,220,7,85,201,94,168,184,228,134,242,243,78,40,61,107,143,226,147)
|
||||
IMAGE_DATA(219,81,153,180,31,147,29,83,241,149,50,9,19,108,18,240,249,198,147,44,56,236,200,115,245,12,231,252,159,145,226,255)
|
||||
IMAGE_DATA(239,92,124,31,29,133,71,209,85,157,137,238,218,92,222,30,223,76,68,134,251,116,209,231,131,216,159,57,115,59,247,60)
|
||||
IMAGE_DATA(94,5,245,173,82,31,44,189,183,116,251,246,109,208,55,150,84,170,66,126,187,173,173,246,231,163,255,26,232,222,81,251)
|
||||
IMAGE_DATA(174,208,105,218,248,215,252,125,176,177,181,28,73,205,179,211,103,126,173,212,124,125,93,223,246,16,76,243,253,58,185,117)
|
||||
IMAGE_DATA(9,219,228,142,251,25,235,122,5,253,176,119,38,219,125,197,26,17,69,193,56,84,224,143,144,235,62,240,207,219,11,239)
|
||||
IMAGE_DATA(28,119,120,102,59,195,245,242,78,236,74,183,131,50,117,7,108,146,182,96,91,226,6,188,179,244,173,1,245,228,250,44)
|
||||
IMAGE_DATA(145,117,188,137,118,156,111,42,121,128,228,162,22,132,167,212,224,211,229,65,3,206,89,50,7,24,162,249,191,2,251,47)
|
||||
IMAGE_DATA(58,255,23,19,177,223,117,63,29,93,53,81,168,140,179,68,135,42,130,55,226,63,201,125,246,128,123,69,49,63,249,125)
|
||||
IMAGE_DATA(117,246,137,123,178,138,91,21,207,230,46,231,231,151,242,229,206,159,23,31,119,21,174,231,233,146,44,83,42,229,241,175)
|
||||
IMAGE_DATA(237,120,134,180,11,218,222,177,145,195,158,177,190,255,39,231,30,136,249,107,125,125,190,161,215,43,165,185,123,191,97,214)
|
||||
IMAGE_DATA(73,86,176,61,191,9,179,189,190,102,82,49,63,249,125,98,255,95,127,250,231,1,117,80,174,111,115,182,18,223,6,94)
|
||||
IMAGE_DATA(199,108,159,60,76,247,204,193,84,151,43,152,228,144,9,115,235,116,140,223,156,130,21,94,57,248,98,251,5,92,42,104)
|
||||
IMAGE_DATA(65,125,27,208,250,8,248,112,197,192,88,147,152,124,81,239,255,168,199,254,82,239,2,139,253,157,135,146,253,222,142,51)
|
||||
IMAGE_DATA(232,44,91,137,118,213,47,184,30,98,129,202,152,141,200,222,55,83,116,31,202,247,41,230,215,100,159,184,39,19,230,45)
|
||||
IMAGE_DATA(55,55,55,195,201,233,32,214,174,221,35,121,124,99,241,255,124,93,250,107,40,238,173,73,218,53,221,237,43,182,32,114)
|
||||
IMAGE_DATA(46,91,121,238,199,65,245,1,166,187,127,199,231,249,101,191,238,68,201,105,27,20,197,109,69,126,180,21,174,71,174,65)
|
||||
IMAGE_DATA(222,225,101,200,13,93,132,226,83,246,48,219,120,22,87,43,30,224,74,121,11,30,112,252,255,231,226,136,1,117,189,232)
|
||||
IMAGE_DATA(247,127,229,204,253,49,196,207,201,209,115,236,87,44,66,71,241,68,244,180,120,162,238,236,2,148,121,153,73,238,71,125)
|
||||
IMAGE_DATA(125,148,239,19,251,197,229,197,162,236,215,223,171,231,231,45,39,38,102,195,220,252,23,201,186,70,10,255,198,216,223,36)
|
||||
IMAGE_DATA(253,100,225,55,199,160,62,192,164,221,51,80,157,17,196,231,249,5,199,55,226,70,212,58,168,142,172,196,181,131,75,145)
|
||||
IMAGE_DATA(19,188,0,87,3,230,161,48,118,7,254,103,237,9,100,150,222,71,208,165,106,36,23,54,225,79,243,15,138,158,207,11)
|
||||
IMAGE_DATA(249,254,135,90,222,255,162,231,254,169,107,176,236,147,168,159,159,250,250,132,124,95,96,95,224,159,216,167,247,21,200,174)
|
||||
IMAGE_DATA(95,47,197,167,159,174,146,172,235,101,229,223,219,123,27,11,8,120,147,133,133,41,120,163,101,90,103,208,9,252,21,137)
|
||||
IMAGE_DATA(250,0,12,237,3,60,175,156,132,170,20,95,84,36,238,69,249,69,15,228,159,218,133,136,253,219,224,230,226,132,208,208)
|
||||
IMAGE_DATA(80,236,222,105,131,196,224,141,248,100,197,17,56,185,184,243,235,92,221,60,48,113,161,19,63,247,64,76,146,121,128,129)
|
||||
IMAGE_DATA(166,25,247,75,189,255,171,207,51,56,216,231,61,121,239,191,15,154,125,18,141,241,81,63,191,166,223,39,238,213,217,167)
|
||||
IMAGE_DATA(249,89,201,201,185,58,253,63,141,231,17,215,114,108,245,106,121,125,163,250,74,159,125,232,90,15,29,250,27,166,217,54)
|
||||
IMAGE_DATA(209,58,186,23,38,233,214,28,151,105,6,247,1,126,63,241,3,124,103,254,95,152,251,229,104,204,254,226,61,204,152,100)
|
||||
IMAGE_DATA(134,125,251,246,241,223,114,168,172,172,228,223,13,216,177,109,51,86,90,90,161,176,168,136,95,71,223,120,160,50,118,118)
|
||||
IMAGE_DATA(118,90,191,3,100,236,239,127,106,198,253,186,242,126,93,26,236,115,126,193,245,223,208,86,151,52,104,246,73,171,86,185)
|
||||
IMAGE_DATA(241,99,124,212,207,47,229,247,137,253,206,206,78,236,222,125,24,191,252,226,37,89,151,212,252,63,109,38,103,252,95,223)
|
||||
IMAGE_DATA(124,94,87,57,242,237,7,14,252,11,11,9,121,133,29,62,172,192,169,83,10,20,23,43,208,215,167,64,111,175,2,5)
|
||||
IMAGE_DATA(5,253,235,104,27,149,161,178,166,120,64,187,102,185,77,225,251,0,29,57,198,127,142,158,47,25,243,107,235,3,28,59)
|
||||
IMAGE_DATA(118,236,179,254,201,53,107,214,176,188,130,2,88,88,88,96,242,228,201,108,217,178,101,216,191,127,63,255,222,7,45,79)
|
||||
IMAGE_DATA(155,54,141,223,70,109,128,182,177,15,99,127,255,155,247,251,106,236,235,154,243,175,235,185,29,76,95,21,205,129,38,246)
|
||||
IMAGE_DATA(171,115,78,226,202,177,21,131,102,159,68,190,159,198,247,105,140,79,243,123,164,234,236,151,151,87,243,229,18,18,244,251)
|
||||
IMAGE_DATA(63,16,116,93,52,15,215,88,249,184,174,251,37,231,56,7,15,254,221,115,254,254,246,109,5,142,31,87,224,198,141,126)
|
||||
IMAGE_DATA(139,137,233,95,167,94,166,127,31,147,180,105,218,110,115,54,227,192,87,44,56,36,120,80,251,211,59,125,83,166,76,97)
|
||||
IMAGE_DATA(102,102,102,204,218,218,154,231,127,230,204,153,108,220,184,113,44,49,49,17,121,121,121,92,174,154,70,239,254,224,179,207)
|
||||
IMAGE_DATA(62,99,180,141,248,167,178,186,234,38,102,201,111,15,246,255,127,240,62,95,35,223,151,138,251,5,201,25,227,25,12,255)
|
||||
IMAGE_DATA(222,107,255,136,182,234,43,232,169,191,129,120,219,143,145,30,240,223,168,200,88,11,85,240,84,100,57,126,44,187,30,65)
|
||||
IMAGE_DATA(214,214,254,252,248,62,141,241,81,63,191,240,141,2,117,246,167,79,223,14,7,7,233,191,171,177,199,191,228,72,106,92)
|
||||
IMAGE_DATA(69,155,92,92,22,178,184,56,5,138,138,250,253,61,89,86,150,2,78,78,111,192,211,83,201,124,125,247,51,91,219,15)
|
||||
IMAGE_DATA(24,173,163,88,224,201,19,5,119,95,20,160,125,118,238,156,103,106,3,180,136,242,240,207,151,255,175,193,247,200,223,223)
|
||||
IMAGE_DATA(31,75,150,44,225,249,167,159,196,255,164,73,147,48,123,246,108,222,104,153,214,209,54,226,159,126,234,170,147,255,134,44)
|
||||
IMAGE_DATA(215,6,80,44,32,196,3,114,255,255,151,152,207,215,22,247,11,26,42,255,79,252,119,215,230,160,57,122,49,26,252,191)
|
||||
IMAGE_DATA(64,218,138,81,136,94,244,6,206,110,25,45,187,14,77,209,220,30,26,223,167,49,62,234,231,167,190,62,202,247,41,230)
|
||||
IMAGE_DATA(39,191,175,141,125,18,249,120,49,83,191,62,169,50,250,188,167,35,37,185,247,48,50,242,119,172,180,84,129,107,215,20)
|
||||
IMAGE_DATA(156,63,233,247,247,129,129,175,192,215,215,154,209,183,90,233,91,131,190,190,19,152,16,15,228,230,42,184,220,83,129,164)
|
||||
IMAGE_DATA(36,5,183,254,119,38,254,95,128,232,255,101,205,157,59,151,57,56,56,48,63,63,63,70,156,209,183,95,172,172,172,176)
|
||||
IMAGE_DATA(109,219,54,126,249,233,58,190,12,149,213,167,126,242,219,188,47,167,239,246,40,196,255,247,39,207,188,134,191,151,227,243)
|
||||
IMAGE_DATA(213,53,84,249,191,197,132,215,80,24,188,0,157,170,72,52,171,142,33,213,253,107,131,216,23,68,115,123,104,124,159,250)
|
||||
IMAGE_DATA(248,168,159,159,126,82,190,47,39,230,31,14,255,63,24,5,5,189,202,218,219,185,246,189,81,129,202,74,5,170,170,20)
|
||||
IMAGE_DATA(92,94,249,123,254,157,97,122,63,194,203,75,201,156,157,205,153,157,157,25,115,113,249,15,150,144,160,0,153,74,165,192)
|
||||
IMAGE_DATA(158,61,175,154,248,127,1,162,111,55,170,84,42,62,246,95,184,112,33,229,254,108,249,242,229,44,34,34,2,148,7,208)
|
||||
IMAGE_DATA(239,100,180,141,202,80,89,125,244,244,123,242,207,190,57,165,201,184,54,147,203,62,105,168,250,255,231,125,241,58,126,154)
|
||||
IMAGE_DATA(48,10,193,171,222,229,185,119,179,94,58,34,159,75,205,254,192,145,240,174,143,192,255,195,135,10,46,207,81,160,186,154)
|
||||
IMAGE_DATA(203,237,124,126,143,211,167,79,243,126,199,217,121,21,199,189,3,163,239,17,57,57,237,226,126,42,64,70,177,130,137,255)
|
||||
IMAGE_DATA(223,158,132,182,192,88,204,155,52,178,21,24,216,207,127,107,171,2,205,205,10,52,52,40,224,230,246,3,163,239,135,82)
|
||||
IMAGE_DATA(236,159,157,157,205,255,164,239,8,219,217,173,101,233,233,253,252,231,228,80,254,98,226,223,36,147,94,102,133,133,253,45)
|
||||
IMAGE_DATA(235,236,84,160,173,141,203,231,67,198,50,215,200,235,44,252,68,6,138,138,138,248,111,6,70,70,70,226,224,193,131,176)
|
||||
IMAGE_DATA(177,89,201,92,93,95,227,226,205,254,220,63,59,91,1,79,79,211,24,128,73,38,189,204,114,116,52,103,196,179,127,216)
|
||||
IMAGE_DATA(251,216,21,89,201,78,102,53,193,230,80,37,124,35,46,113,185,224,56,158,121,79,207,87,113,226,68,127,222,79,126,159)
|
||||
IMAGE_DATA(252,127,100,164,130,107,19,62,55,241,111,146,73,47,177,232,255,2,172,221,96,197,182,4,230,115,236,55,35,254,234,125)
|
||||
IMAGE_DATA(132,39,53,98,161,91,30,163,57,64,66,127,31,113,79,99,128,52,23,96,231,206,63,178,144,144,253,252,88,168,73,38)
|
||||
IMAGE_DATA(153,244,114,107,189,175,138,197,102,52,225,244,149,102,28,75,189,199,249,255,42,40,189,198,51,234,11,160,241,62,26,27)
|
||||
IMAGE_DATA(60,115,70,1,119,247,191,231,226,1,43,118,231,206,157,225,62,101,147,76,50,201,72,90,234,156,206,130,207,215,33,34)
|
||||
IMAGE_DATA(185,17,155,130,42,240,237,66,11,230,231,167,96,196,61,229,251,135,14,41,96,103,55,135,209,124,51,147,76,50,233,183)
|
||||
IMAGE_DATA(165,163,199,98,49,107,71,18,251,122,75,50,83,186,250,242,57,125,66,194,5,216,218,126,193,108,108,62,101,241,241,167)
|
||||
IMAGE_DATA(135,251,20,77,50,201,36,147,70,180,254,15,224,189,78,111,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0)
|
||||
IMAGE_END_DATA(5696, 1)
|
||||
|
||||
IMAGE_BEGIN_DATA
|
||||
IMAGE_DATA(120,156,237,93,121,84,21,71,186,239,204,139,239,143,156,153,156,156,204,75,38,207,57,243,206,228,249,222,57,51,78,222)
|
||||
IMAGE_DATA(115,102,242,156,24,77,50,110,99,156,100,98,30,234,184,107,18,19,163,227,22,49,113,5,4,84,246,77,201,21,1,241)
|
||||
IMAGE_DATA(2,34,168,40,184,129,26,149,125,81,68,65,65,144,29,89,148,85,64,17,23,132,250,189,174,230,180,105,154,238,123,171)
|
||||
IMAGE_DATA(239,70,204,227,119,78,29,170,187,234,171,250,170,111,253,170,190,175,186,170,225,94,226,94,226,172,137,209,163,57,247,128)
|
||||
IMAGE_DATA(0,174,62,34,130,35,52,208,56,189,199,34,251,220,115,220,171,145,145,92,55,192,65,26,232,61,62,109,184,90,125,158)
|
||||
IMAGE_DATA(158,92,181,94,207,245,238,219,199,225,248,113,14,197,197,28,122,123,57,244,244,112,40,44,236,187,71,211,104,30,154,87)
|
||||
IMAGE_DATA(170,79,120,56,247,72,90,215,205,155,28,142,28,225,112,237,90,95,56,124,184,239,158,52,15,149,161,178,19,39,114,225)
|
||||
IMAGE_DATA(241,241,28,138,138,250,234,163,225,194,5,14,137,137,28,162,162,250,2,141,211,123,84,151,39,79,56,20,20,112,160,50)
|
||||
IMAGE_DATA(19,38,112,49,49,49,220,147,146,18,14,87,174,112,200,203,235,171,143,214,45,111,191,168,207,229,203,28,210,210,56,36)
|
||||
IMAGE_DATA(39,115,216,181,139,123,18,20,196,117,116,118,114,104,106,226,80,89,201,161,170,138,67,122,58,135,178,178,239,245,161,241)
|
||||
IMAGE_DATA(140,12,14,55,110,112,56,119,174,47,228,231,115,240,240,224,58,68,249,187,119,57,180,181,113,168,169,233,211,53,55,247)
|
||||
IMAGE_DATA(251,246,211,58,233,243,163,114,169,169,125,129,234,74,229,121,29,4,249,142,14,14,173,173,28,154,155,57,212,215,247,213)
|
||||
IMAGE_DATA(73,219,149,153,217,39,71,245,165,122,81,61,168,60,45,223,221,157,235,224,127,143,199,93,93,28,238,221,227,208,208,208)
|
||||
IMAGE_DATA(39,91,93,205,161,188,188,239,55,164,121,169,156,24,146,146,250,202,202,201,225,224,235,203,61,154,51,135,59,71,175,235)
|
||||
IMAGE_DATA(234,250,218,64,203,160,207,129,214,79,229,105,26,125,94,52,80,61,104,189,180,76,254,185,99,230,76,46,141,255,9,255)
|
||||
IMAGE_DATA(249,181,215,184,37,235,215,115,229,52,79,99,35,135,150,150,190,231,72,229,197,231,69,229,232,115,161,125,97,237,90,238)
|
||||
IMAGE_DATA(230,240,225,220,42,94,246,5,105,191,29,57,146,115,243,242,226,218,179,178,250,202,160,101,209,103,71,127,219,147,39,133)
|
||||
IMAGE_DATA(231,213,249,198,27,156,31,159,247,151,106,253,255,249,231,185,223,141,31,207,69,7,7,115,132,202,209,246,242,125,31,124)
|
||||
IMAGE_DATA(63,59,50,108,24,247,7,86,14,190,240,2,55,101,250,116,46,121,246,108,46,243,167,63,229,62,82,203,151,250,34,247)
|
||||
IMAGE_DATA(226,211,11,88,24,180,72,173,197,138,50,90,100,229,50,44,178,106,50,134,100,141,201,40,201,178,202,200,101,77,149,51)
|
||||
IMAGE_DATA(85,79,115,158,139,57,191,131,154,172,22,152,34,195,86,238,115,191,182,26,57,134,48,132,33,124,143,222,222,94,132,6)
|
||||
IMAGE_DATA(58,146,227,254,191,35,135,125,254,72,30,61,122,52,32,79,99,99,35,104,122,172,207,155,164,164,164,100,16,180,236,15)
|
||||
IMAGE_DATA(165,97,97,104,168,24,130,173,16,27,30,2,251,145,28,2,29,86,147,193,214,197,28,116,119,119,35,216,111,45,201,62)
|
||||
IMAGE_DATA(56,135,116,183,166,224,82,220,28,18,232,57,143,172,242,137,33,43,246,23,11,129,198,119,122,44,36,249,39,22,147,194)
|
||||
IMAGE_DATA(179,246,228,128,231,155,164,182,182,118,208,116,54,102,180,25,195,202,149,43,137,86,35,79,45,100,101,101,9,193,18,101)
|
||||
IMAGE_DATA(133,132,132,24,212,219,80,61,52,77,196,235,175,191,222,175,79,90,186,189,114,140,24,49,66,83,249,171,87,15,228,12)
|
||||
IMAGE_DATA(235,51,84,170,223,84,136,28,166,127,89,65,249,78,101,196,240,172,243,127,111,208,118,100,29,152,75,30,55,38,34,239)
|
||||
IMAGE_DATA(216,124,114,102,207,88,226,153,217,10,93,110,19,246,94,109,16,2,141,251,167,87,33,57,236,77,82,158,182,145,92,57)
|
||||
IMAGE_DATA(190,156,28,112,27,69,232,216,97,107,24,226,57,235,24,32,229,131,156,115,83,166,76,25,208,151,229,121,40,191,212,250)
|
||||
IMAGE_DATA(163,146,188,154,62,242,62,111,136,255,98,157,114,110,203,245,81,202,99,205,246,74,65,229,204,25,223,68,40,141,39,214)
|
||||
IMAGE_DATA(192,250,9,35,4,46,187,46,156,202,196,97,57,247,7,147,255,46,135,155,21,131,227,161,70,108,216,127,27,107,34,106)
|
||||
IMAGE_DATA(177,98,79,45,22,239,174,193,220,29,149,152,238,83,138,191,186,149,224,61,151,98,140,222,80,240,180,156,61,186,173,184)
|
||||
IMAGE_DATA(122,202,158,228,30,153,79,206,135,141,33,129,23,106,113,232,218,109,196,164,223,68,80,124,17,2,15,23,33,34,169,10)
|
||||
IMAGE_DATA(49,249,245,208,167,165,224,234,225,73,228,78,217,126,222,87,24,107,115,63,128,165,63,176,228,17,249,160,212,31,89,248)
|
||||
IMAGE_DATA(32,205,39,231,131,218,60,102,8,98,89,106,252,48,196,125,17,82,238,169,241,223,26,237,85,130,18,127,167,78,101,227)
|
||||
IMAGE_DATA(152,188,45,74,182,130,37,112,233,66,86,63,30,107,129,104,55,12,54,255,79,95,237,148,132,123,56,153,119,23,199,114)
|
||||
IMAGE_DATA(59,112,36,167,29,7,179,219,16,149,126,7,250,212,22,132,156,107,134,238,116,35,2,18,110,195,235,88,61,70,172,190)
|
||||
IMAGE_DATA(242,180,156,204,140,116,196,184,254,134,36,236,24,69,188,83,170,112,32,167,22,241,41,213,168,168,187,139,214,187,157,104)
|
||||
IMAGE_DATA(185,123,31,165,181,119,17,117,182,2,250,140,106,28,58,238,139,140,61,127,34,250,45,255,99,83,254,107,153,11,140,229)
|
||||
IMAGE_DATA(165,124,160,253,89,41,141,149,15,34,207,45,193,127,81,103,165,122,164,115,55,141,27,42,67,228,141,18,255,173,213,94)
|
||||
IMAGE_DATA(53,152,51,135,211,177,194,154,220,167,160,115,190,169,243,184,116,236,24,108,254,31,202,110,71,76,102,59,246,165,183,65)
|
||||
IMAGE_DATA(159,210,138,224,243,45,248,246,12,111,175,39,52,194,243,216,109,184,30,169,131,195,129,90,124,19,117,19,171,245,85,112)
|
||||
IMAGE_DATA(137,173,197,240,197,57,253,202,218,230,237,71,54,196,21,34,52,179,26,177,252,92,79,209,214,209,129,178,91,13,120,200)
|
||||
IMAGE_DATA(199,105,232,228,91,25,156,80,129,160,212,114,108,137,77,135,155,95,160,205,219,109,201,249,95,109,174,101,229,3,5,229)
|
||||
IMAGE_DATA(153,165,248,175,166,147,212,246,54,198,127,81,127,37,254,91,171,189,134,96,138,13,32,142,97,90,236,5,83,32,183,227)
|
||||
IMAGE_DATA(169,47,192,42,251,67,225,127,98,254,61,180,221,239,65,56,207,251,59,157,79,112,255,81,47,238,63,236,69,231,195,30)
|
||||
IMAGE_DATA(228,148,223,231,199,128,6,148,221,126,136,109,113,117,40,174,127,192,251,2,229,88,31,85,141,215,230,102,246,43,107,177)
|
||||
IMAGE_DATA(227,183,100,221,145,66,4,159,46,69,49,63,239,119,61,33,232,236,234,194,46,125,56,154,248,113,224,222,163,71,136,251)
|
||||
IMAGE_DATA(46,25,233,101,29,240,136,45,0,205,75,101,6,163,221,134,56,197,202,55,202,7,181,126,172,133,15,74,229,176,242,95)
|
||||
IMAGE_DATA(62,31,211,58,148,234,209,234,67,211,250,149,248,111,173,246,26,211,69,139,254,98,126,106,59,48,87,98,2,118,110,94)
|
||||
IMAGE_DATA(37,204,253,148,199,226,26,128,120,205,130,31,2,255,55,29,184,45,216,250,93,60,231,131,207,54,11,220,247,61,217,32)
|
||||
IMAGE_DATA(92,187,196,214,225,86,219,99,36,92,105,19,174,253,79,222,194,131,199,189,152,29,80,130,85,250,74,188,58,45,181,95)
|
||||
IMAGE_DATA(89,118,174,177,196,62,38,15,94,209,215,208,244,160,27,109,188,204,99,90,135,139,43,246,199,31,199,6,103,87,156,205)
|
||||
IMAGE_DATA(206,65,97,71,55,214,6,229,128,230,165,50,131,209,110,10,37,94,89,106,173,72,11,31,148,192,202,127,67,190,188,60)
|
||||
IMAGE_DATA(159,188,44,53,91,94,218,6,86,125,205,109,175,49,80,27,158,213,22,18,211,45,185,198,175,132,117,227,255,157,208,64)
|
||||
IMAGE_DATA(227,210,53,61,214,117,64,107,240,63,48,112,3,9,14,254,87,162,215,115,66,160,113,122,79,45,255,234,136,90,28,188)
|
||||
IMAGE_DATA(208,134,158,94,126,174,230,231,252,71,221,68,176,245,239,243,115,63,181,245,235,90,31,163,229,94,183,48,46,184,199,215)
|
||||
IMAGE_DATA(161,249,110,55,62,242,42,194,151,33,101,120,101,82,82,191,178,254,182,57,146,124,25,150,3,151,240,124,212,118,118,243)
|
||||
IMAGE_DATA(99,64,47,234,58,238,97,187,175,159,192,253,244,252,2,180,60,1,46,183,118,99,213,142,11,160,121,169,140,37,218,109)
|
||||
IMAGE_DATA(42,212,230,127,173,50,114,216,130,255,98,30,22,168,189,79,96,25,7,76,45,223,146,252,167,144,175,5,40,217,246,98)
|
||||
IMAGE_DATA(30,75,215,45,135,252,157,159,41,235,128,106,252,151,150,195,58,150,80,52,53,53,33,34,226,159,136,124,231,49,189,119)
|
||||
IMAGE_DATA(235,214,45,69,25,186,174,31,153,214,42,216,250,219,227,110,225,222,131,30,108,216,95,35,92,255,99,79,37,110,182,60)
|
||||
IMAGE_DATA(66,114,97,7,242,170,58,225,124,232,38,111,199,119,99,242,182,2,44,210,149,226,231,239,156,238,87,214,188,53,110,100)
|
||||
IMAGE_DATA(78,64,10,92,163,174,32,173,188,3,188,203,128,58,126,236,56,149,154,133,170,59,119,209,216,3,84,119,1,71,175,183)
|
||||
IMAGE_DATA(99,109,200,69,208,188,84,134,181,125,63,4,176,218,7,90,248,160,84,22,11,255,197,58,88,192,242,94,156,213,150,80)
|
||||
IMAGE_DATA(130,45,248,111,204,15,16,109,4,107,174,247,137,16,215,253,164,144,250,0,44,123,1,228,252,151,190,15,96,93,83,164)
|
||||
IMAGE_DATA(115,251,174,93,255,70,194,194,56,98,236,228,4,205,67,243,74,237,129,25,254,229,194,186,62,229,253,166,152,26,220,237)
|
||||
IMAGE_DATA(234,193,138,189,149,194,245,34,93,25,170,154,30,194,206,183,24,103,175,181,243,227,66,21,30,118,247,162,178,241,33,230)
|
||||
IMAGE_DATA(6,220,192,203,163,79,245,211,101,187,247,14,242,129,203,49,124,181,39,27,158,177,165,104,225,107,105,235,6,238,245,242)
|
||||
IMAGE_DATA(129,143,183,243,252,111,225,227,155,163,74,177,50,36,29,52,47,149,209,252,240,205,132,185,243,59,203,24,192,202,7,99)
|
||||
IMAGE_DATA(115,187,26,255,165,235,249,172,48,246,94,221,28,123,192,20,254,155,226,107,169,249,1,182,90,239,163,16,121,43,231,165)
|
||||
IMAGE_DATA(148,191,44,243,182,148,255,226,216,33,5,139,61,17,30,62,172,223,124,207,118,242,105,216,83,221,38,109,47,198,142,196)
|
||||
IMAGE_DATA(134,167,235,250,75,67,43,240,233,174,114,204,219,89,138,25,126,55,4,91,127,170,91,33,38,185,22,224,189,45,87,241)
|
||||
IMAGE_DATA(182,67,62,70,111,202,195,76,191,34,188,252,102,66,63,93,114,115,47,99,234,151,78,100,138,211,73,216,243,252,246,138)
|
||||
IMAGE_DATA(45,65,126,117,59,58,31,116,163,179,171,27,215,248,184,219,129,27,88,169,75,6,205,67,243,82,25,91,195,80,159,99)
|
||||
IMAGE_DATA(237,143,198,250,46,11,31,12,241,91,203,94,64,45,176,86,185,90,249,47,47,95,75,125,114,63,64,122,109,11,136,190)
|
||||
IMAGE_DATA(190,18,164,156,53,182,14,40,229,191,210,120,33,93,83,80,42,203,195,99,17,81,58,185,232,230,246,42,252,252,156,137)
|
||||
IMAGE_DATA(78,183,147,56,58,142,34,74,39,23,93,93,103,11,245,209,61,60,30,71,235,225,122,184,14,14,7,107,132,117,125,251)
|
||||
IMAGE_DATA(200,42,172,218,91,129,101,33,229,248,124,119,153,96,235,207,223,121,3,179,249,57,159,242,126,134,111,95,144,243,159,98)
|
||||
IMAGE_DATA(143,62,2,159,111,9,34,147,55,30,197,34,223,115,176,255,54,29,223,236,204,132,125,64,6,86,238,72,193,66,239,51)
|
||||
IMAGE_DATA(152,235,158,128,79,28,117,132,230,29,12,168,245,113,165,251,44,99,133,82,186,49,62,24,227,157,177,249,95,90,190,41)
|
||||
IMAGE_DATA(96,221,203,203,10,91,242,95,204,47,15,214,94,239,19,97,104,126,151,238,7,48,182,166,103,108,253,79,106,79,40,249)
|
||||
IMAGE_DATA(19,209,209,63,33,242,147,199,161,161,207,65,167,219,76,106,106,106,120,174,23,240,241,9,68,233,228,177,78,247,19,161)
|
||||
IMAGE_DATA(62,186,135,231,151,75,114,48,252,211,139,120,109,110,54,126,49,35,93,88,215,127,229,253,36,188,50,225,28,254,229,189)
|
||||
IMAGE_DATA(239,240,243,183,79,11,182,62,229,187,60,200,145,150,150,198,251,28,133,72,56,245,29,25,183,34,12,163,87,198,224,173)
|
||||
IMAGE_DATA(175,226,133,64,227,31,172,143,68,114,74,42,73,77,75,35,25,25,25,172,143,220,162,80,234,227,134,250,189,41,99,128)
|
||||
IMAGE_DATA(181,230,127,165,58,204,129,177,113,128,101,175,0,107,123,165,48,151,255,74,190,140,45,32,114,82,109,110,151,114,214,216)
|
||||
IMAGE_DATA(94,0,115,249,31,26,250,51,34,255,114,64,96,224,75,72,76,76,196,237,219,183,225,239,239,76,220,221,39,18,39,167)
|
||||
IMAGE_DATA(177,196,195,99,36,145,126,57,192,215,247,103,22,247,147,154,155,155,17,21,21,69,202,203,203,177,87,175,39,46,238,222)
|
||||
IMAGE_DATA(100,218,167,107,200,31,102,246,5,26,119,245,240,33,17,145,145,164,180,180,148,247,83,142,144,138,138,10,75,171,97,20)
|
||||
IMAGE_DATA(90,230,127,121,154,90,121,114,88,219,255,151,230,97,129,49,159,94,109,28,96,93,19,180,149,255,47,133,184,191,79,12)
|
||||
IMAGE_DATA(182,240,253,165,107,124,44,193,144,15,96,41,254,75,191,252,161,211,189,132,19,39,78,160,184,184,24,238,238,203,120,222)
|
||||
IMAGE_DATA(187,144,212,212,84,108,223,190,141,72,191,252,97,13,254,119,118,118,242,117,186,211,61,98,228,250,245,235,170,249,170,171)
|
||||
IMAGE_DATA(171,249,113,42,144,248,248,248,144,134,134,6,75,171,97,20,44,243,185,214,52,57,108,177,254,79,161,198,79,249,188,205)
|
||||
IMAGE_DATA(170,183,210,62,1,22,216,98,253,95,10,181,231,99,205,58,89,207,249,177,238,5,48,151,255,33,33,125,252,23,191,220)
|
||||
IMAGE_DATA(67,191,86,227,229,53,139,228,230,230,10,182,127,78,78,142,240,55,59,59,27,78,78,43,137,244,203,61,62,62,3,249)
|
||||
IMAGE_DATA(127,255,254,125,204,246,253,248,153,122,31,103,10,140,245,105,67,233,172,156,176,213,254,31,181,121,93,62,46,104,169,95)
|
||||
IMAGE_DATA(62,6,176,192,214,252,23,235,208,178,47,200,92,80,46,179,236,239,101,221,11,96,46,255,245,250,231,137,248,229,45,93)
|
||||
IMAGE_DATA(216,24,226,25,157,79,162,142,102,162,168,168,136,183,243,207,33,38,38,6,17,17,17,112,112,88,74,188,188,94,238,247)
|
||||
IMAGE_DATA(229,45,63,191,97,3,234,251,36,122,22,89,118,122,129,201,252,63,230,181,148,92,15,91,133,130,208,229,200,223,253,37)
|
||||
IMAGE_DATA(46,235,62,195,197,29,11,144,233,59,11,169,158,118,56,191,253,67,156,118,254,11,60,236,231,253,232,199,24,91,241,95)
|
||||
IMAGE_DATA(9,74,231,116,180,216,242,134,206,0,170,193,20,255,223,84,222,138,235,253,226,122,31,203,190,32,115,161,246,206,79,13)
|
||||
IMAGE_DATA(44,123,1,204,229,255,214,173,19,9,229,115,112,248,40,108,139,174,32,199,46,180,192,49,178,18,187,162,207,195,217,249)
|
||||
IMAGE_DATA(93,129,243,254,254,47,226,232,209,129,95,206,115,112,120,167,95,125,11,194,102,18,159,43,46,240,200,113,196,178,51,11)
|
||||
IMAGE_DATA(177,248,248,28,44,56,52,3,179,34,63,194,199,33,239,227,175,59,39,96,162,231,56,140,115,25,141,209,27,71,97,212)
|
||||
IMAGE_DATA(154,145,3,244,161,220,111,190,113,10,77,197,39,209,88,120,28,13,215,226,112,43,63,22,245,151,99,80,151,19,137,154)
|
||||
IMAGE_DATA(236,189,184,153,17,130,248,245,111,177,60,194,103,26,131,197,127,81,78,201,254,167,129,229,221,190,161,115,254,106,176,213)
|
||||
IMAGE_DATA(250,159,210,30,31,173,231,3,76,129,161,119,126,74,96,89,7,52,151,255,143,31,63,198,74,251,53,100,93,200,53,158)
|
||||
IMAGE_DATA(251,173,72,188,116,7,81,201,77,88,228,117,133,168,125,249,210,213,245,87,100,239,222,64,116,117,117,61,45,103,94,208)
|
||||
IMAGE_DATA(116,226,125,217,25,135,75,246,225,64,177,30,81,215,67,17,94,16,132,208,252,111,177,235,178,63,118,92,242,130,207,5)
|
||||
IMAGE_DATA(55,120,100,185,98,107,186,19,182,164,110,196,111,255,241,159,3,244,185,26,188,12,141,69,39,120,158,7,243,60,215,161)
|
||||
IMAGE_DATA(42,37,0,21,231,189,81,118,198,13,37,9,206,40,62,182,9,149,201,129,120,127,91,26,254,226,146,140,137,142,231,240)
|
||||
IMAGE_DATA(206,218,163,36,44,124,63,243,115,53,23,44,254,189,37,108,72,37,63,218,218,252,151,202,24,122,215,96,108,12,16,117)
|
||||
IMAGE_DATA(215,178,15,72,107,123,77,225,191,161,61,62,214,246,3,180,238,197,21,101,12,241,215,92,254,83,124,165,203,35,113,153)
|
||||
IMAGE_DATA(45,56,113,177,21,135,210,154,249,249,191,10,206,254,239,17,249,151,107,189,189,95,32,158,158,107,72,125,125,253,128,50)
|
||||
IMAGE_DATA(102,5,76,35,238,23,29,16,93,20,134,200,194,96,236,189,170,67,112,222,14,124,155,235,3,255,28,15,120,101,111,197)
|
||||
IMAGE_DATA(246,140,45,112,73,219,12,199,228,245,216,152,180,22,255,241,249,235,3,202,185,172,91,204,244,92,38,111,73,66,250,141)
|
||||
IMAGE_DATA(118,164,20,181,33,42,181,22,111,47,9,181,153,63,96,168,143,40,241,205,148,126,164,182,207,78,203,254,90,181,253,250)
|
||||
IMAGE_DATA(198,190,237,33,6,249,187,112,214,178,196,52,214,247,126,166,182,87,43,255,89,206,244,89,203,15,144,218,242,172,80,218)
|
||||
IMAGE_DATA(203,43,127,23,96,236,251,31,44,223,7,89,236,158,78,194,206,220,70,116,74,19,190,217,83,129,25,139,230,144,160,160)
|
||||
IMAGE_DATA(254,95,158,118,114,178,35,121,121,121,6,245,157,30,240,33,113,72,182,135,211,153,111,240,191,254,239,19,53,155,159,206)
|
||||
IMAGE_DATA(251,148,251,191,94,244,171,1,101,80,95,223,49,161,18,51,67,175,194,78,151,135,143,252,115,241,129,231,69,76,113,205)
|
||||
IMAGE_DATA(194,36,135,12,252,121,93,42,150,6,228,98,252,166,239,112,190,176,13,13,247,128,142,7,192,31,151,198,50,63,87,115)
|
||||
IMAGE_DATA(97,136,227,106,105,172,99,129,161,51,54,44,220,179,212,247,255,148,244,148,223,83,154,175,181,206,249,230,180,87,235,179)
|
||||
IMAGE_DATA(213,106,255,176,216,32,198,160,182,31,223,216,56,96,236,157,160,161,114,169,141,33,255,166,136,161,179,0,7,14,197,225)
|
||||
IMAGE_DATA(227,77,73,228,253,117,201,196,217,83,39,164,157,59,247,29,28,29,255,76,28,28,222,38,137,137,39,152,219,251,55,175)
|
||||
IMAGE_DATA(201,100,65,244,116,178,244,212,124,147,198,205,12,159,191,11,126,126,233,169,173,184,113,194,17,69,241,27,80,16,107,143)
|
||||
IMAGE_DATA(171,49,43,144,183,111,9,46,235,63,69,241,113,103,140,251,58,1,151,42,218,113,177,172,13,237,60,255,255,235,179,104)
|
||||
IMAGE_DATA(83,170,51,9,182,152,255,135,96,89,136,239,249,89,184,108,203,247,1,63,54,204,9,178,51,107,13,48,217,125,26,106)
|
||||
IMAGE_DATA(50,247,8,126,126,225,145,175,113,237,224,106,228,239,95,134,43,17,159,35,55,108,33,46,133,204,193,245,184,205,248,211)
|
||||
IMAGE_DATA(170,163,200,42,185,131,61,231,107,144,114,189,5,191,153,111,187,125,192,134,250,196,80,159,249,225,193,148,51,125,74,231)
|
||||
IMAGE_DATA(3,172,169,227,143,1,116,13,192,220,53,192,51,46,83,80,149,186,11,21,73,59,80,118,214,23,5,199,183,35,58,112)
|
||||
IMAGE_DATA(35,188,61,221,160,215,235,225,190,213,17,73,97,95,227,173,165,251,225,230,233,35,220,243,242,246,197,228,79,220,132,189)
|
||||
IMAGE_DATA(7,207,26,88,236,108,181,123,182,6,203,156,104,200,46,146,255,149,251,77,74,127,149,202,208,2,145,251,90,249,171,228)
|
||||
IMAGE_DATA(7,216,226,76,240,179,12,59,143,15,204,94,3,156,53,249,247,248,251,164,255,198,140,9,111,192,110,252,72,76,155,50)
|
||||
IMAGE_DATA(14,59,119,238,20,254,231,71,101,101,165,112,54,96,243,198,117,88,182,210,30,215,139,138,132,123,153,153,153,66,30,39)
|
||||
IMAGE_DATA(39,167,65,255,125,140,113,195,218,247,140,233,160,6,173,190,191,90,25,198,210,164,121,228,113,165,241,64,171,14,82,72)
|
||||
IMAGE_DATA(247,246,154,194,93,37,63,110,104,12,48,140,143,189,166,10,107,128,219,120,142,127,17,59,95,213,230,55,180,6,56,102)
|
||||
IMAGE_DATA(204,152,167,191,219,242,229,203,73,94,97,33,230,206,157,43,172,21,45,89,178,132,238,251,197,166,77,155,64,227,31,126)
|
||||
IMAGE_DATA(248,161,144,70,199,128,21,43,86,216,228,183,97,241,241,181,240,72,109,174,212,34,163,86,39,171,174,134,96,46,247,229)
|
||||
IMAGE_DATA(122,40,201,88,114,254,87,242,223,181,142,29,106,101,12,249,2,198,241,129,219,68,242,209,174,201,36,108,111,152,73,242)
|
||||
IMAGE_DATA(244,76,31,29,187,199,142,29,75,54,111,222,44,240,127,218,180,105,228,221,119,223,37,73,73,73,160,239,33,210,211,211)
|
||||
IMAGE_DATA(17,23,23,135,113,227,198,17,154,70,249,79,243,90,184,41,102,131,133,111,150,184,54,199,63,48,151,255,90,198,7,107)
|
||||
IMAGE_DATA(242,159,245,219,36,134,96,136,247,67,227,0,27,168,31,254,206,146,183,204,126,54,193,193,193,248,236,179,207,4,254,211)
|
||||
IMAGE_DATA(191,148,255,188,13,0,59,59,59,33,208,56,189,71,211,40,255,233,95,75,232,111,11,24,226,180,90,92,233,218,26,186)
|
||||
IMAGE_DATA(88,58,93,154,199,22,243,255,16,126,28,160,231,15,167,79,159,78,92,92,92,72,80,80,16,137,143,143,199,238,221,187)
|
||||
IMAGE_DATA(97,111,111,143,141,27,55,10,113,122,143,166,209,60,52,239,96,235,108,42,88,249,111,237,186,173,145,46,205,163,133,255)
|
||||
IMAGE_DATA(74,254,194,208,24,240,255,7,61,61,61,200,207,207,23,108,255,69,139,22,145,47,190,248,130,250,255,36,58,58,26,212)
|
||||
IMAGE_DATA(15,160,215,52,208,52,154,135,230,29,194,16,134,48,4,107,225,255,0,80,219,106,35,0,0,0,0,0,0,0,0,0)
|
||||
IMAGE_END_DATA(4768, 3)
|
||||
17
uppdev/AccessKey/AccessKey.h
Normal file
17
uppdev/AccessKey/AccessKey.h
Normal file
|
|
@ -0,0 +1,17 @@
|
|||
#ifndef _AccessKey_AccessKey_h
|
||||
#define _AccessKey_AccessKey_h
|
||||
|
||||
#include <CtrlLib/CtrlLib.h>
|
||||
|
||||
#define LAYOUTFILE <AccessKey/AccessKey.lay>
|
||||
#include <CtrlCore/lay.h>
|
||||
|
||||
|
||||
|
||||
class AccessKey : public WithAccessKeyLayout<TopWindow> {
|
||||
public:
|
||||
typedef AccessKey CLASSNAME;
|
||||
AccessKey();
|
||||
};
|
||||
|
||||
#endif
|
||||
33
uppdev/AccessKey/AccessKey.lay
Normal file
33
uppdev/AccessKey/AccessKey.lay
Normal file
|
|
@ -0,0 +1,33 @@
|
|||
LAYOUT(AccessKeyLayout, 200, 308)
|
||||
ITEM(EditDate, dv___0, LeftPosZ(56, 140).TopPosZ(4, 19))
|
||||
ITEM(Label, dv___1, SetLabel(t_("asdfasdf\a\001[= Test")).SetFont(SansSerifZ(20)).LeftPosZ(8, 188).TopPosZ(28, 32))
|
||||
ITEM(Base, ok, RightPosZ(90, 80).BottomPosZ(212, 22))
|
||||
ITEM(Button, cancel, SetLabel(t_("Cancel")).RightPosZ(4, 80).BottomPosZ(212, 22))
|
||||
ITEM(Button, dv___4, SetLabel(t_("\001[= Test&asdflkajsdf&asdflkasldfjlkajsdf")).LeftPosZ(8, 184).TopPosZ(116, 188))
|
||||
END_LAYOUT
|
||||
|
||||
LAYOUT(asdfasdf, 400, 200)
|
||||
ITEM(DataPusher, data1, LeftPosZ(4, 64).TopPosZ(20, 24))
|
||||
ITEM(DataPusher, data2, LeftPosZ(4, 64).TopPosZ(48, 24))
|
||||
ITEM(LineEdit, edit, LeftPosZ(232, 132).TopPosZ(68, 19))
|
||||
ITEM(Label, label, SetLabel(t_("Label")).LeftPosZ(368, 28).TopPosZ(68, 16))
|
||||
ITEM(LineEdit, edit, LeftPosZ(220, 132).TopPosZ(96, 19))
|
||||
ITEM(Label, label, SetLabel(t_("Label")).LeftPosZ(356, 28).TopPosZ(96, 16))
|
||||
ITEM(DataPusher, data1, LeftPosZ(36, 64).TopPosZ(112, 24))
|
||||
ITEM(DataPusher, data2, LeftPosZ(36, 64).TopPosZ(140, 24))
|
||||
END_LAYOUT
|
||||
|
||||
LAYOUT(TestLayout, 356, 76)
|
||||
ITEM(LineEdit, edit, LeftPosZ(188, 132).TopPosZ(4, 19))
|
||||
ITEM(Label, label, SetLabel(t_("Label")).LeftPosZ(324, 28).TopPosZ(4, 16))
|
||||
ITEM(DataPusher, data1, LeftPosZ(4, 64).TopPosZ(20, 24))
|
||||
ITEM(DataPusher, data2, LeftPosZ(4, 64).TopPosZ(48, 24))
|
||||
END_LAYOUT
|
||||
|
||||
LAYOUT(TestLayout3, 356, 76)
|
||||
ITEM(Label, label, SetLabel(t_("Label")).LeftPosZ(144, 28).TopPosZ(8, 16))
|
||||
ITEM(LineEdit, edit, LeftPosZ(188, 132).TopPosZ(4, 19))
|
||||
ITEM(DataPusher, data1, LeftPosZ(4, 64).TopPosZ(20, 24))
|
||||
ITEM(DataPusher, data2, LeftPosZ(4, 64).TopPosZ(48, 24))
|
||||
END_LAYOUT
|
||||
|
||||
40
uppdev/AccessKey/AccessKey.upp
Normal file
40
uppdev/AccessKey/AccessKey.upp
Normal file
|
|
@ -0,0 +1,40 @@
|
|||
uses
|
||||
CtrlLib,
|
||||
Web;
|
||||
|
||||
include
|
||||
gdfgsdfg;
|
||||
|
||||
file
|
||||
test.js highlight js,
|
||||
h.iml,
|
||||
bak.tpp,
|
||||
bak.tpp,
|
||||
AccessKey.h,
|
||||
testing.icpp,
|
||||
test.key,
|
||||
translate.t,
|
||||
main.cpp charset "UTF-8-BOM",
|
||||
test.cpp,
|
||||
AccessKey.lay,
|
||||
[Content_Types].xml,
|
||||
test.zip,
|
||||
_rels readonly separator,
|
||||
_rels\.rels,
|
||||
docProps readonly separator,
|
||||
docProps\app.xml,
|
||||
docProps\core.xml,
|
||||
xl readonly separator,
|
||||
xl\sharedStrings.xml,
|
||||
xl\styles.xml,
|
||||
xl\workbook.xml,
|
||||
xl\_rels readonly separator,
|
||||
xl\_rels\workbook.xml.rels,
|
||||
xl\theme readonly separator,
|
||||
xl\theme\theme1.xml,
|
||||
xl\worksheets readonly separator,
|
||||
xl\worksheets\sheet1.xml;
|
||||
|
||||
mainconfig
|
||||
"" = "GUI ST";
|
||||
|
||||
2
uppdev/AccessKey/[Content_Types].xml
Normal file
2
uppdev/AccessKey/[Content_Types].xml
Normal file
|
|
@ -0,0 +1,2 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
||||
<Types xmlns="http://schemas.openxmlformats.org/package/2006/content-types"><Default Extension="rels" ContentType="application/vnd.openxmlformats-package.relationships+xml"/><Default Extension="xml" ContentType="application/xml"/><Override PartName="/xl/workbook.xml" ContentType="application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml"/><Override PartName="/xl/worksheets/sheet1.xml" ContentType="application/vnd.openxmlformats-officedocument.spreadsheetml.worksheet+xml"/><Override PartName="/xl/theme/theme1.xml" ContentType="application/vnd.openxmlformats-officedocument.theme+xml"/><Override PartName="/xl/styles.xml" ContentType="application/vnd.openxmlformats-officedocument.spreadsheetml.styles+xml"/><Override PartName="/xl/sharedStrings.xml" ContentType="application/vnd.openxmlformats-officedocument.spreadsheetml.sharedStrings+xml"/><Override PartName="/docProps/core.xml" ContentType="application/vnd.openxmlformats-package.core-properties+xml"/><Override PartName="/docProps/app.xml" ContentType="application/vnd.openxmlformats-officedocument.extended-properties+xml"/></Types>
|
||||
2
uppdev/AccessKey/_rels/.rels
Normal file
2
uppdev/AccessKey/_rels/.rels
Normal file
|
|
@ -0,0 +1,2 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
||||
<Relationships xmlns="http://schemas.openxmlformats.org/package/2006/relationships"><Relationship Id="rId3" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/extended-properties" Target="docProps/app.xml"/><Relationship Id="rId2" Type="http://schemas.openxmlformats.org/package/2006/relationships/metadata/core-properties" Target="docProps/core.xml"/><Relationship Id="rId1" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/officeDocument" Target="xl/workbook.xml"/></Relationships>
|
||||
9
uppdev/AccessKey/add.cpp
Normal file
9
uppdev/AccessKey/add.cpp
Normal file
|
|
@ -0,0 +1,9 @@
|
|||
#include "AccessKey.h"
|
||||
|
||||
void test()
|
||||
{
|
||||
if(a( && b)
|
||||
{
|
||||
}
|
||||
|
||||
}
|
||||
49
uppdev/AccessKey/bak.tpp/ESESTEst$en-us.tpp
Normal file
49
uppdev/AccessKey/bak.tpp/ESESTEst$en-us.tpp
Normal file
|
|
@ -0,0 +1,49 @@
|
|||
topic "vxcv zxcv zxcv zxv zxvc zv ho";
|
||||
[ $$0,0#00000000000000000000000000000000:Default]
|
||||
[{_}%ES-ES
|
||||
[s0;i448;O9; asdf-|safasdf&]
|
||||
[s0;i448;n`.;N1; asdfas-|asdfasdfaasdf aslkdjf alksjdfh kajsdh fkjah
|
||||
sdkfjh aksjdfh kajsdh fkajsh dfkjash dkfjha skdjfh aksjdf kajsdfh
|
||||
kajsdfh &]
|
||||
[s0;i448;n`.;N1; vzxcvzxcv&]
|
||||
[s0;i448;n`.;N1; zxcvzxcv&]
|
||||
[s0;i448;n`.;N1; zxcvzxcv&]
|
||||
[s0;i448;n`.;N1; &]
|
||||
[s0;i448;n`.;N1; zxcvzxcvzxcv&]
|
||||
[s0;i448;n`.;N1; zxcvzxcv&]
|
||||
[s0;i448;n`.;N1; &]
|
||||
[s0;i448;n`.;N1; zxcvzxcvzxcv&]
|
||||
[s0;i448;n`.;N1; &]
|
||||
[s0;i448;n`.;N1; &]
|
||||
[s0;i448;n`.;N1; &]
|
||||
[s0;i448;n`.;N1; &]
|
||||
[s0;i448;n`.;N1; &]
|
||||
[ {{5000:5000 [s0;i448;n`.;N1; asdfasdf]
|
||||
:: [s0;i448;n`.;N1; asdfasdf]}}&]
|
||||
[s0; asfasd [* asdfasdfasd ][*R6 asdfasdfasdf]&]
|
||||
[s0; vxcv zxcv zxcv zxv zxvc zv ho&]
|
||||
[s0;N! ,asnmdf asf asfhjd akhjdsf kahjds fkahjds fkahjds fkahjds
|
||||
fka hdfkahd fkahjds fkahjdsf kafhd kahdsf kahjdsf ahkjh asdfkjha
|
||||
sdfkjh asdfkjh asdfkjh asdflkjhas dfkjh asdf kjh asdfkjh &]
|
||||
[s0; &]
|
||||
[s0;i448;n`.;N1; zxcvzxcvzxcv&]
|
||||
[s0; &]
|
||||
[s0; los&]
|
||||
[s0; de&]
|
||||
[s0; han&]
|
||||
[s0; se&]
|
||||
[s0; datos&]
|
||||
[s0; fichero&]
|
||||
[s0; realizar&]
|
||||
[s0; Ajustes&]
|
||||
[s0; simulación&]
|
||||
[s0; una&]
|
||||
[s0; indicado&]
|
||||
[s0; generales&]
|
||||
[s0; Datos&]
|
||||
[s0; Apartado&]
|
||||
[s0; Localización&]
|
||||
[s0; geográfica&]
|
||||
[s0; &]
|
||||
[s0; asdf&]
|
||||
[s0; ha ]]
|
||||
2842
uppdev/AccessKey/bak.tpp/card$en-us.tpp
Normal file
2842
uppdev/AccessKey/bak.tpp/card$en-us.tpp
Normal file
File diff suppressed because it is too large
Load diff
37
uppdev/AccessKey/bak.tpp/hh$en-us.tpp
Normal file
37
uppdev/AccessKey/bak.tpp/hh$en-us.tpp
Normal file
|
|
@ -0,0 +1,37 @@
|
|||
topic "";
|
||||
[ $$0,0#00000000000000000000000000000000:Default]
|
||||
[{_}
|
||||
[ {{588:588:588:588:588:588:588:588:588:588:588:588:588:588:588:588:592 [s0;%% [R Aa]]
|
||||
:: [s0;%% [R Bb]]
|
||||
:: [s0;%% [R Cc]]
|
||||
:: [s0;%% [R Dd]]
|
||||
:: [s0;%% [R Ee]]
|
||||
:: [s0;%% [R Ff]]
|
||||
:: [s0;%% [R Gg]]
|
||||
:: [s0;%% [R Hh]]
|
||||
:: [s0;%% [R Ii]]
|
||||
:: [s0;%% [R Jj]]
|
||||
:: [s0;%% [R Kk]]
|
||||
:: [s0;%% [R Ll]]
|
||||
:: [s0;%% [R Mm]]
|
||||
:: [s0;%% [R Nn]]
|
||||
:: [s0;%% [R Oo]]
|
||||
:: [s0;%% [R Pp]]
|
||||
:: [s0;%% [R Rr]]
|
||||
:: [s0;%% [!Edwardian Script ITC! Aa]]
|
||||
:: [s0;%% [!Edwardian Script ITC! Bb]]
|
||||
:: [s0;%% [!Edwardian Script ITC! Cc]]
|
||||
:: [s0;%% [!Edwardian Script ITC! Dd]]
|
||||
:: [s0;%% [!Edwardian Script ITC! Ee]]
|
||||
:: [s0;%% [!Edwardian Script ITC! Ff]]
|
||||
:: [s0;%% [!Edwardian Script ITC! Gg]]
|
||||
:: [s0;%% [!Edwardian Script ITC! Hh]]
|
||||
:: [s0;%% [!Edwardian Script ITC! Ii]]
|
||||
:: [s0;%% [!Edwardian Script ITC! Jj]]
|
||||
:: [s0;%% [!Edwardian Script ITC! Kk]]
|
||||
:: [s0;%% [!Edwardian Script ITC! Ll]]
|
||||
:: [s0;%% [!Edwardian Script ITC! Mm]]
|
||||
:: [s0;%% [!Edwardian Script ITC! Nn]]
|
||||
:: [s0;%% [!Edwardian Script ITC! Oo]]
|
||||
:: [s0;%% [!Edwardian Script ITC! Pp]]
|
||||
:: [s0;%% [!Edwardian Script ITC! Rr]]}}]
|
||||
70
uppdev/AccessKey/bak.tpp/morituri$en-us.tpp
Normal file
70
uppdev/AccessKey/bak.tpp/morituri$en-us.tpp
Normal file
|
|
@ -0,0 +1,70 @@
|
|||
topic "Morituri te Salutant";
|
||||
[ $$0,0#00000000000000000000000000000000:Default]
|
||||
[{_}
|
||||
[s0;a83; [R6 Morituri te Salutant]&]
|
||||
[s0; [R1 Cesta je prach]&]
|
||||
[s0;a83; [R1 a štěrk]&]
|
||||
[s0;a83; [R1 a udusaná hlína]&]
|
||||
[s0; [R1 a šedé šmouhy]&]
|
||||
[s0; [R1 kreslí do vlasů]&]
|
||||
[s0; [R1 a z hvězdných drah]&]
|
||||
[s0; [R1 má šperk]&]
|
||||
[s0; [R1 co kamením se spíná]&]
|
||||
[s0; [R1 a pírka touhy]&]
|
||||
[s0; [R1 z křídel Pegasů]&]
|
||||
[s0;R1 &]
|
||||
[s0; [R1 Cesta je bič]&]
|
||||
[s0; [R1 Je zlá]&]
|
||||
[s0; [R1 jak pouliční dáma]&]
|
||||
[s0; [R1 Má v ruce štítky]&]
|
||||
[s0; [R1 v pase staniol]&]
|
||||
[s0; [R1 a z očí chtíč jí plá]&]
|
||||
[s0; [R1 když háže do neznáma]&]
|
||||
[s0; [R1 dvě křehké snítky]&]
|
||||
[s0; [R1 rudých gladiol]&]
|
||||
[s0;R1 &]
|
||||
[s0; [R1 Seržante písek je bílý]&]
|
||||
[s0; [R1 jak paže Daniely]&]
|
||||
[s0; [R1 Počkejte chvíli!]&]
|
||||
[s0;R1 &]
|
||||
[s0; [R1 Mé oči uviděly]&]
|
||||
[s0; [R1 tu strašně dávnou]&]
|
||||
[s0; [R1 vteřinu zapomnění]&]
|
||||
[s0; [R1 Seržante! Mávnou]&]
|
||||
[s0; [R1 a budem zasvěceni]&]
|
||||
[s0; [R1 Morituri te salutant]&]
|
||||
[s0; [R1 Morituri te salutant]&]
|
||||
[s0;R1 &]
|
||||
[s0; [R1 Tou cestou dál]&]
|
||||
[s0; [R1 jsem šel]&]
|
||||
[s0; [R1 kde na zemi se zmítá]&]
|
||||
[s0; [R1 a písek víří]&]
|
||||
[s0; [R1 křídlo holubí]&]
|
||||
[s0; [R1 a marš mi hrál]&]
|
||||
[s0; [R1 zvuk děl]&]
|
||||
[s0; [R1 co uklidnění skýtá]&]
|
||||
[s0; [R1 a zvedá chmýří]&]
|
||||
[s0; [R1 které zahubí]&]
|
||||
[s0;R1 &]
|
||||
[s0; [R1 Cesta je tér a prach]&]
|
||||
[s0; [R1 a udusaná hlína]&]
|
||||
[s0; [R1 mosazná včelka]&]
|
||||
[s0; [R1 od vlkodlaka]&]
|
||||
[s0; [R1 rezavý kvér]&]
|
||||
[s0; [R1 `- můj brach]&]
|
||||
[s0; [R1 a sto let stará špína]&]
|
||||
[s0; [R1 a děsně velká]&]
|
||||
[s0; [R1 bílá oblaka]&]
|
||||
[s0;R1 &]
|
||||
[s0; [R1 Seržante]&]
|
||||
[s0; [R1 písek je bílý]&]
|
||||
[s0; [R1 jak paže Daniely]&]
|
||||
[s0; [R1 Počkejte chvíli!]&]
|
||||
[s0; [R1 Mé oči uviděly]&]
|
||||
[s0; [R1 tu strašně dávnou]&]
|
||||
[s0; [R1 vteřinu zapomnění]&]
|
||||
[s0; [R1 Seržante! Mávnou]&]
|
||||
[s0; [R1 a budem zasvěceni]&]
|
||||
[s0; [R1 Morituri te salutant]&]
|
||||
[s0; [R1 Morituri te salutant ]&]
|
||||
[s0;%% ]]
|
||||
7882
uppdev/AccessKey/bak.tpp/tutorial$en-us.tpp
Normal file
7882
uppdev/AccessKey/bak.tpp/tutorial$en-us.tpp
Normal file
File diff suppressed because it is too large
Load diff
2918
uppdev/AccessKey/bak.tpp/uloha$en-us.tpp
Normal file
2918
uppdev/AccessKey/bak.tpp/uloha$en-us.tpp
Normal file
File diff suppressed because it is too large
Load diff
2
uppdev/AccessKey/docProps/app.xml
Normal file
2
uppdev/AccessKey/docProps/app.xml
Normal file
|
|
@ -0,0 +1,2 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
||||
<Properties xmlns="http://schemas.openxmlformats.org/officeDocument/2006/extended-properties" xmlns:vt="http://schemas.openxmlformats.org/officeDocument/2006/docPropsVTypes"><Application>Microsoft Excel</Application><DocSecurity>0</DocSecurity><ScaleCrop>false</ScaleCrop><HeadingPairs><vt:vector size="2" baseType="variant"><vt:variant><vt:lpstr>listy</vt:lpstr></vt:variant><vt:variant><vt:i4>1</vt:i4></vt:variant></vt:vector></HeadingPairs><TitlesOfParts><vt:vector size="1" baseType="lpstr"><vt:lpstr>test</vt:lpstr></vt:vector></TitlesOfParts><LinksUpToDate>false</LinksUpToDate><SharedDoc>false</SharedDoc><HyperlinksChanged>false</HyperlinksChanged><AppVersion>14.0300</AppVersion></Properties>
|
||||
2
uppdev/AccessKey/docProps/core.xml
Normal file
2
uppdev/AccessKey/docProps/core.xml
Normal file
|
|
@ -0,0 +1,2 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
||||
<cp:coreProperties xmlns:cp="http://schemas.openxmlformats.org/package/2006/metadata/core-properties" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:dcterms="http://purl.org/dc/terms/" xmlns:dcmitype="http://purl.org/dc/dcmitype/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><dc:creator>cxl</dc:creator><cp:lastModifiedBy>cxl</cp:lastModifiedBy><dcterms:created xsi:type="dcterms:W3CDTF">2011-11-09T13:03:21Z</dcterms:created><dcterms:modified xsi:type="dcterms:W3CDTF">2011-11-09T13:03:21Z</dcterms:modified></cp:coreProperties>
|
||||
2415
uppdev/AccessKey/h.iml
Normal file
2415
uppdev/AccessKey/h.iml
Normal file
File diff suppressed because it is too large
Load diff
BIN
uppdev/AccessKey/icon.ico
Normal file
BIN
uppdev/AccessKey/icon.ico
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 2.8 KiB |
BIN
uppdev/AccessKey/icon16x16.png
Normal file
BIN
uppdev/AccessKey/icon16x16.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 421 B |
9
uppdev/AccessKey/init
Normal file
9
uppdev/AccessKey/init
Normal file
|
|
@ -0,0 +1,9 @@
|
|||
#ifndef _AccessKey_icpp_init_stub
|
||||
#define _AccessKey_icpp_init_stub
|
||||
#include "CtrlLib/init"
|
||||
#include "Web/init"
|
||||
#include "SubTest/init"
|
||||
#define BLITZ_INDEX__ F190185a01d70a422cd7de990bd1c48a1
|
||||
#include "testing.icpp"
|
||||
#undef BLITZ_INDEX__
|
||||
#endif
|
||||
14
uppdev/AccessKey/main.cpp
Normal file
14
uppdev/AccessKey/main.cpp
Normal file
|
|
@ -0,0 +1,14 @@
|
|||
#include "AccessKey.h"
|
||||
|
||||
GUI_APP_MAIN
|
||||
{
|
||||
AKD_TEST
|
||||
Ctrl::AddFlags(Ctrl::AKD_CONSERVATIVE);
|
||||
AccessKey().Run(Accept());
|
||||
String s;S
|
||||
s.Cat()Add
|
||||
|
||||
AKD_CONS
|
||||
|
||||
AKD_TEST
|
||||
}
|
||||
9
uppdev/AccessKey/test.cpp
Normal file
9
uppdev/AccessKey/test.cpp
Normal file
|
|
@ -0,0 +1,9 @@
|
|||
#include "AccessKey.h"
|
||||
|
||||
void test()
|
||||
{
|
||||
if(a( && b)
|
||||
{
|
||||
}
|
||||
1.f ssdf
|
||||
}
|
||||
48
uppdev/AccessKey/test.js
Normal file
48
uppdev/AccessKey/test.js
Normal file
|
|
@ -0,0 +1,48 @@
|
|||
var s1 = new String("Hello !");
|
||||
var s2 = new String("Hello !");
|
||||
s1 == s2; // Is false, because they are two distinct objects.
|
||||
s1.valueOf() == s2.valueOf(); // Is true.
|
||||
|
||||
//Automatic type coercion
|
||||
f1(true == 2 ); // false... true → 1 !== 2 ← 2
|
||||
alert2(false == 2 ); // false... false → 0 !== 2 ← 2
|
||||
alert3(true == 1 ); // true.... true → 1 === 1 ← 1
|
||||
alert4(false == 0 ); // true.... false → 0 === 0 ← 0
|
||||
alert5(true == "2"); // false... true → 1 !== 2 ← "2"
|
||||
alert6(false == "2"); // false... false → 0 !== 2 ← "2"
|
||||
alert7(true == "1"); // true.... true → 1 === 1 ← "1"
|
||||
alert8(false == "0"); // true.... false → 0 === 0 ← "0"
|
||||
alert9(false == "" ); // true.... false → 0 === 0 ← ""
|
||||
alert(false == NaN); // false... false → 0 !== NaN
|
||||
|
||||
//Type checked comparison (no conversion of types and values)
|
||||
alert(true === 1); // false... data types do not match
|
||||
|
||||
//Explicit type coercion
|
||||
alert(true === !!2); // true.... data types and values match
|
||||
alert(true === !!0); // false... data types match but values differ
|
||||
alert( 1 ? true : false); // true.... only ±0 and NaN are “falsy” numbers
|
||||
alert("0" ? true : false); // true.... only the empty string is “falsy”
|
||||
alert(Boolean({})); // true.... all objects are “truthy” except null
|
||||
|
||||
var d = new Date(2010, 2, 1, 14, 25, 30); // 2010-Mar-01 14:25:30
|
||||
|
||||
// Displays '2010-3-1 14:25:30':
|
||||
alert(d.getFullYear() + '-' + (d.getMonth()+1) + '-' + d.getDate() + ' '
|
||||
+ d.getHours() + ':' + d.getMinutes() + ':' + d.getSeconds());
|
||||
|
||||
// Built-in toString returns something like 'Mon Mar 01 2010 14:25:30 GMT-0500 (EST)':
|
||||
alert(d);
|
||||
|
||||
s.length
|
||||
|
||||
var myRe = /(\d{4}-\d{2}-\d{2}) (\d{2}:\d{2}:\d{2})/;
|
||||
var results = myRe.exec("The date and time are 2009-09-08 09:37:08.");
|
||||
if (results) {
|
||||
alert("Matched: " + results[0]); // Entire match
|
||||
var my_date = results[1]; // First group == "2009-09-08"
|
||||
var my_time = results[2]; // Second group == "09:37:08"
|
||||
alert("It is " + my_time + " on " + my_date);
|
||||
} else alert("Did not find a valid date!");
|
||||
|
||||
try
|
||||
3
uppdev/AccessKey/test.key
Normal file
3
uppdev/AccessKey/test.key
Normal file
|
|
@ -0,0 +1,3 @@
|
|||
KEY(EDITFILE, t_("Edit file"), K_CTRL_O)
|
||||
KEY(SAVEFILE, "Save", K_CTRL_S)
|
||||
KEY(READONLY, "Read only", 0)
|
||||
3
uppdev/AccessKey/test.usc
Normal file
3
uppdev/AccessKey/test.usc
Normal file
|
|
@ -0,0 +1,3 @@
|
|||
macro "Swap":"Swap Chars" Ctrl+Shift+T {
|
||||
Execute("cmd.exe");
|
||||
}
|
||||
BIN
uppdev/AccessKey/test.zip
Normal file
BIN
uppdev/AccessKey/test.zip
Normal file
Binary file not shown.
3
uppdev/AccessKey/translate.t
Normal file
3
uppdev/AccessKey/translate.t
Normal file
|
|
@ -0,0 +1,3 @@
|
|||
"\305\241\305\241\305\241\305\241 Hezky p\304\233kn\304\233 \304\215esky!"
|
||||
asdfasdf
|
||||
a
|
||||
2
uppdev/AccessKey/xl/_rels/workbook.xml.rels
Normal file
2
uppdev/AccessKey/xl/_rels/workbook.xml.rels
Normal file
|
|
@ -0,0 +1,2 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
||||
<Relationships xmlns="http://schemas.openxmlformats.org/package/2006/relationships"><Relationship Id="rId3" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/styles" Target="styles.xml"/><Relationship Id="rId2" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/theme" Target="theme/theme1.xml"/><Relationship Id="rId1" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/worksheet" Target="worksheets/sheet1.xml"/><Relationship Id="rId4" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/sharedStrings" Target="sharedStrings.xml"/></Relationships>
|
||||
2
uppdev/AccessKey/xl/sharedStrings.xml
Normal file
2
uppdev/AccessKey/xl/sharedStrings.xml
Normal file
|
|
@ -0,0 +1,2 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
||||
<sst xmlns="http://schemas.openxmlformats.org/spreadsheetml/2006/main" count="50" uniqueCount="49"><si><t>Account information</t></si><si><t>Product Information:</t></si><si><t>Performance Information</t></si><si><t>Report information</t></si><si><t>Google Client Account Information</t></si><si><t>Click Pack</t></si><si><t>Facebook Client Account Information</t></si><si><t>Admin fee</t></si><si><t>Client Name</t></si><si><t>Campaing Name</t></si><si><t>Time zone</t></si><si><t>Country</t></si><si><t>Currency</t></si><si><t>Responsible planner</t></si><si><t>REO</t></si><si><t>Default Destination URL</t></si><si><t>Default Display URL</t></si><si><t>Customer reg. ID</t></si><si><t>Order number</t></si><si><t>Users (separate with a comma)</t></si><si><t>Product</t></si><si><t>Type</t></si><si><t>Start date</t></si><si><t>Stop date</t></si><si><t>Regional targeting location</t></si><si><t>Regional targeting radius</t></si><si><t>Google Budget</t></si><si><t>Facebook Budget</t></si><si><t>Guaranteed position</t></si><si><t>Report should be emailed to (separate with a comma):</t></si><si><t>Client account number</t></si><si><t>Target margin</t></si><si><t>Guaranteed clicks</t></si><si><t>Facebook Login</t></si><si><t>Facebook Password</t></si><si><t>Facebook Campaign Name</t></si><si><t>Setup fee</t></si><si><t>Management fee</t></si><si><t>25664723_KP/GAR_AARON TRADE, spol. s r.o.</t></si><si><t>195_25664723_AARON TRADE, spol. s r.o.</t></si><si><t>Prague</t></si><si><t>CZ</t></si><si><t>CZK</t></si><si><t>Fidler Mirek</t></si><si><t>http://www.ultimatepp.org/forum</t></si><si><t>http://ultimatepp.org</t></si><si><t>Admin Fee (KP)</t></si><si><t>GAR</t></si><si><t>cxl@ntllib.org</t></si></sst>
|
||||
2
uppdev/AccessKey/xl/styles.xml
Normal file
2
uppdev/AccessKey/xl/styles.xml
Normal file
File diff suppressed because one or more lines are too long
2
uppdev/AccessKey/xl/theme/theme1.xml
Normal file
2
uppdev/AccessKey/xl/theme/theme1.xml
Normal file
File diff suppressed because one or more lines are too long
2
uppdev/AccessKey/xl/workbook.xml
Normal file
2
uppdev/AccessKey/xl/workbook.xml
Normal file
|
|
@ -0,0 +1,2 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
||||
<workbook xmlns="http://schemas.openxmlformats.org/spreadsheetml/2006/main" xmlns:r="http://schemas.openxmlformats.org/officeDocument/2006/relationships"><fileVersion appName="xl" lastEdited="5" lowestEdited="5" rupBuild="9302"/><workbookPr defaultThemeVersion="124226"/><bookViews><workbookView xWindow="360" yWindow="120" windowWidth="20115" windowHeight="10035"/></bookViews><sheets><sheet name="test" sheetId="1" r:id="rId1"/></sheets><calcPr calcId="0"/></workbook>
|
||||
2
uppdev/AccessKey/xl/worksheets/sheet1.xml
Normal file
2
uppdev/AccessKey/xl/worksheets/sheet1.xml
Normal file
|
|
@ -0,0 +1,2 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
||||
<worksheet xmlns="http://schemas.openxmlformats.org/spreadsheetml/2006/main" xmlns:r="http://schemas.openxmlformats.org/officeDocument/2006/relationships" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" mc:Ignorable="x14ac" xmlns:x14ac="http://schemas.microsoft.com/office/spreadsheetml/2009/9/ac"><dimension ref="A1:AD3"/><sheetViews><sheetView tabSelected="1" workbookViewId="0"><selection activeCell="N1" sqref="N1"/></sheetView></sheetViews><sheetFormatPr defaultRowHeight="15" x14ac:dyDescent="0.25"/><cols><col min="23" max="23" width="27.140625" customWidth="1"/><col min="24" max="24" width="14.140625" customWidth="1"/><col min="25" max="25" width="21" customWidth="1"/></cols><sheetData><row r="1" spans="1:30" x14ac:dyDescent="0.25"><c r="A1" t="s"><v>0</v></c><c r="M1" t="s"><v>1</v></c><c r="S1" t="s"><v>2</v></c><c r="V1" t="s"><v>3</v></c><c r="W1" t="s"><v>4</v></c><c r="X1" t="s"><v>5</v></c><c r="Z1" t="s"><v>6</v></c><c r="AC1" t="s"><v>7</v></c></row><row r="2" spans="1:30" x14ac:dyDescent="0.25"><c r="A2" t="s"><v>8</v></c><c r="B2" t="s"><v>9</v></c><c r="C2" t="s"><v>10</v></c><c r="D2" t="s"><v>11</v></c><c r="E2" t="s"><v>12</v></c><c r="F2" t="s"><v>13</v></c><c r="G2" t="s"><v>14</v></c><c r="H2" t="s"><v>15</v></c><c r="I2" t="s"><v>16</v></c><c r="J2" t="s"><v>17</v></c><c r="K2" t="s"><v>18</v></c><c r="L2" t="s"><v>19</v></c><c r="M2" t="s"><v>20</v></c><c r="N2" t="s"><v>21</v></c><c r="O2" t="s"><v>22</v></c><c r="P2" t="s"><v>23</v></c><c r="Q2" t="s"><v>24</v></c><c r="R2" t="s"><v>25</v></c><c r="S2" t="s"><v>26</v></c><c r="T2" t="s"><v>27</v></c><c r="U2" t="s"><v>28</v></c><c r="V2" t="s"><v>29</v></c><c r="W2" t="s"><v>30</v></c><c r="X2" t="s"><v>31</v></c><c r="Y2" t="s"><v>32</v></c><c r="Z2" t="s"><v>33</v></c><c r="AA2" t="s"><v>34</v></c><c r="AB2" t="s"><v>35</v></c><c r="AC2" t="s"><v>36</v></c><c r="AD2" t="s"><v>37</v></c></row><row r="3" spans="1:30" x14ac:dyDescent="0.25"><c r="A3" t="s"><v>38</v></c><c r="B3" t="s"><v>39</v></c><c r="C3" t="s"><v>40</v></c><c r="D3" t="s"><v>41</v></c><c r="E3" t="s"><v>42</v></c><c r="F3" t="s"><v>43</v></c><c r="G3"><v>0</v></c><c r="H3" t="s"><v>44</v></c><c r="I3" t="s"><v>45</v></c><c r="J3"><v>25664723</v></c><c r="K3"><v>195</v></c><c r="L3" t="s"><v>43</v></c><c r="M3" t="s"><v>46</v></c><c r="N3" t="s"><v>47</v></c><c r="O3" s="1"><v>40856</v></c><c r="P3" s="1"><v>40856</v></c><c r="S3"><v>0</v></c><c r="T3"><v>0</v></c><c r="V3" t="s"><v>48</v></c><c r="W3"><v>1231231234</v></c><c r="AC3"><v>12</v></c><c r="AD3"><v>12</v></c></row></sheetData><pageMargins left="0.7" right="0.7" top="0.78740157499999996" bottom="0.78740157499999996" header="0.3" footer="0.3"/></worksheet>
|
||||
0
uppdev/AccessLog/AccessLog.upp
Normal file
0
uppdev/AccessLog/AccessLog.upp
Normal file
4
uppdev/AddOn/AddOn.cpp
Normal file
4
uppdev/AddOn/AddOn.cpp
Normal file
|
|
@ -0,0 +1,4 @@
|
|||
#include <AddOn/AddOn.h>
|
||||
|
||||
int IAddOn::GetMajorRevision() {return 0;}
|
||||
int IAddOn::GetMinorRevision() {return 0;}
|
||||
22
uppdev/AddOn/AddOn.h
Normal file
22
uppdev/AddOn/AddOn.h
Normal file
|
|
@ -0,0 +1,22 @@
|
|||
#ifndef _AddOn_AddOn_h_
|
||||
#define _AddOn_AddOn_h_
|
||||
|
||||
#include <Core/Core.h>
|
||||
|
||||
using namespace Upp;
|
||||
|
||||
#if defined PLATFORM_WIN32 || defined PLATFORM_WINCE
|
||||
#define ADDONEXPORT extern "C" __declspec(dllexport)
|
||||
#else
|
||||
#define ADDONEXPORT
|
||||
#endif
|
||||
|
||||
class IAddOn
|
||||
{
|
||||
public:
|
||||
virtual String GetName() = 0;
|
||||
virtual int GetMajorRevision();
|
||||
virtual int GetMinorRevision();
|
||||
};
|
||||
|
||||
#endif
|
||||
8
uppdev/AddOn/AddOn.upp
Normal file
8
uppdev/AddOn/AddOn.upp
Normal file
|
|
@ -0,0 +1,8 @@
|
|||
uses
|
||||
Core;
|
||||
|
||||
file
|
||||
AddOn.h,
|
||||
AddOn.cpp,
|
||||
AddOnLoader.h,
|
||||
AddOnLoader.cpp;
|
||||
0
uppdev/AddOn/AddOnLoader.cpp
Normal file
0
uppdev/AddOn/AddOnLoader.cpp
Normal file
155
uppdev/AddOn/AddOnLoader.h
Normal file
155
uppdev/AddOn/AddOnLoader.h
Normal file
|
|
@ -0,0 +1,155 @@
|
|||
#ifndef _AddOn_AddOnLoader_h_
|
||||
#define _AddOn_AddOnLoader_h_
|
||||
|
||||
#include <Core/Core.h>
|
||||
|
||||
using namespace Upp;
|
||||
|
||||
#include <AddOn/AddOn.h>
|
||||
|
||||
#ifdef PLATFORM_POSIX
|
||||
#include <dlfcn.h>
|
||||
#endif
|
||||
|
||||
|
||||
template <class T>
|
||||
class AddOnLoader
|
||||
{
|
||||
public:
|
||||
AddOnLoader(){};
|
||||
~AddOnLoader();
|
||||
|
||||
int LoadFile(String name);
|
||||
int LoadFolder(String name);
|
||||
|
||||
int GetCount();
|
||||
T* At(int idx);
|
||||
T* operator[](int idx) {return At(idx);}
|
||||
|
||||
private:
|
||||
AddOnLoader(const AddOnLoader&);
|
||||
|
||||
bool Load(String name);
|
||||
|
||||
struct Item {
|
||||
DLLHANDLE hmod;
|
||||
T* address;
|
||||
};
|
||||
|
||||
Array<Item> addOns;
|
||||
|
||||
typedef IAddOn*(*Start)();
|
||||
typedef void(*Stop)();
|
||||
|
||||
#if defined PLATFORM_WIN32
|
||||
typedef HMODULE DLLHANDLE;
|
||||
#else
|
||||
typedef void* DLLHANDLE;
|
||||
#endif
|
||||
|
||||
static const String sharedLibExt;
|
||||
};
|
||||
|
||||
#if defined PLATFORM_WIN32 || defined PLATFORM_WINCE
|
||||
template <class T> const String AddOnLoader<T>::sharedLibExt = ".dll";
|
||||
#elif defined PLATFORM_LINUX || defined PLATFORM_FREEBSD || defined PLATFORM_SOLARIS
|
||||
template <class T> const String AddOnLoader<T>::sharedLibExt = ".so";
|
||||
#elif defined PLATFORM_OSX11
|
||||
template <class T> const String AddOnLoader<T>::sharedLibExt = ".dylib";
|
||||
#endif
|
||||
|
||||
template <class T>
|
||||
AddOnLoader<T>::~AddOnLoader()
|
||||
{
|
||||
for (int i = 0; i < addOns.GetCount(); i++) {
|
||||
#if defined PLATFORM_WIN32 || defined PLATFORM_WINCE
|
||||
Stop stop = (Stop)GetProcAddress(addOns[i].hmod, "Stop");
|
||||
#else
|
||||
Stop stop = (Stop)dlsym(addOns[i].hmod, "Stop");
|
||||
#endif
|
||||
if (stop) {
|
||||
stop();
|
||||
}
|
||||
#if defined PLATFORM_WIN32 || defined PLATFORM_WINCE
|
||||
FreeLibrary(addOns[i].hmod);
|
||||
#else
|
||||
dlclose(addOns[i].hmod);
|
||||
#endif
|
||||
}
|
||||
addOns.Clear();
|
||||
}
|
||||
|
||||
template <class T>
|
||||
int AddOnLoader<T>::LoadFile(String name)
|
||||
{
|
||||
if (FileExists(name)) {
|
||||
return Load(name)?1:0;
|
||||
} else {
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
template <class T>
|
||||
int AddOnLoader<T>::LoadFolder(String name)
|
||||
{
|
||||
int num = 0;
|
||||
for(FindFile ff(AppendFileName(name, "*.*")); ff; ff.Next()) {
|
||||
if (ff.IsFolder()) {
|
||||
num += LoadFolder(AppendFileName(name, ff.GetName()));
|
||||
} else if (ff.IsFile() && ToLower(GetFileExt(ff.GetName()) == sharedLibExt)) {
|
||||
num += Load(AppendFileName(name, ff.GetName()));
|
||||
}
|
||||
}
|
||||
return num;
|
||||
}
|
||||
|
||||
template <class T>
|
||||
bool AddOnLoader<T>::Load(String name)
|
||||
{
|
||||
bool status = false;
|
||||
#if defined PLATFORM_WIN32 || defined PLATFORM_WINCE
|
||||
DLLHANDLE hmod = LoadLibrary(NormalizePath(name));
|
||||
#else
|
||||
DLLHANDLE hmod = dlopen(NormalizePath(name), RTLD_LAZY);
|
||||
#endif
|
||||
|
||||
if (hmod) {
|
||||
#if defined PLATFORM_WIN32 || defined PLATFORM_WINCE
|
||||
Start start = (Start)GetProcAddress(hmod, "Start");
|
||||
#else
|
||||
Start start = (Start)dlsym(hmod, "Start");
|
||||
#endif
|
||||
T* plugin;
|
||||
if (start && (plugin = dynamic_cast<T*>(start()))) {
|
||||
Item& addOn = addOns.Add();
|
||||
addOn.hmod = hmod;
|
||||
addOn.address = plugin;
|
||||
status = true;
|
||||
} else {
|
||||
#if defined PLATFORM_WIN32 || defined PLATFORM_WINCE
|
||||
FreeLibrary(hmod);
|
||||
#else
|
||||
dlclose(hmod);
|
||||
#endif
|
||||
}
|
||||
}
|
||||
return status;
|
||||
}
|
||||
|
||||
template <class T>
|
||||
int AddOnLoader<T>::GetCount()
|
||||
{
|
||||
return addOns.GetCount();
|
||||
}
|
||||
|
||||
template <class T>
|
||||
T* AddOnLoader<T>::At(int idx)
|
||||
{
|
||||
if (idx < addOns.GetCount()) {
|
||||
return addOns[idx].address;
|
||||
} else {
|
||||
return NULL;
|
||||
}
|
||||
}
|
||||
|
||||
#endif
|
||||
35
uppdev/AddOnDll/AddOnDll.cpp
Normal file
35
uppdev/AddOnDll/AddOnDll.cpp
Normal file
|
|
@ -0,0 +1,35 @@
|
|||
#include <Core/Core.h>
|
||||
|
||||
using namespace Upp;
|
||||
|
||||
#include <AddOn/AddOn.h>
|
||||
#include <AddOnHost/IAddOns.h>
|
||||
|
||||
class DoPlugIn : public IDoPlugin
|
||||
{
|
||||
public:
|
||||
virtual String GetName(void) {return "My First Do Plugin";}
|
||||
virtual String Do(void) {return "Do";}
|
||||
virtual int GetMajorRevision() {return 0;}
|
||||
virtual int GetMinorRevision() {return 1;}
|
||||
|
||||
};
|
||||
|
||||
class ComputePlugIn : public IComputePlugin
|
||||
{
|
||||
public:
|
||||
virtual String GetName(void) {return "My First Compute Plugin";}
|
||||
virtual String Compute(void) {return "Compute";}
|
||||
virtual int GetMajorRevision() {return 0;}
|
||||
virtual int GetMinorRevision() {return 1;}
|
||||
};
|
||||
|
||||
#if 1
|
||||
ADDONEXPORT DoPlugIn* Start() {
|
||||
return &Single<DoPlugIn>();
|
||||
}
|
||||
#else
|
||||
ADDONEXPORT ComputePlugIn* Start() {
|
||||
return &Single<ComputePlugIn>();
|
||||
}
|
||||
#endif
|
||||
9
uppdev/AddOnDll/AddOnDll.upp
Normal file
9
uppdev/AddOnDll/AddOnDll.upp
Normal file
|
|
@ -0,0 +1,9 @@
|
|||
uses
|
||||
Core,
|
||||
AddOn;
|
||||
|
||||
file
|
||||
AddOnDll.cpp;
|
||||
|
||||
mainconfig
|
||||
"" = "DLL ADDON";
|
||||
1
uppdev/AddOnHost/AddOn.zip
Normal file
1
uppdev/AddOnHost/AddOn.zip
Normal file
|
|
@ -0,0 +1 @@
|
|||
PK
|
||||
21
uppdev/AddOnHost/AddOnHost.cpp
Normal file
21
uppdev/AddOnHost/AddOnHost.cpp
Normal file
|
|
@ -0,0 +1,21 @@
|
|||
#include <Core/Core.h>
|
||||
|
||||
using namespace Upp;
|
||||
|
||||
#include <AddOn/AddOnLoader.h>
|
||||
#include <AddOnHost/IAddOns.h>
|
||||
|
||||
#define DLLPATH "C:\\upp\\out\\MINGW.Addon.Debug_full.Dll"
|
||||
|
||||
CONSOLE_APP_MAIN
|
||||
{
|
||||
AddOnLoader<IDoPlugin> addOns;
|
||||
|
||||
addOns.LoadFolder(DLLPATH);
|
||||
|
||||
for (int i = 0; i < addOns.GetCount(); i++) {
|
||||
Cout() << "Name: " << addOns[i]->GetName() <<
|
||||
" v" << addOns[i]->GetMajorRevision() << "." << addOns[i]->GetMinorRevision() <<
|
||||
" - Action: " << addOns[i]->Do() << "\n";
|
||||
}
|
||||
}
|
||||
10
uppdev/AddOnHost/AddOnHost.upp
Normal file
10
uppdev/AddOnHost/AddOnHost.upp
Normal file
|
|
@ -0,0 +1,10 @@
|
|||
uses
|
||||
Core,
|
||||
AddOn;
|
||||
|
||||
file
|
||||
IAddOns.h,
|
||||
AddOnHost.cpp;
|
||||
|
||||
mainconfig
|
||||
"" = "";
|
||||
18
uppdev/AddOnHost/IAddOns.h
Normal file
18
uppdev/AddOnHost/IAddOns.h
Normal file
|
|
@ -0,0 +1,18 @@
|
|||
#ifndef _AddOnHost_IAddOns_h_
|
||||
#define _AddOnHost_IAddOns_h_
|
||||
|
||||
#include <AddOn/AddOn.h>
|
||||
|
||||
class IDoPlugin : public IAddOn
|
||||
{
|
||||
public:
|
||||
virtual String Do() = 0;
|
||||
};
|
||||
|
||||
class IComputePlugin : public IAddOn
|
||||
{
|
||||
public:
|
||||
virtual String Compute() = 0;
|
||||
};
|
||||
|
||||
#endif
|
||||
218
uppdev/AddressBookXMLDOM/AddressBook.cpp
Normal file
218
uppdev/AddressBookXMLDOM/AddressBook.cpp
Normal file
|
|
@ -0,0 +1,218 @@
|
|||
#include <CtrlLib/CtrlLib.h>
|
||||
#include <Report/Report.h>
|
||||
|
||||
#define LAYOUTFILE <AddressBookXMLDOM/AddressBookXMLDOM.lay>
|
||||
#include <CtrlCore/lay.h>
|
||||
|
||||
#define TAG_NAME "name"
|
||||
#define TAG_SURNAME "surname"
|
||||
#define TAG_ADDRESS "address"
|
||||
#define TAG_EMAIL "email"
|
||||
|
||||
class AddressBook : public WithAddressBookLayout<TopWindow> {
|
||||
WithModifyLayout<ParentCtrl> modify;
|
||||
WithSearchLayout<ParentCtrl> search;
|
||||
FileSel fs;
|
||||
String filename;
|
||||
|
||||
void SetupSearch();
|
||||
void Add();
|
||||
void Change();
|
||||
void Search();
|
||||
void Open();
|
||||
void Save();
|
||||
void SaveAs();
|
||||
void Print();
|
||||
void Quit();
|
||||
void FileMenu(Bar& bar);
|
||||
void MainMenu(Bar& bar);
|
||||
|
||||
typedef AddressBook CLASSNAME;
|
||||
|
||||
public:
|
||||
void Serialize(Stream& s);
|
||||
|
||||
AddressBook();
|
||||
};
|
||||
|
||||
AddressBook::AddressBook()
|
||||
{
|
||||
CtrlLayout(*this, "Address book");
|
||||
CtrlLayout(modify);
|
||||
CtrlLayout(search);
|
||||
tab.Add(modify, "Modify");
|
||||
tab.Add(search, "Search");
|
||||
ActiveFocus(search.name);
|
||||
search.oname = true;
|
||||
search.oname <<= search.osurname <<= search.oaddress
|
||||
<<= search.oemail <<= THISBACK(SetupSearch);
|
||||
array.AddColumn(TAG_NAME, "Name");
|
||||
array.AddColumn(TAG_SURNAME, "Surname");
|
||||
array.AddColumn(TAG_ADDRESS, "Address");
|
||||
array.AddColumn(TAG_EMAIL, "Email");
|
||||
modify.add <<= THISBACK(Add);
|
||||
modify.change <<= THISBACK(Change);
|
||||
search.search <<= THISBACK(Search);
|
||||
SetupSearch();
|
||||
fs.AllFilesType();
|
||||
menu.Set(THISBACK(MainMenu));
|
||||
|
||||
}
|
||||
|
||||
void AddressBook::FileMenu(Bar& bar)
|
||||
{
|
||||
bar.Add("Open..", CtrlImg::open(), THISBACK(Open));
|
||||
bar.Add("Save", CtrlImg::save(), THISBACK(Save));
|
||||
bar.Add("Save as..", CtrlImg::save_as(), THISBACK(SaveAs));
|
||||
bar.Separator();
|
||||
bar.Add("Print", CtrlImg::print(), THISBACK(Print));
|
||||
bar.Separator();
|
||||
bar.Add("Quit", THISBACK(Quit));
|
||||
}
|
||||
|
||||
void AddressBook::MainMenu(Bar& bar)
|
||||
{
|
||||
bar.Add("File", THISBACK(FileMenu));
|
||||
}
|
||||
|
||||
void AddressBook::SetupSearch()
|
||||
{
|
||||
search.name.Enable(search.oname);
|
||||
search.surname.Enable(search.osurname);
|
||||
search.address.Enable(search.oaddress);
|
||||
search.email.Enable(search.oemail);
|
||||
}
|
||||
|
||||
void AddressBook::Add()
|
||||
{
|
||||
array.Add(~modify.name, ~modify.surname, ~modify.address, ~modify.email);
|
||||
array.GoEnd();
|
||||
modify.name <<= modify.surname <<= modify.address <<= modify.email <<= Null;
|
||||
ActiveFocus(modify.name);
|
||||
}
|
||||
|
||||
void AddressBook::Change()
|
||||
{
|
||||
if(array.IsCursor()) {
|
||||
array.Set(0, ~modify.name);
|
||||
array.Set(1, ~modify.surname);
|
||||
array.Set(2, ~modify.address);
|
||||
array.Set(3, ~modify.email);
|
||||
}
|
||||
}
|
||||
|
||||
bool Contains(const String& text, const String& substr)
|
||||
{
|
||||
for(const char *s = text; s <= text.End() - substr.GetLength(); s++)
|
||||
if(strncmp(s, substr, substr.GetLength()) == 0)
|
||||
return true;
|
||||
return false;
|
||||
}
|
||||
|
||||
void AddressBook::Search()
|
||||
{
|
||||
if(!array.GetCount()) return;
|
||||
bool sc = true;
|
||||
array.ClearSelection();
|
||||
for(int i = 0; i < array.GetCount(); i++) {
|
||||
if((!search.oname || Contains(array.Get(i, 0), ~search.name)) &&
|
||||
(!search.osurname || Contains(array.Get(i, 1), ~search.surname)) &&
|
||||
(!search.oaddress || Contains(array.Get(i, 2), ~search.address)) &&
|
||||
(!search.oemail || Contains(array.Get(i, 3), ~search.email))) {
|
||||
array.Select(i);
|
||||
if(sc) {
|
||||
array.SetCursor(i);
|
||||
array.CenterCursor();
|
||||
sc = false;
|
||||
};
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void AddressBook::Open()
|
||||
{
|
||||
if(!fs.ExecuteOpen()) return;
|
||||
filename = fs;
|
||||
array.Clear();
|
||||
try {
|
||||
String d = LoadFile(filename);
|
||||
XmlNode n = ParseXML(d);
|
||||
if(n.GetCount()==0 || n[0].GetTag() != "AddressBook")
|
||||
throw XmlError("No AddressBook tag in ");
|
||||
const XmlNode &ab = n[0];
|
||||
array.SetCount(ab.GetCount());
|
||||
for(int i=0; i < ab.GetCount(); i++){
|
||||
const XmlNode &person = ab[i];
|
||||
for(int j=0; j < person.GetCount(); j++){
|
||||
const XmlNode &prop = person[j];
|
||||
if(prop.IsTag(TAG_NAME)) array.Set(i, TAG_NAME, prop[0].GetText());
|
||||
else if(prop.IsTag(TAG_SURNAME)) array.Set(i, TAG_SURNAME, prop[0].GetText());
|
||||
else if(prop.IsTag(TAG_ADDRESS)) array.Set(i, TAG_ADDRESS, prop[0].GetText());
|
||||
else if(prop.IsTag(TAG_EMAIL)) array.Set(i, TAG_EMAIL, prop[0].GetText());
|
||||
}
|
||||
}
|
||||
}
|
||||
catch(XmlError &e) {
|
||||
Exclamation("Error reading the input file:&" + DeQtf(e) );
|
||||
}
|
||||
}
|
||||
|
||||
void AddressBook::Save()
|
||||
{
|
||||
if(IsEmpty(filename)) {
|
||||
SaveAs();
|
||||
return;
|
||||
}
|
||||
String xml;
|
||||
for(int i = 0; i < array.GetCount(); i++)
|
||||
xml <<
|
||||
XmlTag("person") (
|
||||
XmlTag(TAG_NAME).Text(array.Get(i, 0)) +
|
||||
XmlTag(TAG_SURNAME).Text(array.Get(i, 1)) +
|
||||
XmlTag(TAG_ADDRESS).Text(array.Get(i, 2)) +
|
||||
XmlTag(TAG_EMAIL).Text(array.Get(i, 3))
|
||||
);
|
||||
if(!SaveFile(filename, XmlDoc("AddressBook", xml)))
|
||||
Exclamation("Error saving the file!");
|
||||
}
|
||||
|
||||
void AddressBook::SaveAs()
|
||||
{
|
||||
if(!fs.ExecuteSaveAs()) return;
|
||||
filename = fs;
|
||||
Save();
|
||||
}
|
||||
|
||||
void AddressBook::Print()
|
||||
{
|
||||
String qtf;
|
||||
qtf = "{{1:1:1:1 Name:: Surname:: Address:: Email";
|
||||
for(int i = 0; i < array.GetCount(); i++)
|
||||
for(int q = 0; q < 4; q++)
|
||||
qtf << ":: " << DeQtf((String)array.Get(i, q));
|
||||
Report report;
|
||||
report << qtf;
|
||||
Perform(report);
|
||||
}
|
||||
|
||||
void AddressBook::Quit()
|
||||
{
|
||||
Break();
|
||||
}
|
||||
|
||||
void AddressBook::Serialize(Stream& s)
|
||||
{
|
||||
int version = 0;
|
||||
s / version;
|
||||
s % search.oname % search.osurname % search.oaddress % search.oemail;
|
||||
s % fs;
|
||||
SetupSearch();
|
||||
}
|
||||
|
||||
GUI_APP_MAIN
|
||||
{
|
||||
AddressBook ab;
|
||||
LoadFromFile(ab);
|
||||
ab.Run();
|
||||
StoreToFile(ab);
|
||||
}
|
||||
30
uppdev/AddressBookXMLDOM/AddressBookXMLDOM.lay
Normal file
30
uppdev/AddressBookXMLDOM/AddressBookXMLDOM.lay
Normal file
|
|
@ -0,0 +1,30 @@
|
|||
LAYOUT(AddressBookLayout, 516, 456)
|
||||
ITEM(MenuBar, menu, LeftPosZ(0, 200).TopPosZ(0, 20))
|
||||
ITEM(TabCtrl, tab, LeftPosZ(8, 500).TopPosZ(32, 84))
|
||||
ITEM(ArrayCtrl, array, LeftPosZ(8, 500).TopPosZ(124, 324))
|
||||
END_LAYOUT
|
||||
|
||||
LAYOUT(ModifyLayout, 480, 52)
|
||||
ITEM(Label, dv___0, SetLabel(t_("&Name")).LeftPosZ(8, 48).TopPosZ(8, 15))
|
||||
ITEM(EditField, name, LeftPosZ(8, 96).TopPosZ(28, 19))
|
||||
ITEM(Label, dv___2, SetLabel(t_("&Surname")).LeftPosZ(108, 48).TopPosZ(8, 15))
|
||||
ITEM(EditField, surname, LeftPosZ(108, 96).TopPosZ(28, 19))
|
||||
ITEM(Label, dv___4, SetLabel(t_("&Address")).LeftPosZ(208, 48).TopPosZ(8, 15))
|
||||
ITEM(EditField, address, LeftPosZ(208, 96).TopPosZ(28, 19))
|
||||
ITEM(Label, dv___6, SetLabel(t_("&Email")).LeftPosZ(308, 48).TopPosZ(8, 15))
|
||||
ITEM(EditField, email, LeftPosZ(308, 96).TopPosZ(28, 19))
|
||||
ITEM(Button, add, SetLabel(t_("Ad&d")).LeftPosZ(416, 56).TopPosZ(4, 20))
|
||||
ITEM(Button, change, SetLabel(t_("&Change")).LeftPosZ(416, 56).TopPosZ(28, 20))
|
||||
END_LAYOUT
|
||||
|
||||
LAYOUT(SearchLayout, 480, 56)
|
||||
ITEM(Option, oname, SetLabel(t_("&Name")).LeftPosZ(8, 56).TopPosZ(8, 18))
|
||||
ITEM(EditField, name, LeftPosZ(8, 96).TopPosZ(28, 19))
|
||||
ITEM(Option, osurname, SetLabel(t_("&Surname")).LeftPosZ(108, 64).TopPosZ(8, 18))
|
||||
ITEM(EditField, surname, LeftPosZ(108, 96).TopPosZ(28, 19))
|
||||
ITEM(Option, oaddress, SetLabel(t_("&Address")).LeftPosZ(208, 64).TopPosZ(8, 18))
|
||||
ITEM(EditField, address, LeftPosZ(208, 96).TopPosZ(28, 19))
|
||||
ITEM(Option, oemail, SetLabel(t_("&Email")).LeftPosZ(308, 52).TopPosZ(8, 18))
|
||||
ITEM(EditField, email, LeftPosZ(308, 96).TopPosZ(28, 19))
|
||||
ITEM(Button, search, SetLabel(t_("&Search")).LeftPosZ(416, 56).TopPosZ(28, 20))
|
||||
END_LAYOUT
|
||||
10
uppdev/AddressBookXMLDOM/AddressBookXMLDOM.upp
Normal file
10
uppdev/AddressBookXMLDOM/AddressBookXMLDOM.upp
Normal file
|
|
@ -0,0 +1,10 @@
|
|||
uses
|
||||
CtrlLib,
|
||||
Report;
|
||||
|
||||
file
|
||||
AddressBook.cpp,
|
||||
AddressBookXMLDOM.lay;
|
||||
|
||||
mainconfig
|
||||
"" = "GUI";
|
||||
65
uppdev/AggCtrl/AggCtrl.h
Normal file
65
uppdev/AggCtrl/AggCtrl.h
Normal file
|
|
@ -0,0 +1,65 @@
|
|||
#ifndef _AggCtrl_AggCtrl_h_
|
||||
#define _AggCtrl_AggCtrl_h_
|
||||
|
||||
/*
|
||||
This package implements Ctrl which allows user to use Agg software rendering engine in Upp
|
||||
Autor: Jan Dolinár <dolik.rce@seznam.cz>
|
||||
Usage: Just define onDraw method in your source and put in there the drawing stuff
|
||||
The Ctrl has pre-initialized rendering_buffer rbuf which is rendered in Paint(...) function
|
||||
You also can connect it to higher level Agg classes, or even draw other buffer
|
||||
with PaintAgg(...)
|
||||
Bugs: Currently only X11 is supported
|
||||
Doesn't work properly when used pixelformat has different bpp then system (on my system
|
||||
only 32bit pixel formats work...)
|
||||
*/
|
||||
|
||||
#include <CtrlLib/CtrlLib.h>
|
||||
//#include <Core/Core.h>
|
||||
#include <agg24/agg_rendering_buffer.h>
|
||||
#include <agg24/agg_basics.h>
|
||||
#include <agg24/agg_color_conv_rgb8.h>
|
||||
#include "PixFmts.h"
|
||||
|
||||
#ifdef PLATFORM_X11
|
||||
#include <X11/Xlib.h>
|
||||
#elif defined(PLATFORM_WIN32)
|
||||
#include <windows.h>
|
||||
#include <string.h>
|
||||
#include <agg24/agg_win32_bmp.h>
|
||||
#include <agg24/agg_color_conv_rgb16.h>
|
||||
#endif
|
||||
|
||||
class AggCtrl:public Upp::Ctrl{
|
||||
public:
|
||||
typedef AggCtrl CLASSNAME;
|
||||
AggCtrl(agg::pix_format_e format=agg::pix_format_bgra32);
|
||||
~AggCtrl();
|
||||
virtual void Paint(Upp::Draw& draw);
|
||||
virtual void onDraw(Upp::Draw& dest);
|
||||
virtual void onInit();
|
||||
virtual void onResize(int width,int height);
|
||||
void PaintAgg(Upp::Draw& dest);
|
||||
void PaintAgg(const agg::rendering_buffer* src,Upp::Draw& dest);
|
||||
void Resized();
|
||||
void SetPixFmt(agg::pix_format_e format);
|
||||
agg::rendering_buffer rbuf;
|
||||
bool flip_y;
|
||||
private:
|
||||
unsigned bpp,sysbpp;
|
||||
agg::pix_format_e pixformat,sysformat;
|
||||
int cx,cy;
|
||||
#ifdef PLATFORM_X11
|
||||
public:
|
||||
unsigned char* buf;
|
||||
private:
|
||||
XImage* ximg;
|
||||
int byte_order;
|
||||
unsigned long r_mask,g_mask,b_mask;
|
||||
#elif defined(PLATFORM_WIN32)
|
||||
void CreatePmap(unsigned width,unsigned height,agg::rendering_buffer* wnd);
|
||||
agg::pixel_map pmap;
|
||||
#endif
|
||||
};
|
||||
|
||||
|
||||
#endif
|
||||
34
uppdev/AggCtrl/AggCtrl.upp
Normal file
34
uppdev/AggCtrl/AggCtrl.upp
Normal file
|
|
@ -0,0 +1,34 @@
|
|||
optimize_speed;
|
||||
|
||||
uses
|
||||
CtrlLib,
|
||||
agg24;
|
||||
|
||||
library((LINUX | FREEBSD) & !NOGTK) "gtk-x11-2.0 gdk-x11-2.0 atk-1.0 gdk_pixbuf-2.0 m pangocairo-1.0 fontconfig Xext Xrender Xinerama Xi Xrandr Xcursor Xfixes pango-1.0 cairo X11 gobject-2.0 gmodule-2.0 glib-2.0";
|
||||
|
||||
library(WIN32 !MSC8ARM) "user32 gdi32";
|
||||
|
||||
library(LINUX) X11;
|
||||
|
||||
library(LINUX) dl;
|
||||
|
||||
library(LINUX !XLFD) Xft;
|
||||
|
||||
library(FREEBSD) X11;
|
||||
|
||||
library(FREEBSD !XLFD) "Xft fontconfig Xrender freetype expat";
|
||||
|
||||
library(LINUX !XLFD !SHARED) "fontconfig Xrender freetype expat";
|
||||
|
||||
library(OSX11) "X11 Xft fontconfig Xrender freetype expat";
|
||||
|
||||
file
|
||||
PixFmts.h,
|
||||
AggCtrl.h,
|
||||
AggCtrlWin32.cpp,
|
||||
Test.cpp,
|
||||
AggCtrlX11.cpp;
|
||||
|
||||
mainconfig
|
||||
"" = "GUI";
|
||||
|
||||
205
uppdev/AggCtrl/AggCtrlWin32.cpp
Normal file
205
uppdev/AggCtrl/AggCtrlWin32.cpp
Normal file
|
|
@ -0,0 +1,205 @@
|
|||
#include "AggCtrl.h"
|
||||
|
||||
#ifdef PLATFORM_WIN32
|
||||
|
||||
static void ConvertPmap(agg::rendering_buffer* dst,const agg::rendering_buffer* src,agg::pix_format_e format){
|
||||
switch(format){
|
||||
case agg::pix_format_gray8: break;
|
||||
case agg::pix_format_gray16: agg::color_conv(dst, src, agg::color_conv_gray16_to_gray8()); break;
|
||||
case agg::pix_format_rgb565: agg::color_conv(dst, src, agg::color_conv_rgb565_to_rgb555());break;
|
||||
case agg::pix_format_rgbAAA: agg::color_conv(dst, src, agg::color_conv_rgbAAA_to_bgr24()); break;
|
||||
case agg::pix_format_bgrAAA: agg::color_conv(dst, src, agg::color_conv_bgrAAA_to_bgr24()); break;
|
||||
case agg::pix_format_rgbBBA: agg::color_conv(dst, src, agg::color_conv_rgbBBA_to_bgr24()); break;
|
||||
case agg::pix_format_bgrABB: agg::color_conv(dst, src, agg::color_conv_bgrABB_to_bgr24()); break;
|
||||
case agg::pix_format_rgb24: agg::color_conv(dst, src, agg::color_conv_rgb24_to_bgr24()); break;
|
||||
case agg::pix_format_rgb48: agg::color_conv(dst, src, agg::color_conv_rgb48_to_bgr24()); break;
|
||||
case agg::pix_format_bgr48: agg::color_conv(dst, src, agg::color_conv_bgr48_to_bgr24()); break;
|
||||
case agg::pix_format_abgr32: agg::color_conv(dst, src, agg::color_conv_abgr32_to_bgra32());break;
|
||||
case agg::pix_format_argb32: agg::color_conv(dst, src, agg::color_conv_argb32_to_bgra32());break;
|
||||
case agg::pix_format_rgba32: agg::color_conv(dst, src, agg::color_conv_rgba32_to_bgra32());break;
|
||||
case agg::pix_format_bgra64: agg::color_conv(dst, src, agg::color_conv_bgra64_to_bgra32());break;
|
||||
case agg::pix_format_abgr64: agg::color_conv(dst, src, agg::color_conv_abgr64_to_bgra32());break;
|
||||
case agg::pix_format_argb64: agg::color_conv(dst, src, agg::color_conv_argb64_to_bgra32());break;
|
||||
case agg::pix_format_rgba64: agg::color_conv(dst, src, agg::color_conv_rgba64_to_bgra32());break;
|
||||
}
|
||||
};
|
||||
|
||||
AggCtrl::AggCtrl(agg::pix_format_e format):
|
||||
pixformat(format), bpp(0),
|
||||
sysformat(agg::pix_format_undefined),
|
||||
flip_y(false),
|
||||
cx(16),cy(16)
|
||||
{
|
||||
// Set bpp and sysbpp from pixel format
|
||||
switch(pixformat)
|
||||
{
|
||||
case agg::pix_format_bw:
|
||||
sysformat = agg::pix_format_bw;
|
||||
bpp = 1;
|
||||
sysbpp = 1;
|
||||
break;
|
||||
case agg::pix_format_gray8:
|
||||
sysformat = agg::pix_format_gray8;
|
||||
bpp = 8;
|
||||
sysbpp = 8;
|
||||
break;
|
||||
case agg::pix_format_gray16:
|
||||
sysformat = agg::pix_format_gray8;
|
||||
bpp = 16;
|
||||
sysbpp = 8;
|
||||
break;
|
||||
case agg::pix_format_rgb565:
|
||||
case agg::pix_format_rgb555:
|
||||
sysformat = agg::pix_format_rgb555;
|
||||
bpp = 16;
|
||||
sysbpp = 16;
|
||||
break;
|
||||
case agg::pix_format_rgbAAA:
|
||||
case agg::pix_format_bgrAAA:
|
||||
case agg::pix_format_rgbBBA:
|
||||
case agg::pix_format_bgrABB:
|
||||
sysformat = agg::pix_format_bgr24;
|
||||
bpp = 32;
|
||||
sysbpp = 24;
|
||||
break;
|
||||
case agg::pix_format_rgb24:
|
||||
case agg::pix_format_bgr24:
|
||||
sysformat = agg::pix_format_bgr24;
|
||||
bpp = 24;
|
||||
sysbpp = 24;
|
||||
break;
|
||||
case agg::pix_format_rgb48:
|
||||
case agg::pix_format_bgr48:
|
||||
sysformat = agg::pix_format_bgr24;
|
||||
bpp = 48;
|
||||
sysbpp = 24;
|
||||
break;
|
||||
case agg::pix_format_bgra32:
|
||||
case agg::pix_format_abgr32:
|
||||
case agg::pix_format_argb32:
|
||||
case agg::pix_format_rgba32:
|
||||
sysformat = agg::pix_format_bgra32;
|
||||
bpp = 32;
|
||||
sysbpp = 32;
|
||||
break;
|
||||
case agg::pix_format_bgra64:
|
||||
case agg::pix_format_abgr64:
|
||||
case agg::pix_format_argb64:
|
||||
case agg::pix_format_rgba64:
|
||||
sysformat = agg::pix_format_bgra32;
|
||||
bpp = 64;
|
||||
sysbpp = 32;
|
||||
break;
|
||||
}
|
||||
CreatePmap(cx,cy,&rbuf);
|
||||
// User initialization code
|
||||
onInit();
|
||||
};
|
||||
void AggCtrl::CreatePmap(unsigned width,unsigned height,agg::rendering_buffer* rb){
|
||||
// Create a pixmap and attach a buffer to it
|
||||
pmap.create(width,height,agg::org_e(bpp));
|
||||
rb->attach(pmap.buf(),pmap.width(),pmap.height(),flip_y ?pmap.stride():-pmap.stride());
|
||||
};
|
||||
void AggCtrl::PaintAgg(Upp::Draw& dest){PaintAgg(&rbuf,dest);};
|
||||
void AggCtrl::PaintAgg(const agg::rendering_buffer* src,Upp::Draw& dest){
|
||||
if(sysformat==pixformat){
|
||||
// Pixmap is in the right format, put it on display
|
||||
pmap.draw(dest.GetHandle());
|
||||
}else{
|
||||
// Pixmap must be converted to the right pixel format first
|
||||
agg::pixel_map pmap_tmp;
|
||||
pmap_tmp.create(pmap.width(),pmap.height(),agg::org_e(sysbpp));
|
||||
agg::rendering_buffer rbuf_tmp;
|
||||
rbuf_tmp.attach(pmap_tmp.buf(),pmap_tmp.width(),pmap_tmp.height(),flip_y?pmap_tmp.stride():-pmap_tmp.stride());
|
||||
ConvertPmap(&rbuf_tmp, src, pixformat);
|
||||
pmap_tmp.draw(dest.GetHandle());
|
||||
}
|
||||
};
|
||||
void AggCtrl::Resized(){
|
||||
// Update the dimensions and reinitialize the pixmap with new size
|
||||
cx=GetSize().cx;cy=GetSize().cy;
|
||||
CreatePmap(cx,cy,&rbuf);
|
||||
// User resize code
|
||||
onResize(cx,cy);
|
||||
};
|
||||
AggCtrl::~AggCtrl() {
|
||||
pmap.destroy();
|
||||
};
|
||||
void AggCtrl::Paint(Upp::Draw& draw) {
|
||||
// Check if the control was resized
|
||||
if(cx!=GetSize().cx||cy!=GetSize().cy){Resized();}
|
||||
// User Drawing code
|
||||
onDraw(draw);
|
||||
// Draw to screen
|
||||
PaintAgg(draw);
|
||||
};
|
||||
void AggCtrl::SetPixFmt(agg::pix_format_e format){
|
||||
pixformat=format;
|
||||
switch(pixformat)
|
||||
{
|
||||
case agg::pix_format_bw:
|
||||
sysformat = agg::pix_format_bw;
|
||||
bpp = 1;
|
||||
sysbpp = 1;
|
||||
break;
|
||||
case agg::pix_format_gray8:
|
||||
sysformat = agg::pix_format_gray8;
|
||||
bpp = 8;
|
||||
sysbpp = 8;
|
||||
break;
|
||||
case agg::pix_format_gray16:
|
||||
sysformat = agg::pix_format_gray8;
|
||||
bpp = 16;
|
||||
sysbpp = 8;
|
||||
break;
|
||||
case agg::pix_format_rgb565:
|
||||
case agg::pix_format_rgb555:
|
||||
sysformat = agg::pix_format_rgb555;
|
||||
bpp = 16;
|
||||
sysbpp = 16;
|
||||
break;
|
||||
case agg::pix_format_rgbAAA:
|
||||
case agg::pix_format_bgrAAA:
|
||||
case agg::pix_format_rgbBBA:
|
||||
case agg::pix_format_bgrABB:
|
||||
sysformat = agg::pix_format_bgr24;
|
||||
bpp = 32;
|
||||
sysbpp = 24;
|
||||
break;
|
||||
case agg::pix_format_rgb24:
|
||||
case agg::pix_format_bgr24:
|
||||
sysformat = agg::pix_format_bgr24;
|
||||
bpp = 24;
|
||||
sysbpp = 24;
|
||||
break;
|
||||
case agg::pix_format_rgb48:
|
||||
case agg::pix_format_bgr48:
|
||||
sysformat = agg::pix_format_bgr24;
|
||||
bpp = 48;
|
||||
sysbpp = 24;
|
||||
break;
|
||||
case agg::pix_format_bgra32:
|
||||
case agg::pix_format_abgr32:
|
||||
case agg::pix_format_argb32:
|
||||
case agg::pix_format_rgba32:
|
||||
sysformat = agg::pix_format_bgra32;
|
||||
bpp = 32;
|
||||
sysbpp = 32;
|
||||
break;
|
||||
case agg::pix_format_bgra64:
|
||||
case agg::pix_format_abgr64:
|
||||
case agg::pix_format_argb64:
|
||||
case agg::pix_format_rgba64:
|
||||
sysformat = agg::pix_format_bgra32;
|
||||
bpp = 64;
|
||||
sysbpp = 32;
|
||||
break;
|
||||
}
|
||||
Resized();
|
||||
};
|
||||
|
||||
void AggCtrl::onDraw(Upp::Draw& dest){};
|
||||
void AggCtrl::onInit(){};
|
||||
void AggCtrl::onResize(int width,int height){};
|
||||
|
||||
#endif
|
||||
258
uppdev/AggCtrl/AggCtrlX11.cpp
Normal file
258
uppdev/AggCtrl/AggCtrlX11.cpp
Normal file
|
|
@ -0,0 +1,258 @@
|
|||
#include "AggCtrl.h"
|
||||
|
||||
#ifdef PLATFORM_X11
|
||||
AggCtrl::AggCtrl(agg::pix_format_e format):
|
||||
pixformat(format), bpp(0),
|
||||
sysformat(agg::pix_format_undefined),
|
||||
byte_order(LSBFirst),
|
||||
flip_y(false),
|
||||
cx(16),cy(16),
|
||||
r_mask(Upp::Xvisual->red_mask), g_mask(Upp::Xvisual->green_mask), b_mask(Upp::Xvisual->blue_mask)
|
||||
{
|
||||
ASSERT_(!(Upp::Xdepth<15||r_mask==0||g_mask==0||b_mask==0),"AGG requires at least 15-bit color depth and True- or DirectColor class.");
|
||||
// Determine bpp from pixel format
|
||||
switch(pixformat){
|
||||
default: break;
|
||||
case agg::pix_format_gray8:
|
||||
bpp = 8; break;
|
||||
case agg::pix_format_rgb565:
|
||||
case agg::pix_format_rgb555:
|
||||
bpp = 16; break;
|
||||
case agg::pix_format_rgb24:
|
||||
case agg::pix_format_bgr24:
|
||||
bpp = 24; break;
|
||||
case agg::pix_format_bgra32:
|
||||
case agg::pix_format_abgr32:
|
||||
case agg::pix_format_argb32:
|
||||
case agg::pix_format_rgba32:
|
||||
bpp = 32; break;
|
||||
}
|
||||
|
||||
// Pre-determine the byte order
|
||||
int t = 1;
|
||||
int hw_byte_order = LSBFirst;
|
||||
if (*(char*)&t == 0) hw_byte_order = MSBFirst;
|
||||
|
||||
// Perceive system pixel format by mask
|
||||
switch (Upp::Xdepth) {
|
||||
case 15:
|
||||
sysbpp=16;
|
||||
if (r_mask == 0x7C00 && g_mask == 0x3E0 && b_mask == 0x1F) {
|
||||
sysformat = agg::pix_format_rgb555;
|
||||
byte_order = hw_byte_order;
|
||||
}
|
||||
break;
|
||||
case 16:
|
||||
sysbpp=16;
|
||||
if (r_mask==0xF800&&g_mask==0x7E0&&b_mask==0x1F) {
|
||||
sysformat = agg::pix_format_rgb565;
|
||||
byte_order = hw_byte_order;
|
||||
}
|
||||
break;
|
||||
case 24:
|
||||
case 32:
|
||||
sysbpp=32;
|
||||
if (g_mask==0xFF00){
|
||||
if (r_mask==0xFF&&b_mask==0xFF0000) {
|
||||
switch(pixformat) {
|
||||
case agg::pix_format_rgba32:
|
||||
sysformat = agg::pix_format_rgba32;
|
||||
byte_order = LSBFirst;
|
||||
break;
|
||||
case agg::pix_format_abgr32:
|
||||
sysformat = agg::pix_format_abgr32;
|
||||
byte_order = MSBFirst;
|
||||
break;
|
||||
default:
|
||||
byte_order = hw_byte_order;
|
||||
sysformat = (hw_byte_order==LSBFirst)?agg::pix_format_rgba32:agg::pix_format_abgr32;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (r_mask == 0xFF0000 && b_mask == 0xFF) {
|
||||
switch (pixformat) {
|
||||
case agg::pix_format_argb32:
|
||||
sysformat = agg::pix_format_argb32;
|
||||
byte_order = MSBFirst;
|
||||
break;
|
||||
case agg::pix_format_bgra32:
|
||||
sysformat = agg::pix_format_bgra32;
|
||||
byte_order = LSBFirst;
|
||||
break;
|
||||
default:
|
||||
byte_order = hw_byte_order;
|
||||
sysformat = (hw_byte_order == MSBFirst)?agg::pix_format_argb32:agg::pix_format_bgra32;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
ASSERT_(sysformat!=agg::pix_format_undefined,"RGB masks are not compatible with AGG pixel formats");
|
||||
|
||||
// Allocate buffer
|
||||
buf=new unsigned char[cx*cy*(bpp/8)];
|
||||
// Connect rendering buffer
|
||||
rbuf.attach(buf,cx,cy,(flip_y?-1:1)*cx*(bpp/8));
|
||||
// Initialize XImage for sending the data to the X server
|
||||
ximg=XCreateImage(Upp::Xdisplay,Upp::Xvisual,Upp::Xdepth,ZPixmap,0,(char*)buf,cx,cy,sysbpp,cx*(sysbpp/8));
|
||||
ximg->byte_order = byte_order;
|
||||
// User initialization
|
||||
onInit();
|
||||
};
|
||||
|
||||
void AggCtrl::PaintAgg(Upp::Draw& dest){PaintAgg(&rbuf,dest);};
|
||||
void AggCtrl::PaintAgg(const agg::rendering_buffer* src,Upp::Draw& dest){
|
||||
if(ximg==0) return;
|
||||
ximg->data=(char*)(flip_y?(src->row_ptr(src->height())-1):src->row_ptr(0));
|
||||
if(pixformat==sysformat){
|
||||
XPutImage(Upp::Xdisplay,dest.GetDrawable(),dest.GetGC(),ximg,0,0,GetRect().left,GetRect().top,cx,cy);
|
||||
XFlush(Upp::Xdisplay);
|
||||
XSync(Upp::Xdisplay,false);
|
||||
}else{
|
||||
// Conversion to pixel format compatible with current system
|
||||
int row_len = cx*sysbpp/8;
|
||||
unsigned char* buf_tmp = new unsigned char[row_len*cy];
|
||||
agg::rendering_buffer rbuf_tmp;
|
||||
rbuf_tmp.attach(buf_tmp,cx,cy,flip_y?-row_len:row_len);
|
||||
switch (sysformat){
|
||||
default: break;
|
||||
case agg::pix_format_rgb555:
|
||||
switch (pixformat) {
|
||||
default: break;
|
||||
case agg::pix_format_rgb555:agg::color_conv(&rbuf_tmp, src, agg::color_conv_rgb555_to_rgb555());break;
|
||||
case agg::pix_format_rgb565:agg::color_conv(&rbuf_tmp, src, agg::color_conv_rgb565_to_rgb555());break;
|
||||
case agg::pix_format_rgb24:agg::color_conv(&rbuf_tmp, src, agg::color_conv_rgb24_to_rgb555());break;
|
||||
case agg::pix_format_bgr24:agg::color_conv(&rbuf_tmp, src, agg::color_conv_bgr24_to_rgb555());break;
|
||||
case agg::pix_format_rgba32:agg::color_conv(&rbuf_tmp, src, agg::color_conv_rgba32_to_rgb555());break;
|
||||
case agg::pix_format_argb32:agg::color_conv(&rbuf_tmp, src, agg::color_conv_argb32_to_rgb555());break;
|
||||
case agg::pix_format_bgra32:agg::color_conv(&rbuf_tmp, src, agg::color_conv_bgra32_to_rgb555());break;
|
||||
case agg::pix_format_abgr32:agg::color_conv(&rbuf_tmp, src, agg::color_conv_abgr32_to_rgb555());break;
|
||||
}
|
||||
break;
|
||||
case agg::pix_format_rgb565:
|
||||
switch (pixformat) {
|
||||
default: break;
|
||||
case agg::pix_format_rgb555:agg::color_conv(&rbuf_tmp, src, agg::color_conv_rgb555_to_rgb565());break;
|
||||
case agg::pix_format_rgb565:agg::color_conv(&rbuf_tmp, src, agg::color_conv_rgb565_to_rgb565());break;
|
||||
case agg::pix_format_rgb24:agg::color_conv(&rbuf_tmp, src, agg::color_conv_rgb24_to_rgb565());break;
|
||||
case agg::pix_format_bgr24:agg::color_conv(&rbuf_tmp, src, agg::color_conv_bgr24_to_rgb565());break;
|
||||
case agg::pix_format_rgba32:agg::color_conv(&rbuf_tmp, src, agg::color_conv_rgba32_to_rgb565());break;
|
||||
case agg::pix_format_argb32:agg::color_conv(&rbuf_tmp, src, agg::color_conv_argb32_to_rgb565());break;
|
||||
case agg::pix_format_bgra32:agg::color_conv(&rbuf_tmp, src, agg::color_conv_bgra32_to_rgb565());break;
|
||||
case agg::pix_format_abgr32:agg::color_conv(&rbuf_tmp, src, agg::color_conv_abgr32_to_rgb565());break;
|
||||
}
|
||||
break;
|
||||
case agg::pix_format_rgba32:
|
||||
switch (pixformat) {
|
||||
default: break;
|
||||
case agg::pix_format_rgb555:agg::color_conv(&rbuf_tmp, src, agg::color_conv_rgb555_to_rgba32());break;
|
||||
case agg::pix_format_rgb565:agg::color_conv(&rbuf_tmp, src, agg::color_conv_rgb565_to_rgba32());break;
|
||||
case agg::pix_format_rgb24:agg::color_conv(&rbuf_tmp, src, agg::color_conv_rgb24_to_rgba32());break;
|
||||
case agg::pix_format_bgr24:agg::color_conv(&rbuf_tmp, src, agg::color_conv_bgr24_to_rgba32());break;
|
||||
case agg::pix_format_rgba32:agg::color_conv(&rbuf_tmp, src, agg::color_conv_rgba32_to_rgba32());break;
|
||||
case agg::pix_format_argb32:agg::color_conv(&rbuf_tmp, src, agg::color_conv_argb32_to_rgba32());break;
|
||||
case agg::pix_format_bgra32:agg::color_conv(&rbuf_tmp, src, agg::color_conv_bgra32_to_rgba32());break;
|
||||
case agg::pix_format_abgr32:agg::color_conv(&rbuf_tmp, src, agg::color_conv_abgr32_to_rgba32());break;
|
||||
}
|
||||
break;
|
||||
case agg::pix_format_abgr32:
|
||||
switch (pixformat) {
|
||||
default: break;
|
||||
case agg::pix_format_rgb555:agg::color_conv(&rbuf_tmp, src, agg::color_conv_rgb555_to_abgr32());break;
|
||||
case agg::pix_format_rgb565:agg::color_conv(&rbuf_tmp, src, agg::color_conv_rgb565_to_abgr32());break;
|
||||
case agg::pix_format_rgb24:agg::color_conv(&rbuf_tmp, src, agg::color_conv_rgb24_to_abgr32());break;
|
||||
case agg::pix_format_bgr24:agg::color_conv(&rbuf_tmp, src, agg::color_conv_bgr24_to_abgr32());break;
|
||||
case agg::pix_format_abgr32:agg::color_conv(&rbuf_tmp, src, agg::color_conv_abgr32_to_abgr32());break;
|
||||
case agg::pix_format_rgba32:agg::color_conv(&rbuf_tmp, src, agg::color_conv_rgba32_to_abgr32());break;
|
||||
case agg::pix_format_argb32:agg::color_conv(&rbuf_tmp, src, agg::color_conv_argb32_to_abgr32());break;
|
||||
case agg::pix_format_bgra32:agg::color_conv(&rbuf_tmp, src, agg::color_conv_bgra32_to_abgr32());break;
|
||||
}
|
||||
break;
|
||||
case agg::pix_format_argb32:
|
||||
switch (pixformat) {
|
||||
default: break;
|
||||
case agg::pix_format_rgb555:agg::color_conv(&rbuf_tmp, src, agg::color_conv_rgb555_to_argb32());break;
|
||||
case agg::pix_format_rgb565:agg::color_conv(&rbuf_tmp, src, agg::color_conv_rgb565_to_argb32());break;
|
||||
case agg::pix_format_rgb24:agg::color_conv(&rbuf_tmp, src, agg::color_conv_rgb24_to_argb32());break;
|
||||
case agg::pix_format_bgr24:agg::color_conv(&rbuf_tmp, src, agg::color_conv_bgr24_to_argb32());break;
|
||||
case agg::pix_format_rgba32:agg::color_conv(&rbuf_tmp, src, agg::color_conv_rgba32_to_argb32());break;
|
||||
case agg::pix_format_argb32:agg::color_conv(&rbuf_tmp, src, agg::color_conv_argb32_to_argb32());break;
|
||||
case agg::pix_format_abgr32:agg::color_conv(&rbuf_tmp, src, agg::color_conv_abgr32_to_argb32());break;
|
||||
case agg::pix_format_bgra32:agg::color_conv(&rbuf_tmp, src, agg::color_conv_bgra32_to_argb32());break;
|
||||
}
|
||||
break;
|
||||
case agg::pix_format_bgra32:
|
||||
switch (pixformat) {
|
||||
default: break;
|
||||
case agg::pix_format_rgb555:agg::color_conv(&rbuf_tmp, src, agg::color_conv_rgb555_to_bgra32());break;
|
||||
case agg::pix_format_rgb565:agg::color_conv(&rbuf_tmp, src, agg::color_conv_rgb565_to_bgra32());break;
|
||||
case agg::pix_format_rgb24:agg::color_conv(&rbuf_tmp, src, agg::color_conv_rgb24_to_bgra32());break;
|
||||
case agg::pix_format_bgr24:agg::color_conv(&rbuf_tmp, src, agg::color_conv_bgr24_to_bgra32());break;
|
||||
case agg::pix_format_rgba32:agg::color_conv(&rbuf_tmp, src, agg::color_conv_rgba32_to_bgra32());break;
|
||||
case agg::pix_format_argb32:agg::color_conv(&rbuf_tmp, src, agg::color_conv_argb32_to_bgra32());break;
|
||||
case agg::pix_format_abgr32:agg::color_conv(&rbuf_tmp, src, agg::color_conv_abgr32_to_bgra32());break;
|
||||
case agg::pix_format_bgra32:agg::color_conv(&rbuf_tmp, src, agg::color_conv_bgra32_to_bgra32());break;
|
||||
}
|
||||
break;
|
||||
}
|
||||
ximg->data=(char*)buf_tmp;
|
||||
XPutImage(Upp::Xdisplay,dest.GetDrawable(),dest.GetGC(),ximg,0,0,GetRect().left,GetRect().top,cx,cy);
|
||||
XFlush(Upp::Xdisplay);
|
||||
XSync(Upp::Xdisplay,false);
|
||||
delete [] buf_tmp;
|
||||
}
|
||||
};
|
||||
void AggCtrl::Resized(){
|
||||
// Update the dimensions, reallocate the buffer with new size, get a bigger XImage
|
||||
cx=GetSize().cx;cy=GetSize().cy;
|
||||
delete [] buf;
|
||||
ximg->data = 0;
|
||||
XDestroyImage(ximg);
|
||||
buf=new unsigned char[cx*cy*(bpp/8)];
|
||||
rbuf.attach(buf,cx,cy,(flip_y?-1:1)*cx*(bpp/8));
|
||||
ximg=XCreateImage(Upp::Xdisplay,Upp::Xvisual,Upp::Xdepth,ZPixmap,0,(char*)buf,cx,cy,sysbpp,cx*(sysbpp/8));
|
||||
ximg->byte_order=byte_order;
|
||||
// User resize code
|
||||
onResize(cx,cy);
|
||||
};
|
||||
AggCtrl::~AggCtrl() {
|
||||
delete [] buf;
|
||||
ximg->data = 0;
|
||||
XDestroyImage(ximg);
|
||||
};
|
||||
void AggCtrl::Paint(Upp::Draw& draw) {
|
||||
// Check if the control was resized
|
||||
if(cx!=GetSize().cx||cy!=GetSize().cy){Resized();}
|
||||
// User Drawing code
|
||||
onDraw(draw);
|
||||
// Draw to screen
|
||||
PaintAgg(draw);
|
||||
};
|
||||
void AggCtrl::SetPixFmt(agg::pix_format_e format){
|
||||
pixformat=format;
|
||||
switch(format){
|
||||
default: break;
|
||||
case agg::pix_format_gray8:
|
||||
bpp = 8; break;
|
||||
case agg::pix_format_rgb565:
|
||||
case agg::pix_format_rgb555:
|
||||
bpp = 16; break;
|
||||
case agg::pix_format_rgb24:
|
||||
case agg::pix_format_bgr24:
|
||||
bpp = 24; break;
|
||||
case agg::pix_format_bgra32:
|
||||
case agg::pix_format_abgr32:
|
||||
case agg::pix_format_argb32:
|
||||
case agg::pix_format_rgba32:
|
||||
bpp = 32; break;
|
||||
}
|
||||
Resized();
|
||||
};
|
||||
|
||||
void AggCtrl::onDraw(Upp::Draw& dest){};
|
||||
void AggCtrl::onInit(){};
|
||||
void AggCtrl::onResize(int width,int height){};
|
||||
|
||||
#endif
|
||||
37
uppdev/AggCtrl/PixFmts.h
Normal file
37
uppdev/AggCtrl/PixFmts.h
Normal file
|
|
@ -0,0 +1,37 @@
|
|||
#ifndef _AggCtrl_PixFmts_h_
|
||||
#define _AggCtrl_PixFmts_h_
|
||||
|
||||
// Using a particular pixel format doesn't obligatory mean the necessity
|
||||
// of software conversion. For example, win32 API can natively display
|
||||
// gray8, 15-bit RGB, 24-bit BGR, and 32-bit BGRA formats.
|
||||
// This list can be (and will be!) extended in future.
|
||||
namespace agg{
|
||||
enum pix_format_e{
|
||||
pix_format_undefined = 0, // By default. No conversions are applied
|
||||
pix_format_bw, // 1 bit per color B/W
|
||||
pix_format_gray8, // Simple 256 level grayscale
|
||||
pix_format_gray16, // Simple 65535 level grayscale
|
||||
pix_format_rgb555, // 15 bit rgb. Depends on the byte ordering!
|
||||
pix_format_rgb565, // 16 bit rgb. Depends on the byte ordering!
|
||||
pix_format_rgbAAA, // 30 bit rgb. Depends on the byte ordering!
|
||||
pix_format_rgbBBA, // 32 bit rgb. Depends on the byte ordering!
|
||||
pix_format_bgrAAA, // 30 bit bgr. Depends on the byte ordering!
|
||||
pix_format_bgrABB, // 32 bit bgr. Depends on the byte ordering!
|
||||
pix_format_rgb24, // R-G-B, one byte per color component
|
||||
pix_format_bgr24, // B-G-R, native win32 BMP format.
|
||||
pix_format_rgba32, // R-G-B-A, one byte per color component
|
||||
pix_format_argb32, // A-R-G-B, native MAC format
|
||||
pix_format_abgr32, // A-B-G-R, one byte per color component
|
||||
pix_format_bgra32, // B-G-R-A, native win32 BMP format
|
||||
pix_format_rgb48, // R-G-B, 16 bits per color component
|
||||
pix_format_bgr48, // B-G-R, native win32 BMP format.
|
||||
pix_format_rgba64, // R-G-B-A, 16 bits byte per color component
|
||||
pix_format_argb64, // A-R-G-B, native MAC format
|
||||
pix_format_abgr64, // A-B-G-R, one byte per color component
|
||||
pix_format_bgra64, // B-G-R-A, native win32 BMP format
|
||||
|
||||
end_of_pix_formats
|
||||
};
|
||||
};
|
||||
|
||||
#endif
|
||||
150
uppdev/AggCtrl/Test.cpp
Normal file
150
uppdev/AggCtrl/Test.cpp
Normal file
|
|
@ -0,0 +1,150 @@
|
|||
#include "CtrlLib.h"
|
||||
|
||||
NAMESPACE_UPP
|
||||
|
||||
DropChoice::DropChoice() {
|
||||
always_drop = false;
|
||||
AddButton().Main() <<= THISBACK(Drop);
|
||||
NoDisplay();
|
||||
list.Normal();
|
||||
list.WhenSelect = callback(this, &DropChoice::Select);
|
||||
dropfocus = true;
|
||||
EnableDrop(false);
|
||||
dropwidth = 0;
|
||||
}
|
||||
|
||||
void DropChoice::EnableDrop(bool b)
|
||||
{
|
||||
MainButton().Enable(b);
|
||||
}
|
||||
|
||||
void DropChoice::PseudoPush()
|
||||
{
|
||||
MultiButton::PseudoPush(0);
|
||||
}
|
||||
|
||||
void DropChoice::Drop() {
|
||||
if(!owner || owner->IsReadOnly() || list.GetCount() == 0 && !WhenDrop) return;
|
||||
WhenDrop();
|
||||
if(dropfocus)
|
||||
owner->SetWantFocus();
|
||||
if(!list.FindSetCursor(owner->GetData()) && list.GetCount() > 0)
|
||||
list.SetCursor(0);
|
||||
list.PopUp(owner,dropwidth);
|
||||
}
|
||||
|
||||
void DropChoice::Select() {
|
||||
if(!owner || owner->IsReadOnly()) return;
|
||||
WhenSelect();
|
||||
}
|
||||
|
||||
Value DropChoice::Get() const {
|
||||
if(!owner || owner->IsReadOnly()) return Value();
|
||||
int c = list.GetCursor();
|
||||
if(c < 0) return Value();
|
||||
return list.Get(c, 0);
|
||||
}
|
||||
|
||||
int DropChoice::GetIndex() const
|
||||
{
|
||||
if(!owner || owner->IsReadOnly()) return -1;
|
||||
return list.GetCursor();
|
||||
}
|
||||
|
||||
bool DropChoice::DataSelect(Ctrl& owner, DropChoice& drop, const String& appends) {
|
||||
Value g = drop.Get();
|
||||
if(g.IsVoid()) return false;
|
||||
Value s = owner.GetData();
|
||||
if(!appends.IsVoid()) {
|
||||
String txt = s;
|
||||
if(!txt.IsEmpty()) txt.Cat(appends);
|
||||
txt.Cat((String)g);
|
||||
s = txt;
|
||||
}
|
||||
else
|
||||
s = g;
|
||||
owner.SetData(s);
|
||||
owner.WhenAction();
|
||||
return true;
|
||||
}
|
||||
|
||||
bool DropChoice::DoKey(dword key) {
|
||||
if(owner && !owner->IsReadOnly() && list.GetCount()) {
|
||||
int q = list.GetCursor();
|
||||
switch(key) {
|
||||
case K_ALT_DOWN:
|
||||
PseudoPush();
|
||||
return true;
|
||||
case K_DOWN:
|
||||
if(appending)
|
||||
PseudoPush();
|
||||
else {
|
||||
list.SetCursor(q <= 0 ? list.GetCount() - 1 : q - 1);
|
||||
Select();
|
||||
}
|
||||
return true;
|
||||
case K_UP:
|
||||
if(appending)
|
||||
PseudoPush();
|
||||
else {
|
||||
list.SetCursor(q < 0 || q >= list.GetCount() - 1 ? 0 : q + 1);
|
||||
Select();
|
||||
}
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
void DropChoice::Add(const Value& s) {
|
||||
list.Add(s);
|
||||
EnableDrop(true);
|
||||
}
|
||||
|
||||
void DropChoice::Clear() {
|
||||
list.Clear();
|
||||
EnableDrop(always_drop);
|
||||
}
|
||||
|
||||
void DropChoice::Serialize(Stream& s) {
|
||||
int version = 0x00;
|
||||
int n = list.GetCount();
|
||||
s / version / n;
|
||||
Value v;
|
||||
if(s.IsLoading()) {
|
||||
Clear();
|
||||
for(int i = 0; i < n; i++) {
|
||||
s % v;
|
||||
Add(v);
|
||||
}
|
||||
}
|
||||
else
|
||||
for(int i = 0; i < n; i++) {
|
||||
v = list.Get(i, 0);
|
||||
s % v;
|
||||
}
|
||||
EnableDrop(list.GetCount() || always_drop);
|
||||
}
|
||||
|
||||
void DropChoice::AddHistory(const Value& v, int max) {
|
||||
if(IsNull(v)) return;
|
||||
for(int i = 0; i < list.GetCount(); i++)
|
||||
if(list.Get(i, 0) == v) {
|
||||
list.Remove(i);
|
||||
break;
|
||||
}
|
||||
list.Insert(0, Vector<Value>() << v);
|
||||
if(list.GetCount() > max)
|
||||
list.SetCount(max);
|
||||
EnableDrop(list.GetCount() || always_drop);
|
||||
list.KillCursor();
|
||||
}
|
||||
|
||||
DropChoice& DropChoice::AlwaysDrop(bool e)
|
||||
{
|
||||
always_drop = e;
|
||||
EnableDrop(list.GetCount() || always_drop);
|
||||
return *this;
|
||||
}
|
||||
|
||||
END_UPP_NAMESPACE
|
||||
5
uppdev/AggCtrl/init
Normal file
5
uppdev/AggCtrl/init
Normal file
|
|
@ -0,0 +1,5 @@
|
|||
#ifndef _AggCtrl_icpp_init_stub
|
||||
#define _AggCtrl_icpp_init_stub
|
||||
#include "CtrlLib/init"
|
||||
#include "agg24/init"
|
||||
#endif
|
||||
18
uppdev/Alloc/Alloc.cpp
Normal file
18
uppdev/Alloc/Alloc.cpp
Normal file
|
|
@ -0,0 +1,18 @@
|
|||
#include <Core/Core.h>
|
||||
|
||||
using namespace UPP;
|
||||
|
||||
#define ITEM_COUNT 1000000
|
||||
|
||||
CONSOLE_APP_MAIN {
|
||||
Vector<Value> v;
|
||||
getchar();
|
||||
for(int i=0;i<ITEM_COUNT;i++) v.Add((int)i);
|
||||
getchar();
|
||||
v.Clear(); v.Shrink();
|
||||
getchar();
|
||||
for(int i=0;i<ITEM_COUNT;i++) v.Add((int)i);
|
||||
getchar();
|
||||
v.Clear(); v.Shrink();
|
||||
getchar();
|
||||
}
|
||||
10
uppdev/Alloc/Alloc.upp
Normal file
10
uppdev/Alloc/Alloc.upp
Normal file
|
|
@ -0,0 +1,10 @@
|
|||
uses
|
||||
Core;
|
||||
|
||||
file
|
||||
Alloc.cpp;
|
||||
|
||||
mainconfig
|
||||
"" = "",
|
||||
"" = "USEMALLOC";
|
||||
|
||||
4
uppdev/Alloc/init
Normal file
4
uppdev/Alloc/init
Normal file
|
|
@ -0,0 +1,4 @@
|
|||
#ifndef _Alloc_icpp_init_stub
|
||||
#define _Alloc_icpp_init_stub
|
||||
#include "Core/init"
|
||||
#endif
|
||||
9
uppdev/AlphaDraw/AlphaDraw.upp
Normal file
9
uppdev/AlphaDraw/AlphaDraw.upp
Normal file
|
|
@ -0,0 +1,9 @@
|
|||
uses
|
||||
CtrlLib;
|
||||
|
||||
file
|
||||
main.cpp;
|
||||
|
||||
mainconfig
|
||||
"" = "GUI";
|
||||
|
||||
38
uppdev/AlphaDraw/main.cpp
Normal file
38
uppdev/AlphaDraw/main.cpp
Normal file
|
|
@ -0,0 +1,38 @@
|
|||
#include <CtrlLib/CtrlLib.h>
|
||||
|
||||
using namespace Upp;
|
||||
|
||||
class ImageDrawTest : public TopWindow {
|
||||
public:
|
||||
typedef ImageDrawTest CLASSNAME;
|
||||
Image img;
|
||||
|
||||
ImageDrawTest() {
|
||||
Sizeable();
|
||||
GenerateImage();
|
||||
}
|
||||
|
||||
void GenerateImage() {
|
||||
Size sz(100, 100);
|
||||
ImageDraw w(sz);
|
||||
// w.Alpha().DrawRect(sz, Black());
|
||||
// w.Alpha().DrawRect(30, 30, 40, 40, White());
|
||||
w.DrawRect(sz, Red);
|
||||
img = w;
|
||||
}
|
||||
|
||||
virtual void Paint(Draw &w) {
|
||||
w.DrawRect(GetSize(), SColorFace());
|
||||
w.DrawImage(0, 0, img);
|
||||
}
|
||||
|
||||
virtual void LeftUp(Point p, dword keyflags) {
|
||||
GenerateImage();
|
||||
Refresh();
|
||||
}
|
||||
};
|
||||
|
||||
GUI_APP_MAIN
|
||||
{
|
||||
ImageDrawTest().Run();
|
||||
}
|
||||
10
uppdev/AlphaImage/AlphaImage.upp
Normal file
10
uppdev/AlphaImage/AlphaImage.upp
Normal file
|
|
@ -0,0 +1,10 @@
|
|||
uses
|
||||
CtrlLib,
|
||||
plugin\zim;
|
||||
|
||||
file
|
||||
main.cpp;
|
||||
|
||||
mainconfig
|
||||
"" = "GUI";
|
||||
|
||||
5
uppdev/AlphaImage/init
Normal file
5
uppdev/AlphaImage/init
Normal file
|
|
@ -0,0 +1,5 @@
|
|||
#ifndef _AlphaImage_icpp_init_stub
|
||||
#define _AlphaImage_icpp_init_stub
|
||||
#include "CtrlLib/init"
|
||||
#include "plugin\zim/init"
|
||||
#endif
|
||||
49
uppdev/AlphaImage/main.cpp
Normal file
49
uppdev/AlphaImage/main.cpp
Normal file
|
|
@ -0,0 +1,49 @@
|
|||
#include <CtrlLib/CtrlLib.h>
|
||||
|
||||
using namespace Upp;
|
||||
|
||||
struct App : public TopWindow {
|
||||
virtual void Paint(Draw& w) {
|
||||
ImageDraw iw(400, 400);
|
||||
iw.Alpha().DrawRect(0, 0, 400, 400, Black());
|
||||
iw.Alpha().DrawEllipse(0, 0, 200, 200, GrayColor(100));
|
||||
iw.DrawRect(0, 0, 400, 400, Black);
|
||||
iw.DrawEllipse(0, 0, 200, 200, LtCyan);
|
||||
|
||||
Image a = Rescale(iw, 200, 200);
|
||||
|
||||
w.DrawRect(GetSize(), White);
|
||||
w.DrawImage(30, 30, a, Rect(10, 10, 50, 50));
|
||||
w.DrawImage(500, 30, a, Blue);
|
||||
|
||||
|
||||
ImageBuffer ib(50, 50);
|
||||
for(int y = 0; y < 50; y++) {
|
||||
RGBA *l = ib[y];
|
||||
for(int x = 0; x < 50; x++) {
|
||||
if(y == 0 || y == 49 || x == 0 || x == 49)
|
||||
*l++ = Black();
|
||||
else {
|
||||
l->a = 2 * (x + y);
|
||||
l->r = 4 * x;
|
||||
l->g = 4 * y;
|
||||
l->b = 200;
|
||||
l++;
|
||||
}
|
||||
}
|
||||
}
|
||||
Premultiply(ib);
|
||||
Image b = ib;
|
||||
|
||||
Over(a, Point(70, 70), b, b.GetSize());
|
||||
|
||||
w.DrawImage(20, 500, a);
|
||||
}
|
||||
|
||||
};
|
||||
|
||||
GUI_APP_MAIN
|
||||
{
|
||||
App().Run();
|
||||
}
|
||||
|
||||
17
uppdev/Any/Any.cpp
Normal file
17
uppdev/Any/Any.cpp
Normal file
|
|
@ -0,0 +1,17 @@
|
|||
#include <Core/Core.h>
|
||||
|
||||
using namespace Upp;
|
||||
|
||||
#define TEST
|
||||
|
||||
CONSOLE_APP_MAIN
|
||||
{
|
||||
Any alpha;
|
||||
|
||||
alpha.Create<int>();
|
||||
|
||||
if(alpha.Is<int>())
|
||||
RLOG("int");
|
||||
|
||||
Any beta = alpha;
|
||||
}
|
||||
16
uppdev/Any/Any.upp
Normal file
16
uppdev/Any/Any.upp
Normal file
|
|
@ -0,0 +1,16 @@
|
|||
description "\377128,128,0";
|
||||
|
||||
optimize_speed;
|
||||
|
||||
uses
|
||||
Core;
|
||||
|
||||
file
|
||||
Any.cpp,
|
||||
app.tpp\test$cs-cz.tppi,
|
||||
app.tpp\test$en-us.tppi,
|
||||
app.tpp;
|
||||
|
||||
mainconfig
|
||||
"" = "MT";
|
||||
|
||||
3
uppdev/Any/app.tpp/test$cs-cz.tpp
Normal file
3
uppdev/Any/app.tpp/test$cs-cz.tpp
Normal file
|
|
@ -0,0 +1,3 @@
|
|||
topic "asdfasdfasdfasdf";[ $$0,0#00000000000000000000000000000000:Default]
|
||||
[{_}
|
||||
[s0; Juest a testaJuest a test]
|
||||
3
uppdev/Any/app.tpp/test$en-us.tpp
Normal file
3
uppdev/Any/app.tpp/test$en-us.tpp
Normal file
|
|
@ -0,0 +1,3 @@
|
|||
topic "asdfasdfasdf123";[ $$0,0#00000000000000000000000000000000:Default]
|
||||
[{_}
|
||||
[s0; Hell1]
|
||||
4
uppdev/Any/init
Normal file
4
uppdev/Any/init
Normal file
|
|
@ -0,0 +1,4 @@
|
|||
#ifndef _Any_icpp_init_stub
|
||||
#define _Any_icpp_init_stub
|
||||
#include "Core/init"
|
||||
#endif
|
||||
160
uppdev/AnyImageDraw/AnyImageDraw.cpp
Normal file
160
uppdev/AnyImageDraw/AnyImageDraw.cpp
Normal file
|
|
@ -0,0 +1,160 @@
|
|||
#include "AnyImageDraw.h"
|
||||
|
||||
dword ImageAnyDraw::GetInfo() const
|
||||
{
|
||||
return draw->GetInfo();
|
||||
}
|
||||
|
||||
Size ImageAnyDraw::GetPageSize() const
|
||||
{
|
||||
return draw->GetPageSize();
|
||||
}
|
||||
|
||||
void ImageAnyDraw::BeginOp()
|
||||
{
|
||||
return draw->BeginOp();
|
||||
}
|
||||
|
||||
void ImageAnyDraw::EndOp()
|
||||
{
|
||||
return draw->EndOp();
|
||||
}
|
||||
|
||||
void ImageAnyDraw::OffsetOp(Point p)
|
||||
{
|
||||
return draw->OffsetOp(p);
|
||||
}
|
||||
|
||||
bool ImageAnyDraw::ClipOp(const Rect& r)
|
||||
{
|
||||
return draw->ClipOp(r);
|
||||
}
|
||||
|
||||
bool ImageAnyDraw::ClipoffOp(const Rect& r)
|
||||
{
|
||||
return draw->ClipoffOp(r);
|
||||
}
|
||||
|
||||
bool ImageAnyDraw::ExcludeClipOp(const Rect& r)
|
||||
{
|
||||
return draw->ExcludeClipOp(r);
|
||||
}
|
||||
|
||||
bool ImageAnyDraw::IntersectClipOp(const Rect& r)
|
||||
{
|
||||
return draw->IntersectClipOp(r);
|
||||
}
|
||||
|
||||
bool ImageAnyDraw::IsPaintingOp(const Rect& r) const
|
||||
{
|
||||
return draw->IsPaintingOp(r);
|
||||
}
|
||||
|
||||
Rect ImageAnyDraw::GetPaintRect() const
|
||||
{
|
||||
return draw->GetPaintRect();
|
||||
}
|
||||
|
||||
void ImageAnyDraw::DrawRectOp(int x, int y, int cx, int cy, Color color)
|
||||
{
|
||||
draw->DrawRectOp(x, y, cx, cy, color);
|
||||
}
|
||||
|
||||
void ImageAnyDraw::DrawImageOp(int x, int y, int cx, int cy, const Image& img, const Rect& src, Color color)
|
||||
{
|
||||
draw->DrawImageOp(x, y, cx, cy, img, src, color);
|
||||
}
|
||||
|
||||
void ImageAnyDraw::DrawDataOp(int x, int y, int cx, int cy, const String& data, const char *id)
|
||||
{
|
||||
draw->DrawDataOp(x, y, cx, cy, data, id);
|
||||
}
|
||||
|
||||
void ImageAnyDraw::DrawLineOp(int x1, int y1, int x2, int y2, int width, Color color)
|
||||
{
|
||||
draw->DrawLineOp(x1, y1, x2, y2, width, color);
|
||||
}
|
||||
|
||||
void ImageAnyDraw::DrawPolyPolylineOp(const Point *vertices, int vertex_count,
|
||||
const int *counts, int count_count, int width,
|
||||
Color color, Color doxor)
|
||||
{
|
||||
draw->DrawPolyPolylineOp(vertices, vertex_count, counts, count_count, width, color, doxor);
|
||||
}
|
||||
|
||||
void ImageAnyDraw::DrawPolyPolyPolygonOp(const Point *vertices, int vertex_count, const int *subpolygon_counts, int scc, const int *disjunct_polygon_counts, int dpcc, Color color, int width, Color outline, uint64 pattern, Color doxor)
|
||||
{
|
||||
draw->DrawPolyPolyPolygonOp(vertices, vertex_count, subpolygon_counts, scc,
|
||||
disjunct_polygon_counts, dpcc, color, width, outline,
|
||||
pattern, doxor);
|
||||
}
|
||||
|
||||
void ImageAnyDraw::DrawArcOp(const Rect& rc, Point start, Point end, int width, Color color)
|
||||
{
|
||||
draw->DrawArcOp(rc, start, end, width, color);
|
||||
}
|
||||
|
||||
void ImageAnyDraw::DrawEllipseOp(const Rect& r, Color color, int pen, Color pencolor)
|
||||
{
|
||||
draw->DrawEllipseOp(r, color, pen, pencolor);
|
||||
}
|
||||
|
||||
void ImageAnyDraw::DrawTextOp(int x, int y, int angle, const wchar *text, Font font, Color ink,
|
||||
int n, const int *dx)
|
||||
{
|
||||
draw->DrawTextOp(x, y, angle, text, font, ink, n, dx);
|
||||
}
|
||||
|
||||
void ImageAnyDraw::DrawDrawingOp(const Rect& target, const Drawing& w)
|
||||
{
|
||||
draw->DrawDrawingOp(target, w);
|
||||
}
|
||||
|
||||
void ImageAnyDraw::DrawPaintingOp(const Rect& target, const Painting& w)
|
||||
{
|
||||
draw->DrawPaintingOp(target, w);
|
||||
}
|
||||
|
||||
Draw *(*sCreateImageDraw)(Size sz);
|
||||
Image (*sExtractImageDraw)(Draw *w);
|
||||
|
||||
void ImageAnyDrawPainter(Draw *(*f)(Size sz), Image (*e)(Draw *w))
|
||||
{
|
||||
sCreateImageDraw = f;
|
||||
sExtractImageDraw = e;
|
||||
}
|
||||
|
||||
void ImageAnyDrawSystem(Draw *(*f)(Size sz), Image (*e)(Draw *w))
|
||||
{
|
||||
if(!sCreateImageDraw) {
|
||||
sCreateImageDraw = f;
|
||||
sExtractImageDraw = e;
|
||||
}
|
||||
}
|
||||
|
||||
void ImageAnyDraw::Init(Size sz)
|
||||
{
|
||||
ASSERT(sCreateImageDraw);
|
||||
draw = (*sCreateImageDraw)(sz);
|
||||
ASSERT(draw);
|
||||
}
|
||||
|
||||
ImageAnyDraw::operator Image() const
|
||||
{
|
||||
return (*sExtractImageDraw)(draw);
|
||||
}
|
||||
|
||||
ImageAnyDraw::ImageAnyDraw(Size sz)
|
||||
{
|
||||
Init(sz);
|
||||
}
|
||||
|
||||
ImageAnyDraw::ImageAnyDraw(int cx, int cy)
|
||||
{
|
||||
Init(Size(cx, cy));
|
||||
}
|
||||
|
||||
ImageAnyDraw::~ImageAnyDraw()
|
||||
{
|
||||
delete draw;
|
||||
}
|
||||
67
uppdev/AnyImageDraw/AnyImageDraw.h
Normal file
67
uppdev/AnyImageDraw/AnyImageDraw.h
Normal file
|
|
@ -0,0 +1,67 @@
|
|||
#ifndef _AnyImageDraw_AnyImageDraw_h
|
||||
#define _AnyImageDraw_AnyImageDraw_h
|
||||
|
||||
#include <CtrlLib/CtrlLib.h>
|
||||
#include <Painter/Painter.h>
|
||||
|
||||
using namespace Upp;
|
||||
|
||||
#define LAYOUTFILE <AnyImageDraw/AnyImageDraw.lay>
|
||||
#include <CtrlCore/lay.h>
|
||||
|
||||
class ImageAnyDraw : public Draw {
|
||||
Draw *draw;
|
||||
|
||||
void Init(Size sz);
|
||||
|
||||
public:
|
||||
virtual dword GetInfo() const;
|
||||
virtual Size GetPageSize() const;
|
||||
virtual void BeginOp();
|
||||
virtual void EndOp();
|
||||
virtual void OffsetOp(Point p);
|
||||
virtual bool ClipOp(const Rect& r);
|
||||
virtual bool ClipoffOp(const Rect& r);
|
||||
virtual bool ExcludeClipOp(const Rect& r);
|
||||
virtual bool IntersectClipOp(const Rect& r);
|
||||
virtual bool IsPaintingOp(const Rect& r) const;
|
||||
virtual Rect GetPaintRect() const;
|
||||
|
||||
virtual void DrawRectOp(int x, int y, int cx, int cy, Color color);
|
||||
virtual void DrawImageOp(int x, int y, int cx, int cy, const Image& img, const Rect& src, Color color);
|
||||
virtual void DrawDataOp(int x, int y, int cx, int cy, const String& data, const char *id);
|
||||
virtual void DrawLineOp(int x1, int y1, int x2, int y2, int width, Color color);
|
||||
virtual void DrawPolyPolylineOp(const Point *vertices, int vertex_count,
|
||||
const int *counts, int count_count,
|
||||
int width, Color color, Color doxor);
|
||||
virtual void DrawPolyPolyPolygonOp(const Point *vertices, int vertex_count,
|
||||
const int *subpolygon_counts, int scc,
|
||||
const int *disjunct_polygon_counts, int dpcc,
|
||||
Color color, int width, Color outline,
|
||||
uint64 pattern, Color doxor);
|
||||
virtual void DrawArcOp(const Rect& rc, Point start, Point end, int width, Color color);
|
||||
virtual void DrawEllipseOp(const Rect& r, Color color, int pen, Color pencolor);
|
||||
virtual void DrawTextOp(int x, int y, int angle, const wchar *text, Font font,
|
||||
Color ink, int n, const int *dx);
|
||||
virtual void DrawDrawingOp(const Rect& target, const Drawing& w);
|
||||
virtual void DrawPaintingOp(const Rect& target, const Painting& w);
|
||||
|
||||
public:
|
||||
operator Image() const;
|
||||
|
||||
ImageAnyDraw(Size sz);
|
||||
ImageAnyDraw(int cx, int cy);
|
||||
|
||||
~ImageAnyDraw();
|
||||
};
|
||||
|
||||
class AnyImageDraw : public TopWindow {
|
||||
virtual void Paint(Draw& w);
|
||||
|
||||
public:
|
||||
typedef AnyImageDraw CLASSNAME;
|
||||
AnyImageDraw();
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
3
uppdev/AnyImageDraw/AnyImageDraw.lay
Normal file
3
uppdev/AnyImageDraw/AnyImageDraw.lay
Normal file
|
|
@ -0,0 +1,3 @@
|
|||
LAYOUT(AnyImageDrawLayout, 200, 100)
|
||||
END_LAYOUT
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Add a link
Reference in a new issue