git-svn-id: svn://ultimatepp.org/upp/trunk@443 f0d560ea-af0d-0410-9eb7-867de7ffcac7

This commit is contained in:
cxl 2008-09-13 20:01:49 +00:00
parent 765db13512
commit 3637f93059
5 changed files with 517 additions and 43 deletions

View file

@ -1,22 +1,476 @@
TITLE("Esc scripting language") topic "Esc scripting language";
COMPRESSED [2 $$0,0#00000000000000000000000000000000:Default]
120,156,173,59,139,146,218,70,182,191,210,153,108,98,176,129,65,192,188,192,201,58,59,113,238,78,85,226,164,226,36,187,85,148,54,18,162,1,173,133,68,212,210,12,115,237,220,111,191,231,209,221,106,73,48,158,241,174,147,170,209,163,207,251,244,121,181,152,143,196,95,254,50,236,13,63,31,126,228,223,244,91,185,10,203,164,240,231,11,111,60,158,133,151,227,217,243,23,158,119,1,224,30,128,143,189,177,55,244,206,71,147,139,201,104,56,30,142,38,222,232,204,187,188,156,120,23,103,151,227,171,243,243,169,42,23,69,92,36,18,224,25,244,108,8,160,35,164,124,113,121,62,241,0,112,114,54,26,95,156,77,0,193,100,226,121,112,237,157,93,156,95,92,76,53,92,50,30,121,179,98,52,57,159,93,191,58,155,121,0,61,238,141,63,31,13,175,134,163,243,139,171,201,200,155,156,195,127,222,248,234,202,27,95,94,14,207,38,64,194,27,79,163,108,9,192,239,127,255,243,139,215,111,250,191,190,21,115,53,156,61,255,249,82,188,86,145,80,81,30,239,138,56,93,139,36, [b133;a83;*+117 $$1,0#31310162474203024125188417583966:subtitle]
76,215,101,184,150,95,250,248,94,232,63,184,38,86,34,20,42,222,238,18,121,96,189,136,211,66,166,75,185,20,171,44,23,114,187,144,203,37,190,143,83,241,107,82,196,219,176,144,193,139,224,133,8,119,187,36,142,194,34,206,82,53,168,19,185,41,144,70,113,191,147,137,84,170,39,110,195,164,148,34,203,99,9,168,151,21,165,187,184,216,24,70,144,106,190,10,35,36,69,207,175,145,202,233,175,68,11,37,30,104,180,183,50,191,55,64,247,178,16,127,148,113,33,97,5,62,128,11,131,220,101,105,52,19,191,17,11,200,146,194,39,222,76,220,102,241,82,233,69,223,36,9,48,153,199,225,2,24,22,155,240,86,210,107,205,248,66,130,38,164,8,149,138,215,41,240,31,166,247,34,43,54,50,231,247,3,241,27,174,69,220,0,170,128,183,116,13,188,209,59,135,137,49,147,172,107,42,76,151,66,238,119,57,168,9,244,40,162,48,5,106,162,144,170,208,250,71,144,20,222,138,18,209,138,249,171,142,55,186,28,12,7,163,179,179,46,104,35,248,29,23,248,98,85,166,17, [b83;*+150 $$2,0#07864147445237544204411237157677:title]
90,98,160,133,75,75,176,91,110,196,123,67,119,168,188,85,146,133,100,237,93,6,10,215,203,68,39,202,114,96,97,151,165,100,233,34,19,215,44,206,50,43,65,35,221,129,120,189,15,81,191,74,100,43,3,148,128,218,243,48,81,211,186,140,158,249,59,0,127,119,175,101,208,191,58,231,7,175,38,32,200,153,24,238,225,113,255,67,255,131,127,122,42,54,114,31,46,101,4,254,149,212,23,193,26,97,22,101,81,209,124,189,128,77,58,196,255,205,154,69,156,134,249,125,109,81,240,108,31,60,195,247,188,34,218,132,121,24,1,247,228,87,237,253,161,202,221,46,203,11,133,78,181,5,171,92,7,253,36,126,7,14,188,3,129,201,223,201,52,90,15,100,103,101,20,31,230,121,120,111,221,138,110,224,25,58,255,82,230,96,211,28,44,158,109,69,24,69,104,84,37,255,40,101,26,177,94,217,165,144,1,70,41,58,41,251,1,227,132,29,18,37,37,236,75,48,7,33,54,203,16,189,218,129,234,86,49,44,62,228,39,193,60,240,125,177,0,161,223,201,162,97,48,163,34,88, [l321;tC@5;1 $$3,3#20902679421464641399138805415013:code]
194,26,98,29,201,237,174,184,103,202,218,136,193,92,120,61,49,234,137,113,79,76,122,2,64,252,6,6,124,31,204,113,69,224,195,26,193,24,17,27,225,1,117,166,69,24,131,246,92,185,234,56,78,254,46,147,36,11,78,28,70,96,127,131,160,16,57,208,47,129,205,103,127,15,158,1,157,103,146,255,36,181,63,89,240,236,32,91,200,148,8,158,139,48,89,133,196,23,161,182,27,79,153,157,87,42,228,75,137,59,96,163,238,24,122,15,129,157,32,168,109,129,29,52,136,0,147,25,225,24,65,46,11,8,115,183,128,101,1,81,170,0,107,135,249,210,110,79,80,65,153,22,141,104,249,13,249,2,90,205,98,6,42,198,232,74,236,242,236,54,94,106,140,229,130,35,118,203,194,2,77,204,30,154,229,141,61,25,6,243,161,81,11,222,120,129,47,130,175,196,184,206,199,119,113,174,10,195,131,101,65,84,177,65,161,5,98,72,13,251,22,117,64,239,55,196,122,35,215,176,89,110,37,67,104,63,13,193,186,119,20,66,151,98,41,49,158,66,58,169,228,94,229,176,55,80, [{_}%EN-US
167,144,128,44,7,211,182,55,247,61,148,22,116,147,132,7,88,238,29,0,24,33,0,173,94,148,176,50,5,18,69,52,104,169,137,48,215,229,0,42,53,31,108,193,144,77,59,33,208,233,139,22,244,63,54,50,213,58,139,21,187,23,198,14,148,49,15,250,156,95,58,228,39,232,0,25,123,84,30,175,55,5,228,145,165,68,153,26,194,124,229,119,123,21,70,136,39,144,72,163,141,132,173,189,28,136,239,0,119,162,241,194,42,8,214,89,26,244,211,154,41,42,197,43,171,186,29,106,6,73,3,61,235,211,61,237,1,168,129,253,46,164,154,128,82,115,149,27,201,37,162,92,162,21,139,77,108,17,54,124,33,56,121,141,241,36,56,57,226,62,104,156,99,92,145,209,208,95,220,45,10,84,195,229,178,114,28,184,183,108,55,156,127,143,232,209,221,33,95,109,159,98,218,189,49,237,190,123,12,193,207,164,253,42,38,96,72,168,133,131,108,129,17,15,24,6,187,64,218,129,213,38,66,43,40,158,100,51,121,18,108,48,223,101,80,52,17,237,166,59,57,74,98,58,132,134, [s0; [*R8 Esc scripting language]&]
188,228,148,33,252,74,41,224,86,121,97,235,41,88,0,120,253,67,22,98,97,105,249,20,118,222,147,136,226,78,5,199,39,224,135,104,235,5,13,199,248,41,204,57,220,177,58,172,218,182,91,80,246,242,168,114,44,135,89,222,122,57,125,226,6,182,128,98,42,244,86,198,71,221,38,26,112,193,131,144,189,186,161,154,28,77,15,218,241,81,60,13,143,56,1,197,20,173,48,12,170,38,105,85,27,191,94,207,237,64,201,181,141,77,129,67,238,146,48,146,203,134,7,42,116,244,224,4,138,174,73,112,50,171,101,82,5,137,99,42,40,66,242,162,253,63,247,176,134,115,41,101,170,52,187,67,88,120,14,192,117,158,223,66,78,132,106,209,102,40,107,106,106,35,244,142,118,107,39,87,21,158,192,126,3,175,70,117,172,80,81,64,7,34,217,55,139,59,131,162,119,0,7,102,127,174,216,244,83,93,190,97,81,96,234,144,10,49,104,7,98,154,241,119,189,20,154,31,169,154,57,131,113,191,0,133,48,171,79,182,179,48,160,86,200,6,14,168,177,15,194,189,124,105,180,99, [s0; &]
174,70,246,106,252,223,96,163,210,186,189,106,224,197,98,149,82,186,194,45,206,173,136,110,246,14,101,50,91,6,106,163,97,69,228,116,63,16,70,32,126,170,50,218,128,115,40,9,49,208,120,11,245,85,105,38,228,106,37,163,194,212,218,219,112,103,188,229,7,184,52,245,165,120,39,239,77,106,221,133,80,212,224,222,0,185,161,46,83,3,241,38,203,161,197,168,10,41,117,48,25,217,109,133,110,201,181,58,80,51,88,26,123,6,222,4,115,36,74,251,162,217,247,233,246,82,131,162,132,136,169,216,132,5,81,73,179,194,233,44,57,95,59,189,103,163,23,29,136,95,48,203,222,129,26,25,8,247,55,189,214,25,16,113,3,43,102,119,129,74,80,249,57,7,136,92,110,161,148,196,66,19,152,185,175,170,45,0,122,80,162,86,219,74,249,24,187,84,7,25,88,105,33,45,59,7,233,35,4,250,1,50,136,86,199,214,71,43,68,171,244,218,112,16,175,58,166,187,237,84,220,116,193,62,239,197,96,48,16,193,159,13,21,43,146,132,250,32,48,175,220,71,114,135,254,213, [s0; Esc is a simple scripting language intended for embedding in
19,119,24,45,67,183,159,135,144,35,67,112,11,211,215,167,54,114,30,242,5,40,163,104,238,96,210,183,86,52,55,72,21,231,54,145,26,141,205,4,132,69,170,209,140,254,56,205,214,29,165,90,133,193,179,110,8,227,215,92,56,171,204,122,164,46,184,112,230,1,249,1,42,233,176,8,33,193,230,101,84,148,57,58,249,47,25,160,122,167,75,178,127,103,11,33,67,21,203,188,103,245,3,187,117,0,237,98,2,251,85,221,195,174,33,14,116,223,219,202,9,123,94,90,241,252,196,42,42,56,33,248,224,196,149,187,37,167,41,40,209,115,72,218,69,187,173,13,222,7,127,82,31,219,218,131,244,198,246,173,90,143,244,28,50,18,118,125,193,201,212,131,132,26,156,44,100,129,55,35,184,25,13,167,193,201,100,8,101,41,187,19,175,31,81,78,128,106,0,82,217,144,95,34,230,109,157,69,19,108,156,38,82,135,165,36,220,46,150,161,137,76,223,243,29,102,20,242,120,104,87,246,50,42,11,28,53,81,252,228,217,22,47,115,91,250,24,182,85,182,44,163,99,61,253,43, Ultimate`+`+ applications.&]
191,26,100,52,149,241,10,106,86,20,5,186,209,50,79,89,162,253,236,192,166,49,33,36,113,200,163,135,153,97,88,203,184,80,12,174,98,2,9,109,87,123,112,160,48,93,101,25,149,9,71,121,209,149,3,33,4,153,215,73,182,0,207,180,173,50,192,215,185,189,89,25,54,195,124,93,114,185,141,221,177,4,21,153,206,164,161,163,47,29,29,209,62,118,74,217,56,221,149,69,208,207,202,2,254,86,40,59,60,134,49,247,198,22,59,234,26,147,251,110,163,128,157,63,175,81,196,208,228,135,133,219,195,114,213,165,177,39,49,54,51,156,49,173,142,83,59,90,168,168,22,228,255,218,101,6,226,38,229,140,129,121,177,135,173,79,140,58,2,117,65,109,23,110,37,136,199,140,66,199,132,49,2,252,114,142,83,151,245,173,95,145,65,94,112,168,71,89,184,81,198,76,85,185,213,214,2,17,200,94,84,9,194,10,136,145,157,152,27,155,245,109,23,31,115,177,179,190,13,230,113,224,183,189,234,167,138,37,220,40,148,193,150,60,106,55,254,173,36,242,93,240,76,163,213,223, [s0; &]
54,188,121,186,8,115,227,73,196,211,209,36,96,194,94,18,175,164,13,121,97,2,172,164,220,255,130,44,91,212,131,117,50,246,102,186,196,169,248,109,24,39,168,171,6,7,159,163,51,63,180,165,70,179,216,59,27,206,126,188,194,65,179,25,35,83,207,10,81,66,238,11,85,231,243,55,107,121,80,20,149,4,24,8,86,25,250,133,184,6,171,199,105,20,211,184,181,131,70,69,163,131,202,32,147,162,16,61,110,165,216,223,195,100,183,9,33,162,197,145,51,213,132,76,220,208,233,239,190,237,160,77,220,58,4,169,90,147,19,13,168,199,201,77,231,71,174,151,49,85,1,101,172,54,88,131,111,114,169,199,236,168,231,106,166,110,20,97,98,89,99,219,48,153,198,211,169,179,123,15,79,45,1,191,153,19,38,89,212,24,13,15,156,183,113,138,51,150,72,214,67,148,179,128,163,79,93,188,239,17,165,35,131,51,104,141,112,131,26,47,234,153,216,213,88,10,188,99,221,179,205,48,90,38,85,104,83,184,159,153,31,7,164,234,60,116,158,112,18,78,7,138,6,229,12,204, [s0; It is typeless, value oriented language with simple interfacing
110,107,14,212,69,85,227,234,187,77,166,100,61,150,199,232,94,183,217,59,185,236,209,12,130,203,50,216,7,85,94,225,129,121,195,242,159,249,248,124,121,108,162,8,12,12,120,51,206,156,39,111,192,194,122,167,242,30,221,227,233,13,197,250,166,217,104,109,167,59,171,6,189,140,82,23,66,158,67,200,171,83,106,225,248,140,22,205,28,60,158,131,232,112,132,216,229,217,26,162,212,86,230,193,51,85,143,23,52,27,52,229,163,110,79,201,127,35,8,35,168,47,237,202,216,174,220,241,116,15,244,235,36,81,42,171,147,154,239,144,119,235,215,196,88,97,66,59,110,254,184,232,89,7,165,149,218,157,236,158,233,208,164,25,0,233,20,161,75,222,133,221,132,29,85,55,172,131,37,14,132,43,125,103,68,167,246,3,220,118,45,11,203,42,198,67,102,21,242,5,130,57,249,98,133,243,224,30,230,175,20,56,192,81,98,5,6,85,103,151,5,181,140,107,4,194,175,9,13,225,21,92,255,158,16,64,160,128,93,96,209,104,4,90,88,67,127,32,126,92,225,216,35,199,68,247, with C`+`+/U`+`+ code. It is very simple yet quite complete language.&]
232,48,1,110,205,216,157,1,97,181,93,180,34,15,215,41,90,89,238,225,7,232,35,177,5,9,9,37,111,209,208,43,173,43,216,72,86,108,122,205,117,8,218,211,33,49,130,0,89,47,14,173,31,158,162,184,52,198,113,207,32,106,179,156,108,29,179,7,97,0,232,81,15,209,19,255,43,243,204,148,11,168,9,220,244,89,174,251,106,74,8,180,194,78,225,170,96,226,175,160,166,150,64,181,231,30,93,50,77,31,58,7,115,94,122,106,171,173,84,39,36,58,17,68,123,162,43,196,209,59,216,45,88,174,45,227,91,234,234,237,60,135,200,83,15,6,49,9,115,88,150,199,197,125,79,63,207,118,219,12,74,31,28,161,210,1,43,97,133,197,155,120,189,193,174,208,172,119,108,36,222,191,159,76,206,47,167,103,103,227,209,198,155,189,234,140,188,243,46,29,118,139,31,53,85,127,58,229,7,215,217,150,36,134,7,255,122,53,226,19,241,107,112,20,42,219,253,96,142,87,16,67,125,232,231,12,136,109,57,4,212,85,115,126,61,48,111,79,175,17,16,161,6,62,247,73, [s0; &]
6,236,45,74,23,210,188,131,81,7,39,112,201,107,176,195,177,40,52,125,178,141,230,128,134,223,46,15,124,142,103,134,199,192,199,46,83,92,141,204,205,234,135,240,241,76,181,71,207,121,248,219,194,205,163,90,59,141,101,81,245,44,246,224,212,248,227,244,166,120,9,197,237,49,98,238,17,153,33,6,229,26,129,208,25,201,17,10,61,87,12,118,131,198,138,233,65,65,29,139,152,133,208,219,205,171,149,166,106,249,184,100,71,232,58,186,126,152,110,165,219,230,44,121,208,164,206,49,208,239,48,157,181,242,187,22,241,13,37,108,66,172,87,57,155,75,22,218,110,4,52,112,186,34,234,224,205,241,160,110,60,192,69,123,20,37,22,50,202,184,214,212,113,11,231,53,14,1,110,74,209,243,58,60,239,138,49,130,223,198,33,48,11,123,0,86,98,169,225,83,109,249,28,184,72,86,126,215,221,45,140,7,133,233,248,200,25,94,65,21,33,124,67,240,1,233,122,92,136,192,3,203,158,143,138,173,241,170,133,252,143,248,4,213,211,147,138,21,38,128,11,138,241,248,212,59, [s2; Value types&]
51,226,32,251,88,187,248,73,208,175,166,198,213,171,126,208,175,94,57,248,162,156,29,255,116,41,205,165,253,94,66,207,152,136,216,176,73,171,239,55,112,253,74,69,217,54,78,75,229,234,153,22,255,95,115,241,223,98,232,100,239,98,101,190,131,161,3,158,6,212,103,62,145,183,48,223,235,12,3,197,200,0,234,45,42,101,56,30,218,172,161,4,101,141,158,24,114,210,64,10,205,248,80,105,1,149,82,219,62,206,43,84,165,33,252,19,36,130,160,31,27,93,9,58,151,130,39,86,101,238,71,38,174,210,106,22,162,141,133,84,176,17,243,27,54,226,91,251,150,183,167,161,255,51,117,112,206,190,165,117,62,143,252,33,251,162,15,49,219,122,226,223,52,88,3,123,195,22,63,64,159,27,219,79,163,92,43,56,112,167,45,176,111,33,159,170,227,0,95,180,233,100,203,50,201,30,84,204,139,166,232,215,238,121,137,149,255,97,9,95,180,40,127,163,199,15,71,88,133,16,223,132,120,91,46,10,236,227,52,80,157,97,176,113,197,243,203,151,143,226,25,106,150,140,34,136, [s1; voids&]
134,133,24,114,143,41,152,122,203,234,49,224,170,142,197,192,175,21,216,230,33,97,145,122,147,245,77,188,130,122,89,174,138,35,226,126,253,245,17,24,58,251,104,139,235,146,123,200,113,191,126,232,229,75,104,136,30,130,173,94,187,37,210,14,42,115,5,161,147,19,136,126,223,182,190,99,13,109,12,75,163,122,245,245,241,87,196,220,81,56,251,242,56,103,174,91,214,116,71,118,100,39,251,10,241,212,35,218,235,63,202,48,129,26,178,37,80,5,246,89,27,234,38,149,46,220,49,91,5,95,182,52,250,55,110,156,161,16,63,182,19,254,117,12,102,159,229,199,96,62,28,131,169,131,56,170,248,18,121,59,28,220,145,55,44,17,168,151,171,70,2,58,172,43,40,10,210,101,245,24,251,82,137,119,24,7,123,226,223,37,192,168,119,241,110,39,151,71,72,127,64,118,15,147,6,118,15,80,198,86,227,63,35,76,169,229,175,190,115,51,213,55,110,200,176,3,210,170,193,130,206,50,133,78,52,149,88,54,160,66,155,189,151,229,160,86,216,232,232,161,189,174,41,45,143,208, [s0; All variables have void value before assigned any other value.
77,190,173,121,93,45,174,209,208,180,225,247,182,128,172,214,34,133,234,90,31,186,250,13,126,106,209,249,192,78,175,227,53,231,220,95,185,55,47,204,238,127,0,117,255,211,80,247,31,129,250,249,167,161,126,254,113,212,167,159,132,249,244,227,136,191,248,36,196,95,84,136,255,108,12,171,245,136,224,109,1,30,71,133,98,189,243,61,27,66,231,59,185,106,118,190,118,249,71,90,223,89,21,21,233,68,76,25,184,102,253,86,109,2,223,129,113,54,205,77,129,19,35,117,96,119,0,134,224,189,208,205,145,230,106,166,7,243,181,224,78,135,148,109,14,116,97,26,175,58,126,100,118,44,247,13,190,58,32,102,181,167,63,13,85,173,130,151,16,0,31,77,134,219,175,6,173,187,77,156,200,199,112,254,125,150,237,6,149,225,104,88,36,115,28,189,153,81,15,54,230,124,126,77,93,171,70,232,155,120,217,148,114,153,181,164,2,83,48,63,220,33,27,12,221,199,49,145,153,193,35,205,250,248,227,32,174,133,159,196,30,48,129,135,69,60,233,136,171,193,132,1,224,123,91,248, Void type has single value&]
251,221,154,69,250,31,14,232,78,239,48,243,113,192,92,99,158,153,7,90,232,154,204,224,148,230,117,255,195,188,230,156,181,231,21,35,246,121,229,183,142,44,38,3,248,116,172,102,199,2,79,231,158,16,186,248,248,128,173,246,232,165,158,27,216,42,168,107,153,195,127,238,90,108,170,28,38,234,60,180,71,30,71,197,193,49,214,35,132,185,193,207,253,11,62,227,201,202,245,198,76,192,122,206,151,40,116,76,225,206,127,104,227,52,191,105,209,95,80,184,178,184,62,180,200,101,248,174,138,69,215,97,169,240,155,208,125,92,152,137,115,42,115,154,38,38,224,212,216,233,43,32,19,109,142,135,5,126,223,241,109,34,63,184,79,127,8,97,17,247,24,90,65,248,241,79,146,232,243,55,27,167,113,46,129,163,79,45,67,133,168,71,131,102,232,216,113,174,202,103,192,4,90,159,140,234,79,244,128,109,122,110,78,70,121,192,110,63,126,66,121,85,161,244,135,210,122,137,114,14,132,97,185,140,105,146,187,69,190,233,96,2,225,92,0,198,209,131,128,33,169,198,194,85,174,166, [s0; &]
9,0,245,161,107,154,202,113,89,161,248,222,93,175,241,86,235,244,47,168,140,1,154,235,63,71,220,52,143,113,198,92,213,225,173,89,9,70,250,198,230,210,106,132,195,7,73,243,54,220,204,37,49,248,20,26,131,39,18,153,126,10,145,233,99,136,212,170,130,209,108,140,33,154,127,51,144,196,139,92,255,144,101,8,207,185,44,24,77,46,174,166,23,103,35,175,81,22,124,167,143,22,63,82,21,224,39,85,92,144,144,28,123,39,65,152,169,136,135,158,56,199,119,252,59,49,94,126,116,4,132,24,41,80,61,26,161,254,180,252,1,124,16,85,30,141,141,6,156,15,224,162,15,200,30,135,140,143,88,142,225,194,152,252,220,214,137,109,92,58,26,152,201,81,142,53,15,157,67,221,129,49,21,157,203,184,248,138,44,248,93,21,57,108,200,35,220,105,190,66,243,13,170,29,202,209,199,227,4,89,61,171,143,154,52,250,35,134,134,10,231,86,230,20,90,52,234,14,163,235,154,192,204,128,181,64,193,57,169,129,233,134,149,39,124,171,188,92,43,99,104,70,238,176,100,95, [s3; void&]
247,35,179,196,107,45,73,141,107,152,37,213,119,49,238,15,99,232,32,180,246,13,139,131,129,220,225,0,124,245,241,37,129,211,97,249,129,212,84,59,253,192,100,214,177,9,178,101,112,214,29,127,205,168,204,9,124,135,78,104,233,231,146,170,10,249,33,255,96,108,254,92,83,241,157,79,7,172,183,209,239,67,82,251,197,91,109,106,205,96,143,97,70,31,235,61,146,29,100,253,201,204,224,79,216,58,109,22,244,47,219,180,210,65,211,252,211,148,225,96,48,30,93,156,95,212,48,224,199,224,74,118,156,98,170,141,142,215,44,171,121,80,109,140,159,229,197,131,224,138,62,100,60,12,76,74,249,40,52,47,59,244,131,175,131,72,111,212,183,80,7,60,96,34,10,54,104,20,251,51,184,224,100,25,222,7,39,248,81,226,22,158,109,130,19,202,222,193,201,189,12,115,184,65,235,28,13,72,55,234,151,120,251,84,122,60,119,209,36,161,80,41,36,95,111,178,50,231,171,135,57,218,74,250,14,232,40,83,255,35,139,183,247,204,88,155,161,168,204,115,250,136,48,102,31,180, [s0; &]
155,240,191,198,151,211,100,251,255,15,155,94,20,96, [s0; and expression can be tested for voidness using [@(128.0.255) is`_void]
function.&]
[s1; numbers&]
[s0; Number is floating point number (corresponding to C type double).
Examples of number literals:&]
[s0; &]
[s3; 1&]
[s3; 1.123&]
[s3; 1.123e`-96&]
[s3; 0x123-|-|[@4 // hexadecimal]&]
[s3; 0123 -|-|[@4 // octal]&]
[s3; 0b10100100-|-|[@4 // binary]&]
[s3; `'x`'-|-|-|[@4 // character code]&]
[s0; &]
[s0; Esc supports common C`-like operations for number values.&]
[s1; arrays&]
[s0; Arrays are ordered random access sequences of other Esc values
(nested arrays included). Array values are specified using [@(128.0.255) `[`]]
brackets:&]
[s0; &]
[s3; `[`]-|-|-|-|[@4 // empty array]&]
[s3; `[ 1, 2, 3, 4, 5 `]&]
[s3; `[ 1, `[2, 3`], 4 `]-|-|[@4 // array contains nested array]&]
[s3; `"Hello`"-|-|-|[@4 // equivalent to `[`'H`', `'e`', `'l`', `'l`',
`'o`'`]]&]
[s3; `[ 1, 2, 3 `* alfa `]-|[@4 // expressions can be used as well]&]
[s0; &]
[s0; Number of elements in the array can be retrieved by standard
function count.&]
[s0; &]
[s0; Accessing elements of arrays is provided by subscript [@(128.0.255) `[
`]] operator:&]
[s0; &]
[s3; a`[0`]&]
[s3; a`[1`] `= 3&]
[s0; &]
[s0; First element of array corresponds to index [@(128.0.255) `[0`]].&]
[s0; &]
[s0; Negative indexes are allowed and designate elements from the
end of array: [@(128.0.255) `[`-1`]] is last element of array, [@(128.0.255) `[`-2`]]
last but one etc.&]
[s0; &]
[s3; a`[`-1`]&]
[s0; &]
[s0; is equivalent to&]
[s0; &]
[s3; a`[count(a) `- 1`]&]
[s0; &]
[s0; When index is used for the r`-value (standing on the right side
of [@(128.0.255) `=]), index is range checked. For l`-value, if
non`-negative index designates element past the of the array,
array is expanded with void values to create this element.&]
[s0; &]
[s0; `"Empty`" index [@(128.0.255) `[`]] designates element past last
and can be used to add elements to the array:&]
[s0; &]
[s3; x`[`] `= item&]
[s0; &]
[s0; is equivalent to&]
[s0; &]
[s3; x`[count(x)`] `= item&]
[s0; &]
[s0; Range of element in array can be obtained or changed using slices:&]
[s0; &]
[s3; array`[pos, count`]&]
[s0; &]
[s0; designates array slice of [/ count] elements starting with [/ pos]
element.&]
[s0; &]
[s3; x`[start:end`]&]
[s0; &]
[s0; designates array slice of [/ end `- start] elements starting with
[/ start] .&]
[s0; &]
[s0; Parts of slices can be ommited&]
[s0; &]
[s3; array`[pos,`]&]
[s0; or&]
[s3; array`[pos:`]&]
[s0; &]
[s0; is equivalent to&]
[s0; &]
[s3; array`[pos : count(array)`]&]
[s0; &]
[s0; and&]
[s0; &]
[s3; array`[,count`]&]
[s0; or&]
[s3; array`[:count`]&]
[s0; &]
[s0; is equivalent to&]
[s0; &]
[s3; array`[0, count`]&]
[s0; &]
[s0; When slices are used as l`-value, corresponding part of the
array is replaced:&]
[s0; &]
[s3; s `= `"1234`";&]
[s3; s`[1: `-1`] `= `"xXx`";-|[@4 // s is now `"1xXx4`"]&]
[s0; &]
[s0; Several operators can be applied to arrays&]
[s0; &]
[s3; array1 `+ array2&]
[s0; &]
[s0; concatenates two arrays,&]
[s0; &]
[s3; array `* number&]
[s3; number `* array&]
[s0; &]
[s0; repeats array number times.&]
[s0; &]
[s3; array `+`= array1&]
[s0; &]
[s0; is equivalent to&]
[s0; &]
[s3; array `= array `+ array1&]
[s0; &]
[s0; also&]
[s0; &]
[s3; array << array1 << array2 << array3&]
[s0; &]
[s0; is equivalent to&]
[s0; &]
[s3; array `= array `+ array1 `+ array2 `+ array3&]
[s0; &]
[s0; Esc allows [/ void] value on the right side of array concatenation
expression `- in such cases, operator has no effect.&]
[s1; maps&]
[s0; Maps contain key`-value pairs as entries. Normal subscripts
[@(128.0.255) `[`]] are used to access map entries:&]
[s0; &]
[s3; map`[key`] `= value&]
[s0; &]
[s0; All entries in map that are not assigned a non`-void value have
void value. This way assigning void to the map key can be considered
as removing entry from the map&]
[s0; &]
[s3; map`[key`] `= void&]
[s0; &]
[s0; and testing entry for being void can be considered as test
of key presence in map:&]
[s0;C &]
[s3; if(is`_void(map`[key`])) `{ ... `}&]
[s0; &]
[s0; As the special exception, when a void value appears before an
l`-value [@(128.0.255) `[`]], it is changed to the empty map:&]
[s0; &]
[s3; x `= void; // x is void&]
[s3; x`[key`] `= value; // x is now map&]
[s0; &]
[s0; Maps are also used to create compound data structures. To make
this job easier, special [/ .field] syntax is supported:&]
[s0; &]
[s3; x.field `= value;&]
[s0; &]
[s0; is equivalent to&]
[s0; &]
[s3; x`[`"field`"`] `= value;&]
[s0; &]
[s0; Map values can also be specified using `{`} braces:&]
[s0; &]
[s3; `{`} // empty map&]
[s3; `{ `"alfa`":10, `"beta`":20, 20:`"40`" `}&]
[s3; `{ 2 `* a : `"100`" `} // map values can contain expressions&]
[s1; lambdas&]
[s0; Lambdas represent executable Esc code. Lambda values are introduced
using [@(128.0.255) `@] character:&]
[s0; &]
[s3; `@(x) `{ return 2 `* x; `}&]
[s0; &]
[s0; Assigning lambda value to variable is equivalent to defining
a function:&]
[s0; &]
[s3; :foo `= `@(x) `{ return 2 `* x; `};-|[@4 // defines global function
foo]&]
[s0; &]
[s0; If lambda argument is preceded with [@(128.0.255) `&] character,
it designates input`-output argument (other arguments are input
only).&]
[s0; &]
[s0; [*@(128.0.255) ... ]at the end of the argument list allows variable
number of arguments to be present. In that case, additional parameters
are passed in [/ argv] variable of type array.&]
[s0; &]
[s3; :sum `= `@(...) `{ s `= 0; for(i in argv) s `+`= argv`[i`]; `}&]
[s0; &]
[s0; Parameters can have default values separated by [@(128.0.255) `=]:&]
[s0; &]
[s3; :bar `= `@(x `= 0) `{ ... `}&]
[s0; &]
[s0; To make life easier, alternative form of function definition
is available:&]
[s0; &]
[s3; #:foo(x) `{ return 2 `* x; `}&]
[s2;i150;O9; Variables and contexts&]
[s0; &]
[s0; Variable names in Esc follow C principles (are case sensitive,
start with alphabetic character or [@(128.0.255) `_] and can contain
alphabetic characters, [@(128.0.255) `_] and numbers).&]
[s0; &]
[s0; Esc distinguishes three types of variables contexts using [*@(128.0.255) .]
and [*@(128.0.255) :] characters:&]
[s0; &]
[s3; var-|-|[@4 // local]&]
[s3; .var-|-|[@4 // instance]&]
[s3; :var-|-|[@4 // global]&]
[s0; &]
[s0; Local variables are specific to function, global variables are
shared among all functions. Instance variables &]
[s0; represent map values (keys designate variable names) of map
whose lambda value is invoked, or can be forced using binary
[@(128.0.255) !] bind operator:&]
[s0; &]
[s3; var.x `= 0;&]
[s3; var.Next `= `@() `{ .x`+`+; `};&]
[s3; var.Next();-|-|-|[@4 // var.x is now 1 ]&]
[s3; var1.x `= 0;&]
[s3; var.Next()! var1;-|-|[@4 // var1.x is now 1]&]
[s0; &]
[s0; To make programmer`'s life easier, one exception applies concerning
context `- when invoking lambda from local variable and lambda
is not present in it, instance and global contexts (in this order)
are tried as well:&]
[s0; &]
[s3; beta(x)&]
[s3; &]
[s0; Tries to get lambda form local [/ beta] variable first, then (if
no lambda found) from instance [/ beta ]variable and finally (if
still no lambda) from global [/ beta]. Of course, [*@(128.0.255) .]
and [*@(128.0.255) :] can still be used to designate context:&]
[s0; &]
[s3; :beta(x)-|-|-|-|[@4 // calls global beta even if local or instance
beta is present]&]
[s0; &]
[s2; Expressions&]
[s0; &]
[s0; When expressions are used as logical values, void, zero number
and map or array with zero elements represent [/ false], other
values are [/ true.]&]
[s0;/ &]
[s0; In following table, thick lines divide operators with the same
priority, with topmost items having the highest priority:&]
[s0; &]
[ {{4468:5532h1;@(216) [s0; Operator]
:: [s0; Comments]
::^@2 [s0; [/C map][*C `[][/C key][*C `]]]
:: [s0; Map value at [/ key].]
:: [s0; [/C map][*C .][/C field]]
:: [s0; Same as [/ map]`[`"[/ field]`"`].]
:: [s0; [/C array][*C `[][/C index][*C `]]]
:: [s0; Array element at position [/ index].]
:: [s0; [/C array][*C `[][/C start][*C , ][/C count][*C `]]]
:: [s0; Array slice starting at [/ start] of [/ count] elements.]
:: [s0; [/C array][*C `[][/C start][*C :][/C end][*C `]]]
:: [s0; Array slice of elements [/ start .. end] `- 1]
:: [s0; [/C array][*C `[,][/C count][*C `]]&]
[s0; [/C array][*C `[:][/C count][*C `]]]
:: [s0; Same as [/ array]`[0, [/ count]`].&]
[s0; ]
:: [s0; [/C array][*C `[][/C start][*C :`]]&]
[s0; [/C array][*C `[][/C start][*C ,`]]]
:: [s0; Same as [/ array]`[[/ start] : count(array)`]. ]
:: [s0; [/C lambda][*C (][/C args][*C )]]
:: [s0; Invokes [/ lambda] with the set of [/ args]. If lambda is subscript
of the map, map becomes instance for [/ lambda] execution (accessible
via [* .][/ name] or [* self]).]
:: [s0; [/C lambda][*C (][/C args][*C ) ! ][/C instance]]
:: [s0; Invokes [/ lambda], using[/ instance] as instance for lambda execution
(accessible via [* .][/ name] or [* self]).]
:: [s0; [*C self]]
:: [s0; Instance.]
::t33/15 [s0; [*C `+`+][/C l`-number]&]
[s0; [*C `-`-][/C l`-number]]
:: [s0; Increments/decrements number l`-value.]
::t0/15 [s0; [*C `-][/C number]]
:: [s0; Unary minus.]
:: [s0; [*C `~][/C number]]
:: [s0; Bit`-wise complement.]
:: [s0; [*C !][/C value]]
:: [s0; Logical not. 1 when value represents false, 0 otherwise.]
:: [s0; [/C l`-number][*C `-`-]&]
[s0; [/C l`-number][*C `+`+]]
:: [s0; Post`-increment / post`-decrement of number l`-value.]
::t33/15 [s0; [/C array][*C `* ][/C number]&]
[s0; [/C number][*C `* ][/C array]]
:: [s0; Returns [/ array][*/ ]repeated [/ number] times.]
::t0/15 [s0; [/C number][*C `* ][/C number]]
:: [s0; Multiplication.]
:: [s0; [/C number][*C / ][/C number]]
:: [s0; Division.]
:: [s0; [/C number][*C % ][/C number]]
:: [s0; Modulo.]
::t33/15 [s0; [/C array][*C `+ ][/C array]]
:: [s0; Concatenates [/ array]s.]
::t0/15 [s0; [/C number][*C `+ ][/C number]]
:: [s0; Addition.]
:: [s0; [/C number][*C `- ][/C number]]
:: [s0; Subtraction.]
::t33/15 [s0; [/C l`-array][*C << ][/C array]]
:: [s0; Concatenates [/ array ]to [/ l`-array], yielding [/ l`-array ]as l`-value
result.]
::t0/15 [s0; [/C number][*C << ][/C number]]
:: [s0; Shift left.]
:: [s0; [/C number][*C >> ][/C number]]
:: [s0; Shift right.]
::t33/15 [s0; [/C number][*C < ][/C number]&]
[s0; [/C number][*C > ][/C number]&]
[s0; [/C number][*C <`= ][/C number]&]
[s0; [/C number][*C >`= ][/C number]]
:: [s0; Comparison of [/ number]s.]
::t0/15 [s0; [/C array][*C < ][/C array]&]
[s0; [/C array][*C > ][/C array]&]
[s0; [/C array][*C <`= ][/C array]&]
[s0; [/C array][*C >`= ][/C array]]
:: [s0; Comparison of [/ array]s.]
::t33/15 [s0; [/C value][*C `=`= ][/C value]]
:: [s0; Equality.]
::t0/15 [s0; [/C value][*C !`= ][/C value]]
:: [s0; Inequality.]
::t33/15 [s0; [/C number][*C `& ][/C number]]
:: [s0; Binary and.]
:: [s0; [/C number][*C `^ ][/C number]]
:: [s0; Binary xor.]
:: [s0; [/C number][*C `| ][/C number]]
:: [s0; Binary or.]
:: [s0; [/C value][*C `&`& ][/C value]]
:: [s0; Logical and. If first value is false, second value is not evaluated,
just skipped.]
:: [s0; [/C value][*C `|`| ][/C value]]
:: [s0; Logical or. If first value is true, second value is not evaluated,
just skipped.]
:: [s0; [/C value ][*C ?][/C value ][*C :][/C value]]
:: [s0; Conditional expression. Only necessary expressions are evaluated.]
:: [s0; [/C l`-value][*C `= ][/C value]]
:: [s0; Assignment.]
::t0/15 [s0; [/C l`-array][*C `+`= ][/C array]]
:: [s0; Same as [C l`-array `= l`-array `+ array].]
:: [s0; [/C l`-number][*C `+`= ][/C number]]
:: [s0; Same as [C l`-number `= l`-number `+ number].]
:: [s0; [/C l`-number][*C `-`= ][/C number]]
:: [s0; Same as [C l`-number `= l`-number `- number].]
:: [s0; [/C l`-number][*C `*`= ][/C number]]
:: [s0; Same as [C l`-number `= l`-number `* number].]
:: [s0; [/C l`-number][*C /`= ][/C number]]
:: [s0; Same as [C l`-number `= l`-number / number].]
:: [s0; [/C l`-number][*C %`= ][/C number]]
:: [s0; Same as [C l`-number `= l`-number % number].]}}&]
[s0; &]
[s0; &]
[s2; Statements&]
[s0; &]
[ {{4508:5492h1;@(216) [s0; Statement]
:: [s0; Comments]
::^@2 [s0; [*C ;]]
:: [s0; Empty statement.]
:: [s0; [/C expression][*C ;]]
:: [s0; Expression. It gets evaluated.]
:: [s0; [*C `{ ][/C statement][*C ; ... `}]]
:: [s0; Compound statement.]
:: [s0; [*C if(][/C condition][*C ) ][/C statement]]
:: [s0; Conditional statement.]
:: [s0; [*C if(][/C condition][*C ) ][/C statement]&]
[s0; [*C else ][/C statement]]
:: [s0; Conditional statement with ]
:: [s0; [*C while(][/C condition][*C ) ][/C statement]]
:: [s0; Loop. Statement is performed as long as the [/ condition] is true.]
:: [s0; [*C do ][/C statement]&]
[s0; [*C while(][/C condition][*C )]]
:: [s0; Loop. Statement is performed once and then is repeated as long
as the [/ condition] is true.]
:: [s0; [*C for(][/C init][*C , ][/C condition][*C , ][/C increment][*C )]&]
[s0; [*C -|][/C statement]]
:: [s0; Same as&]
[s0; [/C init][C ;]&]
[s0; [C while(][/C condition][C ) `{]&]
[s0; [C -|][/C statement][C ;]&]
[s0; [C -|][/C increment][C ;]&]
[s0; [C `}]]
:: [s0; [*C for(][/C l`-value][*C in ][/C array][*C )]&]
[s0; [*C -|][/C statement]]
:: [s0; Same as&]
[s0; [C for(][/C l`-value][C `= 0; ][/C l`-value][C < count(][/C array][C );]&]
[s0; [C ][/C l`-value][C `+`+)]&]
[s0; [C -|][/C statement]&]
[s0; ]
:: [s0; [*C for(][/C l`-value][*C in ][/C map][*C )]&]
[s0; [*C -|][/C statement]]
:: [s0; Iterates through [/ map], assigning keys of elements with non`-void
value to the [/ l`-value].]
:: [s0; [*C break;]]
:: [s0; Causes exit from innermost loop or switch statement.]
:: [s0; [*C switch(][/C value][*C ) ][/C statement]]
:: [s0; Matches [/ value] to all case statements inside the [/ statement],
continues at the case with the same value, or with default if
no such case exists and default is present. If neither matching
case and default exists, does nothing.]
:: [s0; [*C case ][/C value][*C :]]
:: [s0; Switch case.]
:: [s0; [*C default:]]
:: [s0; Default switch case.]
:: [s0; [*C #][/C name][*C (][/C args][*C ) `{ ... `}]]
:: [s0; Same as [/C name][C `= `@(][/C args][C ) `{ ... `};]]
:: [s0; [*C #.][/C name][*C (][/C args][*C ) `{ ... `}]]
:: [s0; Same as [C .][/C name][C `= `@(][/C args][C ) `{ ... `};]]
:: [s0; [*C #:][/C name][*C (][/C args][*C ) `{ ... `}]]
:: [s0; Same as [C :][/C name][C `= `@(][/C args][C ) `{ ... `};]]}}&]
[s0; &]
[s2; [3 Standard library]&]
[s0;3 &]
[ {{2479:7521h1;@(216) [s0; Function]
:: [s0; Comments]
::^@2 [s0; [*C is`_number(][/C x][*C )]]
:: [s0; Returns 1 if [/ x] is a number, 0 otherwise.]
:: [s0; [*C is`_array(][/C x][*C )]]
:: [s0; Returns 1 if [/ x] is a array, 0 otherwise.]
:: [s0; [*C is`_map(][/C x][*C )]]
:: [s0; Returns 1 if [/ x] is a map, 0 otherwise.]
:: [s0; [*C is`_void(][/C x][*C )]]
:: [s0; Returns 1 if [/ x] is void, 0 otherwise.]
:: [s0; [*C int(][/C number][*C )]]
:: [s0; Returns the [/ number] rounded towards zero.]
:: [s0; [*C to`_string(][/C x][*C )]]
:: [s0; Return [/ x] as array representing string representation.]
:: [s0; [*C to`_number(][/C x][*C )]]
:: [s0; Converts an array (string) to the number.]
:: [s0; [*C count(][/C x][*C )]]
:: [s0; If [/ x ]is void, returns 0.&]
[s0; If x is a number, returns 1.&]
[s0; If x is an array, returns number of elements of this array.&]
[s0; If x is an map, returns number of entries in this map with non`-void
values.]
:: [s0; [*C keys(][/C map][*C )]]
:: [s0; Returns array of keys of map (ordering is the same as for [* values]
function, otherwise is unspecified).]
:: [s0; [*C values(][/C map][*C )]]
:: [s0; Returns array of values of map (ordering is the same as for
[* keys] function, otherwise is unspecified).]
:: [s0; [*C rand()]]
:: [s0; Returns random number in range 0..32767.]
:: [s0; [*C reverse(][/C array][*C )]]
:: [s0; Returns reversed [/ array].]
:: [s0; [*C sort(][/C array][*C )]]
:: [s0; Returns sorted [/ array].]
:: [s0; [*C order(][/C array][*C )]]
:: [s0; Returns sort order of elements in the [/ array].]
:: [s0; [*C IsDate(][/C map][*C )]]
:: [s0; Returns 1 if map contains `"day`", `"month`" and `"year`" keys,
0 otherwise.]
:: [s0; [*C IsTime(][/C map][*C )]]
:: [s0; Returns 1 if map contains `"second`", `"minute`", `"hour`",
`"day`", `"month`" and `"year`" members, 0 otherwise.]
:: [s0; [*C GetSysTime()]]
:: [s0; Returns current time as map with `"second`", `"minute`", `"hour`",
`"day`", `"month`" and `"year`" members.]}}&]
[s0; ]

View file

@ -1,23 +1,23 @@
TITLE("Esc scripting language") TITLE("Esc scripting language")
COMPRESSED COMPRESSED
120,156,173,59,139,146,218,70,182,191,210,153,108,98,176,129,65,192,188,192,201,58,59,113,238,78,85,226,164,226,36,187,85,148,54,18,162,1,173,133,68,212,210,12,115,237,220,111,191,231,209,221,106,73,48,158,241,174,147,170,209,163,207,251,244,121,181,152,143,196,95,254,50,236,13,63,31,126,228,223,244,91,185,10,203,164,240,231,11,111,60,158,133,151,227,217,243,23,158,119,1,224,30,128,143,189,177,55,244,206,71,147,139,201,104,56,30,142,38,222,232,204,187,188,156,120,23,103,151,227,171,243,243,169,42,23,69,92,36,18,224,25,244,108,8,160,35,164,124,113,121,62,241,0,112,114,54,26,95,156,77,0,193,100,226,121,112,237,157,93,156,95,92,76,53,92,50,30,121,179,98,52,57,159,93,191,58,155,121,0,61,238,141,63,31,13,175,134,163,243,139,171,201,200,155,156,195,127,222,248,234,202,27,95,94,14,207,38,64,194,27,79,163,108,9,192,239,127,255,243,139,215,111,250,191,190,21,115,53,156,61,255,249,82,188,86,145,80,81,30,239,138,56,93,139,36, 120,156,173,59,139,114,219,54,182,191,130,56,219,70,118,100,89,148,228,151,148,118,211,117,211,187,158,105,211,78,211,246,222,25,13,183,164,36,200,98,67,145,42,65,217,242,77,186,223,190,231,1,128,32,68,201,118,178,105,103,44,17,56,15,156,247,57,160,198,61,241,183,191,117,219,221,231,221,7,254,13,191,149,243,120,157,150,225,120,18,244,251,163,248,162,63,58,122,25,4,231,0,30,0,120,63,232,7,221,224,172,55,56,31,244,186,253,110,111,16,244,78,131,139,139,65,112,126,122,209,191,60,59,27,170,245,164,76,202,84,2,60,131,158,118,1,180,135,148,207,47,206,6,1,0,14,78,123,253,243,211,1,32,24,12,130,0,62,7,167,231,103,231,231,67,13,151,246,123,193,168,188,122,125,58,10,0,178,223,238,63,239,117,47,187,189,179,243,203,65,47,24,156,193,127,65,255,242,50,232,95,92,116,79,7,128,62,232,15,167,249,12,0,63,252,254,215,23,111,222,30,255,250,78,140,85,119,36,198,71,63,95,136,55,106,42,212,180,72,86,101,146,221,136,52,206,
76,215,101,184,150,95,250,248,94,232,63,184,38,86,34,20,42,222,238,18,121,96,189,136,211,66,166,75,185,20,171,44,23,114,187,144,203,37,190,143,83,241,107,82,196,219,176,144,193,139,224,133,8,119,187,36,142,194,34,206,82,53,168,19,185,41,144,70,113,191,147,137,84,170,39,110,195,164,148,34,203,99,9,168,151,21,165,187,184,216,24,70,144,106,190,10,35,36,69,207,175,145,202,233,175,68,11,37,30,104,180,183,50,191,55,64,247,178,16,127,148,113,33,97,5,62,128,11,131,220,101,105,52,19,191,17,11,200,146,194,39,222,76,220,102,241,82,233,69,223,36,9,48,153,199,225,2,24,22,155,240,86,210,107,205,248,66,130,38,164,8,149,138,215,41,240,31,166,247,34,43,54,50,231,247,3,241,27,174,69,220,0,170,128,183,116,13,188,209,59,135,137,49,147,172,107,42,76,151,66,238,119,57,168,9,244,40,162,48,5,106,162,144,170,208,250,71,144,20,222,138,18,209,138,249,171,142,55,186,28,12,7,163,179,179,46,104,35,248,29,23,248,98,85,166,17, 110,214,241,141,12,191,12,105,139,254,131,155,18,37,98,161,146,229,42,149,13,0,34,201,74,153,205,228,76,204,243,66,200,229,68,206,102,184,158,100,226,215,180,76,150,113,41,163,151,209,75,17,175,86,105,50,141,203,36,207,84,167,78,228,186,68,26,229,253,74,166,82,169,182,184,141,211,181,20,121,145,72,64,61,171,40,221,37,229,194,48,130,84,139,121,60,69,82,244,252,10,169,156,252,74,180,240,208,29,141,246,86,22,247,6,232,94,150,226,207,117,82,74,216,129,15,224,131,65,238,178,212,27,137,223,136,5,100,73,225,147,96,36,110,243,100,166,244,166,111,210,20,152,44,146,120,2,12,139,69,124,43,105,89,51,62,145,32,9,41,98,165,146,155,12,248,143,179,123,145,151,11,89,240,122,71,252,134,123,17,55,128,42,224,45,187,1,222,104,205,97,162,207,36,235,146,138,179,153,144,155,85,1,98,2,57,138,105,156,1,53,81,74,85,106,249,35,72,6,171,98,141,104,197,248,117,43,232,93,116,186,157,222,233,233,33,72,35,250,29,55,132,98,190,206,166,
90,98,160,133,75,75,176,91,110,196,123,67,119,168,188,85,146,133,100,237,93,6,10,215,203,68,39,202,114,96,97,151,165,100,233,34,19,215,44,206,50,43,65,35,221,129,120,189,15,81,191,74,100,43,3,148,128,218,243,48,81,211,186,140,158,249,59,0,127,119,175,101,208,191,58,231,7,175,38,32,200,153,24,238,225,113,255,67,255,131,127,122,42,54,114,31,46,101,4,254,149,212,23,193,26,97,22,101,81,209,124,189,128,77,58,196,255,205,154,69,156,134,249,125,109,81,240,108,31,60,195,247,188,34,218,132,121,24,1,247,228,87,237,253,161,202,221,46,203,11,133,78,181,5,171,92,7,253,36,126,7,14,188,3,129,201,223,201,52,90,15,100,103,101,20,31,230,121,120,111,221,138,110,224,25,58,255,82,230,96,211,28,44,158,109,69,24,69,104,84,37,255,40,101,26,177,94,217,165,144,1,70,41,58,41,251,1,227,132,29,18,37,37,236,75,48,7,33,54,203,16,189,218,129,234,86,49,44,62,228,39,193,60,240,125,177,0,161,223,201,162,97,48,163,34,88, 168,137,142,62,92,182,6,189,21,230,120,111,233,27,10,111,158,230,49,105,123,149,131,192,245,54,209,154,230,5,176,176,202,51,210,116,153,139,43,62,206,44,95,131,68,14,59,226,205,38,70,249,42,145,207,13,80,10,98,47,226,84,13,235,103,12,204,223,14,152,187,251,89,70,199,151,103,250,65,119,3,15,142,63,30,127,28,191,30,136,147,19,177,144,155,120,38,167,96,92,105,104,182,192,14,225,108,201,167,165,179,56,1,207,236,226,255,206,142,73,146,197,197,189,217,18,189,216,68,47,112,213,174,79,23,113,17,79,129,105,50,167,6,191,80,235,213,42,47,74,133,198,180,4,109,92,69,199,105,242,30,12,119,5,7,37,59,39,149,232,243,147,126,149,17,120,92,20,241,189,53,39,250,2,207,208,232,103,178,0,93,22,160,233,124,41,226,233,20,149,169,228,159,107,153,77,89,158,108,74,200,0,163,20,173,140,245,207,56,193,51,166,233,26,252,17,212,64,136,205,54,68,175,86,32,181,121,2,155,155,236,35,26,71,97,40,38,112,234,247,178,244,21,133,139,44,
194,26,98,29,201,237,174,184,103,202,218,136,193,92,120,61,49,234,137,113,79,76,122,2,64,252,6,6,124,31,204,113,69,224,195,26,193,24,17,27,225,1,117,166,69,24,131,246,92,185,234,56,78,254,46,147,36,11,78,28,70,96,127,131,160,16,57,208,47,129,205,103,127,15,158,1,157,103,146,255,36,181,63,89,240,236,32,91,200,148,8,158,139,48,89,133,196,23,161,182,27,79,153,157,87,42,228,75,137,59,96,163,238,24,122,15,129,157,32,168,109,129,29,52,136,0,147,25,225,24,65,46,11,8,115,183,128,101,1,81,170,0,107,135,249,210,110,79,80,65,153,22,141,104,249,13,249,2,90,205,98,6,42,198,232,74,236,242,236,54,94,106,140,229,130,35,118,203,194,2,77,204,30,154,229,141,61,25,6,243,161,81,11,222,120,129,47,130,175,196,184,206,199,119,113,174,10,195,131,101,65,84,177,65,161,5,98,72,13,251,22,117,64,239,55,196,122,35,215,176,89,110,37,67,104,63,13,193,186,119,20,66,151,98,41,49,158,66,58,169,228,94,229,176,55,80, 31,43,33,185,92,149,247,76,214,138,113,44,130,182,232,181,69,191,45,6,109,113,42,162,250,74,52,198,181,40,132,85,193,248,52,46,194,2,146,204,202,56,1,193,185,71,178,24,14,254,41,211,52,143,14,234,76,128,67,195,9,33,84,160,33,2,151,47,254,25,189,0,66,47,36,255,73,107,127,242,232,5,156,113,139,89,17,29,137,56,157,199,196,147,65,108,253,76,25,71,91,43,228,73,137,59,224,195,51,8,237,51,160,31,8,98,75,224,6,21,33,64,85,230,100,140,161,144,37,132,181,91,64,51,129,168,84,130,150,227,98,102,221,17,206,191,206,74,47,58,126,67,54,128,218,178,152,129,138,81,182,18,171,34,191,77,102,26,227,122,194,17,122,75,179,2,85,203,150,153,23,158,106,227,104,220,181,122,130,47,65,20,138,232,43,209,175,243,241,93,82,168,210,240,96,89,16,85,44,80,168,128,4,82,193,102,139,58,160,15,189,99,189,149,55,224,36,183,146,33,180,125,198,160,223,59,10,153,51,49,147,24,63,33,125,84,231,158,23,224,19,40,83,72,56,150,
167,144,128,44,7,211,182,55,247,61,148,22,116,147,132,7,88,238,29,0,24,33,0,173,94,148,176,50,5,18,69,52,104,169,137,48,215,229,0,42,53,31,108,193,144,77,59,33,208,233,139,22,244,63,54,50,213,58,139,21,187,23,198,14,148,49,15,250,156,95,58,228,39,232,0,25,123,84,30,175,55,5,228,145,165,68,153,26,194,124,229,119,123,21,70,136,39,144,72,163,141,132,173,189,28,136,239,0,119,162,241,194,42,8,214,89,26,244,211,154,41,42,197,43,171,186,29,106,6,73,3,61,235,211,61,237,1,168,129,253,46,164,154,128,82,115,149,27,201,37,162,92,162,21,139,77,108,17,54,124,33,56,121,141,241,36,56,57,226,62,104,156,99,92,145,209,208,95,220,45,10,84,195,229,178,114,28,184,183,108,55,156,127,143,232,209,221,33,95,109,159,98,218,189,49,237,190,123,12,193,207,164,253,42,38,96,72,168,133,131,108,129,17,15,24,6,187,64,218,129,213,38,66,43,40,158,100,51,121,18,108,48,223,101,80,52,17,237,166,59,57,74,98,58,132,134, 131,225,182,21,31,7,120,90,144,77,26,55,176,220,110,0,232,33,0,237,158,172,97,103,6,36,202,105,103,75,76,132,185,126,14,160,82,51,193,45,24,210,105,43,6,58,199,98,11,250,127,23,50,211,50,75,20,219,23,198,12,60,99,17,29,115,62,105,145,157,160,1,228,108,81,69,114,179,40,33,111,204,36,158,201,59,204,87,225,97,187,194,8,113,4,18,231,116,33,193,165,103,29,241,29,224,78,53,94,216,5,193,57,207,162,227,172,166,138,74,240,202,138,110,133,146,65,210,64,207,218,116,91,91,0,74,96,179,138,169,6,160,84,92,229,66,50,137,105,33,81,139,229,34,177,8,61,91,136,14,222,96,40,137,14,118,152,15,42,103,23,87,164,52,180,23,215,71,129,106,60,155,85,134,3,223,45,219,158,241,111,16,61,154,59,228,167,229,83,84,187,49,170,221,28,238,66,240,51,73,191,138,9,24,18,106,225,32,159,96,184,3,134,65,47,144,111,96,183,137,204,10,138,37,233,199,96,130,141,198,171,28,138,36,162,237,155,147,35,36,166,67,104,200,74,78,
188,228,148,33,252,74,41,224,86,121,97,235,41,88,0,120,253,67,22,98,97,105,249,20,118,222,147,136,226,78,5,199,39,224,135,104,235,5,13,199,248,41,204,57,220,177,58,172,218,182,91,80,246,242,168,114,44,135,89,222,122,57,125,226,6,182,128,98,42,244,86,198,71,221,38,26,112,193,131,144,189,186,161,154,28,77,15,218,241,81,60,13,143,56,1,197,20,173,48,12,170,38,105,85,27,191,94,207,237,64,201,181,141,77,129,67,238,146,48,146,203,134,7,42,116,244,224,4,138,174,73,112,50,171,101,82,5,137,99,42,40,66,242,162,253,63,247,176,134,115,41,101,170,52,187,67,88,120,14,192,117,158,223,66,78,132,106,209,102,40,107,106,106,35,244,142,118,107,39,87,21,158,192,126,3,175,70,117,172,80,81,64,7,34,217,55,139,59,131,162,119,0,7,102,127,174,216,244,83,93,190,97,81,96,234,144,10,49,104,7,98,154,241,119,189,20,154,31,169,154,57,131,113,191,0,133,48,171,79,182,179,48,160,86,200,6,14,168,177,15,194,189,124,105,180,99, 24,34,172,132,2,102,85,148,182,126,130,13,128,55,108,210,16,31,150,182,15,193,243,158,68,20,61,21,12,159,128,247,209,214,27,60,195,248,41,46,56,220,177,56,172,216,150,75,16,246,108,167,112,44,135,121,177,181,56,124,162,3,91,64,49,20,218,149,241,209,161,143,6,76,176,17,178,93,87,148,207,209,176,81,143,143,226,169,187,195,8,40,166,104,129,97,80,53,89,171,114,252,122,253,182,2,33,215,28,155,2,135,92,165,241,84,206,60,11,84,104,232,209,1,20,91,131,232,96,100,30,66,202,24,10,138,141,188,188,249,191,13,172,218,76,74,105,42,203,239,16,16,150,0,210,227,248,29,100,68,168,13,109,126,178,138,166,166,65,251,179,91,49,185,130,8,4,118,23,248,169,87,199,10,197,4,244,27,146,45,179,188,51,40,218,13,56,48,255,115,157,166,159,234,162,13,203,2,92,175,35,6,217,64,68,51,214,174,183,66,171,35,149,159,49,24,247,75,16,10,179,250,100,45,11,3,106,15,233,225,128,138,186,17,238,213,43,35,29,243,169,103,63,245,255,27,
174,70,246,106,252,223,96,163,210,186,189,106,224,197,98,149,82,186,194,45,206,173,136,110,246,14,101,50,91,6,106,163,97,69,228,116,63,16,70,32,126,170,50,218,128,115,40,9,49,208,120,11,245,85,105,38,228,106,37,163,194,212,218,219,112,103,188,229,7,184,52,245,165,120,39,239,77,106,221,133,80,212,224,222,0,185,161,46,83,3,241,38,203,161,197,168,10,41,117,48,25,217,109,133,110,201,181,58,80,51,88,26,123,6,222,4,115,36,74,251,162,217,247,233,246,82,131,162,132,136,169,216,132,5,81,73,179,194,233,44,57,95,59,189,103,163,23,29,136,95,48,203,222,129,26,25,8,247,55,189,214,25,16,113,3,43,102,119,129,74,80,249,57,7,136,92,110,161,148,196,66,19,152,185,175,170,45,0,122,80,162,86,219,74,249,24,187,84,7,25,88,105,33,45,59,7,233,35,4,250,1,50,136,86,199,214,71,43,68,171,244,218,112,16,175,58,166,187,237,84,220,116,193,62,239,197,96,48,16,193,159,13,21,43,146,132,250,32,48,175,220,71,114,135,254,213, 108,84,82,183,159,60,188,88,162,82,66,87,232,224,220,120,232,214,174,41,143,217,10,80,43,13,235,33,167,215,129,32,2,209,83,173,167,11,48,14,37,33,2,26,107,161,46,42,203,133,156,207,229,180,52,21,246,50,94,25,107,249,1,62,154,210,82,188,151,247,38,177,174,98,40,105,208,51,224,220,80,149,169,142,120,155,23,208,83,84,101,148,106,76,69,214,169,208,44,185,66,7,106,6,139,231,49,176,18,141,145,40,249,134,223,229,233,102,82,131,226,9,17,83,185,136,75,162,146,229,165,211,71,114,182,118,58,77,175,243,236,136,95,48,199,222,129,24,25,8,189,155,150,117,254,67,220,192,138,241,46,16,9,10,191,224,240,80,200,37,20,146,88,102,2,51,247,85,173,5,64,123,79,180,213,164,82,54,198,158,212,65,6,90,154,72,203,78,35,125,132,64,59,64,6,81,235,216,240,104,129,104,145,94,25,14,146,121,203,244,178,173,138,155,67,208,207,7,209,233,116,68,244,151,39,98,69,39,161,238,7,212,43,55,83,185,66,251,106,139,59,140,149,177,219,189,
19,119,24,45,67,183,159,135,144,35,67,112,11,211,215,167,54,114,30,242,5,40,163,104,238,96,210,183,86,52,55,72,21,231,54,145,26,141,205,4,132,69,170,209,140,254,56,205,214,29,165,90,133,193,179,110,8,227,215,92,56,171,204,122,164,46,184,112,230,1,249,1,42,233,176,8,33,193,230,101,84,148,57,58,249,47,25,160,122,167,75,178,127,103,11,33,67,21,203,188,103,245,3,187,117,0,237,98,2,251,85,221,195,174,33,14,116,223,219,202,9,123,94,90,241,252,196,42,42,56,33,248,224,196,149,187,37,167,41,40,209,115,72,218,69,187,173,13,222,7,127,82,31,219,218,131,244,198,246,173,90,143,244,28,50,18,118,125,193,201,212,131,132,26,156,44,100,129,55,35,184,25,13,167,193,201,100,8,101,41,187,19,175,31,81,78,128,106,0,82,217,144,95,34,230,109,157,69,19,108,156,38,82,135,165,36,220,46,150,161,137,76,223,243,29,102,20,242,120,104,87,246,50,42,11,28,53,81,252,228,217,22,47,115,91,250,24,182,85,182,44,163,99,61,253,43, 67,200,145,49,152,133,233,226,51,27,55,155,108,1,138,40,154,50,152,228,173,5,205,157,81,197,185,77,163,70,98,35,140,139,84,161,25,249,113,146,173,27,74,181,11,163,103,93,17,198,174,185,108,86,185,181,72,93,110,225,132,3,178,3,212,209,113,25,67,122,45,214,211,114,93,160,145,255,146,3,170,247,186,32,251,35,159,8,25,171,68,22,109,43,31,240,214,14,52,137,41,248,171,186,7,175,33,14,116,183,187,149,17,54,188,181,226,249,137,53,84,116,64,240,209,129,123,238,173,115,154,114,18,45,135,78,59,217,110,102,163,15,209,95,212,189,110,249,32,173,216,134,85,203,145,158,67,74,194,190,47,58,24,6,144,78,163,131,137,44,241,75,15,190,244,186,195,232,96,208,133,162,148,205,137,247,247,40,39,64,45,0,185,172,203,139,136,121,89,103,209,4,27,167,135,212,97,41,141,151,147,89,108,34,211,247,252,13,51,10,89,60,52,43,27,57,93,151,56,88,162,248,201,147,44,222,230,54,242,9,184,85,62,91,79,119,117,242,175,195,106,126,225,11,227,53,
191,26,100,52,149,241,10,106,86,20,5,186,209,50,79,89,162,253,236,192,166,49,33,36,113,200,163,135,153,97,88,203,184,80,12,174,98,2,9,109,87,123,112,160,48,93,101,25,149,9,71,121,209,149,3,33,4,153,215,73,182,0,207,180,173,50,192,215,185,189,89,25,54,195,124,93,114,185,141,221,177,4,21,153,206,164,161,163,47,29,29,209,62,118,74,217,56,221,149,69,208,207,202,2,254,86,40,59,60,134,49,247,198,22,59,234,26,147,251,110,163,128,157,63,175,81,196,208,228,135,133,219,195,114,213,165,177,39,49,54,51,156,49,173,142,83,59,90,168,168,22,228,255,218,101,6,226,38,229,140,129,121,177,135,173,79,140,58,2,117,65,109,23,110,37,136,199,140,66,199,132,49,2,252,114,142,83,151,245,173,95,145,65,94,112,168,71,89,184,81,198,76,85,185,213,214,2,17,200,94,84,9,194,10,136,145,157,152,27,155,245,109,23,31,115,177,179,190,13,230,113,224,183,189,234,167,138,37,220,40,148,193,150,60,106,55,254,173,36,242,93,240,76,163,213,223, 84,172,120,20,232,69,215,69,198,39,218,140,26,156,198,132,144,212,33,143,22,102,70,95,91,202,133,82,112,158,16,72,108,123,90,143,250,112,158,231,84,36,236,228,162,170,27,8,27,28,248,38,205,39,96,150,182,75,6,20,94,1,113,61,55,76,198,197,205,154,75,109,236,140,37,8,200,116,37,158,132,190,116,36,68,94,236,148,177,73,182,90,151,209,113,190,46,225,111,133,178,197,163,23,243,221,104,98,69,29,99,122,127,232,21,175,227,163,26,69,12,76,97,92,186,253,43,87,92,26,123,154,96,35,195,249,210,74,56,179,99,133,138,106,73,214,175,13,166,35,174,51,206,23,152,21,219,216,246,36,40,36,144,23,212,117,241,82,194,241,152,81,232,150,48,66,128,85,142,113,220,114,115,27,86,100,144,23,28,224,81,14,246,138,152,161,90,47,181,198,224,8,164,51,170,2,97,7,68,200,86,194,77,205,205,237,33,62,230,82,231,230,54,26,39,81,184,109,83,63,85,44,161,155,80,254,154,241,84,221,88,183,146,200,119,201,243,140,173,222,214,183,166,73,92,24,
54,188,121,186,8,115,227,73,196,211,209,36,96,194,94,18,175,164,13,121,97,2,172,164,220,255,130,44,91,212,131,117,50,246,102,186,196,169,248,109,24,39,168,171,6,7,159,163,51,63,180,165,70,179,216,59,27,206,126,188,194,65,179,25,35,83,207,10,81,66,238,11,85,231,243,55,107,121,80,20,149,4,24,8,86,25,250,133,184,6,171,199,105,20,211,184,181,131,70,69,163,131,202,32,147,162,16,61,110,165,216,223,195,100,183,9,33,162,197,145,51,213,132,76,220,208,233,239,190,237,160,77,220,58,4,169,90,147,19,13,168,199,201,77,231,71,174,151,49,85,1,101,172,54,88,131,111,114,169,199,236,168,231,106,166,110,20,97,98,89,99,219,48,153,198,211,169,179,123,15,79,45,1,191,153,19,38,89,212,24,13,15,156,183,113,138,51,150,72,214,67,148,179,128,163,79,93,188,239,17,165,35,131,51,104,141,112,131,26,47,234,153,216,213,88,10,188,99,221,179,205,48,90,38,85,104,83,184,159,153,31,7,164,234,60,116,158,112,18,78,7,138,6,229,12,204, 107,34,158,118,166,0,19,244,210,100,46,109,192,139,83,96,37,227,222,23,206,178,68,57,88,43,99,91,166,143,56,1,191,141,147,20,101,229,113,240,28,13,122,159,67,245,70,73,112,218,29,253,120,137,67,101,51,50,166,126,21,98,132,220,148,170,206,231,111,86,243,32,40,42,8,48,12,204,115,180,11,113,5,90,79,178,105,66,163,213,22,42,21,149,14,34,131,60,138,135,104,115,27,197,246,30,167,171,69,12,241,44,153,58,163,76,200,195,158,76,127,15,109,247,108,162,86,19,164,218,154,154,104,64,61,58,246,141,31,185,158,37,84,3,172,19,181,192,10,124,81,72,61,82,71,57,87,243,115,35,8,19,201,60,183,97,50,222,211,161,227,189,126,180,7,204,206,124,48,205,167,213,32,184,83,95,75,50,28,173,76,165,89,30,214,151,57,238,120,161,230,123,196,231,112,239,140,85,167,232,154,198,126,218,38,108,121,91,129,107,172,119,150,57,70,201,180,138,106,10,61,153,217,113,64,170,142,67,231,7,39,209,180,160,88,80,206,152,236,182,102,58,135,40,100,220,
110,107,14,212,69,85,227,234,187,77,166,100,61,150,199,232,94,183,217,59,185,236,209,12,130,203,50,216,7,85,94,225,129,121,195,242,159,249,248,124,121,108,162,8,12,12,120,51,206,156,39,111,192,194,122,167,242,30,221,227,233,13,197,250,166,217,104,109,167,59,171,6,189,140,82,23,66,158,67,200,171,83,106,225,248,140,22,205,28,60,158,131,232,112,132,216,229,217,26,162,212,86,230,193,51,85,143,23,52,27,52,229,163,110,79,201,127,35,8,35,168,47,237,202,216,174,220,241,116,15,244,235,36,81,42,171,147,154,239,144,119,235,215,196,88,97,66,59,110,254,184,232,89,7,165,149,218,157,236,158,233,208,164,25,0,233,20,161,75,222,133,221,132,29,85,55,172,131,37,14,132,43,125,103,68,167,246,3,220,118,45,11,203,42,198,67,102,21,242,5,130,57,249,98,133,243,224,30,230,175,20,56,192,81,98,5,6,85,103,151,5,181,140,107,4,194,175,9,13,225,21,92,255,158,16,64,160,128,93,96,209,104,4,90,88,67,127,32,126,92,225,216,35,199,68,247, 125,183,200,149,172,199,240,4,13,235,54,127,47,103,109,154,60,112,57,6,30,80,229,19,158,142,123,58,127,22,226,243,217,174,57,34,48,208,97,55,28,57,79,222,130,110,181,143,178,119,110,240,142,134,34,189,183,171,117,56,170,141,118,25,159,174,126,2,17,86,219,131,29,116,90,135,207,104,121,84,199,18,56,104,194,230,184,176,42,242,27,136,77,75,89,68,47,84,61,74,208,52,208,148,140,186,37,37,171,157,66,240,64,89,105,3,198,22,229,142,231,121,32,91,39,113,82,41,157,214,236,134,108,90,47,19,103,165,9,232,232,242,73,217,182,182,73,59,181,41,89,79,105,209,108,25,0,233,190,224,144,44,11,59,8,59,157,246,52,131,101,13,4,41,253,205,28,157,90,14,48,217,27,89,90,86,49,10,50,171,144,37,16,204,201,18,115,156,0,183,49,107,101,192,1,14,15,43,48,168,52,15,249,160,150,113,141,64,132,181,67,67,80,5,179,191,39,4,16,30,192,3,44,26,141,64,31,214,208,239,136,31,231,56,232,40,48,189,61,58,56,128,73,51,118,103,
232,48,1,110,205,216,157,1,97,181,93,180,34,15,215,41,90,89,238,225,7,232,35,177,5,9,9,37,111,209,208,43,173,43,216,72,86,108,122,205,117,8,218,211,33,49,130,0,89,47,14,173,31,158,162,184,52,198,113,207,32,106,179,156,108,29,179,7,97,0,232,81,15,209,19,255,43,243,204,148,11,168,9,220,244,89,174,251,106,74,8,180,194,78,225,170,96,226,175,160,166,150,64,181,231,30,93,50,77,31,58,7,115,94,122,106,171,173,84,39,36,58,17,68,123,162,43,196,209,59,216,45,88,174,45,227,91,234,234,237,60,135,200,83,15,6,49,9,115,88,150,199,197,125,79,63,207,118,219,12,74,31,28,161,210,1,43,97,133,197,155,120,189,193,174,208,172,119,108,36,222,191,159,76,206,47,167,103,103,227,209,198,155,189,234,140,188,243,46,29,118,139,31,53,85,127,58,229,7,215,217,150,36,134,7,255,122,53,226,19,241,107,112,20,42,219,253,96,142,87,16,67,125,232,231,12,136,109,57,4,212,85,115,126,61,48,111,79,175,17,16,161,6,62,247,73, 36,88,185,138,22,228,86,54,97,49,121,215,28,32,140,212,22,33,116,34,121,139,90,158,107,65,129,7,217,51,211,50,151,30,168,76,215,216,122,16,20,235,229,160,55,178,113,47,28,106,115,155,252,38,97,219,65,183,111,83,199,208,22,255,47,139,220,148,7,40,3,116,245,188,208,93,52,37,0,218,97,39,110,85,8,1,193,206,161,134,150,208,188,56,215,146,76,19,214,160,83,144,29,205,248,137,45,176,50,157,131,232,194,15,149,137,118,144,76,223,131,171,96,137,54,75,110,169,141,183,3,28,226,128,154,46,8,70,152,182,242,34,41,239,219,250,121,190,90,230,80,237,224,196,148,238,79,9,43,108,94,36,55,11,108,3,205,126,71,65,226,195,135,193,224,236,98,120,122,218,239,45,130,209,235,86,47,56,59,228,235,236,31,53,213,112,56,228,7,87,249,146,14,13,15,254,245,186,167,239,188,79,174,80,70,225,248,232,10,90,183,16,191,66,252,228,175,97,104,65,109,175,33,98,146,20,238,233,216,85,23,73,135,112,112,159,100,55,188,195,211,198,52,240,192,125,
6,236,45,74,23,210,188,131,81,7,39,112,201,107,176,195,177,40,52,125,178,141,230,128,134,223,46,15,124,142,103,134,199,192,199,46,83,92,141,204,205,234,135,240,241,76,181,71,207,121,248,219,194,205,163,90,59,141,101,81,245,44,246,224,212,248,227,244,166,120,9,197,237,49,98,238,17,153,33,6,229,26,129,208,25,201,17,10,61,87,12,118,131,198,138,233,65,65,29,139,152,133,208,219,205,171,149,166,106,249,184,100,71,232,58,186,126,152,110,165,219,230,44,121,208,164,206,49,208,239,48,157,181,242,187,22,241,13,37,108,66,172,87,57,155,75,22,218,110,4,52,112,186,34,234,224,205,241,160,110,60,192,69,123,20,37,22,50,202,184,214,212,113,11,231,53,14,1,110,74,209,243,58,60,239,138,49,130,223,198,33,48,11,123,0,86,98,169,225,83,109,249,28,184,72,86,126,215,221,45,140,7,133,233,248,200,25,94,65,21,33,124,67,240,1,233,122,92,136,192,3,203,158,143,138,173,241,170,133,252,143,248,4,213,211,147,138,21,38,128,11,138,241,248,212,59, 216,222,160,184,105,19,182,56,117,84,124,189,229,112,68,227,239,45,158,248,26,207,204,144,129,175,85,174,184,48,25,159,104,144,7,240,242,116,21,31,180,5,61,224,89,112,51,33,30,223,218,9,45,203,65,207,103,27,39,201,143,38,62,164,239,80,252,238,165,236,222,161,25,202,80,211,17,28,93,162,236,36,215,222,62,155,169,197,189,157,195,61,82,112,116,200,32,52,106,181,199,142,236,77,214,163,143,189,155,15,95,59,15,240,81,41,194,31,70,119,234,220,112,64,37,156,173,144,137,222,40,250,122,88,17,184,166,26,128,8,232,253,142,219,202,82,43,155,32,59,78,139,69,195,0,115,207,168,187,24,48,246,54,133,160,137,156,230,92,184,234,136,136,163,31,135,0,247,183,104,187,45,30,157,37,152,24,110,147,24,130,56,185,20,85,47,33,21,170,71,192,69,58,15,15,59,143,61,154,120,38,180,27,233,186,110,207,81,219,92,232,192,131,106,59,74,187,198,184,62,241,103,50,13,172,209,51,135,27,166,129,123,202,126,255,36,56,173,118,98,113,68,135,72,163,99,
51,226,32,251,88,187,248,73,208,175,166,198,213,171,126,208,175,94,57,248,162,156,29,255,116,41,205,165,253,94,66,207,152,136,216,176,73,171,239,55,112,253,74,69,217,54,78,75,229,234,153,22,255,95,115,241,223,98,232,100,239,98,101,190,131,161,3,158,6,212,103,62,145,183,48,223,235,12,3,197,200,0,234,45,42,101,56,30,218,172,161,4,101,141,158,24,114,210,64,10,205,248,80,105,1,149,82,219,62,206,43,84,165,33,252,19,36,130,160,31,27,93,9,58,151,130,39,86,101,238,71,38,174,210,106,22,162,141,133,84,176,17,243,27,54,226,91,251,150,183,167,161,255,51,117,112,206,190,165,117,62,143,252,33,251,162,15,49,219,122,226,223,52,88,3,123,195,22,63,64,159,27,219,79,163,92,43,56,112,167,45,176,111,33,159,170,227,0,95,180,233,100,203,50,201,30,84,204,139,166,232,215,238,121,137,149,255,97,9,95,180,40,127,163,199,15,71,88,133,16,223,132,120,91,46,10,236,227,52,80,157,97,176,113,197,243,203,151,143,226,25,106,150,140,34,136, 14,239,214,118,112,245,56,58,246,86,29,172,211,130,221,230,100,38,205,71,251,250,133,30,98,17,201,110,157,34,99,244,209,253,74,5,224,50,201,214,170,126,150,232,223,141,251,255,145,64,203,124,151,40,243,114,13,221,34,213,0,159,17,28,177,81,129,125,175,179,27,148,64,29,40,242,168,128,226,0,108,51,150,226,124,213,22,93,78,88,72,196,179,9,43,13,43,36,199,225,188,85,20,176,133,254,9,242,80,116,156,24,209,9,186,5,131,39,86,130,238,43,44,174,12,93,181,213,156,26,187,63,87,64,14,35,14,23,118,23,3,90,126,126,166,30,210,113,250,241,17,88,104,200,87,14,80,15,160,173,49,22,125,227,224,233,115,7,21,95,89,63,64,199,157,216,23,178,234,194,116,225,79,154,193,191,133,116,175,246,2,126,177,131,110,62,91,167,249,67,2,124,217,40,154,43,247,62,199,202,231,65,9,188,108,230,228,27,61,40,217,125,4,72,53,141,144,239,214,147,18,59,79,13,236,31,4,172,196,57,203,171,87,143,63,139,8,161,72,197,8,101,48,180,197,61,
134,133,24,114,143,41,152,122,203,234,49,224,170,142,197,192,175,21,216,230,33,97,145,122,147,245,77,188,130,122,89,174,138,35,226,126,253,245,17,24,58,251,104,139,235,146,123,200,113,191,126,232,229,75,104,136,30,130,173,94,187,37,210,14,42,115,5,161,147,19,136,126,223,182,190,99,13,109,12,75,163,122,245,245,241,87,196,220,81,56,251,242,56,103,174,91,214,116,71,118,100,39,251,10,241,212,35,218,235,63,202,48,129,26,178,37,80,5,246,89,27,234,38,149,46,220,49,91,5,95,182,52,250,55,110,156,161,16,63,182,19,254,117,12,102,159,229,199,96,62,28,131,169,131,56,170,248,18,121,59,28,220,145,55,44,17,168,151,171,70,2,58,172,43,40,10,210,101,245,24,251,82,137,119,24,7,123,226,223,37,192,168,119,241,110,39,151,71,72,127,64,118,15,147,6,118,15,80,198,86,227,63,35,76,169,229,175,190,115,51,213,55,110,200,176,3,210,170,193,130,206,50,133,78,52,149,88,54,160,66,155,189,151,229,160,86,216,232,232,161,189,174,41,45,143,208, 86,14,212,21,87,143,69,232,92,230,129,151,40,208,229,3,66,48,92,108,29,101,145,204,161,246,151,243,114,183,24,190,254,122,31,44,221,225,52,137,161,70,254,49,14,241,245,99,54,189,130,174,239,49,184,188,109,110,101,184,130,110,68,65,40,231,236,166,55,52,89,145,171,69,87,137,141,169,220,176,191,111,139,101,126,47,158,250,166,221,156,187,230,239,201,158,67,44,27,241,87,6,159,23,119,223,252,185,142,83,40,177,27,14,238,128,63,219,1,125,157,73,23,126,143,238,163,47,155,53,241,15,30,48,64,235,178,199,3,255,181,23,118,147,23,123,96,63,238,133,245,65,93,145,125,105,120,222,145,170,144,103,172,135,168,31,174,70,42,58,73,41,168,128,178,89,245,24,123,123,137,223,48,126,183,197,31,107,128,81,239,147,213,74,206,118,179,240,209,176,191,131,5,96,191,129,3,108,221,62,151,1,65,28,252,157,136,187,79,134,206,147,90,28,179,243,230,170,127,133,150,61,131,22,63,147,88,43,161,180,253,214,214,178,179,149,198,107,166,219,40,2,190,151,48,213,
77,190,173,121,93,45,174,209,208,180,225,247,182,128,172,214,34,133,234,90,31,186,250,13,126,106,209,249,192,78,175,227,53,231,220,95,185,55,47,204,238,127,0,117,255,211,80,247,31,129,250,249,167,161,126,254,113,212,167,159,132,249,244,227,136,191,248,36,196,95,84,136,255,108,12,171,245,136,224,109,1,30,71,133,98,189,243,61,27,66,231,59,185,106,118,190,118,249,71,90,223,89,21,21,233,68,76,25,184,102,253,86,109,2,223,129,113,54,205,77,129,19,35,117,96,119,0,134,224,189,208,205,145,230,106,166,7,243,181,224,78,135,148,109,14,116,97,26,175,58,126,100,118,44,247,13,190,58,32,102,181,167,63,13,85,173,130,151,16,0,31,77,134,219,175,6,173,187,77,156,200,199,112,254,125,150,237,6,149,225,104,88,36,115,28,189,153,81,15,54,230,124,126,77,93,171,70,232,155,120,217,148,114,153,181,164,2,83,48,63,220,33,27,12,221,199,49,145,153,193,35,205,250,248,227,32,174,133,159,196,30,48,129,135,69,60,233,136,171,193,132,1,224,123,91,248, 133,103,186,245,224,75,227,232,38,103,178,165,117,5,129,228,170,207,250,70,59,220,87,102,56,232,183,98,99,13,191,121,153,224,43,247,203,75,3,180,159,196,241,103,144,56,126,28,137,163,207,32,113,244,40,18,39,159,78,225,228,81,4,190,248,116,2,95,84,4,254,242,238,12,244,212,230,93,9,150,74,197,116,125,26,113,218,189,24,158,14,46,253,105,132,221,190,127,28,1,108,143,156,104,76,55,147,202,128,214,15,91,121,79,232,131,57,46,119,93,226,32,79,53,250,22,150,189,31,132,105,54,53,123,132,75,95,150,212,243,12,221,27,55,49,3,16,201,188,165,123,103,237,249,186,245,242,144,55,70,136,207,67,233,180,65,18,34,237,211,40,114,103,91,35,123,183,72,82,249,180,195,124,159,231,171,78,165,97,154,244,201,2,135,166,102,84,135,3,19,126,219,128,6,6,6,173,137,206,245,131,207,242,61,103,220,205,222,35,249,201,205,244,152,6,182,252,78,23,55,17,79,231,20,111,250,116,107,157,120,131,36,151,181,182,233,191,117,243,164,249,117,78,117,252,113,
251,221,154,69,250,31,14,232,78,239,48,243,113,192,92,99,158,153,7,90,232,154,204,224,148,230,117,255,195,188,230,156,181,231,21,35,246,121,229,183,142,44,38,3,248,116,172,102,199,2,79,231,158,16,186,248,248,128,173,246,232,165,158,27,216,42,168,107,153,195,127,238,90,108,170,28,38,234,60,180,71,30,71,197,193,49,214,35,132,185,193,207,253,11,62,227,201,202,245,198,76,192,122,206,151,40,116,76,225,206,127,104,227,52,191,105,209,95,80,184,178,184,62,180,200,101,248,174,138,69,215,97,169,240,155,208,125,92,152,137,115,42,115,154,38,38,224,212,216,233,43,32,19,109,142,135,5,126,223,241,109,34,63,184,79,127,8,97,17,247,24,90,65,248,241,79,146,232,243,55,27,167,113,46,129,163,79,45,67,133,168,71,131,102,232,216,113,174,202,103,192,4,90,159,140,234,79,244,128,109,122,110,78,70,121,192,110,63,126,66,121,85,161,244,135,210,122,137,114,14,132,97,185,140,105,146,187,69,190,233,96,2,225,92,0,198,209,131,128,33,169,198,194,85,174,166, 151,108,181,171,58,85,17,211,66,131,55,15,119,73,5,117,22,125,112,182,109,145,241,208,232,117,135,209,250,186,235,17,181,243,215,83,84,146,185,233,229,211,15,219,72,128,83,32,206,153,182,158,191,210,211,31,151,56,208,118,79,128,255,182,0,177,247,61,220,39,166,173,201,214,195,103,55,243,208,71,158,252,26,127,6,82,242,125,96,190,190,89,152,81,105,219,121,103,137,46,182,220,49,32,57,175,255,246,147,126,215,134,59,35,102,172,110,180,147,66,198,239,157,104,121,21,175,21,190,62,188,73,74,115,85,145,201,130,38,209,41,56,18,142,111,20,80,154,46,118,5,42,94,109,57,85,201,254,112,241,67,12,219,185,193,227,237,244,198,88,154,234,107,91,155,87,112,232,132,227,115,125,156,10,83,155,110,42,146,140,198,243,252,234,0,129,214,167,235,250,173,78,96,159,158,155,11,117,190,161,177,111,204,225,185,85,169,244,187,245,122,139,114,222,35,128,237,50,161,11,129,37,242,77,55,91,8,231,2,48,142,54,68,46,73,133,37,238,170,203,136,64,60,9,13,29,
9,0,245,161,107,154,202,113,89,161,248,222,93,175,241,86,235,244,47,168,140,1,154,235,63,71,220,52,143,113,198,92,213,225,173,89,9,70,250,198,230,210,106,132,195,7,73,243,54,220,204,37,49,248,20,26,131,39,18,153,126,10,145,233,99,136,212,170,130,209,108,140,33,154,127,51,144,196,139,92,255,144,101,8,207,185,44,24,77,46,174,166,23,103,35,175,81,22,124,167,143,22,63,82,21,224,39,85,92,144,144,28,123,39,65,152,169,136,135,158,56,199,119,252,59,49,94,126,116,4,132,24,41,80,61,26,161,254,180,252,1,124,16,85,30,141,141,6,156,15,224,162,15,200,30,135,140,143,88,142,225,194,152,252,220,214,137,109,92,58,26,152,201,81,142,53,15,157,67,221,129,49,21,157,203,184,248,138,44,248,93,21,57,108,200,35,220,105,190,66,243,13,170,29,202,209,199,227,4,89,61,171,143,154,52,250,35,134,134,10,231,86,230,20,90,52,234,14,163,235,154,192,204,128,181,64,193,57,169,129,233,134,149,39,124,171,188,92,43,99,104,70,238,176,100,95, 195,103,1,227,46,47,22,50,5,103,171,254,185,157,209,201,54,200,115,78,249,56,122,107,156,6,218,87,1,154,102,170,6,144,189,44,122,237,66,215,128,71,245,72,240,188,243,25,84,205,173,193,39,146,30,126,22,233,225,19,73,215,202,33,168,131,198,125,204,52,252,139,149,52,153,20,230,215,83,221,81,95,151,68,189,193,249,229,240,252,180,23,120,37,209,119,250,142,251,193,138,8,223,234,227,114,140,25,219,248,9,207,140,199,2,180,110,112,149,77,200,63,79,100,160,93,19,66,141,153,2,229,19,17,235,95,58,236,197,11,225,235,137,88,105,92,190,23,39,189,219,248,20,164,124,43,184,27,167,201,22,78,217,220,128,83,71,32,51,98,44,176,18,164,203,211,59,208,186,162,43,197,58,222,50,143,126,87,101,1,97,96,47,183,154,207,216,188,52,109,103,187,244,91,7,130,175,158,249,51,73,77,102,175,97,64,209,119,43,11,10,111,154,68,139,209,30,154,60,193,224,94,176,170,178,232,22,198,107,22,174,8,173,112,11,45,164,174,185,0,130,45,155,186,253,153,
247,35,179,196,107,45,73,141,107,152,37,213,119,49,238,15,99,232,32,180,246,13,139,131,129,220,225,0,124,245,241,37,129,211,97,249,129,212,84,59,253,192,100,214,177,9,178,101,112,214,29,127,205,168,204,9,124,135,78,104,233,231,146,170,10,249,33,255,96,108,254,92,83,241,157,79,7,172,183,209,239,67,82,251,197,91,109,106,205,96,143,97,70,31,235,61,146,29,100,253,201,204,224,79,216,58,109,22,244,47,219,180,210,65,211,252,211,148,225,96,48,30,93,156,95,212,48,224,199,224,74,118,156,98,170,141,142,215,44,171,121,80,109,140,159,229,197,131,224,138,62,100,60,12,76,74,249,40,52,47,59,244,131,175,131,72,111,212,183,80,7,60,96,34,10,54,104,20,251,51,184,224,100,25,222,7,39,248,81,226,22,158,109,130,19,202,222,193,201,189,12,115,184,65,235,28,13,72,55,234,151,120,251,84,122,60,119,209,36,161,80,41,36,95,111,178,50,231,171,135,57,218,74,250,14,232,40,83,255,35,139,183,247,204,88,155,161,168,204,115,250,136,48,102,31,180, 45,193,214,150,204,152,146,217,82,189,218,229,254,174,139,110,245,107,175,97,57,24,200,108,26,224,171,183,135,9,156,222,250,104,200,152,222,28,31,179,108,203,75,225,91,6,193,178,228,215,114,149,121,165,164,69,175,29,208,175,124,85,149,134,98,254,189,227,248,72,83,11,157,119,97,172,85,210,207,156,50,251,234,166,119,77,194,128,143,103,74,223,92,63,146,45,60,194,39,48,133,191,197,108,53,112,161,127,163,169,245,0,194,231,31,91,117,59,157,126,239,252,236,220,67,130,63,113,80,178,86,177,53,31,78,239,156,85,51,62,175,8,201,139,242,17,104,20,189,172,187,11,9,73,234,145,88,120,115,211,79,27,119,32,191,86,223,66,1,243,160,22,41,126,161,222,236,175,62,163,131,89,124,31,29,224,139,184,75,120,182,136,14,168,248,136,14,238,101,92,192,23,84,224,158,24,119,173,126,73,150,159,70,151,103,102,154,52,212,91,165,228,207,139,124,93,240,167,253,156,45,37,189,5,183,135,185,255,145,229,187,123,102,176,129,167,233,186,40,232,29,218,132,45,214,186,
155,240,191,198,151,211,100,251,255,15,155,94,20,96, 240,127,141,53,103,188,17,254,7,229,19,231,117,

View file

@ -81,7 +81,7 @@ Vector<String> GatherLabels(const RichText& text)
String WriteTopic(const char *title, const RichText& text) String WriteTopic(const char *title, const RichText& text)
{ {
StringBuffer r; StringBuffer r;
r << "topic " << AsCString(title) << ";\n"; r << "topic " << AsCString(title) << ";\r\n";
r << AsQTF(text, CHARSET_UTF8, QTF_BODY|QTF_ALL_STYLES|QTF_CRLF); r << AsQTF(text, CHARSET_UTF8, QTF_BODY|QTF_ALL_STYLES|QTF_CRLF);
return r; return r;
} }

View file

@ -25,6 +25,8 @@ void IdeFileIcon0(bool dir, const String& filename, Image& img, bool fast = fals
img = fast ? IdeCommonImg::FastSource() : IdeCommonImg::Source(); img = fast ? IdeCommonImg::FastSource() : IdeCommonImg::Source();
if(ext == ".sch") if(ext == ".sch")
img = IdeCommonImg::Sch(); img = IdeCommonImg::Sch();
if(filename == "Copying")
img = IdeCommonImg::License();
} }
Image IdeFileImage(const String& filename, bool fast) Image IdeFileImage(const String& filename, bool fast)

View file

@ -1,3 +1,21 @@
IMAGE_BEGIN(License)
IMAGE_SCAN("Ð")
IMAGE_SCAN("ˆ\0\0\0Æ")
IMAGE_SCAN("Â\1\0\0\0†\377\377\377\0\0\0Å")
IMAGE_SCAN("Â\4\0\0\0\377\377\377\0\0\377\0\0€ƒ\377\377\377\3\0\0\0\377\377\377\0\0\0Ä")
IMAGE_SCAN("Â\4\0\0\0\377\377\377\0\0\377\0\0€ƒ\377\377\377„\0\0\0Ã")
IMAGE_SCAN("Â\4\0\0\0\377\377\377\0\0\377\0\0€†\377\377\377\1\0\0\0Ã")
IMAGE_SCAN("Â\4\0\0\0\377\377\377\0\0\377\0\0€†\377\377\377\1\0\0\0Ã")
IMAGE_SCAN("Â\4\0\0\0\377\377\377\0\0\377\0\0€†\377\377\377\1\0\0\0Ã")
IMAGE_SCAN("Â\4\0\0\0\377\377\377\0\0\377\0\0€†\377\377\377\1\0\0\0Ã")
IMAGE_SCAN("Â\4\0\0\0\377\377\377\0\0\377\0\0€†\377\377\377\1\0\0\0Ã")
IMAGE_SCAN("Â\3\0\0\0\377\377\377\0\0\377†\0\0€\2\377\377\377\0\0\0Ã")
IMAGE_SCAN("Â\2\0\0\0\377\377\377‡\0\0\377\2\377\377\377\0\0\0Ã")
IMAGE_SCAN("Â\1\0\0\0‰\377\377\377\1\0\0\0Ã")
IMAGE_SCAN("‹\0\0\0Ã")
IMAGE_SCAN("Ð")
IMAGE_SCAN("Ð")
IMAGE_PACKED(License, "\2\20\0\0\0\20\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0")
IMAGE_BEGIN(Sch) IMAGE_BEGIN(Sch)
IMAGE_SCAN("Ð") IMAGE_SCAN("Ð")
IMAGE_SCAN("ć\0\0\0Å") IMAGE_SCAN("ć\0\0\0Å")