fix bug in s:get and listen allowing buffer underflow to corrupt memory

FossilOrigin-Name: 337c41eaf18589c1d8201be02574b477455023d3508a9657aa6e08129386dc2d
This commit is contained in:
crc 2021-07-03 16:40:41 +00:00
parent 8fcf6219ea
commit 999a3e9a29
4 changed files with 286 additions and 287 deletions

View file

@ -1850,7 +1850,7 @@ generic "keyboard" input, the basic listener here can be used.
dup [ #8 eq? ] [ #127 eq? ] bi or ;
:check-bs (c-c)
bs? [ buffer:get buffer:get drop-pair ] if ;
bs? [ buffer:size #2 gteq? [ buffer:get drop ] if buffer:get drop ] if ;
---reveal---
:c:get (-c) hook #1 io:scan-for io:invoke ;

View file

@ -36,7 +36,6 @@ Using this, a simple `s:get` can be implemented very easily as
a quote which looks for an end of line character.
~~~
:s:get (-s) [ [ ASCII:LF eq? ] [ ASCII:CR eq? ] bi or ] parse-until ;
:s:get-word (-s) &c:whitespace? parse-until ;
~~~
@ -69,7 +68,8 @@ startup flags passed.
(c-f) :eol? @EOT [ ASCII:CR eq? ] [ ASCII:LF eq? ] bi or ;
(s-sf) :valid? dup s:length n:strictly-positive? ;
(c-c) :check-eof dup [ #-1 eq? ] [ ASCII:EOT eq? ] bi or [ bye ] if ;
:bs buffer:get buffer:get drop-pair ;
:bs buffer:size #2 gteq?
[ buffer:get drop ] if buffer:get drop ;
(c-c) :check-bs dup [ ASCII:BS eq? ] [ ASCII:DEL eq? ] bi or [ bs ] if ;
(c-c) :check check-eof check-bs ;
(-c) :character c:get dup buffer:add ;

BIN
ngaImage

Binary file not shown.

View file

@ -10,8 +10,8 @@
#define CELL_MAX LLONG_MAX - 1
#endif
#endif
CELL ngaImageCells = 15383;
CELL ngaImage[] = { 1793,15016,15365,15382,202107,400,372,1069,1535,0,10,1,10,2,10,3,10,4,10,
CELL ngaImageCells = 15373;
CELL ngaImage[] = { 1793,15006,15355,15372,202107,400,372,1069,1535,0,10,1,10,2,10,3,10,4,10,
5,10,6,10,7,10,8,10,11,10,12,10,13,10,14,10,15,10,16,10,
17,10,18,10,19,10,20,10,21,10,22,10,23,10,24,10,25,68223234,1,2575,
85000450,1,656912,161,178,268505089,63,62,285281281,0,63,2063,10,101384453,0,9,10,68485378,255,18350338,
@ -21,7 +21,7 @@ CELL ngaImage[] = { 1793,15016,15365,15382,202107,400,372,1069,1535,0,10,1,10,2,
128,1793,135,2049,135,117506307,0,128,0,524545,26,133,168820993,0,147,1642241,147,134283523,11,133,
1793,128,524545,2049,128,1793,128,16846593,147,161,178,1793,64,16846593,147,133,178,1793,64,7,
10,659713,1,659713,2,659713,3,1793,188,17108737,3,2,524559,128,2049,128,2049,128,2049,142,
168820998,2,14300,1069,167841793,201,9,17826049,0,201,2,15,25,524546,184,134287105,202,116,2305,203,
168820998,2,14313,1069,167841793,201,9,17826049,0,201,2,15,25,524546,184,134287105,202,116,2305,203,
459023,211,134287361,202,206,659201,201,10,659969,7,2049,56,25,17694978,58,227,9,84152833,48,319750404,
226,117507601,229,184618754,45,25,16974851,-1,168886532,1,134284289,1,242,134284289,0,229,660227,32,0,0,
115,105,103,105,108,58,105,0,285278479,259,6,2576,524546,102,1641217,1,167838467,256,2049,271,
@ -162,7 +162,7 @@ CELL ngaImage[] = { 1793,15016,15365,15382,202107,400,372,1069,1535,0,10,1,10,2,
2967,166,110,58,105,110,99,0,659713,1,10,2958,2979,166,110,58,100,101,99,0,
659969,1,10,2970,2996,166,110,58,98,101,116,119,101,101,110,63,0,67503109,1793,3004,
67503109,67503109,2049,2950,10,1,2999,2049,2165,11,10,2982,3023,166,83,99,111,112,101,76,
105,115,116,0,15060,15112,10,3010,3032,166,123,123,0,2049,1570,2,1,3023,2049,59,
105,115,116,0,15050,15102,10,3010,3032,166,123,123,0,2049,1570,2,1,3023,2049,59,
16,10,3026,3057,166,45,45,45,114,101,118,101,97,108,45,45,45,0,2049,1570,
1,3023,2049,2967,16,10,3041,3071,166,125,125,0,1,3023,2049,56,4,15,11,1793,
3085,3841,3023,4097,2,10,1,3080,1793,3111,3841,3023,1793,3106,1,2,983567,1,3023,2049,
@ -501,283 +501,282 @@ CELL ngaImage[] = { 1793,15016,15365,15382,202107,400,372,1069,1535,0,10,1,10,2,
9744,1,32,11,10,1,9740,2049,2214,22,22,10,9714,9761,166,118,97,108,105,100,
63,0,2,2049,102,2049,2620,10,9751,9774,166,98,115,63,0,2,1793,9781,1,8,
11,10,1,9777,1793,9789,1,127,11,10,1,9785,2049,2177,22,10,9767,9807,166,99,
104,101,99,107,45,98,115,0,2049,9774,1793,9817,2049,3666,2049,3666,771,10,1,9811,
9,10,9697,9830,166,99,58,103,101,116,0,1793,9832,1,1,2049,9541,2049,9524,10,
9821,9848,166,115,58,103,101,116,0,1793,9876,1,7,15,2049,3734,1793,9867,2049,9830,
2,2049,3642,2049,9807,2049,9722,10,1,9857,2049,2305,2049,3608,2049,4029,10,1,9850,2049,
3758,10,9839,9888,166,98,121,101,0,26,10,9881,9900,166,108,105,115,116,101,110,
0,2049,9848,2049,9761,1,400,1,15,2049,64,1,9900,7,10,9890,9932,166,102,105,
108,101,58,111,112,101,114,97,116,105,111,110,0,1,4,2049,9541,2,2049,2639,
1793,9982,3,2049,3952,69,114,114,111,114,58,32,100,101,118,105,99,101,32,40,
48,48,48,52,41,32,110,111,116,32,102,111,117,110,100,0,1,9944,2049,9637,
2049,9600,10,1,9941,2049,2730,2049,9524,10,9914,0,154,102,105,108,101,58,82,0,
9989,1,154,102,105,108,101,58,87,0,9999,2,154,102,105,108,101,58,65,0,
10009,3,154,102,105,108,101,58,82,43,0,10019,10043,166,102,105,108,101,58,111,
112,101,110,0,1,0,2049,9932,10,10030,10062,166,102,105,108,101,58,99,108,111,
115,101,0,1,1,2049,9932,10,10048,10080,166,102,105,108,101,58,114,101,97,100,
0,1,2,2049,9932,10,10067,10099,166,102,105,108,101,58,119,114,105,116,101,0,
1,3,2049,9932,10,10085,10117,166,102,105,108,101,58,116,101,108,108,0,1,4,
2049,9932,10,10104,10135,166,102,105,108,101,58,115,101,101,107,0,1,5,2049,9932,
10,10122,10153,166,102,105,108,101,58,115,105,122,101,0,1,6,2049,9932,10,10140,
10173,166,102,105,108,101,58,100,101,108,101,116,101,0,1,7,2049,9932,10,10158,
10192,166,102,105,108,101,58,102,108,117,115,104,0,1,8,2049,9932,10,10178,10213,
166,102,105,108,101,58,101,120,105,115,116,115,63,0,1,0,2049,10043,2,2049,
2620,1793,10227,2049,10062,2049,2427,10,1,10222,1793,10235,3,2049,2439,10,1,10231,2049,64,
10,10197,10265,166,102,105,108,101,58,111,112,101,110,45,102,111,114,45,114,101,
97,100,105,110,103,0,1,0,2049,10043,2,2049,10153,4,10,10240,10298,166,102,105,
108,101,58,111,112,101,110,45,102,111,114,45,97,112,112,101,110,100,0,1,
2,2049,10043,2,2049,10153,4,10,10274,10332,166,102,105,108,101,58,111,112,101,110,
45,102,111,114,45,119,114,105,116,105,110,103,0,1,1,2049,10043,10,10307,10344,
154,70,73,68,0,0,10337,10353,154,83,105,122,101,0,0,10345,10364,154,65,99,
116,105,111,110,0,0,10354,10375,154,66,117,102,102,101,114,0,0,10365,10385,166,
45,101,111,102,63,0,3841,10344,2049,10117,3841,10353,13,10,10376,10405,166,112,114,101,
115,101,114,118,101,0,1,10344,1793,10416,1,10353,1,25,2049,3491,10,1,10409,2049,
3491,10,10307,10439,166,102,105,108,101,58,114,101,97,100,45,108,105,110,101,0,
4097,10344,1793,10496,2049,1929,2,4097,10375,2049,3734,1793,10488,3841,10344,2049,10080,2,2049,3642,
1793,10465,1,13,11,10,1,10461,1793,10473,1,10,11,10,1,10469,1793,10481,1,0,
11,10,1,10477,2049,2214,22,22,10,1,10452,2049,2305,2049,3666,3,10,1,10443,2049,
3758,3841,10375,10,10421,10525,166,102,105,108,101,58,102,111,114,45,101,97,99,104,
45,108,105,110,101,0,1793,10556,4097,10364,2049,10265,4097,10344,4097,10353,1793,10547,3841,10344,
2049,10439,3841,10364,8,2049,10385,10,1,10537,2049,2282,3841,10344,2049,10062,10,1,10527,2049,
10405,10,10503,10568,154,70,73,68,0,0,10503,10583,166,102,105,108,101,58,115,108,
117,114,112,0,1793,10610,4,2049,3734,2049,10265,4097,10568,1793,10601,3841,10568,2049,10080,2049,
3642,10,1,10594,2049,2353,3841,10568,2049,10062,10,1,10585,2049,3758,10,10569,10628,166,102,
105,108,101,58,115,112,101,119,0,2049,10332,4,1793,10637,67502597,2049,10099,10,1,10633,
2049,4175,2049,10062,10,10615,10663,166,102,108,111,97,116,58,111,112,101,114,97,116,
105,111,110,0,1,2,2049,9541,2,2049,2639,1793,10713,3,2049,3952,69,114,114,111,
114,58,32,100,101,118,105,99,101,32,40,48,48,48,50,41,32,110,111,116,
32,102,111,117,110,100,0,1,10675,2049,9637,2049,9600,10,1,10672,2049,2730,2049,9524,
10,10644,10734,166,110,58,116,111,45,102,108,111,97,116,0,1,0,2049,10663,10,
10720,10753,166,115,58,116,111,45,102,108,111,97,116,0,1,1,2049,10663,10,10739,
10773,166,102,58,116,111,45,110,117,109,98,101,114,0,1,2,2049,10663,10,10758,
10793,166,102,58,116,111,45,115,116,114,105,110,103,0,2049,3933,2,1,3,2049,
10663,10,10778,10808,166,102,58,43,0,1,4,2049,10663,10,10801,10820,166,102,58,45,
0,1,5,2049,10663,10,10813,10832,166,102,58,42,0,1,6,2049,10663,10,10825,10844,
166,102,58,47,0,1,7,2049,10663,10,10837,10860,166,102,58,102,108,111,111,114,
0,1,8,2049,10663,10,10849,10878,166,102,58,99,101,105,108,105,110,103,0,1,
9,2049,10663,10,10865,10893,166,102,58,115,113,114,116,0,1,10,2049,10663,10,10883,
10907,166,102,58,101,113,63,0,1,11,2049,10663,10,10898,10922,166,102,58,45,101,
113,63,0,1,12,2049,10663,10,10912,10936,166,102,58,108,116,63,0,1,13,2049,
10663,10,10927,10950,166,102,58,103,116,63,0,1,14,2049,10663,10,10941,10966,166,102,
58,100,101,112,116,104,0,1,15,2049,10663,10,10955,10980,166,102,58,100,117,112,
0,1,16,2049,10663,10,10971,10995,166,102,58,100,114,111,112,0,1,17,2049,10663,
10,10985,11010,166,102,58,115,119,97,112,0,1,18,2049,10663,10,11000,11024,166,102,
58,108,111,103,0,1,19,2049,10663,10,11015,11040,166,102,58,112,111,119,101,114,
0,1,20,2049,10663,10,11029,11054,166,102,58,115,105,110,0,1,21,2049,10663,10,
11045,11068,166,102,58,99,111,115,0,1,22,2049,10663,10,11059,11082,166,102,58,116,
97,110,0,1,23,2049,10663,10,11073,11097,166,102,58,97,115,105,110,0,1,24,
2049,10663,10,11087,11112,166,102,58,97,99,111,115,0,1,25,2049,10663,10,11102,11127,
166,102,58,97,116,97,110,0,1,26,2049,10663,10,11117,11142,166,102,58,112,117,
115,104,0,1,27,2049,10663,10,11132,11156,166,102,58,112,111,112,0,1,28,2049,
10663,10,11147,11173,166,102,58,97,100,101,112,116,104,0,1,29,2049,10663,10,11161,
11188,166,102,58,111,118,101,114,0,2049,11142,2049,10980,2049,11156,2049,11010,10,11178,11207,
166,102,58,116,117,99,107,0,2049,10980,2049,11142,2049,11010,2049,11156,10,11197,11225,166,
102,58,110,105,112,0,2049,11010,2049,10995,10,11216,11245,166,102,58,100,114,111,112,
45,112,97,105,114,0,2049,10995,2049,10995,10,11230,11264,166,102,58,100,117,112,45,
112,97,105,114,0,2049,11188,2049,11188,10,11250,11278,166,102,58,114,111,116,0,2049,
11142,2049,11010,2049,11156,2049,11010,10,11269,11298,178,115,105,103,105,108,58,46,0,2049,
1873,1,3978,1,3907,2049,64,1,10753,2049,166,10,11287,11323,166,102,58,115,113,117,
97,114,101,0,2049,10980,2049,10832,10,11311,11343,166,102,58,112,111,115,105,116,105,
118,101,63,0,1,0,2049,10734,2049,10950,10,11328,11365,166,102,58,110,101,103,97,
116,105,118,101,63,0,1,0,2049,10734,2049,10936,10,11350,11384,166,102,58,110,101,
103,97,116,101,0,1,-1,2049,10734,2049,10832,10,11372,11400,166,102,58,97,98,115,
0,2049,10980,2049,11365,1,11384,9,10,11391,11417,166,102,58,112,117,116,0,2049,10793,
2049,9637,10,11408,11430,166,102,58,80,73,0,2049,3952,51,46,49,52,49,53,57,
50,54,53,52,0,1,11432,2049,10753,10,11422,11456,166,102,58,69,0,2049,3952,50,
46,55,49,56,50,56,49,56,50,56,0,1,11458,2049,10753,10,11449,11484,166,102,
58,78,65,78,0,2049,3952,48,0,1,11486,2049,10753,2049,3952,48,0,1,11494,2049,
10753,2049,10844,10,11475,11512,166,102,58,73,78,70,0,2049,3952,49,46,48,0,1,
11514,2049,10753,2049,3952,48,0,1,11524,2049,10753,2049,10844,10,11503,11543,166,102,58,45,
73,78,70,0,2049,3952,45,49,46,48,0,1,11545,2049,10753,2049,3952,48,0,1,
11556,2049,10753,2049,10844,10,11533,11575,166,102,58,110,97,110,63,0,2049,10980,2049,10922,
10,11565,11590,166,102,58,105,110,102,63,0,2049,11512,2049,10907,10,11580,11606,166,102,
58,45,105,110,102,63,0,2049,11543,2049,10907,10,11595,11622,166,102,58,114,111,117,
110,100,0,2049,10980,2049,11365,1793,11643,2049,3952,48,46,53,0,1,11630,2049,10753,2049,
10820,2049,10878,10,1,11628,1793,11662,2049,3952,48,46,53,0,1,11649,2049,10753,2049,10808,
2049,10860,10,1,11647,2049,64,10,11611,11676,166,102,58,109,105,110,0,2049,11264,2049,
10936,1,10995,1,11225,2049,64,10,11667,11696,166,102,58,109,97,120,0,2049,11264,2049,
10950,1,10995,1,11225,2049,64,10,11687,11718,166,102,58,108,105,109,105,116,0,2049,
11010,2049,11142,2049,11676,2049,11156,2049,11696,10,11707,11743,166,102,58,98,101,116,119,101,
101,110,63,0,2049,11278,2049,10980,2049,11142,2049,11278,2049,11278,2049,11718,2049,11156,2049,10907,
10,11729,11769,166,102,58,105,110,99,0,2049,3952,49,0,1,11771,2049,10753,2049,10808,
10,11760,11789,166,102,58,100,101,99,0,2049,3952,49,0,1,11791,2049,10753,2049,10820,
10,11780,11810,166,102,58,99,97,115,101,0,2049,11188,2049,10907,1793,11822,2049,10995,8,
1,-1,10,1,11816,1793,11830,3,1,0,10,1,11826,2049,64,25,6,771,10,11800,
11848,166,102,58,115,105,103,110,0,2049,10980,2049,3952,48,0,1,11852,2049,10753,2049,
10907,1793,11867,1,0,2049,10995,10,1,11862,2049,2730,2049,3952,48,0,1,11873,2049,10753,
2049,10950,1793,11886,1,1,10,1,11883,1793,11893,1,-1,10,1,11890,2049,64,10,11838,
2147483645,154,101,58,77,65,88,0,11898,-2147483645,154,101,58,77,73,78,0,11907,-2147483647,154,
101,58,78,65,78,0,11916,2147483646,154,101,58,73,78,70,0,11925,-2147483646,154,101,58,
45,73,78,70,0,11934,11952,166,101,58,110,63,0,1,-2147483645,2049,2967,1,2147483645,2049,
2979,2049,2996,10,11944,11973,166,101,58,109,97,120,63,0,1,2147483645,11,10,11963,11987,
166,101,58,109,105,110,63,0,1,-2147483645,11,10,11977,12002,166,101,58,122,101,114,
111,63,0,2049,2604,10,11991,12015,166,101,58,110,97,110,63,0,1,-2147483647,11,10,
12005,12029,166,101,58,105,110,102,63,0,1,2147483646,11,10,12019,12044,166,101,58,45,
105,110,102,63,0,1,-2147483646,11,10,12033,12058,166,101,58,99,108,105,112,0,1,
-2147483645,1,2147483645,2049,2950,10,12048,12073,166,102,58,69,49,0,1793,12075,2049,3952,49,46,
101,53,0,1,12077,2049,10753,10,12065,12104,166,102,58,115,105,103,110,101,100,45,
115,113,114,116,0,2049,10980,2049,11848,2049,11400,2049,10893,2049,10734,2049,10832,10,12087,12136,
166,102,58,115,105,103,110,101,100,45,115,113,117,97,114,101,0,2049,10980,2049,
11848,2049,10980,2049,10832,2049,10734,2049,10832,10,12117,12161,166,102,58,45,115,104,105,102,
116,0,2049,12073,2049,10832,10,12149,12178,166,102,58,43,115,104,105,102,116,0,2049,
12073,2049,10844,10,12166,12196,166,102,58,43,101,110,99,111,100,101,0,2049,12104,2049,
12161,10,12183,12214,166,102,58,45,101,110,99,111,100,101,0,2049,10980,2049,11848,2049,
12178,2049,10980,2049,10832,2049,10734,2049,10832,10,12117,12239,166,102,58,116,111,45,101,0,
2049,10980,2049,11575,1793,12250,2049,10995,1,-2147483647,10,1,12245,2049,2730,2049,10980,2049,11590,1793,
12265,2049,10995,1,2147483646,10,1,12260,2049,2730,2049,10980,2049,11606,1793,12280,2049,10995,1,-2147483646,
10,1,12275,2049,2730,2049,12196,2049,11622,2049,10773,2049,12058,1,-2147483645,1,10995,2049,2450,1,
2147483645,1,10995,2049,2450,10,12229,12315,166,101,58,116,111,45,102,0,1,-2147483647,1,11484,
2049,2450,1,2147483646,1,11512,2049,2450,1,-2147483646,1,11543,2049,2450,2049,10734,2049,12214,10,12305,
12349,166,102,58,115,116,111,114,101,0,1,12239,2049,2155,16,10,12338,12366,166,102,
58,102,101,116,99,104,0,15,2049,12315,10,12355,12386,166,102,58,100,117,109,112,
45,115,116,97,99,107,0,2049,10966,2,1,11142,2049,2353,1793,12404,2049,11156,2049,10980,
2049,11417,2049,9611,10,1,12395,2049,2353,10,12370,12426,166,102,58,100,117,109,112,45,
97,115,116,97,99,107,0,2049,11173,2,1,11156,2049,2353,1793,12444,2049,10980,2049,11417,
2049,9611,2049,11142,10,1,12435,2049,2353,10,12409,12458,166,101,58,112,117,116,0,1,
2147483645,1793,12475,2049,3952,101,58,77,65,88,0,1,12464,2049,9637,10,1,12462,2049,2450,
1,-2147483645,1793,12496,2049,3952,101,58,77,73,78,0,1,12485,2049,9637,10,1,12483,2049,
2450,1,0,1793,12515,2049,3952,101,58,48,0,1,12506,2049,9637,10,1,12504,2049,2450,
1,-2147483647,1793,12536,2049,3952,101,58,78,65,78,0,1,12525,2049,9637,10,1,12523,2049,
2450,1,2147483646,1793,12557,2049,3952,101,58,73,78,70,0,1,12546,2049,9637,10,1,12544,
2049,2450,1,-2147483646,1793,12579,2049,3952,101,58,45,73,78,70,0,1,12567,2049,9637,10,
1,12565,2049,2450,2049,12315,2049,11417,10,12449,12607,166,105,111,58,117,110,105,120,45,
115,121,115,99,97,108,108,0,1,8,2049,9541,2,2049,2639,1793,12657,3,2049,3952,
69,114,114,111,114,58,32,100,101,118,105,99,101,32,40,48,48,48,56,41,
32,110,111,116,32,102,111,117,110,100,0,1,12619,2049,9637,2049,9600,10,1,12616,
2049,2730,2049,9524,10,12588,12679,166,117,110,105,120,58,115,121,115,116,101,109,0,
1,0,2049,12607,10,12664,12697,166,117,110,105,120,58,102,111,114,107,0,1,1,
2049,12607,10,12684,12716,166,117,110,105,120,58,101,120,101,99,48,0,1,2,2049,
12607,10,12702,12735,166,117,110,105,120,58,101,120,101,99,49,0,1,3,2049,12607,
10,12721,12754,166,117,110,105,120,58,101,120,101,99,50,0,1,4,2049,12607,10,
12740,12773,166,117,110,105,120,58,101,120,101,99,51,0,1,5,2049,12607,10,12759,
12791,166,117,110,105,120,58,101,120,105,116,0,1,6,2049,12607,10,12778,12811,166,
117,110,105,120,58,103,101,116,112,105,100,0,1,7,2049,12607,10,12796,12829,166,
117,110,105,120,58,119,97,105,116,0,1,8,2049,12607,10,12816,12847,166,117,110,
105,120,58,107,105,108,108,0,1,9,2049,12607,10,12834,12866,166,117,110,105,120,
58,112,111,112,101,110,0,1,10,2049,12607,10,12852,12886,166,117,110,105,120,58,
112,99,108,111,115,101,0,1,11,2049,12607,10,12871,12905,166,117,110,105,120,58,
99,104,100,105,114,0,1,13,2049,12607,10,12891,12925,166,117,110,105,120,58,103,
101,116,101,110,118,0,1,14,2049,12607,10,12910,12945,166,117,110,105,120,58,112,
117,116,101,110,118,0,1,15,2049,12607,10,12930,12964,166,117,110,105,120,58,115,
108,101,101,112,0,1,16,2049,12607,10,12950,12985,166,117,110,105,120,58,101,120,
101,99,117,116,101,0,1,17,2049,12607,10,12969,13003,166,117,110,105,120,58,112,
105,112,101,0,1,0,2049,12866,1,10439,1,12886,2049,2177,10,12990,13030,166,117,110,
105,120,58,103,101,116,45,99,119,100,0,2049,3952,112,119,100,0,1,13032,2049,
13003,2049,6300,2049,3952,47,0,1,13044,2049,4157,10,13014,13078,166,117,110,105,120,58,
99,111,117,110,116,45,102,105,108,101,115,45,105,110,45,99,119,100,0,2049,
3952,108,115,32,45,49,32,124,32,119,99,32,45,108,0,1,13080,2049,13003,2049,
6300,2049,249,10,13051,13125,166,117,110,105,120,58,102,111,114,45,101,97,99,104,
45,102,105,108,101,0,2049,3952,108,115,32,45,49,32,45,112,0,1,13127,1,
0,2049,12866,2049,13078,1793,13160,1793,13155,2049,10439,2049,3907,67502597,8,10,1,13148,2049,2165,
10,1,13146,2049,2353,2049,12886,3,10,13103,13177,166,115,116,97,114,116,0,4,2049,
3734,1,0,2049,12866,10,13168,13193,166,114,101,97,100,0,2,2049,10080,2,2049,3642,
2049,2604,10,13185,13212,166,102,105,110,105,115,104,0,2049,12886,2049,3714,10,13103,13236,
166,117,110,105,120,58,115,108,117,114,112,45,112,105,112,101,0,1793,13247,2049,
13177,1,13193,2049,2305,2049,13212,10,1,13238,2049,3758,10,13217,13264,166,110,58,114,97,
110,100,111,109,0,1,10,2049,9541,2,2049,2639,1793,13314,3,2049,3952,69,114,114,
111,114,58,32,100,101,118,105,99,101,32,40,48,48,49,48,41,32,110,111,
116,32,102,111,117,110,100,0,1,13276,2049,9637,2049,9600,10,1,13273,2049,2730,2049,
9524,10,13252,13341,166,115,111,99,107,101,116,58,111,112,101,114,97,116,105,111,
110,0,1,7,2049,9541,2,2049,2639,1793,13391,3,2049,3952,69,114,114,111,114,58,
32,100,101,118,105,99,101,32,40,48,48,48,55,41,32,110,111,116,32,102,
111,117,110,100,0,1,13353,2049,9637,2049,9600,10,1,13350,2049,2730,2049,9524,10,13321,
13422,166,115,111,99,107,101,116,58,103,101,116,104,111,115,116,98,121,110,97,
109,101,0,1,0,2049,13341,10,13398,13444,166,115,111,99,107,101,116,58,99,114,
101,97,116,101,0,1,1,2049,13341,10,13427,13464,166,115,111,99,107,101,116,58,
98,105,110,100,0,1,2,2049,13341,10,13449,13486,166,115,111,99,107,101,116,58,
108,105,115,116,101,110,0,1,3,2049,13341,10,13469,13508,166,115,111,99,107,101,
116,58,97,99,99,101,112,116,0,1,4,2049,13341,10,13491,13531,166,115,111,99,
107,101,116,58,99,111,110,110,101,99,116,0,1,5,2049,13341,10,13513,13551,166,
115,111,99,107,101,116,58,115,101,110,100,0,1,6,2049,13341,10,13536,13571,166,
115,111,99,107,101,116,58,114,101,99,118,0,1,8,2049,13341,10,13556,13592,166,
115,111,99,107,101,116,58,99,108,111,115,101,0,1,10,2049,13341,10,13576,13617,
166,115,111,99,107,101,116,58,99,111,110,102,105,103,117,114,101,0,1,11,
2049,13341,10,13597,13642,166,115,99,114,105,112,116,58,111,112,101,114,97,116,105,
111,110,0,1,9,2049,9541,2,2049,2639,1793,13692,3,2049,3952,69,114,114,111,114,
58,32,100,101,118,105,99,101,32,40,48,48,48,57,41,32,110,111,116,32,
102,111,117,110,100,0,1,13654,2049,9637,2049,9600,10,1,13651,2049,2730,2049,9524,10,
13597,13719,166,115,99,114,105,112,116,58,97,114,103,117,109,101,110,116,115,0,
1,0,2049,13642,10,13699,13747,166,115,99,114,105,112,116,58,103,101,116,45,97,
114,103,117,109,101,110,116,0,2049,3933,4,1,1,2049,13642,10,13724,13766,166,105,
110,99,108,117,100,101,0,1,2,2049,13642,10,13755,13786,166,115,99,114,105,112,
116,58,110,97,109,101,0,2049,3933,1,3,2049,13642,10,13771,13816,166,115,99,114,
105,112,116,58,99,117,114,114,101,110,116,45,102,105,108,101,0,2049,3933,1,
4,2049,13642,10,13793,13846,178,115,99,114,105,112,116,58,99,117,114,114,101,110,
116,45,108,105,110,101,0,1,5,2049,13642,2049,154,10,13823,13877,166,115,99,114,
105,112,116,58,105,103,110,111,114,101,45,116,111,45,101,111,108,0,1,6,
2049,13642,10,13853,13906,166,115,99,114,105,112,116,58,97,98,111,114,116,45,105,
110,99,108,117,100,101,0,1,7,2049,13642,10,13882,13920,166,97,98,111,114,116,
0,1,147,2049,3459,1,8,2049,13642,10,13911,13948,166,99,108,111,99,107,58,111,
112,101,114,97,116,105,111,110,0,1,5,2049,9541,2,2049,2639,1793,13998,3,2049,
3952,69,114,114,111,114,58,32,100,101,118,105,99,101,32,40,48,48,48,53,
41,32,110,111,116,32,102,111,117,110,100,0,1,13960,2049,9637,2049,9600,10,1,
13957,2049,2730,2049,9524,10,13929,14024,166,99,108,111,99,107,58,116,105,109,101,115,
116,97,109,112,0,1,0,2049,13948,10,14005,14042,166,99,108,111,99,107,58,100,
97,121,0,1,1,2049,13948,10,14029,14062,166,99,108,111,99,107,58,109,111,110,
116,104,0,1,2,2049,13948,10,14047,14081,166,99,108,111,99,107,58,121,101,97,
114,0,1,3,2049,13948,10,14067,14100,166,99,108,111,99,107,58,104,111,117,114,
0,1,4,2049,13948,10,14086,14121,166,99,108,111,99,107,58,109,105,110,117,116,
101,0,1,5,2049,13948,10,14105,14142,166,99,108,111,99,107,58,115,101,99,111,
110,100,0,1,6,2049,13948,10,14126,14164,166,99,108,111,99,107,58,117,116,99,
58,100,97,121,0,1,7,2049,13948,10,14147,14188,166,99,108,111,99,107,58,117,
116,99,58,109,111,110,116,104,0,1,8,2049,13948,10,14169,14211,166,99,108,111,
99,107,58,117,116,99,58,121,101,97,114,0,1,9,2049,13948,10,14193,14234,166,
99,108,111,99,107,58,117,116,99,58,104,111,117,114,0,1,10,2049,13948,10,
14216,14259,166,99,108,111,99,107,58,117,116,99,58,109,105,110,117,116,101,0,
1,11,2049,13948,10,14239,14284,166,99,108,111,99,107,58,117,116,99,58,115,101,
99,111,110,100,0,1,12,2049,13948,10,14264,14296,166,84,73,66,0,1,7,15,
10,14289,14314,166,105,109,97,103,101,58,115,97,118,101,0,1,1000,2049,9541,2049,
9524,10,14300,14330,166,101,100,105,116,63,0,2,1793,14337,1,8,11,10,1,14333,
1793,14345,1,127,11,10,1,14341,2049,2177,22,10,14321,14361,166,103,97,116,104,101,
114,0,2049,14330,1,15,1,3642,2049,64,10,14351,14379,166,99,121,99,108,101,0,
2049,9830,2049,2145,4,8,2049,2536,25,3,2049,14361,1,14379,7,10,14300,14410,166,112,
97,114,115,101,45,117,110,116,105,108,0,1793,14422,2049,3933,2049,3734,2049,14379,771,
2049,3608,10,1,14412,2049,3758,10,14395,14436,166,115,58,103,101,116,0,1793,14458,1793,
14444,1,10,11,10,1,14440,1793,14452,1,13,11,10,1,14448,2049,2177,22,10,1,
14438,2049,14410,10,14427,14477,166,115,58,103,101,116,45,119,111,114,100,0,1,5902,
2049,14410,10,14463,14491,166,99,108,101,97,114,0,2049,3952,92,94,91,50,74,92,
94,91,48,59,48,72,0,1,14493,2049,7627,2049,9637,10,14482,14523,154,78,111,69,
99,104,111,0,0,14513,14531,154,69,79,84,0,0,14524,14544,154,73,103,110,111,
114,105,110,103,0,0,14532,14558,166,105,103,110,111,114,105,110,103,63,0,3841,
14544,10,14545,14572,166,118,101,114,115,105,111,110,0,3841,4,1,100,20,10,14561,
14587,166,100,111,110,101,63,0,2,4097,14531,1793,14596,1,13,11,10,1,14592,1793,
14604,1,10,11,10,1,14600,1793,14612,1,32,11,10,1,14608,2049,2214,22,22,10,
14578,14627,166,101,111,108,63,0,3841,14531,1793,14635,1,13,11,10,1,14631,1793,14643,
1,10,11,10,1,14639,2049,2177,22,10,14619,14659,166,118,97,108,105,100,63,0,
2,2049,102,2049,2686,10,14649,14678,166,99,104,101,99,107,45,101,111,102,0,2,
1793,14685,1,-1,11,10,1,14681,1793,14693,1,4,11,10,1,14689,2049,2177,22,1793,
14703,2049,9888,10,1,14700,9,10,14665,14713,166,98,115,0,2049,3666,2049,3666,771,10,
14707,14731,166,99,104,101,99,107,45,98,115,0,2,1793,14738,1,8,11,10,1,
14734,1793,14746,1,127,11,10,1,14742,2049,2177,22,1793,14756,2049,14713,10,1,14753,9,
10,14719,14769,166,99,104,101,99,107,0,2049,14678,2049,14731,10,14760,14787,166,99,104,
97,114,97,99,116,101,114,0,2049,9830,2,2049,3642,10,14774,14803,166,98,117,102,
102,101,114,0,1793,14813,2049,14296,2049,3734,8,2049,3608,10,1,14805,2049,3758,10,14793,
14832,166,114,101,97,100,45,116,111,107,101,110,0,1793,14848,1793,14843,2049,14787,2049,
14769,2049,14587,10,1,14836,2049,2305,10,1,14834,2049,14803,2049,4029,10,14818,14864,166,105,
110,112,117,116,0,2049,14832,2049,14659,10,14855,14880,166,112,114,111,99,101,115,115,
0,2049,14558,1793,14898,771,2049,14627,1793,14894,1,14544,2049,3459,10,1,14889,9,10,1,
14884,2049,2730,1,400,1,15,2049,64,10,14513,14915,178,47,47,0,2049,13877,1,14544,
2049,3446,10,14909,14932,166,98,97,110,110,101,114,0,2049,14572,2049,3952,82,69,84,
82,79,32,49,50,32,40,37,110,46,37,110,41,92,110,0,1,14936,2049,7627,
2049,9637,2049,9705,2049,1543,2049,9705,18,2049,1543,2049,3952,37,110,32,77,97,120,44,
32,37,110,32,85,115,101,100,44,32,37,110,32,70,114,101,101,92,110,0,
1,14972,2049,7627,2049,9637,10,14922,15016,166,108,105,115,116,101,110,0,3841,14523,1793,
15023,2049,14932,10,1,15020,2049,72,2049,14864,2049,14880,1,15027,7,10,15006,15046,166,100,
58,119,111,114,100,115,0,1793,15055,2049,184,2049,9637,2049,9611,10,1,15048,2049,7856,
10,15035,15076,166,100,58,119,111,114,100,115,45,119,105,116,104,0,2049,1929,2049,
4952,1793,15107,2049,184,2,2049,1929,2049,4469,1793,15096,2049,9637,2049,9611,10,1,15091,1793,
15102,3,10,1,15100,2049,64,10,1,15082,2049,7856,10,15060,15131,166,100,105,115,112,
108,97,121,45,105,102,45,108,101,102,116,0,2,2049,1929,2049,4902,1793,15143,2049,
9637,2049,9611,10,1,15138,1793,15149,3,10,1,15147,2049,64,10,15060,15180,166,100,58,
119,111,114,100,115,45,98,101,103,105,110,110,105,110,103,45,119,105,116,104,
0,2049,1929,2049,4952,1793,15191,2049,184,2049,15131,10,1,15186,2049,7856,10,15154,15207,166,
115,58,115,112,108,105,116,0,2049,6417,10,15196,15231,166,115,58,115,112,108,105,
116,45,111,110,45,115,116,114,105,110,103,0,2049,6449,10,15210,15254,166,115,58,
99,111,110,116,97,105,110,115,45,99,104,97,114,63,0,2049,4277,10,15234,15279,
166,115,58,99,111,110,116,97,105,110,115,45,115,116,114,105,110,103,63,0,
2049,4469,10,15257,15304,166,97,58,99,111,110,116,97,105,110,115,45,115,116,114,
105,110,103,63,0,2049,4469,10,15282,15321,166,97,58,105,110,100,101,120,45,111,
102,0,2049,8567,10,15307,15345,166,97,58,105,110,100,101,120,45,111,102,45,115,
116,114,105,110,103,0,2049,8603,10,15324,15362,166,115,58,105,110,100,101,120,45,
111,102,0,2049,4211,10,15348,15379,166,115,58,105,110,100,101,120,45,111,102,0,
2049,4680,10,0 };
104,101,99,107,45,98,115,0,2049,9774,1793,9830,2049,3714,1,2,2049,2563,1793,9823,
2049,3666,3,10,1,9819,9,2049,3666,3,10,1,9811,9,10,9697,9843,166,99,58,
103,101,116,0,1793,9845,1,1,2049,9541,2049,9524,10,9834,9861,166,115,58,103,101,
116,0,1793,9889,1,7,15,2049,3734,1793,9880,2049,9843,2,2049,3642,2049,9807,2049,9722,
10,1,9870,2049,2305,2049,3608,2049,4029,10,1,9863,2049,3758,10,9852,9901,166,98,121,
101,0,26,10,9894,9913,166,108,105,115,116,101,110,0,2049,9861,2049,9761,1,400,
1,15,2049,64,1,9913,7,10,9903,9945,166,102,105,108,101,58,111,112,101,114,
97,116,105,111,110,0,1,4,2049,9541,2,2049,2639,1793,9995,3,2049,3952,69,114,
114,111,114,58,32,100,101,118,105,99,101,32,40,48,48,48,52,41,32,110,
111,116,32,102,111,117,110,100,0,1,9957,2049,9637,2049,9600,10,1,9954,2049,2730,
2049,9524,10,9927,0,154,102,105,108,101,58,82,0,10002,1,154,102,105,108,101,
58,87,0,10012,2,154,102,105,108,101,58,65,0,10022,3,154,102,105,108,101,
58,82,43,0,10032,10056,166,102,105,108,101,58,111,112,101,110,0,1,0,2049,
9945,10,10043,10075,166,102,105,108,101,58,99,108,111,115,101,0,1,1,2049,9945,
10,10061,10093,166,102,105,108,101,58,114,101,97,100,0,1,2,2049,9945,10,10080,
10112,166,102,105,108,101,58,119,114,105,116,101,0,1,3,2049,9945,10,10098,10130,
166,102,105,108,101,58,116,101,108,108,0,1,4,2049,9945,10,10117,10148,166,102,
105,108,101,58,115,101,101,107,0,1,5,2049,9945,10,10135,10166,166,102,105,108,
101,58,115,105,122,101,0,1,6,2049,9945,10,10153,10186,166,102,105,108,101,58,
100,101,108,101,116,101,0,1,7,2049,9945,10,10171,10205,166,102,105,108,101,58,
102,108,117,115,104,0,1,8,2049,9945,10,10191,10226,166,102,105,108,101,58,101,
120,105,115,116,115,63,0,1,0,2049,10056,2,2049,2620,1793,10240,2049,10075,2049,2427,
10,1,10235,1793,10248,3,2049,2439,10,1,10244,2049,64,10,10210,10278,166,102,105,108,
101,58,111,112,101,110,45,102,111,114,45,114,101,97,100,105,110,103,0,1,
0,2049,10056,2,2049,10166,4,10,10253,10311,166,102,105,108,101,58,111,112,101,110,
45,102,111,114,45,97,112,112,101,110,100,0,1,2,2049,10056,2,2049,10166,4,
10,10287,10345,166,102,105,108,101,58,111,112,101,110,45,102,111,114,45,119,114,
105,116,105,110,103,0,1,1,2049,10056,10,10320,10357,154,70,73,68,0,0,10350,
10366,154,83,105,122,101,0,0,10358,10377,154,65,99,116,105,111,110,0,0,10367,
10388,154,66,117,102,102,101,114,0,0,10378,10398,166,45,101,111,102,63,0,3841,
10357,2049,10130,3841,10366,13,10,10389,10418,166,112,114,101,115,101,114,118,101,0,1,
10357,1793,10429,1,10366,1,25,2049,3491,10,1,10422,2049,3491,10,10320,10452,166,102,105,
108,101,58,114,101,97,100,45,108,105,110,101,0,4097,10357,1793,10509,2049,1929,2,
4097,10388,2049,3734,1793,10501,3841,10357,2049,10093,2,2049,3642,1793,10478,1,13,11,10,1,
10474,1793,10486,1,10,11,10,1,10482,1793,10494,1,0,11,10,1,10490,2049,2214,22,
22,10,1,10465,2049,2305,2049,3666,3,10,1,10456,2049,3758,3841,10388,10,10434,10538,166,
102,105,108,101,58,102,111,114,45,101,97,99,104,45,108,105,110,101,0,1793,
10569,4097,10377,2049,10278,4097,10357,4097,10366,1793,10560,3841,10357,2049,10452,3841,10377,8,2049,10398,
10,1,10550,2049,2282,3841,10357,2049,10075,10,1,10540,2049,10418,10,10516,10581,154,70,73,
68,0,0,10516,10596,166,102,105,108,101,58,115,108,117,114,112,0,1793,10623,4,
2049,3734,2049,10278,4097,10581,1793,10614,3841,10581,2049,10093,2049,3642,10,1,10607,2049,2353,3841,
10581,2049,10075,10,1,10598,2049,3758,10,10582,10641,166,102,105,108,101,58,115,112,101,
119,0,2049,10345,4,1793,10650,67502597,2049,10112,10,1,10646,2049,4175,2049,10075,10,10628,10676,
166,102,108,111,97,116,58,111,112,101,114,97,116,105,111,110,0,1,2,2049,
9541,2,2049,2639,1793,10726,3,2049,3952,69,114,114,111,114,58,32,100,101,118,105,
99,101,32,40,48,48,48,50,41,32,110,111,116,32,102,111,117,110,100,0,
1,10688,2049,9637,2049,9600,10,1,10685,2049,2730,2049,9524,10,10657,10747,166,110,58,116,
111,45,102,108,111,97,116,0,1,0,2049,10676,10,10733,10766,166,115,58,116,111,
45,102,108,111,97,116,0,1,1,2049,10676,10,10752,10786,166,102,58,116,111,45,
110,117,109,98,101,114,0,1,2,2049,10676,10,10771,10806,166,102,58,116,111,45,
115,116,114,105,110,103,0,2049,3933,2,1,3,2049,10676,10,10791,10821,166,102,58,
43,0,1,4,2049,10676,10,10814,10833,166,102,58,45,0,1,5,2049,10676,10,10826,
10845,166,102,58,42,0,1,6,2049,10676,10,10838,10857,166,102,58,47,0,1,7,
2049,10676,10,10850,10873,166,102,58,102,108,111,111,114,0,1,8,2049,10676,10,10862,
10891,166,102,58,99,101,105,108,105,110,103,0,1,9,2049,10676,10,10878,10906,166,
102,58,115,113,114,116,0,1,10,2049,10676,10,10896,10920,166,102,58,101,113,63,
0,1,11,2049,10676,10,10911,10935,166,102,58,45,101,113,63,0,1,12,2049,10676,
10,10925,10949,166,102,58,108,116,63,0,1,13,2049,10676,10,10940,10963,166,102,58,
103,116,63,0,1,14,2049,10676,10,10954,10979,166,102,58,100,101,112,116,104,0,
1,15,2049,10676,10,10968,10993,166,102,58,100,117,112,0,1,16,2049,10676,10,10984,
11008,166,102,58,100,114,111,112,0,1,17,2049,10676,10,10998,11023,166,102,58,115,
119,97,112,0,1,18,2049,10676,10,11013,11037,166,102,58,108,111,103,0,1,19,
2049,10676,10,11028,11053,166,102,58,112,111,119,101,114,0,1,20,2049,10676,10,11042,
11067,166,102,58,115,105,110,0,1,21,2049,10676,10,11058,11081,166,102,58,99,111,
115,0,1,22,2049,10676,10,11072,11095,166,102,58,116,97,110,0,1,23,2049,10676,
10,11086,11110,166,102,58,97,115,105,110,0,1,24,2049,10676,10,11100,11125,166,102,
58,97,99,111,115,0,1,25,2049,10676,10,11115,11140,166,102,58,97,116,97,110,
0,1,26,2049,10676,10,11130,11155,166,102,58,112,117,115,104,0,1,27,2049,10676,
10,11145,11169,166,102,58,112,111,112,0,1,28,2049,10676,10,11160,11186,166,102,58,
97,100,101,112,116,104,0,1,29,2049,10676,10,11174,11201,166,102,58,111,118,101,
114,0,2049,11155,2049,10993,2049,11169,2049,11023,10,11191,11220,166,102,58,116,117,99,107,
0,2049,10993,2049,11155,2049,11023,2049,11169,10,11210,11238,166,102,58,110,105,112,0,2049,
11023,2049,11008,10,11229,11258,166,102,58,100,114,111,112,45,112,97,105,114,0,2049,
11008,2049,11008,10,11243,11277,166,102,58,100,117,112,45,112,97,105,114,0,2049,11201,
2049,11201,10,11263,11291,166,102,58,114,111,116,0,2049,11155,2049,11023,2049,11169,2049,11023,
10,11282,11311,178,115,105,103,105,108,58,46,0,2049,1873,1,3978,1,3907,2049,64,
1,10766,2049,166,10,11300,11336,166,102,58,115,113,117,97,114,101,0,2049,10993,2049,
10845,10,11324,11356,166,102,58,112,111,115,105,116,105,118,101,63,0,1,0,2049,
10747,2049,10963,10,11341,11378,166,102,58,110,101,103,97,116,105,118,101,63,0,1,
0,2049,10747,2049,10949,10,11363,11397,166,102,58,110,101,103,97,116,101,0,1,-1,
2049,10747,2049,10845,10,11385,11413,166,102,58,97,98,115,0,2049,10993,2049,11378,1,11397,
9,10,11404,11430,166,102,58,112,117,116,0,2049,10806,2049,9637,10,11421,11443,166,102,
58,80,73,0,2049,3952,51,46,49,52,49,53,57,50,54,53,52,0,1,11445,
2049,10766,10,11435,11469,166,102,58,69,0,2049,3952,50,46,55,49,56,50,56,49,
56,50,56,0,1,11471,2049,10766,10,11462,11497,166,102,58,78,65,78,0,2049,3952,
48,0,1,11499,2049,10766,2049,3952,48,0,1,11507,2049,10766,2049,10857,10,11488,11525,166,
102,58,73,78,70,0,2049,3952,49,46,48,0,1,11527,2049,10766,2049,3952,48,0,
1,11537,2049,10766,2049,10857,10,11516,11556,166,102,58,45,73,78,70,0,2049,3952,45,
49,46,48,0,1,11558,2049,10766,2049,3952,48,0,1,11569,2049,10766,2049,10857,10,11546,
11588,166,102,58,110,97,110,63,0,2049,10993,2049,10935,10,11578,11603,166,102,58,105,
110,102,63,0,2049,11525,2049,10920,10,11593,11619,166,102,58,45,105,110,102,63,0,
2049,11556,2049,10920,10,11608,11635,166,102,58,114,111,117,110,100,0,2049,10993,2049,11378,
1793,11656,2049,3952,48,46,53,0,1,11643,2049,10766,2049,10833,2049,10891,10,1,11641,1793,
11675,2049,3952,48,46,53,0,1,11662,2049,10766,2049,10821,2049,10873,10,1,11660,2049,64,
10,11624,11689,166,102,58,109,105,110,0,2049,11277,2049,10949,1,11008,1,11238,2049,64,
10,11680,11709,166,102,58,109,97,120,0,2049,11277,2049,10963,1,11008,1,11238,2049,64,
10,11700,11731,166,102,58,108,105,109,105,116,0,2049,11023,2049,11155,2049,11689,2049,11169,
2049,11709,10,11720,11756,166,102,58,98,101,116,119,101,101,110,63,0,2049,11291,2049,
10993,2049,11155,2049,11291,2049,11291,2049,11731,2049,11169,2049,10920,10,11742,11782,166,102,58,105,
110,99,0,2049,3952,49,0,1,11784,2049,10766,2049,10821,10,11773,11802,166,102,58,100,
101,99,0,2049,3952,49,0,1,11804,2049,10766,2049,10833,10,11793,11823,166,102,58,99,
97,115,101,0,2049,11201,2049,10920,1793,11835,2049,11008,8,1,-1,10,1,11829,1793,11843,
3,1,0,10,1,11839,2049,64,25,6,771,10,11813,11861,166,102,58,115,105,103,
110,0,2049,10993,2049,3952,48,0,1,11865,2049,10766,2049,10920,1793,11880,1,0,2049,11008,
10,1,11875,2049,2730,2049,3952,48,0,1,11886,2049,10766,2049,10963,1793,11899,1,1,10,
1,11896,1793,11906,1,-1,10,1,11903,2049,64,10,11851,2147483645,154,101,58,77,65,88,
0,11911,-2147483645,154,101,58,77,73,78,0,11920,-2147483647,154,101,58,78,65,78,0,11929,
2147483646,154,101,58,73,78,70,0,11938,-2147483646,154,101,58,45,73,78,70,0,11947,11965,
166,101,58,110,63,0,1,-2147483645,2049,2967,1,2147483645,2049,2979,2049,2996,10,11957,11986,166,
101,58,109,97,120,63,0,1,2147483645,11,10,11976,12000,166,101,58,109,105,110,63,
0,1,-2147483645,11,10,11990,12015,166,101,58,122,101,114,111,63,0,2049,2604,10,12004,
12028,166,101,58,110,97,110,63,0,1,-2147483647,11,10,12018,12042,166,101,58,105,110,
102,63,0,1,2147483646,11,10,12032,12057,166,101,58,45,105,110,102,63,0,1,-2147483646,
11,10,12046,12071,166,101,58,99,108,105,112,0,1,-2147483645,1,2147483645,2049,2950,10,12061,
12086,166,102,58,69,49,0,1793,12088,2049,3952,49,46,101,53,0,1,12090,2049,10766,
10,12078,12117,166,102,58,115,105,103,110,101,100,45,115,113,114,116,0,2049,10993,
2049,11861,2049,11413,2049,10906,2049,10747,2049,10845,10,12100,12149,166,102,58,115,105,103,110,
101,100,45,115,113,117,97,114,101,0,2049,10993,2049,11861,2049,10993,2049,10845,2049,10747,
2049,10845,10,12130,12174,166,102,58,45,115,104,105,102,116,0,2049,12086,2049,10845,10,
12162,12191,166,102,58,43,115,104,105,102,116,0,2049,12086,2049,10857,10,12179,12209,166,
102,58,43,101,110,99,111,100,101,0,2049,12117,2049,12174,10,12196,12227,166,102,58,
45,101,110,99,111,100,101,0,2049,10993,2049,11861,2049,12191,2049,10993,2049,10845,2049,10747,
2049,10845,10,12130,12252,166,102,58,116,111,45,101,0,2049,10993,2049,11588,1793,12263,2049,
11008,1,-2147483647,10,1,12258,2049,2730,2049,10993,2049,11603,1793,12278,2049,11008,1,2147483646,10,1,
12273,2049,2730,2049,10993,2049,11619,1793,12293,2049,11008,1,-2147483646,10,1,12288,2049,2730,2049,12209,
2049,11635,2049,10786,2049,12071,1,-2147483645,1,11008,2049,2450,1,2147483645,1,11008,2049,2450,10,12242,
12328,166,101,58,116,111,45,102,0,1,-2147483647,1,11497,2049,2450,1,2147483646,1,11525,2049,
2450,1,-2147483646,1,11556,2049,2450,2049,10747,2049,12227,10,12318,12362,166,102,58,115,116,111,
114,101,0,1,12252,2049,2155,16,10,12351,12379,166,102,58,102,101,116,99,104,0,
15,2049,12328,10,12368,12399,166,102,58,100,117,109,112,45,115,116,97,99,107,0,
2049,10979,2,1,11155,2049,2353,1793,12417,2049,11169,2049,10993,2049,11430,2049,9611,10,1,12408,
2049,2353,10,12383,12439,166,102,58,100,117,109,112,45,97,115,116,97,99,107,0,
2049,11186,2,1,11169,2049,2353,1793,12457,2049,10993,2049,11430,2049,9611,2049,11155,10,1,12448,
2049,2353,10,12422,12471,166,101,58,112,117,116,0,1,2147483645,1793,12488,2049,3952,101,58,
77,65,88,0,1,12477,2049,9637,10,1,12475,2049,2450,1,-2147483645,1793,12509,2049,3952,101,
58,77,73,78,0,1,12498,2049,9637,10,1,12496,2049,2450,1,0,1793,12528,2049,3952,
101,58,48,0,1,12519,2049,9637,10,1,12517,2049,2450,1,-2147483647,1793,12549,2049,3952,101,
58,78,65,78,0,1,12538,2049,9637,10,1,12536,2049,2450,1,2147483646,1793,12570,2049,3952,
101,58,73,78,70,0,1,12559,2049,9637,10,1,12557,2049,2450,1,-2147483646,1793,12592,2049,
3952,101,58,45,73,78,70,0,1,12580,2049,9637,10,1,12578,2049,2450,2049,12328,2049,
11430,10,12462,12620,166,105,111,58,117,110,105,120,45,115,121,115,99,97,108,108,
0,1,8,2049,9541,2,2049,2639,1793,12670,3,2049,3952,69,114,114,111,114,58,32,
100,101,118,105,99,101,32,40,48,48,48,56,41,32,110,111,116,32,102,111,
117,110,100,0,1,12632,2049,9637,2049,9600,10,1,12629,2049,2730,2049,9524,10,12601,12692,
166,117,110,105,120,58,115,121,115,116,101,109,0,1,0,2049,12620,10,12677,12710,
166,117,110,105,120,58,102,111,114,107,0,1,1,2049,12620,10,12697,12729,166,117,
110,105,120,58,101,120,101,99,48,0,1,2,2049,12620,10,12715,12748,166,117,110,
105,120,58,101,120,101,99,49,0,1,3,2049,12620,10,12734,12767,166,117,110,105,
120,58,101,120,101,99,50,0,1,4,2049,12620,10,12753,12786,166,117,110,105,120,
58,101,120,101,99,51,0,1,5,2049,12620,10,12772,12804,166,117,110,105,120,58,
101,120,105,116,0,1,6,2049,12620,10,12791,12824,166,117,110,105,120,58,103,101,
116,112,105,100,0,1,7,2049,12620,10,12809,12842,166,117,110,105,120,58,119,97,
105,116,0,1,8,2049,12620,10,12829,12860,166,117,110,105,120,58,107,105,108,108,
0,1,9,2049,12620,10,12847,12879,166,117,110,105,120,58,112,111,112,101,110,0,
1,10,2049,12620,10,12865,12899,166,117,110,105,120,58,112,99,108,111,115,101,0,
1,11,2049,12620,10,12884,12918,166,117,110,105,120,58,99,104,100,105,114,0,1,
13,2049,12620,10,12904,12938,166,117,110,105,120,58,103,101,116,101,110,118,0,1,
14,2049,12620,10,12923,12958,166,117,110,105,120,58,112,117,116,101,110,118,0,1,
15,2049,12620,10,12943,12977,166,117,110,105,120,58,115,108,101,101,112,0,1,16,
2049,12620,10,12963,12998,166,117,110,105,120,58,101,120,101,99,117,116,101,0,1,
17,2049,12620,10,12982,13016,166,117,110,105,120,58,112,105,112,101,0,1,0,2049,
12879,1,10452,1,12899,2049,2177,10,13003,13043,166,117,110,105,120,58,103,101,116,45,
99,119,100,0,2049,3952,112,119,100,0,1,13045,2049,13016,2049,6300,2049,3952,47,0,
1,13057,2049,4157,10,13027,13091,166,117,110,105,120,58,99,111,117,110,116,45,102,
105,108,101,115,45,105,110,45,99,119,100,0,2049,3952,108,115,32,45,49,32,
124,32,119,99,32,45,108,0,1,13093,2049,13016,2049,6300,2049,249,10,13064,13138,166,
117,110,105,120,58,102,111,114,45,101,97,99,104,45,102,105,108,101,0,2049,
3952,108,115,32,45,49,32,45,112,0,1,13140,1,0,2049,12879,2049,13091,1793,13173,
1793,13168,2049,10452,2049,3907,67502597,8,10,1,13161,2049,2165,10,1,13159,2049,2353,2049,12899,
3,10,13116,13190,166,115,116,97,114,116,0,4,2049,3734,1,0,2049,12879,10,13181,
13206,166,114,101,97,100,0,2,2049,10093,2,2049,3642,2049,2604,10,13198,13225,166,102,
105,110,105,115,104,0,2049,12899,2049,3714,10,13116,13249,166,117,110,105,120,58,115,
108,117,114,112,45,112,105,112,101,0,1793,13260,2049,13190,1,13206,2049,2305,2049,13225,
10,1,13251,2049,3758,10,13230,13277,166,110,58,114,97,110,100,111,109,0,1,10,
2049,9541,2,2049,2639,1793,13327,3,2049,3952,69,114,114,111,114,58,32,100,101,118,
105,99,101,32,40,48,48,49,48,41,32,110,111,116,32,102,111,117,110,100,
0,1,13289,2049,9637,2049,9600,10,1,13286,2049,2730,2049,9524,10,13265,13354,166,115,111,
99,107,101,116,58,111,112,101,114,97,116,105,111,110,0,1,7,2049,9541,2,
2049,2639,1793,13404,3,2049,3952,69,114,114,111,114,58,32,100,101,118,105,99,101,
32,40,48,48,48,55,41,32,110,111,116,32,102,111,117,110,100,0,1,13366,
2049,9637,2049,9600,10,1,13363,2049,2730,2049,9524,10,13334,13435,166,115,111,99,107,101,
116,58,103,101,116,104,111,115,116,98,121,110,97,109,101,0,1,0,2049,13354,
10,13411,13457,166,115,111,99,107,101,116,58,99,114,101,97,116,101,0,1,1,
2049,13354,10,13440,13477,166,115,111,99,107,101,116,58,98,105,110,100,0,1,2,
2049,13354,10,13462,13499,166,115,111,99,107,101,116,58,108,105,115,116,101,110,0,
1,3,2049,13354,10,13482,13521,166,115,111,99,107,101,116,58,97,99,99,101,112,
116,0,1,4,2049,13354,10,13504,13544,166,115,111,99,107,101,116,58,99,111,110,
110,101,99,116,0,1,5,2049,13354,10,13526,13564,166,115,111,99,107,101,116,58,
115,101,110,100,0,1,6,2049,13354,10,13549,13584,166,115,111,99,107,101,116,58,
114,101,99,118,0,1,8,2049,13354,10,13569,13605,166,115,111,99,107,101,116,58,
99,108,111,115,101,0,1,10,2049,13354,10,13589,13630,166,115,111,99,107,101,116,
58,99,111,110,102,105,103,117,114,101,0,1,11,2049,13354,10,13610,13655,166,115,
99,114,105,112,116,58,111,112,101,114,97,116,105,111,110,0,1,9,2049,9541,
2,2049,2639,1793,13705,3,2049,3952,69,114,114,111,114,58,32,100,101,118,105,99,
101,32,40,48,48,48,57,41,32,110,111,116,32,102,111,117,110,100,0,1,
13667,2049,9637,2049,9600,10,1,13664,2049,2730,2049,9524,10,13610,13732,166,115,99,114,105,
112,116,58,97,114,103,117,109,101,110,116,115,0,1,0,2049,13655,10,13712,13760,
166,115,99,114,105,112,116,58,103,101,116,45,97,114,103,117,109,101,110,116,
0,2049,3933,4,1,1,2049,13655,10,13737,13779,166,105,110,99,108,117,100,101,0,
1,2,2049,13655,10,13768,13799,166,115,99,114,105,112,116,58,110,97,109,101,0,
2049,3933,1,3,2049,13655,10,13784,13829,166,115,99,114,105,112,116,58,99,117,114,
114,101,110,116,45,102,105,108,101,0,2049,3933,1,4,2049,13655,10,13806,13859,178,
115,99,114,105,112,116,58,99,117,114,114,101,110,116,45,108,105,110,101,0,
1,5,2049,13655,2049,154,10,13836,13890,166,115,99,114,105,112,116,58,105,103,110,
111,114,101,45,116,111,45,101,111,108,0,1,6,2049,13655,10,13866,13919,166,115,
99,114,105,112,116,58,97,98,111,114,116,45,105,110,99,108,117,100,101,0,
1,7,2049,13655,10,13895,13933,166,97,98,111,114,116,0,1,147,2049,3459,1,8,
2049,13655,10,13924,13961,166,99,108,111,99,107,58,111,112,101,114,97,116,105,111,
110,0,1,5,2049,9541,2,2049,2639,1793,14011,3,2049,3952,69,114,114,111,114,58,
32,100,101,118,105,99,101,32,40,48,48,48,53,41,32,110,111,116,32,102,
111,117,110,100,0,1,13973,2049,9637,2049,9600,10,1,13970,2049,2730,2049,9524,10,13942,
14037,166,99,108,111,99,107,58,116,105,109,101,115,116,97,109,112,0,1,0,
2049,13961,10,14018,14055,166,99,108,111,99,107,58,100,97,121,0,1,1,2049,13961,
10,14042,14075,166,99,108,111,99,107,58,109,111,110,116,104,0,1,2,2049,13961,
10,14060,14094,166,99,108,111,99,107,58,121,101,97,114,0,1,3,2049,13961,10,
14080,14113,166,99,108,111,99,107,58,104,111,117,114,0,1,4,2049,13961,10,14099,
14134,166,99,108,111,99,107,58,109,105,110,117,116,101,0,1,5,2049,13961,10,
14118,14155,166,99,108,111,99,107,58,115,101,99,111,110,100,0,1,6,2049,13961,
10,14139,14177,166,99,108,111,99,107,58,117,116,99,58,100,97,121,0,1,7,
2049,13961,10,14160,14201,166,99,108,111,99,107,58,117,116,99,58,109,111,110,116,
104,0,1,8,2049,13961,10,14182,14224,166,99,108,111,99,107,58,117,116,99,58,
121,101,97,114,0,1,9,2049,13961,10,14206,14247,166,99,108,111,99,107,58,117,
116,99,58,104,111,117,114,0,1,10,2049,13961,10,14229,14272,166,99,108,111,99,
107,58,117,116,99,58,109,105,110,117,116,101,0,1,11,2049,13961,10,14252,14297,
166,99,108,111,99,107,58,117,116,99,58,115,101,99,111,110,100,0,1,12,
2049,13961,10,14277,14309,166,84,73,66,0,1,7,15,10,14302,14327,166,105,109,97,
103,101,58,115,97,118,101,0,1,1000,2049,9541,2049,9524,10,14313,14343,166,101,100,
105,116,63,0,2,1793,14350,1,8,11,10,1,14346,1793,14358,1,127,11,10,1,
14354,2049,2177,22,10,14334,14374,166,103,97,116,104,101,114,0,2049,14343,1,15,1,
3642,2049,64,10,14364,14392,166,99,121,99,108,101,0,2049,9843,2049,2145,4,8,2049,
2536,25,3,2049,14374,1,14392,7,10,14313,14423,166,112,97,114,115,101,45,117,110,
116,105,108,0,1793,14435,2049,3933,2049,3734,2049,14392,771,2049,3608,10,1,14425,2049,3758,
10,14408,14454,166,115,58,103,101,116,45,119,111,114,100,0,1,5902,2049,14423,10,
14440,14468,166,99,108,101,97,114,0,2049,3952,92,94,91,50,74,92,94,91,48,
59,48,72,0,1,14470,2049,7627,2049,9637,10,14459,14500,154,78,111,69,99,104,111,
0,0,14490,14508,154,69,79,84,0,0,14501,14521,154,73,103,110,111,114,105,110,
103,0,0,14509,14535,166,105,103,110,111,114,105,110,103,63,0,3841,14521,10,14522,
14549,166,118,101,114,115,105,111,110,0,3841,4,1,100,20,10,14538,14564,166,100,
111,110,101,63,0,2,4097,14508,1793,14573,1,13,11,10,1,14569,1793,14581,1,10,
11,10,1,14577,1793,14589,1,32,11,10,1,14585,2049,2214,22,22,10,14555,14604,166,
101,111,108,63,0,3841,14508,1793,14612,1,13,11,10,1,14608,1793,14620,1,10,11,
10,1,14616,2049,2177,22,10,14596,14636,166,118,97,108,105,100,63,0,2,2049,102,
2049,2686,10,14626,14655,166,99,104,101,99,107,45,101,111,102,0,2,1793,14662,1,
-1,11,10,1,14658,1793,14670,1,4,11,10,1,14666,2049,2177,22,1793,14680,2049,9901,
10,1,14677,9,10,14642,14690,166,98,115,0,2049,3714,1,2,2049,2563,1793,14702,2049,
3666,3,10,1,14698,9,2049,3666,3,10,14684,14721,166,99,104,101,99,107,45,98,
115,0,2,1793,14728,1,8,11,10,1,14724,1793,14736,1,127,11,10,1,14732,2049,
2177,22,1793,14746,2049,14690,10,1,14743,9,10,14709,14759,166,99,104,101,99,107,0,
2049,14655,2049,14721,10,14750,14777,166,99,104,97,114,97,99,116,101,114,0,2049,9843,
2,2049,3642,10,14764,14793,166,98,117,102,102,101,114,0,1793,14803,2049,14309,2049,3734,
8,2049,3608,10,1,14795,2049,3758,10,14783,14822,166,114,101,97,100,45,116,111,107,
101,110,0,1793,14838,1793,14833,2049,14777,2049,14759,2049,14564,10,1,14826,2049,2305,10,1,
14824,2049,14793,2049,4029,10,14808,14854,166,105,110,112,117,116,0,2049,14822,2049,14636,10,
14845,14870,166,112,114,111,99,101,115,115,0,2049,14535,1793,14888,771,2049,14604,1793,14884,
1,14521,2049,3459,10,1,14879,9,10,1,14874,2049,2730,1,400,1,15,2049,64,10,
14490,14905,178,47,47,0,2049,13890,1,14521,2049,3446,10,14899,14922,166,98,97,110,110,
101,114,0,2049,14549,2049,3952,82,69,84,82,79,32,49,50,32,40,37,110,46,
37,110,41,92,110,0,1,14926,2049,7627,2049,9637,2049,9705,2049,1543,2049,9705,18,2049,
1543,2049,3952,37,110,32,77,97,120,44,32,37,110,32,85,115,101,100,44,32,
37,110,32,70,114,101,101,92,110,0,1,14962,2049,7627,2049,9637,10,14912,15006,166,
108,105,115,116,101,110,0,3841,14500,1793,15013,2049,14922,10,1,15010,2049,72,2049,14854,
2049,14870,1,15017,7,10,14996,15036,166,100,58,119,111,114,100,115,0,1793,15045,2049,
184,2049,9637,2049,9611,10,1,15038,2049,7856,10,15025,15066,166,100,58,119,111,114,100,
115,45,119,105,116,104,0,2049,1929,2049,4952,1793,15097,2049,184,2,2049,1929,2049,4469,
1793,15086,2049,9637,2049,9611,10,1,15081,1793,15092,3,10,1,15090,2049,64,10,1,15072,
2049,7856,10,15050,15121,166,100,105,115,112,108,97,121,45,105,102,45,108,101,102,
116,0,2,2049,1929,2049,4902,1793,15133,2049,9637,2049,9611,10,1,15128,1793,15139,3,10,
1,15137,2049,64,10,15050,15170,166,100,58,119,111,114,100,115,45,98,101,103,105,
110,110,105,110,103,45,119,105,116,104,0,2049,1929,2049,4952,1793,15181,2049,184,2049,
15121,10,1,15176,2049,7856,10,15144,15197,166,115,58,115,112,108,105,116,0,2049,6417,
10,15186,15221,166,115,58,115,112,108,105,116,45,111,110,45,115,116,114,105,110,
103,0,2049,6449,10,15200,15244,166,115,58,99,111,110,116,97,105,110,115,45,99,
104,97,114,63,0,2049,4277,10,15224,15269,166,115,58,99,111,110,116,97,105,110,
115,45,115,116,114,105,110,103,63,0,2049,4469,10,15247,15294,166,97,58,99,111,
110,116,97,105,110,115,45,115,116,114,105,110,103,63,0,2049,4469,10,15272,15311,
166,97,58,105,110,100,101,120,45,111,102,0,2049,8567,10,15297,15335,166,97,58,
105,110,100,101,120,45,111,102,45,115,116,114,105,110,103,0,2049,8603,10,15314,
15352,166,115,58,105,110,100,101,120,45,111,102,0,2049,4211,10,15338,15369,166,115,
58,105,110,100,101,120,45,111,102,0,2049,4680,10,0 };