aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/3rdParty/LuaMinify.h2514
-rwxr-xr-xsrc/3rdParty/gencode.yue26
-rw-r--r--src/3rdParty/luaminify.lua35
-rw-r--r--src/3rdParty/luaminify_lua.h4439
-rw-r--r--src/yue.cpp208
-rw-r--r--src/yuescript/yue_compiler.cpp65
-rw-r--r--src/yuescript/yue_parser.cpp90
7 files changed, 4746 insertions, 2631 deletions
diff --git a/src/3rdParty/LuaMinify.h b/src/3rdParty/LuaMinify.h
deleted file mode 100644
index f1f496f..0000000
--- a/src/3rdParty/LuaMinify.h
+++ /dev/null
@@ -1,2514 +0,0 @@
1R"lua_codes(
2--[[
3The MIT License (MIT)
4
5Copyright (c) 2012-2013 Mark Langen, modified by Li Jin 2023
6
7Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
8
9The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
10
11THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.]]
12
13--
14-- Util.lua
15--
16-- Provides some common utilities shared throughout the project.
17--
18
19local function lookupify(tb)
20 for _, v in pairs(tb) do
21 tb[v] = true
22 end
23 return tb
24end
25
26
27local function CountTable(tb)
28 local c = 0
29 for _ in pairs(tb) do c = c + 1 end
30 return c
31end
32
33
34local function PrintTable(tb, atIndent)
35 if tb.Print then
36 return tb.Print()
37 end
38 atIndent = atIndent or 0
39 local useNewlines = (CountTable(tb) > 1)
40 local baseIndent = string.rep(' ', atIndent+1)
41 local out = "{"..(useNewlines and '\n' or '')
42 for k, v in pairs(tb) do
43 if type(v) ~= 'function' then
44 --do
45 out = out..(useNewlines and baseIndent or '')
46 if type(k) == 'number' then
47 --nothing to do
48 elseif type(k) == 'string' and k:match("^[A-Za-z_][A-Za-z0-9_]*$") then
49 out = out..k.." = "
50 elseif type(k) == 'string' then
51 out = out.."[\""..k.."\"] = "
52 else
53 out = out.."["..tostring(k).."] = "
54 end
55 if type(v) == 'string' then
56 out = out.."\""..v.."\""
57 elseif type(v) == 'number' then
58 out = out..v
59 elseif type(v) == 'table' then
60 out = out..PrintTable(v, atIndent+(useNewlines and 1 or 0))
61 else
62 out = out..tostring(v)
63 end
64 if next(tb, k) then
65 out = out..","
66 end
67 if useNewlines then
68 out = out..'\n'
69 end
70 end
71 end
72 out = out..(useNewlines and string.rep(' ', atIndent) or '').."}"
73 return out
74end
75
76
77local blacklist = {
78 ["do"] = true,
79 ["if"] = true,
80 ["in"] = true,
81 ["or"] = true,
82 ["for"] = true,
83 ["and"] = true,
84 ["not"] = true,
85 ["end"] = true,
86 ["nil"] = true
87}
88
89local insert, char = table.insert, string.char
90
91local chars = {}
92for i = 97, 122 do
93 insert(chars, char(i))
94end
95for i = 65, 90 do
96 insert(chars, char(i))
97end
98
99local function GetUnique(self)
100 for x = 1, 52 do
101 local c = chars[x]
102 if not blacklist[c] and not self:GetVariable(c) then
103 return c
104 end
105 end
106 for x = 1, 52 do
107 for y = 1, 52 do
108 local c = chars[x]..chars[y]
109 if not blacklist[c] and not self:GetVariable(c) then
110 return c
111 end
112 end
113 end
114 for x = 1, 52 do
115 for y = 1, 52 do
116 for z = 1, 52 do
117 local c = chars[x]..chars[y]..chars[z]
118 if not blacklist[c] and not self:GetVariable(c) then
119 return c
120 end
121 end
122 end
123 end
124end
125
126local Scope = {
127 new = function(self, parent)
128 local s = {
129 Parent = parent,
130 Locals = { },
131 Globals = { },
132 oldLocalNamesMap = { },
133 oldGlobalNamesMap = { },
134 Children = { },
135 }
136
137 if parent then
138 table.insert(parent.Children, s)
139 end
140
141 return setmetatable(s, { __index = self })
142 end,
143
144 AddLocal = function(self, v)
145 table.insert(self.Locals, v)
146 end,
147
148 AddGlobal = function(self, v)
149 table.insert(self.Globals, v)
150 end,
151
152 CreateLocal = function(self, name)
153 local v
154 v = self:GetLocal(name)
155 if v then return v end
156 v = { }
157 v.Scope = self
158 v.Name = name
159 v.IsGlobal = false
160 v.CanRename = true
161 v.References = 1
162 self:AddLocal(v)
163 return v
164 end,
165
166 GetLocal = function(self, name)
167 for k, var in pairs(self.Locals) do
168 if var.Name == name then return var end
169 end
170
171 if self.Parent then
172 return self.Parent:GetLocal(name)
173 end
174 end,
175
176 GetOldLocal = function(self, name)
177 if self.oldLocalNamesMap[name] then
178 return self.oldLocalNamesMap[name]
179 end
180 return self:GetLocal(name)
181 end,
182
183 mapLocal = function(self, name, var)
184 self.oldLocalNamesMap[name] = var
185 end,
186
187 GetOldGlobal = function(self, name)
188 if self.oldGlobalNamesMap[name] then
189 return self.oldGlobalNamesMap[name]
190 end
191 return self:GetGlobal(name)
192 end,
193
194 mapGlobal = function(self, name, var)
195 self.oldGlobalNamesMap[name] = var
196 end,
197
198 GetOldVariable = function(self, name)
199 return self:GetOldLocal(name) or self:GetOldGlobal(name)
200 end,
201
202 RenameLocal = function(self, oldName, newName)
203 oldName = type(oldName) == 'string' and oldName or oldName.Name
204 local found = false
205 local var = self:GetLocal(oldName)
206 if var then
207 var.Name = newName
208 self:mapLocal(oldName, var)
209 found = true
210 end
211 if not found and self.Parent then
212 self.Parent:RenameLocal(oldName, newName)
213 end
214 end,
215
216 RenameGlobal = function(self, oldName, newName)
217 oldName = type(oldName) == 'string' and oldName or oldName.Name
218 local found = false
219 local var = self:GetGlobal(oldName)
220 if var then
221 var.Name = newName
222 self:mapGlobal(oldName, var)
223 found = true
224 end
225 if not found and self.Parent then
226 self.Parent:RenameGlobal(oldName, newName)
227 end
228 end,
229
230 RenameVariable = function(self, oldName, newName)
231 oldName = type(oldName) == 'string' and oldName or oldName.Name
232 if self:GetLocal(oldName) then
233 self:RenameLocal(oldName, newName)
234 else
235 self:RenameGlobal(oldName, newName)
236 end
237 end,
238
239 GetAllVariables = function(self)
240 local ret = self:getVars(true) -- down
241 for k, v in pairs(self:getVars(false)) do -- up
242 table.insert(ret, v)
243 end
244 return ret
245 end,
246
247 getVars = function(self, top)
248 local ret = { }
249 if top then
250 for k, v in pairs(self.Children) do
251 for k2, v2 in pairs(v:getVars(true)) do
252 table.insert(ret, v2)
253 end
254 end
255 else
256 for k, v in pairs(self.Locals) do
257 table.insert(ret, v)
258 end
259 for k, v in pairs(self.Globals) do
260 table.insert(ret, v)
261 end
262 if self.Parent then
263 for k, v in pairs(self.Parent:getVars(false)) do
264 table.insert(ret, v)
265 end
266 end
267 end
268 return ret
269 end,
270
271 CreateGlobal = function(self, name)
272 local v
273 v = self:GetGlobal(name)
274 if v then return v end
275 v = { }
276 v.Scope = self
277 v.Name = name
278 v.IsGlobal = true
279 v.CanRename = true
280 v.References = 1
281 self:AddGlobal(v)
282 return v
283 end,
284
285 GetGlobal = function(self, name)
286 for k, v in pairs(self.Globals) do
287 if v.Name == name then return v end
288 end
289
290 if self.Parent then
291 return self.Parent:GetGlobal(name)
292 end
293 end,
294
295 GetVariable = function(self, name)
296 return self:GetLocal(name) or self:GetGlobal(name)
297 end,
298
299 ObfuscateLocals = function(self, recommendedMaxLength, validNameChars)
300 for i, var in pairs(self.Locals) do
301 if var.Name == "_ENV" then
302 self:RenameLocal(var.Name, "_ENV")
303 else
304 local id = GetUnique(self)
305 self:RenameLocal(var.Name, id)
306 end
307 end
308 end
309}
310)lua_codes"
311
312R"lua_codes(
313--
314-- ParseLua.lua
315--
316-- The main lua parser and lexer.
317-- LexLua returns a Lua token stream, with tokens that preserve
318-- all whitespace formatting information.
319-- ParseLua returns an AST, internally relying on LexLua.
320--
321
322local LowerChars = lookupify{'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i',
323 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r',
324 's', 't', 'u', 'v', 'w', 'x', 'y', 'z'}
325local UpperChars = lookupify{'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I',
326 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R',
327 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z'}
328local Digits = lookupify{'0', '1', '2', '3', '4', '5', '6', '7', '8', '9'}
329local HexDigits = lookupify{'0', '1', '2', '3', '4', '5', '6', '7', '8', '9',
330 'A', 'a', 'B', 'b', 'C', 'c', 'D', 'd', 'E', 'e', 'F', 'f'}
331
332local Symbols = lookupify{'+', '-', '*', '/', '^', '%', ',', '{', '}', '[', ']', '(', ')', ';', '#'}
333
334local Keywords = lookupify{
335 'and', 'break', 'do', 'else', 'elseif',
336 'end', 'false', 'for', 'function', 'goto', 'if',
337 'in', 'local', 'nil', 'not', 'or', 'repeat',
338 'return', 'then', 'true', 'until', 'while',
339};
340
341local function LexLua(src)
342 --token dump
343 local tokens = {}
344
345 local st, err = pcall(function()
346 --line / char / pointer tracking
347 local p = 1
348 local line = 1
349 local char = 1
350
351 --get / peek functions
352 local function get()
353 local c = src:sub(p,p)
354 if c == '\n' then
355 char = 1
356 line = line + 1
357 else
358 char = char + 1
359 end
360 p = p + 1
361 return c
362 end
363 local function peek(n)
364 n = n or 0
365 return src:sub(p+n,p+n)
366 end
367 local function consume(chars)
368 local c = peek()
369 for i = 1, #chars do
370 if c == chars:sub(i,i) then return get() end
371 end
372 end
373
374 --shared stuff
375 local function generateError(err)
376 return error(">> :"..line..":"..char..": "..err, 0)
377 end
378
379 local function tryGetLongString()
380 local start = p
381 if peek() == '[' then
382 local equalsCount = 0
383 local depth = 1
384 while peek(equalsCount+1) == '=' do
385 equalsCount = equalsCount + 1
386 end
387 if peek(equalsCount+1) == '[' then
388 --start parsing the string. Strip the starting bit
389 for _ = 0, equalsCount+1 do get() end
390
391 --get the contents
392 local contentStart = p
393 while true do
394 --check for eof
395 if peek() == '' then
396 generateError("Expected `]"..string.rep('=', equalsCount).."]` near <eof>.", 3)
397 end
398
399 --check for the end
400 local foundEnd = true
401 if peek() == ']' then
402 for i = 1, equalsCount do
403 if peek(i) ~= '=' then foundEnd = false end
404 end
405 if peek(equalsCount+1) ~= ']' then
406 foundEnd = false
407 end
408 else
409 if peek() == '[' then
410 -- is there an embedded long string?
411 local embedded = true
412 for i = 1, equalsCount do
413 if peek(i) ~= '=' then
414 embedded = false
415 break
416 end
417 end
418 if peek(equalsCount + 1) == '[' and embedded then
419 -- oh look, there was
420 depth = depth + 1
421 for i = 1, (equalsCount + 2) do
422 get()
423 end
424 end
425 end
426 foundEnd = false
427 end
428 --
429 if foundEnd then
430 depth = depth - 1
431 if depth == 0 then
432 break
433 else
434 for i = 1, equalsCount + 2 do
435 get()
436 end
437 end
438 else
439 get()
440 end
441 end
442
443 --get the interior string
444 local contentString = src:sub(contentStart, p-1)
445
446 --found the end. Get rid of the trailing bit
447 for i = 0, equalsCount+1 do get() end
448
449 --get the exterior string
450 local longString = src:sub(start, p-1)
451
452 --return the stuff
453 return contentString, longString
454 else
455 return nil
456 end
457 else
458 return nil
459 end
460 end
461
462 --main token emitting loop
463 while true do
464 --get leading whitespace. The leading whitespace will include any comments
465 --preceding the token. This prevents the parser needing to deal with comments
466 --separately.
467 local leading = { }
468 local leadingWhite = ''
469 local longStr = false
470 while true do
471 local c = peek()
472 if c == '#' and peek(1) == '!' and line == 1 then
473 -- #! shebang for linux scripts
474 get()
475 get()
476 leadingWhite = "#!"
477 while peek() ~= '\n' and peek() ~= '' do
478 leadingWhite = leadingWhite .. get()
479 end
480 local token = {
481 Type = 'Comment',
482 CommentType = 'Shebang',
483 Data = leadingWhite,
484 Line = line,
485 Char = char
486 }
487 token.Print = function()
488 return "<"..(token.Type .. string.rep(' ', 7-#token.Type)).." "..(token.Data or '').." >"
489 end
490 leadingWhite = ""
491 table.insert(leading, token)
492 end
493 if c == ' ' or c == '\t' then
494 --whitespace
495 --leadingWhite = leadingWhite..get()
496 local c2 = get() -- ignore whitespace
497 table.insert(leading, { Type = 'Whitespace', Line = line, Char = char, Data = c2 })
498 elseif c == '\n' or c == '\r' then
499 local nl = get()
500 if leadingWhite ~= "" then
501 local token = {
502 Type = 'Comment',
503 CommentType = longStr and 'LongComment' or 'Comment',
504 Data = leadingWhite,
505 Line = line,
506 Char = char,
507 }
508 token.Print = function()
509 return "<"..(token.Type .. string.rep(' ', 7-#token.Type)).." "..(token.Data or '').." >"
510 end
511 table.insert(leading, token)
512 leadingWhite = ""
513 end
514 table.insert(leading, { Type = 'Whitespace', Line = line, Char = char, Data = nl })
515 elseif c == '-' and peek(1) == '-' then
516 --comment
517 get()
518 get()
519 leadingWhite = leadingWhite .. '--'
520 local _, wholeText = tryGetLongString()
521 if wholeText then
522 leadingWhite = leadingWhite..wholeText
523 longStr = true
524 else
525 while peek() ~= '\n' and peek() ~= '' do
526 leadingWhite = leadingWhite..get()
527 end
528 end
529 else
530 break
531 end
532 end
533 if leadingWhite ~= "" then
534 local token = {
535 Type = 'Comment',
536 CommentType = longStr and 'LongComment' or 'Comment',
537 Data = leadingWhite,
538 Line = line,
539 Char = char,
540 }
541 token.Print = function()
542 return "<"..(token.Type .. string.rep(' ', 7-#token.Type)).." "..(token.Data or '').." >"
543 end
544 table.insert(leading, token)
545 end
546
547 --get the initial char
548 local thisLine = line
549 local thisChar = char
550 -- local errorAt = ":"..line..":"..char..":> "
551 local c = peek()
552
553 --symbol to emit
554 local toEmit = nil
555
556 --branch on type
557 if c == '' then
558 --eof
559 toEmit = { Type = 'Eof' }
560
561 elseif UpperChars[c] or LowerChars[c] or c == '_' then
562 --ident or keyword
563 local start = p
564 repeat
565 get()
566 c = peek()
567 until not (UpperChars[c] or LowerChars[c] or Digits[c] or c == '_')
568 local dat = src:sub(start, p-1)
569 if Keywords[dat] then
570 toEmit = {Type = 'Keyword', Data = dat}
571 else
572 toEmit = {Type = 'Ident', Data = dat}
573 end
574
575 elseif Digits[c] or (peek() == '.' and Digits[peek(1)]) then
576 --number const
577 local start = p
578 if c == '0' and peek(1) == 'x' then
579 get();get()
580 while HexDigits[peek()] do get() end
581 if consume('Pp') then
582 consume('+-')
583 while Digits[peek()] do get() end
584 end
585 else
586 while Digits[peek()] do get() end
587 if consume('.') then
588 while Digits[peek()] do get() end
589 end
590 if consume('Ee') then
591 consume('+-')
592 while Digits[peek()] do get() end
593 end
594 end
595 toEmit = {Type = 'Number', Data = src:sub(start, p-1)}
596
597 elseif c == '\'' or c == '\"' then
598 local start = p
599 --string const
600 local delim = get()
601 local contentStart = p
602 while true do
603 local c = get()
604 if c == '\\' then
605 get() --get the escape char
606 elseif c == delim then
607 break
608 elseif c == '' then
609 generateError("Unfinished string near <eof>")
610 end
611 end
612 local content = src:sub(contentStart, p-2)
613 local constant = src:sub(start, p-1)
614 toEmit = {Type = 'String', Data = constant, Constant = content}
615
616 elseif c == '[' then
617 local content, wholetext = tryGetLongString()
618 if wholetext then
619 toEmit = {Type = 'String', Data = wholetext, Constant = content}
620 else
621 get()
622 toEmit = {Type = 'Symbol', Data = '['}
623 end
624
625 elseif consume('>=<') then
626 if consume('=') then
627 toEmit = {Type = 'Symbol', Data = c..'='}
628 else
629 toEmit = {Type = 'Symbol', Data = c}
630 end
631
632 elseif consume('~') then
633 if consume('=') then
634 toEmit = {Type = 'Symbol', Data = '~='}
635 else
636 generateError("Unexpected symbol `~` in source.", 2)
637 end
638
639 elseif consume('.') then
640 if consume('.') then
641 if consume('.') then
642 toEmit = {Type = 'Symbol', Data = '...'}
643 else
644 toEmit = {Type = 'Symbol', Data = '..'}
645 end
646 else
647 toEmit = {Type = 'Symbol', Data = '.'}
648 end
649
650 elseif consume(':') then
651 if consume(':') then
652 toEmit = {Type = 'Symbol', Data = '::'}
653 else
654 toEmit = {Type = 'Symbol', Data = ':'}
655 end
656
657 elseif Symbols[c] then
658 get()
659 toEmit = {Type = 'Symbol', Data = c}
660
661 else
662 local contents, all = tryGetLongString()
663 if contents then
664 toEmit = {Type = 'String', Data = all, Constant = contents}
665 else
666 generateError("Unexpected Symbol `"..c.."` in source.", 2)
667 end
668 end
669
670 --add the emitted symbol, after adding some common data
671 toEmit.LeadingWhite = leading -- table of leading whitespace/comments
672 --for k, tok in pairs(leading) do
673 -- tokens[#tokens + 1] = tok
674 --end
675
676 toEmit.Line = thisLine
677 toEmit.Char = thisChar
678 toEmit.Print = function()
679 return "<"..(toEmit.Type..string.rep(' ', 7-#toEmit.Type)).." "..(toEmit.Data or '').." >"
680 end
681 tokens[#tokens+1] = toEmit
682
683 --halt after eof has been emitted
684 if toEmit.Type == 'Eof' then break end
685 end
686 end)
687 if not st then
688 return false, err
689 end
690
691 --public interface:
692 local tok = {}
693 local savedP = {}
694 local p = 1
695
696 function tok:getp()
697 return p
698 end
699
700 function tok:setp(n)
701 p = n
702 end
703
704 function tok:getTokenList()
705 return tokens
706 end
707
708 --getters
709 function tok:Peek(n)
710 n = n or 0
711 return tokens[math.min(#tokens, p+n)]
712 end
713 function tok:Get(tokenList)
714 local t = tokens[p]
715 p = math.min(p + 1, #tokens)
716 if tokenList then
717 table.insert(tokenList, t)
718 end
719 return t
720 end
721 function tok:Is(t)
722 return tok:Peek().Type == t
723 end
724
725 --save / restore points in the stream
726 function tok:Save()
727 savedP[#savedP+1] = p
728 end
729 function tok:Commit()
730 savedP[#savedP] = nil
731 end
732 function tok:Restore()
733 p = savedP[#savedP]
734 savedP[#savedP] = nil
735 end
736
737 --either return a symbol if there is one, or return true if the requested
738 --symbol was gotten.
739 function tok:ConsumeSymbol(symb, tokenList)
740 local t = self:Peek()
741 if t.Type == 'Symbol' then
742 if symb then
743 if t.Data == symb then
744 self:Get(tokenList)
745 return true
746 else
747 return nil
748 end
749 else
750 self:Get(tokenList)
751 return t
752 end
753 else
754 return nil
755 end
756 end
757
758 function tok:ConsumeKeyword(kw, tokenList)
759 local t = self:Peek()
760 if t.Type == 'Keyword' and t.Data == kw then
761 self:Get(tokenList)
762 return true
763 else
764 return nil
765 end
766 end
767
768 function tok:IsKeyword(kw)
769 local t = tok:Peek()
770 return t.Type == 'Keyword' and t.Data == kw
771 end
772
773 function tok:IsSymbol(s)
774 local t = tok:Peek()
775 return t.Type == 'Symbol' and t.Data == s
776 end
777
778 function tok:IsEof()
779 return tok:Peek().Type == 'Eof'
780 end
781
782 return true, tok
783end
784
785
786local function ParseLua(src)
787 local st, tok
788 if type(src) ~= 'table' then
789 st, tok = LexLua(src)
790 else
791 st, tok = true, src
792 end
793 if not st then
794 return false, tok
795 end
796 --
797 local function GenerateError(msg)
798 local err = ">> :"..tok:Peek().Line..":"..tok:Peek().Char..": "..msg.."\n"
799 --find the line
800 local lineNum = 0
801 if type(src) == 'string' then
802 for line in src:gmatch("[^\n]*\n?") do
803 if line:sub(-1,-1) == '\n' then line = line:sub(1,-2) end
804 lineNum = lineNum+1
805 if lineNum == tok:Peek().Line then
806 err = err..">> `"..line:gsub('\t',' ').."`\n"
807 for i = 1, tok:Peek().Char do
808 local c = line:sub(i,i)
809 if c == '\t' then
810 err = err..' '
811 else
812 err = err..' '
813 end
814 end
815 err = err.." ^^^^"
816 break
817 end
818 end
819 end
820 return err
821 end
822 --
823 -- local VarUid = 0
824 -- No longer needed: handled in Scopes now local GlobalVarGetMap = {}
825 -- local VarDigits = {'_', 'a', 'b', 'c', 'd'}
826 local function CreateScope(parent)
827 --[[
828 local scope = {}
829 scope.Parent = parent
830 scope.LocalList = {}
831 scope.LocalMap = {}
832
833 function scope:ObfuscateVariables()
834 for _, var in pairs(scope.LocalList) do
835 local id = ""
836 repeat
837 local chars = "QWERTYUIOPASDFGHJKLZXCVBNMqwertyuioplkjhgfdsazxcvbnm_"
838 local chars2 = "QWERTYUIOPASDFGHJKLZXCVBNMqwertyuioplkjhgfdsazxcvbnm_1234567890"
839 local n = math.random(1, #chars)
840 id = id .. chars:sub(n, n)
841 for i = 1, math.random(0,20) do
842 local n = math.random(1, #chars2)
843 id = id .. chars2:sub(n, n)
844 end
845 until not GlobalVarGetMap[id] and not parent:GetLocal(id) and not scope.LocalMap[id]
846 var.Name = id
847 scope.LocalMap[id] = var
848 end
849 end
850
851 scope.RenameVars = scope.ObfuscateVariables
852
853 -- Renames a variable from this scope and down.
854 -- Does not rename global variables.
855 function scope:RenameVariable(old, newName)
856 if type(old) == "table" then -- its (theoretically) an AstNode variable
857 old = old.Name
858 end
859 for _, var in pairs(scope.LocalList) do
860 if var.Name == old then
861 var.Name = newName
862 scope.LocalMap[newName] = var
863 end
864 end
865 end
866
867 function scope:GetLocal(name)
868 --first, try to get my variable
869 local my = scope.LocalMap[name]
870 if my then return my end
871
872 --next, try parent
873 if scope.Parent then
874 local par = scope.Parent:GetLocal(name)
875 if par then return par end
876 end
877
878 return nil
879 end
880
881 function scope:CreateLocal(name)
882 --create my own var
883 local my = {}
884 my.Scope = scope
885 my.Name = name
886 my.CanRename = true
887 --
888 scope.LocalList[#scope.LocalList+1] = my
889 scope.LocalMap[name] = my
890 --
891 return my
892 end]]
893 local scope = Scope:new(parent)
894 scope.RenameVars = scope.ObfuscateLocals
895 scope.ObfuscateVariables = scope.ObfuscateLocals
896 scope.Print = function() return "<Scope>" end
897 return scope
898 end
899
900 local ParseExpr
901 local ParseStatementList
902 local ParseSimpleExpr,
903 ParseSubExpr,
904 ParsePrimaryExpr,
905 ParseSuffixedExpr
906
907 local function ParseFunctionArgsAndBody(scope, tokenList)
908 local funcScope = CreateScope(scope)
909 if not tok:ConsumeSymbol('(', tokenList) then
910 return false, GenerateError("`(` expected.")
911 end
912
913 --arg list
914 local argList = {}
915 local isVarArg = false
916 while not tok:ConsumeSymbol(')', tokenList) do
917 if tok:Is('Ident') then
918 local arg = funcScope:CreateLocal(tok:Get(tokenList).Data)
919 argList[#argList+1] = arg
920 if not tok:ConsumeSymbol(',', tokenList) then
921 if tok:ConsumeSymbol(')', tokenList) then
922 break
923 else
924 return false, GenerateError("`)` expected.")
925 end
926 end
927 elseif tok:ConsumeSymbol('...', tokenList) then
928 isVarArg = true
929 if not tok:ConsumeSymbol(')', tokenList) then
930 return false, GenerateError("`...` must be the last argument of a function.")
931 end
932 break
933 else
934 return false, GenerateError("Argument name or `...` expected")
935 end
936 end
937
938 --body
939 local st, body = ParseStatementList(funcScope)
940 if not st then return false, body end
941
942 --end
943 if not tok:ConsumeKeyword('end', tokenList) then
944 return false, GenerateError("`end` expected after function body")
945 end
946 local nodeFunc = {}
947 nodeFunc.AstType = 'Function'
948 nodeFunc.Scope = funcScope
949 nodeFunc.Arguments = argList
950 nodeFunc.Body = body
951 nodeFunc.VarArg = isVarArg
952 nodeFunc.Tokens = tokenList
953 --
954 return true, nodeFunc
955 end
956)lua_codes"
957
958R"lua_codes(
959 function ParsePrimaryExpr(scope)
960 local tokenList = {}
961
962 if tok:ConsumeSymbol('(', tokenList) then
963 local st, ex = ParseExpr(scope)
964 if not st then return false, ex end
965 if not tok:ConsumeSymbol(')', tokenList) then
966 return false, GenerateError("`)` Expected.")
967 end
968 if false then
969 --save the information about parenthesized expressions somewhere
970 ex.ParenCount = (ex.ParenCount or 0) + 1
971 return true, ex
972 else
973 local parensExp = {}
974 parensExp.AstType = 'Parentheses'
975 parensExp.Inner = ex
976 parensExp.Tokens = tokenList
977 return true, parensExp
978 end
979
980 elseif tok:Is('Ident') then
981 local id = tok:Get(tokenList)
982 local var = scope:GetLocal(id.Data)
983 if not var then
984 var = scope:GetGlobal(id.Data)
985 if not var then
986 var = scope:CreateGlobal(id.Data)
987 else
988 var.References = var.References + 1
989 end
990 else
991 var.References = var.References + 1
992 end
993 --
994 local nodePrimExp = {}
995 nodePrimExp.AstType = 'VarExpr'
996 nodePrimExp.Name = id.Data
997 nodePrimExp.Variable = var
998 nodePrimExp.Tokens = tokenList
999 --
1000 return true, nodePrimExp
1001 else
1002 return false, GenerateError("primary expression expected")
1003 end
1004 end
1005
1006 function ParseSuffixedExpr(scope, onlyDotColon)
1007 --base primary expression
1008 local st, prim = ParsePrimaryExpr(scope)
1009 if not st then return false, prim end
1010 --
1011 while true do
1012 local tokenList = {}
1013
1014 if tok:IsSymbol('.') or tok:IsSymbol(':') then
1015 local symb = tok:Get(tokenList).Data
1016 if not tok:Is('Ident') then
1017 return false, GenerateError("<Ident> expected.")
1018 end
1019 local id = tok:Get(tokenList)
1020 local nodeIndex = {}
1021 nodeIndex.AstType = 'MemberExpr'
1022 nodeIndex.Base = prim
1023 nodeIndex.Indexer = symb
1024 nodeIndex.Ident = id
1025 nodeIndex.Tokens = tokenList
1026 --
1027 prim = nodeIndex
1028
1029 elseif not onlyDotColon and tok:ConsumeSymbol('[', tokenList) then
1030 local st, ex = ParseExpr(scope)
1031 if not st then return false, ex end
1032 if not tok:ConsumeSymbol(']', tokenList) then
1033 return false, GenerateError("`]` expected.")
1034 end
1035 local nodeIndex = {}
1036 nodeIndex.AstType = 'IndexExpr'
1037 nodeIndex.Base = prim
1038 nodeIndex.Index = ex
1039 nodeIndex.Tokens = tokenList
1040 --
1041 prim = nodeIndex
1042
1043 elseif not onlyDotColon and tok:ConsumeSymbol('(', tokenList) then
1044 local args = {}
1045 while not tok:ConsumeSymbol(')', tokenList) do
1046 local st, ex = ParseExpr(scope)
1047 if not st then return false, ex end
1048 args[#args+1] = ex
1049 if not tok:ConsumeSymbol(',', tokenList) then
1050 if tok:ConsumeSymbol(')', tokenList) then
1051 break
1052 else
1053 return false, GenerateError("`)` Expected.")
1054 end
1055 end
1056 end
1057 local nodeCall = {}
1058 nodeCall.AstType = 'CallExpr'
1059 nodeCall.Base = prim
1060 nodeCall.Arguments = args
1061 nodeCall.Tokens = tokenList
1062 --
1063 prim = nodeCall
1064
1065 elseif not onlyDotColon and tok:Is('String') then
1066 --string call
1067 local nodeCall = {}
1068 nodeCall.AstType = 'StringCallExpr'
1069 nodeCall.Base = prim
1070 nodeCall.Arguments = { tok:Get(tokenList) }
1071 nodeCall.Tokens = tokenList
1072 --
1073 prim = nodeCall
1074
1075 elseif not onlyDotColon and tok:IsSymbol('{') then
1076 --table call
1077 local st, ex = ParseSimpleExpr(scope)
1078 -- FIX: ParseExpr(scope) parses the table AND and any following binary expressions.
1079 -- We just want the table
1080 if not st then return false, ex end
1081 local nodeCall = {}
1082 nodeCall.AstType = 'TableCallExpr'
1083 nodeCall.Base = prim
1084 nodeCall.Arguments = { ex }
1085 nodeCall.Tokens = tokenList
1086 --
1087 prim = nodeCall
1088
1089 else
1090 break
1091 end
1092 end
1093 return true, prim
1094 end
1095
1096
1097 function ParseSimpleExpr(scope)
1098 local tokenList = {}
1099
1100 if tok:Is('Number') then
1101 local nodeNum = {}
1102 nodeNum.AstType = 'NumberExpr'
1103 nodeNum.Value = tok:Get(tokenList)
1104 nodeNum.Tokens = tokenList
1105 return true, nodeNum
1106
1107 elseif tok:Is('String') then
1108 local nodeStr = {}
1109 nodeStr.AstType = 'StringExpr'
1110 nodeStr.Value = tok:Get(tokenList)
1111 nodeStr.Tokens = tokenList
1112 return true, nodeStr
1113
1114 elseif tok:ConsumeKeyword('nil', tokenList) then
1115 local nodeNil = {}
1116 nodeNil.AstType = 'NilExpr'
1117 nodeNil.Tokens = tokenList
1118 return true, nodeNil
1119
1120 elseif tok:IsKeyword('false') or tok:IsKeyword('true') then
1121 local nodeBoolean = {}
1122 nodeBoolean.AstType = 'BooleanExpr'
1123 nodeBoolean.Value = (tok:Get(tokenList).Data == 'true')
1124 nodeBoolean.Tokens = tokenList
1125 return true, nodeBoolean
1126
1127 elseif tok:ConsumeSymbol('...', tokenList) then
1128 local nodeDots = {}
1129 nodeDots.AstType = 'DotsExpr'
1130 nodeDots.Tokens = tokenList
1131 return true, nodeDots
1132
1133 elseif tok:ConsumeSymbol('{', tokenList) then
1134 local v = {}
1135 v.AstType = 'ConstructorExpr'
1136 v.EntryList = {}
1137 --
1138 while true do
1139 if tok:IsSymbol('[', tokenList) then
1140 --key
1141 tok:Get(tokenList)
1142 local st, key = ParseExpr(scope)
1143 if not st then
1144 return false, GenerateError("Key Expression Expected")
1145 end
1146 if not tok:ConsumeSymbol(']', tokenList) then
1147 return false, GenerateError("`]` Expected")
1148 end
1149 if not tok:ConsumeSymbol('=', tokenList) then
1150 return false, GenerateError("`=` Expected")
1151 end
1152 local st, value = ParseExpr(scope)
1153 if not st then
1154 return false, GenerateError("Value Expression Expected")
1155 end
1156 v.EntryList[#v.EntryList+1] = {
1157 Type = 'Key';
1158 Key = key;
1159 Value = value;
1160 }
1161
1162 elseif tok:Is('Ident') then
1163 --value or key
1164 local lookahead = tok:Peek(1)
1165 if lookahead.Type == 'Symbol' and lookahead.Data == '=' then
1166 --we are a key
1167 local key = tok:Get(tokenList)
1168 if not tok:ConsumeSymbol('=', tokenList) then
1169 return false, GenerateError("`=` Expected")
1170 end
1171 local st, value = ParseExpr(scope)
1172 if not st then
1173 return false, GenerateError("Value Expression Expected")
1174 end
1175 v.EntryList[#v.EntryList+1] = {
1176 Type = 'KeyString';
1177 Key = key.Data;
1178 Value = value;
1179 }
1180
1181 else
1182 --we are a value
1183 local st, value = ParseExpr(scope)
1184 if not st then
1185 return false, GenerateError("Value Exected")
1186 end
1187 v.EntryList[#v.EntryList+1] = {
1188 Type = 'Value';
1189 Value = value;
1190 }
1191
1192 end
1193 elseif tok:ConsumeSymbol('}', tokenList) then
1194 break
1195
1196 else
1197 --value
1198 local st, value = ParseExpr(scope)
1199 v.EntryList[#v.EntryList+1] = {
1200 Type = 'Value';
1201 Value = value;
1202 }
1203 if not st then
1204 return false, GenerateError("Value Expected")
1205 end
1206 end
1207
1208 if tok:ConsumeSymbol(';', tokenList) or tok:ConsumeSymbol(',', tokenList) then
1209 --all is good
1210 elseif tok:ConsumeSymbol('}', tokenList) then
1211 break
1212 else
1213 return false, GenerateError("`}` or table entry Expected")
1214 end
1215 end
1216 v.Tokens = tokenList
1217 return true, v
1218
1219 elseif tok:ConsumeKeyword('function', tokenList) then
1220 local st, func = ParseFunctionArgsAndBody(scope, tokenList)
1221 if not st then return false, func end
1222 --
1223 func.IsLocal = true
1224 return true, func
1225
1226 else
1227 return ParseSuffixedExpr(scope)
1228 end
1229 end
1230
1231
1232 local unops = lookupify{'-', 'not', '#'}
1233 local unopprio = 8
1234 local priority = {
1235 ['+'] = {6,6};
1236 ['-'] = {6,6};
1237 ['%'] = {7,7};
1238 ['/'] = {7,7};
1239 ['*'] = {7,7};
1240 ['^'] = {10,9};
1241 ['..'] = {5,4};
1242 ['=='] = {3,3};
1243 ['<'] = {3,3};
1244 ['<='] = {3,3};
1245 ['~='] = {3,3};
1246 ['>'] = {3,3};
1247 ['>='] = {3,3};
1248 ['and'] = {2,2};
1249 ['or'] = {1,1};
1250 }
1251 function ParseSubExpr(scope, level)
1252 --base item, possibly with unop prefix
1253 local st, exp
1254 if unops[tok:Peek().Data] then
1255 local tokenList = {}
1256 local op = tok:Get(tokenList).Data
1257 st, exp = ParseSubExpr(scope, unopprio)
1258 if not st then return false, exp end
1259 local nodeEx = {}
1260 nodeEx.AstType = 'UnopExpr'
1261 nodeEx.Rhs = exp
1262 nodeEx.Op = op
1263 nodeEx.OperatorPrecedence = unopprio
1264 nodeEx.Tokens = tokenList
1265 exp = nodeEx
1266 else
1267 st, exp = ParseSimpleExpr(scope)
1268 if not st then return false, exp end
1269 end
1270
1271 --next items in chain
1272 while true do
1273 local prio = priority[tok:Peek().Data]
1274 if prio and prio[1] > level then
1275 local tokenList = {}
1276 local op = tok:Get(tokenList).Data
1277 local st, rhs = ParseSubExpr(scope, prio[2])
1278 if not st then return false, rhs end
1279 local nodeEx = {}
1280 nodeEx.AstType = 'BinopExpr'
1281 nodeEx.Lhs = exp
1282 nodeEx.Op = op
1283 nodeEx.OperatorPrecedence = prio[1]
1284 nodeEx.Rhs = rhs
1285 nodeEx.Tokens = tokenList
1286 --
1287 exp = nodeEx
1288 else
1289 break
1290 end
1291 end
1292
1293 return true, exp
1294 end
1295
1296
1297 ParseExpr = function(scope)
1298 return ParseSubExpr(scope, 0)
1299 end
1300)lua_codes"
1301
1302R"lua_codes(
1303 local function ParseStatement(scope)
1304 local stat = nil
1305 local tokenList = {}
1306 if tok:ConsumeKeyword('if', tokenList) then
1307 --setup
1308 local nodeIfStat = {}
1309 nodeIfStat.AstType = 'IfStatement'
1310 nodeIfStat.Clauses = {}
1311
1312 --clauses
1313 repeat
1314 local st, nodeCond = ParseExpr(scope)
1315 if not st then return false, nodeCond end
1316 if not tok:ConsumeKeyword('then', tokenList) then
1317 return false, GenerateError("`then` expected.")
1318 end
1319 if tok:IsSymbol(';') then
1320 tok:Get()
1321 end
1322 local st, nodeBody = ParseStatementList(scope)
1323 if not st then return false, nodeBody end
1324 nodeIfStat.Clauses[#nodeIfStat.Clauses+1] = {
1325 Condition = nodeCond;
1326 Body = nodeBody;
1327 }
1328 until not tok:ConsumeKeyword('elseif', tokenList)
1329
1330 --else clause
1331 if tok:ConsumeKeyword('else', tokenList) then
1332 local st, nodeBody = ParseStatementList(scope)
1333 if not st then return false, nodeBody end
1334 nodeIfStat.Clauses[#nodeIfStat.Clauses+1] = {
1335 Body = nodeBody;
1336 }
1337 end
1338
1339 --end
1340 if not tok:ConsumeKeyword('end', tokenList) then
1341 return false, GenerateError("`end` expected.")
1342 end
1343
1344 nodeIfStat.Tokens = tokenList
1345 stat = nodeIfStat
1346
1347 elseif tok:ConsumeKeyword('while', tokenList) then
1348 --setup
1349 local nodeWhileStat = {}
1350 nodeWhileStat.AstType = 'WhileStatement'
1351
1352 --condition
1353 local st, nodeCond = ParseExpr(scope)
1354 if not st then return false, nodeCond end
1355
1356 --do
1357 if not tok:ConsumeKeyword('do', tokenList) then
1358 return false, GenerateError("`do` expected.")
1359 end
1360
1361 --body
1362 local st, nodeBody = ParseStatementList(scope)
1363 if not st then return false, nodeBody end
1364
1365 --end
1366 if not tok:ConsumeKeyword('end', tokenList) then
1367 return false, GenerateError("`end` expected.")
1368 end
1369
1370 --return
1371 nodeWhileStat.Condition = nodeCond
1372 nodeWhileStat.Body = nodeBody
1373 nodeWhileStat.Tokens = tokenList
1374 stat = nodeWhileStat
1375
1376 elseif tok:ConsumeKeyword('do', tokenList) then
1377 --do block
1378 local st, nodeBlock = ParseStatementList(scope)
1379 if not st then return false, nodeBlock end
1380 if not tok:ConsumeKeyword('end', tokenList) then
1381 return false, GenerateError("`end` expected.")
1382 end
1383
1384 local nodeDoStat = {}
1385 nodeDoStat.AstType = 'DoStatement'
1386 nodeDoStat.Body = nodeBlock
1387 nodeDoStat.Tokens = tokenList
1388 stat = nodeDoStat
1389
1390 elseif tok:ConsumeKeyword('for', tokenList) then
1391 --for block
1392 if not tok:Is('Ident') then
1393 return false, GenerateError("<ident> expected.")
1394 end
1395 local baseVarName = tok:Get(tokenList)
1396 if tok:ConsumeSymbol('=', tokenList) then
1397 --numeric for
1398 local forScope = CreateScope(scope)
1399 local forVar = forScope:CreateLocal(baseVarName.Data)
1400 --
1401 local st, startEx = ParseExpr(scope)
1402 if not st then return false, startEx end
1403 if not tok:ConsumeSymbol(',', tokenList) then
1404 return false, GenerateError("`,` Expected")
1405 end
1406 local st, endEx = ParseExpr(scope)
1407 if not st then return false, endEx end
1408 local st, stepEx;
1409 if tok:ConsumeSymbol(',', tokenList) then
1410 st, stepEx = ParseExpr(scope)
1411 if not st then return false, stepEx end
1412 end
1413 if not tok:ConsumeKeyword('do', tokenList) then
1414 return false, GenerateError("`do` expected")
1415 end
1416 --
1417 local st, body = ParseStatementList(forScope)
1418 if not st then return false, body end
1419 if not tok:ConsumeKeyword('end', tokenList) then
1420 return false, GenerateError("`end` expected")
1421 end
1422 --
1423 local nodeFor = {}
1424 nodeFor.AstType = 'NumericForStatement'
1425 nodeFor.Scope = forScope
1426 nodeFor.Variable = forVar
1427 nodeFor.Start = startEx
1428 nodeFor.End = endEx
1429 nodeFor.Step = stepEx
1430 nodeFor.Body = body
1431 nodeFor.Tokens = tokenList
1432 stat = nodeFor
1433 else
1434 --generic for
1435 local forScope = CreateScope(scope)
1436 --
1437 local varList = { forScope:CreateLocal(baseVarName.Data) }
1438 while tok:ConsumeSymbol(',', tokenList) do
1439 if not tok:Is('Ident') then
1440 return false, GenerateError("for variable expected.")
1441 end
1442 varList[#varList+1] = forScope:CreateLocal(tok:Get(tokenList).Data)
1443 end
1444 if not tok:ConsumeKeyword('in', tokenList) then
1445 return false, GenerateError("`in` expected.")
1446 end
1447 local generators = {}
1448 local st, firstGenerator = ParseExpr(scope)
1449 if not st then return false, firstGenerator end
1450 generators[#generators+1] = firstGenerator
1451 while tok:ConsumeSymbol(',', tokenList) do
1452 local st, gen = ParseExpr(scope)
1453 if not st then return false, gen end
1454 generators[#generators+1] = gen
1455 end
1456 if not tok:ConsumeKeyword('do', tokenList) then
1457 return false, GenerateError("`do` expected.")
1458 end
1459 local st, body = ParseStatementList(forScope)
1460 if not st then return false, body end
1461 if not tok:ConsumeKeyword('end', tokenList) then
1462 return false, GenerateError("`end` expected.")
1463 end
1464 --
1465 local nodeFor = {}
1466 nodeFor.AstType = 'GenericForStatement'
1467 nodeFor.Scope = forScope
1468 nodeFor.VariableList = varList
1469 nodeFor.Generators = generators
1470 nodeFor.Body = body
1471 nodeFor.Tokens = tokenList
1472 stat = nodeFor
1473 end
1474
1475 elseif tok:ConsumeKeyword('repeat', tokenList) then
1476 local st, body = ParseStatementList(scope)
1477 if not st then return false, body end
1478 --
1479 if not tok:ConsumeKeyword('until', tokenList) then
1480 return false, GenerateError("`until` expected.")
1481 end
1482 -- FIX: Used to parse in parent scope
1483 -- Now parses in repeat scope
1484 local st, cond = ParseExpr(body.Scope)
1485 if not st then return false, cond end
1486 --
1487 local nodeRepeat = {}
1488 nodeRepeat.AstType = 'RepeatStatement'
1489 nodeRepeat.Condition = cond
1490 nodeRepeat.Body = body
1491 nodeRepeat.Tokens = tokenList
1492 stat = nodeRepeat
1493
1494 elseif tok:ConsumeKeyword('function', tokenList) then
1495 if not tok:Is('Ident') then
1496 return false, GenerateError("Function name expected")
1497 end
1498 local st, name = ParseSuffixedExpr(scope, true) --true => only dots and colons
1499 if not st then return false, name end
1500 --
1501 local st, func = ParseFunctionArgsAndBody(scope, tokenList)
1502 if not st then return false, func end
1503 --
1504 func.IsLocal = false
1505 func.Name = name
1506 stat = func
1507
1508 elseif tok:ConsumeKeyword('local', tokenList) then
1509 if tok:Is('Ident') then
1510 local varList, attrList = {}, {}
1511 repeat
1512 if not tok:Is('Ident') then
1513 return false, GenerateError("local var name expected")
1514 end
1515 varList[#varList+1] = tok:Get(tokenList).Data
1516 if tok:ConsumeSymbol('<', tokenList) then
1517 if not tok:Is('Ident') then
1518 return false, GenerateError("attrib name expected")
1519 end
1520 attrList[#attrList+1] = tok:Get(tokenList).Data
1521 if not tok:ConsumeSymbol('>', tokenList) then
1522 return false, GenerateError("missing '>' to close attrib name")
1523 end
1524 else
1525 attrList[#attrList+1] = false
1526 end
1527 until not tok:ConsumeSymbol(',', tokenList)
1528
1529 local initList = {}
1530 if tok:ConsumeSymbol('=', tokenList) then
1531 repeat
1532 local st, ex = ParseExpr(scope)
1533 if not st then return false, ex end
1534 initList[#initList+1] = ex
1535 until not tok:ConsumeSymbol(',', tokenList)
1536 end
1537
1538 --now patch var list
1539 --we can't do this before getting the init list, because the init list does not
1540 --have the locals themselves in scope.
1541 for i, v in pairs(varList) do
1542 varList[i] = scope:CreateLocal(v)
1543 end
1544
1545 local nodeLocal = {}
1546 nodeLocal.AstType = 'LocalStatement'
1547 nodeLocal.LocalList = varList
1548 nodeLocal.AttrList = attrList
1549 nodeLocal.InitList = initList
1550 nodeLocal.Tokens = tokenList
1551 --
1552 stat = nodeLocal
1553
1554 elseif tok:ConsumeKeyword('function', tokenList) then
1555 if not tok:Is('Ident') then
1556 return false, GenerateError("Function name expected")
1557 end
1558 local name = tok:Get(tokenList).Data
1559 local localVar = scope:CreateLocal(name)
1560 --
1561 local st, func = ParseFunctionArgsAndBody(scope, tokenList)
1562 if not st then return false, func end
1563 --
1564 func.Name = localVar
1565 func.IsLocal = true
1566 stat = func
1567
1568 else
1569 return false, GenerateError("local var or function def expected")
1570 end
1571
1572 elseif tok:ConsumeSymbol('::', tokenList) then
1573 if not tok:Is('Ident') then
1574 return false, GenerateError('Label name expected')
1575 end
1576 local label = tok:Get(tokenList).Data
1577 if not tok:ConsumeSymbol('::', tokenList) then
1578 return false, GenerateError("`::` expected")
1579 end
1580 local nodeLabel = {}
1581 nodeLabel.AstType = 'LabelStatement'
1582 nodeLabel.Label = label
1583 nodeLabel.Tokens = tokenList
1584 stat = nodeLabel
1585
1586 elseif tok:ConsumeKeyword('return', tokenList) then
1587 local exList = {}
1588 if not tok:IsKeyword('end') then
1589 local st, firstEx = ParseExpr(scope)
1590 if st then
1591 exList[1] = firstEx
1592 while tok:ConsumeSymbol(',', tokenList) do
1593 local st, ex = ParseExpr(scope)
1594 if not st then return false, ex end
1595 exList[#exList+1] = ex
1596 end
1597 end
1598 end
1599
1600 local nodeReturn = {}
1601 nodeReturn.AstType = 'ReturnStatement'
1602 nodeReturn.Arguments = exList
1603 nodeReturn.Tokens = tokenList
1604 stat = nodeReturn
1605
1606 elseif tok:ConsumeKeyword('break', tokenList) then
1607 local nodeBreak = {}
1608 nodeBreak.AstType = 'BreakStatement'
1609 nodeBreak.Tokens = tokenList
1610 stat = nodeBreak
1611
1612 elseif tok:ConsumeKeyword('goto', tokenList) then
1613 if not tok:Is('Ident') then
1614 return false, GenerateError("Label expected")
1615 end
1616 local label = tok:Get(tokenList).Data
1617 local nodeGoto = {}
1618 nodeGoto.AstType = 'GotoStatement'
1619 nodeGoto.Label = label
1620 nodeGoto.Tokens = tokenList
1621 stat = nodeGoto
1622
1623 else
1624 --statementParseExpr
1625 local st, suffixed = ParseSuffixedExpr(scope)
1626 if not st then return false, suffixed end
1627
1628 --assignment or call?
1629 if tok:IsSymbol(',') or tok:IsSymbol('=') then
1630 --check that it was not parenthesized, making it not an lvalue
1631 if (suffixed.ParenCount or 0) > 0 then
1632 return false, GenerateError("Can not assign to parenthesized expression, is not an lvalue")
1633 end
1634
1635 --more processing needed
1636 local lhs = { suffixed }
1637 while tok:ConsumeSymbol(',', tokenList) do
1638 local st, lhsPart = ParseSuffixedExpr(scope)
1639 if not st then return false, lhsPart end
1640 lhs[#lhs+1] = lhsPart
1641 end
1642
1643 --equals
1644 if not tok:ConsumeSymbol('=', tokenList) then
1645 return false, GenerateError("`=` Expected.")
1646 end
1647
1648 --rhs
1649 local rhs = {}
1650 local st, firstRhs = ParseExpr(scope)
1651 if not st then return false, firstRhs end
1652 rhs[1] = firstRhs
1653 while tok:ConsumeSymbol(',', tokenList) do
1654 local st, rhsPart = ParseExpr(scope)
1655 if not st then return false, rhsPart end
1656 rhs[#rhs+1] = rhsPart
1657 end
1658
1659 --done
1660 local nodeAssign = {}
1661 nodeAssign.AstType = 'AssignmentStatement'
1662 nodeAssign.Lhs = lhs
1663 nodeAssign.Rhs = rhs
1664 nodeAssign.Tokens = tokenList
1665 stat = nodeAssign
1666
1667 elseif suffixed.AstType == 'CallExpr' or
1668 suffixed.AstType == 'TableCallExpr' or
1669 suffixed.AstType == 'StringCallExpr'
1670 then
1671 --it's a call statement
1672 local nodeCall = {}
1673 nodeCall.AstType = 'CallStatement'
1674 nodeCall.Expression = suffixed
1675 nodeCall.Tokens = tokenList
1676 stat = nodeCall
1677 else
1678 return false, GenerateError("Assignment Statement Expected")
1679 end
1680 end
1681
1682 if tok:IsSymbol(';') then
1683 stat.Semicolon = tok:Get( stat.Tokens )
1684 end
1685 return true, stat
1686 end
1687
1688
1689 local statListCloseKeywords = lookupify{'end', 'else', 'elseif', 'until'}
1690
1691 ParseStatementList = function(scope)
1692 local nodeStatlist = {}
1693 nodeStatlist.Scope = CreateScope(scope)
1694 nodeStatlist.AstType = 'Statlist'
1695 nodeStatlist.Body = { }
1696 nodeStatlist.Tokens = { }
1697 --
1698 --local stats = {}
1699 --
1700 while not statListCloseKeywords[tok:Peek().Data] and not tok:IsEof() do
1701 local st, nodeStatement = ParseStatement(nodeStatlist.Scope)
1702 if not st then return false, nodeStatement end
1703 --stats[#stats+1] = nodeStatement
1704 nodeStatlist.Body[#nodeStatlist.Body + 1] = nodeStatement
1705 end
1706
1707 if tok:IsEof() then
1708 local nodeEof = {}
1709 nodeEof.AstType = 'Eof'
1710 nodeEof.Tokens = { tok:Get() }
1711 nodeStatlist.Body[#nodeStatlist.Body + 1] = nodeEof
1712 end
1713
1714 --
1715 --nodeStatlist.Body = stats
1716 return true, nodeStatlist
1717 end
1718
1719
1720 local function mainfunc()
1721 local topScope = CreateScope()
1722 return ParseStatementList(topScope)
1723 end
1724
1725 local st, main = mainfunc()
1726 --print("Last Token: "..PrintTable(tok:Peek()))
1727 return st, main
1728end
1729)lua_codes"
1730
1731R"lua_codes(
1732--
1733-- FormatMini.lua
1734--
1735-- Returns the minified version of an AST. Operations which are performed:
1736-- - All comments and whitespace are ignored
1737-- - All local variables are renamed
1738--
1739
1740local function Format_Mini(ast)
1741 local formatStatlist, formatExpr;
1742 --local count = 0
1743 --
1744 local function joinStatementsSafe(a, b, sep)
1745 --print(a, b)
1746 --[[
1747 if count > 150 then
1748 count = 0
1749 return a.."\n"..b
1750 end]]
1751 sep = sep or ' '
1752 if sep == ';' then
1753 local token = a:match("([%w_]+)%s*$")
1754 if token == "then" or token == "do" then
1755 sep = ' '
1756 end
1757 end
1758 local aa, bb = a:sub(-1,-1), b:sub(1,1)
1759 if UpperChars[aa] or LowerChars[aa] or aa == '_' then
1760 if not (UpperChars[bb] or LowerChars[bb] or bb == '_' or Digits[bb]) then
1761 --bb is a symbol, can join without sep
1762 return a..b
1763 elseif bb == '(' then
1764 --prevent ambiguous syntax
1765 return a..sep..b
1766 else
1767 return a..sep..b
1768 end
1769 elseif Digits[aa] then
1770 if bb == '(' then
1771 --can join statements directly
1772 return a..b
1773 elseif Symbols[bb] then
1774 return a .. b
1775 else
1776 return a..sep..b
1777 end
1778 elseif aa == '' then
1779 return a..b
1780 else
1781 if bb == '(' then
1782 --don't want to accidentally call last statement, can't join directly
1783 return a..sep..b
1784 else
1785 --print("asdf", '"'..a..'"', '"'..b..'"')
1786 return a..b
1787 end
1788 end
1789 end
1790
1791 formatExpr = function(expr, precedence)
1792 local precedence = precedence or 0
1793 local currentPrecedence = 0
1794 local skipParens = false
1795 local out = ""
1796 if expr.AstType == 'VarExpr' then
1797 if expr.Variable then
1798 out = out..expr.Variable.Name
1799 else
1800 out = out..expr.Name
1801 end
1802
1803 elseif expr.AstType == 'NumberExpr' then
1804 out = out..expr.Value.Data
1805
1806 elseif expr.AstType == 'StringExpr' then
1807 out = out..expr.Value.Data
1808
1809 elseif expr.AstType == 'BooleanExpr' then
1810 out = out..tostring(expr.Value)
1811
1812 elseif expr.AstType == 'NilExpr' then
1813 out = joinStatementsSafe(out, "nil")
1814
1815 elseif expr.AstType == 'BinopExpr' then
1816 currentPrecedence = expr.OperatorPrecedence
1817 out = joinStatementsSafe(out, formatExpr(expr.Lhs, currentPrecedence))
1818 out = joinStatementsSafe(out, expr.Op)
1819 out = joinStatementsSafe(out, formatExpr(expr.Rhs))
1820 if expr.Op == '^' or expr.Op == '..' then
1821 currentPrecedence = currentPrecedence - 1
1822 end
1823
1824 if currentPrecedence < precedence then
1825 skipParens = false
1826 else
1827 skipParens = true
1828 end
1829 --print(skipParens, precedence, currentPrecedence)
1830 elseif expr.AstType == 'UnopExpr' then
1831 out = joinStatementsSafe(out, expr.Op)
1832 out = joinStatementsSafe(out, formatExpr(expr.Rhs))
1833
1834 elseif expr.AstType == 'DotsExpr' then
1835 out = out.."..."
1836
1837 elseif expr.AstType == 'CallExpr' then
1838 out = out..formatExpr(expr.Base)
1839 out = out.."("
1840 for i = 1, #expr.Arguments do
1841 out = out..formatExpr(expr.Arguments[i])
1842 if i ~= #expr.Arguments then
1843 out = out..","
1844 end
1845 end
1846 out = out..")"
1847
1848 elseif expr.AstType == 'TableCallExpr' then
1849 out = out..formatExpr(expr.Base)
1850 out = out..formatExpr(expr.Arguments[1])
1851
1852 elseif expr.AstType == 'StringCallExpr' then
1853 out = out..formatExpr(expr.Base)
1854 out = out..expr.Arguments[1].Data
1855
1856 elseif expr.AstType == 'IndexExpr' then
1857 out = out..formatExpr(expr.Base).."["..formatExpr(expr.Index).."]"
1858
1859 elseif expr.AstType == 'MemberExpr' then
1860 out = out..formatExpr(expr.Base)..expr.Indexer..expr.Ident.Data
1861
1862 elseif expr.AstType == 'Function' then
1863 expr.Scope:ObfuscateVariables()
1864 out = out.."function("
1865 if #expr.Arguments > 0 then
1866 for i = 1, #expr.Arguments do
1867 out = out..expr.Arguments[i].Name
1868 if i ~= #expr.Arguments then
1869 out = out..","
1870 elseif expr.VarArg then
1871 out = out..",..."
1872 end
1873 end
1874 elseif expr.VarArg then
1875 out = out.."..."
1876 end
1877 out = out..")"
1878 out = joinStatementsSafe(out, formatStatlist(expr.Body))
1879 out = joinStatementsSafe(out, "end")
1880
1881 elseif expr.AstType == 'ConstructorExpr' then
1882 out = out.."{"
1883 for i = 1, #expr.EntryList do
1884 local entry = expr.EntryList[i]
1885 if entry.Type == 'Key' then
1886 out = out.."["..formatExpr(entry.Key).."]="..formatExpr(entry.Value)
1887 elseif entry.Type == 'Value' then
1888 out = out..formatExpr(entry.Value)
1889 elseif entry.Type == 'KeyString' then
1890 out = out..entry.Key.."="..formatExpr(entry.Value)
1891 end
1892 if i ~= #expr.EntryList then
1893 out = out..","
1894 end
1895 end
1896 out = out.."}"
1897
1898 elseif expr.AstType == 'Parentheses' then
1899 out = out.."("..formatExpr(expr.Inner)..")"
1900
1901 end
1902 --print(">>", skipParens, expr.ParenCount, out)
1903 if not skipParens then
1904 --print("hehe")
1905 out = string.rep('(', expr.ParenCount or 0) .. out
1906 out = out .. string.rep(')', expr.ParenCount or 0)
1907 --print("", out)
1908 end
1909 --count = count + #out
1910 return --[[print(out) or]] out
1911 end
1912
1913 local formatStatement = function(statement)
1914 local out = ''
1915 if statement.AstType == 'AssignmentStatement' then
1916 for i = 1, #statement.Lhs do
1917 out = out..formatExpr(statement.Lhs[i])
1918 if i ~= #statement.Lhs then
1919 out = out..","
1920 end
1921 end
1922 if #statement.Rhs > 0 then
1923 out = out.."="
1924 for i = 1, #statement.Rhs do
1925 out = out..formatExpr(statement.Rhs[i])
1926 if i ~= #statement.Rhs then
1927 out = out..","
1928 end
1929 end
1930 end
1931
1932 elseif statement.AstType == 'CallStatement' then
1933 out = formatExpr(statement.Expression)
1934
1935 elseif statement.AstType == 'LocalStatement' then
1936 out = out.."local "
1937 for i = 1, #statement.LocalList do
1938 out = out..statement.LocalList[i].Name
1939 if statement.AttrList[i] then
1940 out = out.."<"..statement.AttrList[i]..">"
1941 if i == #statement.LocalList then
1942 out = out.." "
1943 end
1944 end
1945 if i ~= #statement.LocalList then
1946 out = out..","
1947 end
1948 end
1949 if #statement.InitList > 0 then
1950 out = out.."="
1951 for i = 1, #statement.InitList do
1952 out = out..formatExpr(statement.InitList[i])
1953 if i ~= #statement.InitList then
1954 out = out..","
1955 end
1956 end
1957 end
1958
1959 elseif statement.AstType == 'IfStatement' then
1960 out = joinStatementsSafe("if", formatExpr(statement.Clauses[1].Condition))
1961 out = joinStatementsSafe(out, "then")
1962 out = joinStatementsSafe(out, formatStatlist(statement.Clauses[1].Body))
1963 for i = 2, #statement.Clauses do
1964 local st = statement.Clauses[i]
1965 if st.Condition then
1966 out = joinStatementsSafe(out, "elseif")
1967 out = joinStatementsSafe(out, formatExpr(st.Condition))
1968 out = joinStatementsSafe(out, "then")
1969 else
1970 out = joinStatementsSafe(out, "else")
1971 end
1972 out = joinStatementsSafe(out, formatStatlist(st.Body))
1973 end
1974 out = joinStatementsSafe(out, "end")
1975
1976 elseif statement.AstType == 'WhileStatement' then
1977 out = joinStatementsSafe("while", formatExpr(statement.Condition))
1978 out = joinStatementsSafe(out, "do")
1979 out = joinStatementsSafe(out, formatStatlist(statement.Body))
1980 out = joinStatementsSafe(out, "end")
1981
1982 elseif statement.AstType == 'DoStatement' then
1983 out = joinStatementsSafe(out, "do")
1984 out = joinStatementsSafe(out, formatStatlist(statement.Body))
1985 out = joinStatementsSafe(out, "end")
1986
1987 elseif statement.AstType == 'ReturnStatement' then
1988 out = "return"
1989 for i = 1, #statement.Arguments do
1990 out = joinStatementsSafe(out, formatExpr(statement.Arguments[i]))
1991 if i ~= #statement.Arguments then
1992 out = out..","
1993 end
1994 end
1995
1996 elseif statement.AstType == 'BreakStatement' then
1997 out = "break"
1998
1999 elseif statement.AstType == 'RepeatStatement' then
2000 out = "repeat"
2001 out = joinStatementsSafe(out, formatStatlist(statement.Body))
2002 out = joinStatementsSafe(out, "until")
2003 out = joinStatementsSafe(out, formatExpr(statement.Condition))
2004
2005 elseif statement.AstType == 'Function' then
2006 statement.Scope:ObfuscateVariables()
2007 if statement.IsLocal then
2008 out = "local"
2009 end
2010 out = joinStatementsSafe(out, "function ")
2011 if statement.IsLocal then
2012 out = out..statement.Name.Name
2013 else
2014 out = out..formatExpr(statement.Name)
2015 end
2016 out = out.."("
2017 if #statement.Arguments > 0 then
2018 for i = 1, #statement.Arguments do
2019 out = out..statement.Arguments[i].Name
2020 if i ~= #statement.Arguments then
2021 out = out..","
2022 elseif statement.VarArg then
2023 --print("Apply vararg")
2024 out = out..",..."
2025 end
2026 end
2027 elseif statement.VarArg then
2028 out = out.."..."
2029 end
2030 out = out..")"
2031 out = joinStatementsSafe(out, formatStatlist(statement.Body))
2032 out = joinStatementsSafe(out, "end")
2033
2034 elseif statement.AstType == 'GenericForStatement' then
2035 statement.Scope:ObfuscateVariables()
2036 out = "for "
2037 for i = 1, #statement.VariableList do
2038 out = out..statement.VariableList[i].Name
2039 if i ~= #statement.VariableList then
2040 out = out..","
2041 end
2042 end
2043 out = out.." in"
2044 for i = 1, #statement.Generators do
2045 out = joinStatementsSafe(out, formatExpr(statement.Generators[i]))
2046 if i ~= #statement.Generators then
2047 out = joinStatementsSafe(out, ',')
2048 end
2049 end
2050 out = joinStatementsSafe(out, "do")
2051 out = joinStatementsSafe(out, formatStatlist(statement.Body))
2052 out = joinStatementsSafe(out, "end")
2053
2054 elseif statement.AstType == 'NumericForStatement' then
2055 statement.Scope:ObfuscateVariables()
2056 out = "for "
2057 out = out..statement.Variable.Name.."="
2058 out = out..formatExpr(statement.Start)..","..formatExpr(statement.End)
2059 if statement.Step then
2060 out = out..","..formatExpr(statement.Step)
2061 end
2062 out = joinStatementsSafe(out, "do")
2063 out = joinStatementsSafe(out, formatStatlist(statement.Body))
2064 out = joinStatementsSafe(out, "end")
2065 elseif statement.AstType == 'LabelStatement' then
2066 out = joinStatementsSafe(out, "::" .. statement.Label .. "::")
2067 elseif statement.AstType == 'GotoStatement' then
2068 out = joinStatementsSafe(out, "goto " .. statement.Label)
2069 elseif statement.AstType == 'Comment' then
2070 -- ignore
2071 elseif statement.AstType == 'Eof' then
2072 -- ignore
2073 else
2074 print("Unknown AST Type: " .. statement.AstType)
2075 end
2076 --count = count + #out
2077 return out
2078 end
2079
2080 formatStatlist = function(statList)
2081 local out = ''
2082 statList.Scope:ObfuscateVariables()
2083 for _, stat in pairs(statList.Body) do
2084 out = joinStatementsSafe(out, formatStatement(stat), ';')
2085 end
2086 return out
2087 end
2088
2089 ast.Scope:ObfuscateVariables()
2090 return formatStatlist(ast)
2091end
2092)lua_codes"
2093
2094R"lua_codes(
2095local function FormatYue(ast, lineMap)
2096 local currentLine = 1
2097 local formatStatlist, formatExpr
2098
2099 local function joinStatementsSafe(out, b, sep)
2100 if #out < 1 then
2101 return ''
2102 end
2103 local aa = ''
2104 local b1 = b:sub(1,1)
2105 local spaceSep = b1 == ' ' or b1 == '\n'
2106 for i = #out, 1, -1 do
2107 local a = out[i]
2108 local a1 = a:sub(-1,-1)
2109 if a1 == ' ' or a1 == '\n' then
2110 spaceSep = true
2111 end
2112 aa = a:match("([^%s])%s*$")
2113 if aa then
2114 break
2115 end
2116 end
2117 aa = aa or ''
2118 sep = sep or ' '
2119 if spaceSep then
2120 sep = ''
2121 elseif sep == ';' then
2122 local token = aa:match("([%w_]+)%s*$")
2123 if token == "then" or token == "do" then
2124 sep = ' '
2125 end
2126 end
2127 local bb = b:match("^%s*([^%s])")
2128 if UpperChars[aa] or LowerChars[aa] or aa == '_' then
2129 if not (UpperChars[bb] or LowerChars[bb] or bb == '_' or Digits[bb]) then
2130 --bb is a symbol, can join without sep
2131 out[#out + 1] = b
2132 elseif bb == '(' then
2133 --prevent ambiguous syntax
2134 out[#out + 1] = sep
2135 out[#out + 1] = b
2136 else
2137 out[#out + 1] = sep
2138 out[#out + 1] = b
2139 end
2140 elseif Digits[aa] then
2141 if bb == '(' then
2142 --can join statements directly
2143 out[#out + 1] = b
2144 elseif Symbols[bb] then
2145 out[#out + 1] = b
2146 else
2147 out[#out + 1] = sep
2148 out[#out + 1] = b
2149 end
2150 elseif aa == '' then
2151 out[#out + 1] = b
2152 else
2153 if bb == '(' then
2154 --don't want to accidentally call last statement, can't join directly
2155 out[#out + 1] = sep
2156 out[#out + 1] = b
2157 else
2158 out[#out + 1] = b
2159 end
2160 end
2161 end
2162
2163 formatExpr = function(expr)
2164 local out = {string.rep('(', expr.ParenCount or 0)}
2165 if expr.AstType == 'VarExpr' then
2166 if expr.Variable then
2167 out[#out + 1] = expr.Variable.Name
2168 else
2169 out[#out + 1] = expr.Name
2170 end
2171
2172 elseif expr.AstType == 'NumberExpr' then
2173 out[#out + 1] = expr.Value.Data
2174
2175 elseif expr.AstType == 'StringExpr' then
2176 out[#out + 1] = expr.Value.Data
2177
2178 elseif expr.AstType == 'BooleanExpr' then
2179 out[#out + 1] = tostring(expr.Value)
2180
2181 elseif expr.AstType == 'NilExpr' then
2182 joinStatementsSafe(out, "nil", nil)
2183
2184 elseif expr.AstType == 'BinopExpr' then
2185 joinStatementsSafe(out, formatExpr(expr.Lhs), nil)
2186 out[#out + 1] = " "
2187 joinStatementsSafe(out, expr.Op, nil)
2188 out[#out + 1] = " "
2189 joinStatementsSafe(out, formatExpr(expr.Rhs), nil)
2190
2191 elseif expr.AstType == 'UnopExpr' then
2192 joinStatementsSafe(out, expr.Op, nil)
2193 out[#out + 1] = (#expr.Op ~= 1 and " " or "")
2194 joinStatementsSafe(out, formatExpr(expr.Rhs), nil)
2195
2196 elseif expr.AstType == 'DotsExpr' then
2197 out[#out + 1] = "..."
2198
2199 elseif expr.AstType == 'CallExpr' then
2200 out[#out + 1] = formatExpr(expr.Base)
2201 out[#out + 1] = "("
2202 for i = 1, #expr.Arguments do
2203 out[#out + 1] = formatExpr(expr.Arguments[i])
2204 if i ~= #expr.Arguments then
2205 out[#out + 1] = ", "
2206 end
2207 end
2208 out[#out + 1] = ")"
2209
2210 elseif expr.AstType == 'TableCallExpr' then
2211 out[#out + 1] = formatExpr(expr.Base)
2212 out[#out + 1] = " "
2213 out[#out + 1] = formatExpr(expr.Arguments[1])
2214
2215 elseif expr.AstType == 'StringCallExpr' then
2216 out[#out + 1] = formatExpr(expr.Base)
2217 out[#out + 1] = " "
2218 out[#out + 1] = expr.Arguments[1].Data
2219
2220 elseif expr.AstType == 'IndexExpr' then
2221 out[#out + 1] = formatExpr(expr.Base)
2222 out[#out + 1] = "["
2223 out[#out + 1] = formatExpr(expr.Index)
2224 out[#out + 1] = "]"
2225
2226 elseif expr.AstType == 'MemberExpr' then
2227 out[#out + 1] = formatExpr(expr.Base)
2228 local targetLine = lineMap[expr.Ident.Line]
2229 if targetLine and currentLine < targetLine then
2230 out[#out + 1] = string.rep('\n', targetLine - currentLine)
2231 currentLine = targetLine
2232 end
2233 out[#out + 1] = expr.Indexer
2234 out[#out + 1] = expr.Ident.Data
2235
2236 elseif expr.AstType == 'Function' then
2237 -- anonymous function
2238 out[#out + 1] = "function("
2239 if #expr.Arguments > 0 then
2240 for i = 1, #expr.Arguments do
2241 out[#out + 1] = expr.Arguments[i].Name
2242 if i ~= #expr.Arguments then
2243 out[#out + 1] = ", "
2244 elseif expr.VarArg then
2245 out[#out + 1] = ", ..."
2246 end
2247 end
2248 elseif expr.VarArg then
2249 out[#out + 1] = "..."
2250 end
2251 out[#out + 1] = ")"
2252 joinStatementsSafe(out, formatStatlist(expr.Body), nil)
2253 joinStatementsSafe(out, "end", nil)
2254 elseif expr.AstType == 'ConstructorExpr' then
2255 out[#out + 1] = "{ "
2256 for i = 1, #expr.EntryList do
2257 local entry = expr.EntryList[i]
2258 if entry.Type == 'Key' then
2259 out[#out + 1] = "["
2260 out[#out + 1] = formatExpr(entry.Key)
2261 out[#out + 1] = "] = "
2262 out[#out + 1] = formatExpr(entry.Value)
2263 elseif entry.Type == 'Value' then
2264 out[#out + 1] = formatExpr(entry.Value)
2265 elseif entry.Type == 'KeyString' then
2266 out[#out + 1] = entry.Key
2267 out[#out + 1] = " = "
2268 out[#out + 1] = formatExpr(entry.Value)
2269 end
2270 if i ~= #expr.EntryList then
2271 out[#out + 1] = ", "
2272 end
2273 end
2274 out[#out + 1] = " }"
2275
2276 elseif expr.AstType == 'Parentheses' then
2277 out[#out + 1] = "("
2278 out[#out + 1] = formatExpr(expr.Inner)
2279 out[#out + 1] = ")"
2280
2281 end
2282 out[#out + 1] = string.rep(')', expr.ParenCount or 0)
2283 if expr.Tokens and expr.Tokens[1] then
2284 local line = expr.Tokens[1].Line
2285 local targetLine = lineMap[line]
2286 if targetLine and currentLine < targetLine then
2287 table.insert(out, 1, string.rep('\n', targetLine - currentLine))
2288 currentLine = targetLine
2289 end
2290 end
2291 return table.concat(out)
2292 end
2293
2294 local formatStatement = function(statement)
2295 local out = {""}
2296 if statement.AstType == 'AssignmentStatement' then
2297 for i = 1, #statement.Lhs do
2298 out[#out + 1] = formatExpr(statement.Lhs[i])
2299 if i ~= #statement.Lhs then
2300 out[#out + 1] = ", "
2301 end
2302 end
2303 if #statement.Rhs > 0 then
2304 out[#out + 1] = " = "
2305 for i = 1, #statement.Rhs do
2306 out[#out + 1] = formatExpr(statement.Rhs[i])
2307 if i ~= #statement.Rhs then
2308 out[#out + 1] = ", "
2309 end
2310 end
2311 end
2312 elseif statement.AstType == 'CallStatement' then
2313 out[#out + 1] = formatExpr(statement.Expression)
2314 elseif statement.AstType == 'LocalStatement' then
2315 out[#out + 1] = "local "
2316 for i = 1, #statement.LocalList do
2317 out[#out + 1] = statement.LocalList[i].Name
2318 if statement.AttrList[i] then
2319 out[#out + 1] = " <"
2320 out[#out + 1] = statement.AttrList[i]
2321 out[#out + 1] = ">"
2322 end
2323 if i ~= #statement.LocalList then
2324 out[#out + 1] = ","
2325 end
2326 end
2327 if #statement.InitList > 0 then
2328 out[#out + 1] = " = "
2329 for i = 1, #statement.InitList do
2330 out[#out + 1] = formatExpr(statement.InitList[i])
2331 if i ~= #statement.InitList then
2332 out[#out + 1] = ", "
2333 end
2334 end
2335 end
2336 elseif statement.AstType == 'IfStatement' then
2337 out[#out + 1] = "if "
2338 joinStatementsSafe(out, formatExpr(statement.Clauses[1].Condition), nil)
2339 joinStatementsSafe(out, " then", nil)
2340 joinStatementsSafe(out, formatStatlist(statement.Clauses[1].Body), nil)
2341 for i = 2, #statement.Clauses do
2342 local st = statement.Clauses[i]
2343 if st.Condition then
2344 joinStatementsSafe(out, "elseif ", nil)
2345 joinStatementsSafe(out, formatExpr(st.Condition), nil)
2346 joinStatementsSafe(out, " then", nil)
2347 else
2348 joinStatementsSafe(out, "else", nil)
2349 end
2350 joinStatementsSafe(out, formatStatlist(st.Body), nil)
2351 end
2352 joinStatementsSafe(out, "end", nil)
2353 elseif statement.AstType == 'WhileStatement' then
2354 out[#out + 1] = "while "
2355 joinStatementsSafe(out, formatExpr(statement.Condition), nil)
2356 joinStatementsSafe(out, " do", nil)
2357 joinStatementsSafe(out, formatStatlist(statement.Body), nil)
2358 joinStatementsSafe(out, "end", nil)
2359 elseif statement.AstType == 'DoStatement' then
2360 joinStatementsSafe(out, "do", nil)
2361 joinStatementsSafe(out, formatStatlist(statement.Body), nil)
2362 joinStatementsSafe(out, "end", nil)
2363 elseif statement.AstType == 'ReturnStatement' then
2364 out[#out + 1] = "return "
2365 for i = 1, #statement.Arguments do
2366 joinStatementsSafe(out, formatExpr(statement.Arguments[i]), nil)
2367 if i ~= #statement.Arguments then
2368 out[#out + 1] = ", "
2369 end
2370 end
2371 elseif statement.AstType == 'BreakStatement' then
2372 out[#out + 1] = "break"
2373 elseif statement.AstType == 'RepeatStatement' then
2374 out[#out + 1] = "repeat"
2375 joinStatementsSafe(out, formatStatlist(statement.Body), nil)
2376 joinStatementsSafe(out, "until ", nil)
2377 joinStatementsSafe(out, formatExpr(statement.Condition), nil)
2378 elseif statement.AstType == 'Function' then
2379 if statement.IsLocal then
2380 out[#out + 1] = "local "
2381 end
2382 joinStatementsSafe(out, "function ", nil)
2383 if statement.IsLocal then
2384 out[#out + 1] = statement.Name.Name
2385 else
2386 out[#out + 1] = formatExpr(statement.Name)
2387 end
2388 out[#out + 1] = "("
2389 if #statement.Arguments > 0 then
2390 for i = 1, #statement.Arguments do
2391 out[#out + 1] = statement.Arguments[i].Name
2392 if i ~= #statement.Arguments then
2393 out[#out + 1] = ", "
2394 elseif statement.VarArg then
2395 out[#out + 1] = ",..."
2396 end
2397 end
2398 elseif statement.VarArg then
2399 out[#out + 1] = "..."
2400 end
2401 out[#out + 1] = ")"
2402 joinStatementsSafe(out, formatStatlist(statement.Body), nil)
2403 joinStatementsSafe(out, "end", nil)
2404 elseif statement.AstType == 'GenericForStatement' then
2405 out[#out + 1] = "for "
2406 for i = 1, #statement.VariableList do
2407 out[#out + 1] = statement.VariableList[i].Name
2408 if i ~= #statement.VariableList then
2409 out[#out + 1] = ", "
2410 end
2411 end
2412 out[#out + 1] = " in "
2413 for i = 1, #statement.Generators do
2414 joinStatementsSafe(out, formatExpr(statement.Generators[i]), nil)
2415 if i ~= #statement.Generators then
2416 joinStatementsSafe(out, ', ', nil)
2417 end
2418 end
2419 joinStatementsSafe(out, " do", nil)
2420 joinStatementsSafe(out, formatStatlist(statement.Body), nil)
2421 joinStatementsSafe(out, "end", nil)
2422 elseif statement.AstType == 'NumericForStatement' then
2423 out[#out + 1] = "for "
2424 out[#out + 1] = statement.Variable.Name
2425 out[#out + 1] = " = "
2426 out[#out + 1] = formatExpr(statement.Start)
2427 out[#out + 1] = ", "
2428 out[#out + 1] = formatExpr(statement.End)
2429 if statement.Step then
2430 out[#out + 1] = ", "
2431 out[#out + 1] = formatExpr(statement.Step)
2432 end
2433 joinStatementsSafe(out, " do", nil)
2434 joinStatementsSafe(out, formatStatlist(statement.Body), nil)
2435 joinStatementsSafe(out, "end", nil)
2436 elseif statement.AstType == 'LabelStatement' then
2437 out[#out + 1] = "::"
2438 out[#out + 1] = statement.Label
2439 out[#out + 1] = "::"
2440 elseif statement.AstType == 'GotoStatement' then
2441 out[#out + 1] = "goto "
2442 out[#out + 1] = statement.Label
2443 elseif statement.AstType == 'Comment' then
2444 -- Ignore
2445 elseif statement.AstType == 'Eof' then
2446 -- Ignore
2447 else
2448 print("Unknown AST Type: ", statement.AstType)
2449 end
2450 if statement.Tokens and statement.Tokens[1] then
2451 local line = statement.Tokens[1].Line
2452 local targetLine = lineMap[line]
2453 if targetLine and currentLine < targetLine then
2454 table.insert(out, 1, string.rep('\n', targetLine - currentLine))
2455 currentLine = targetLine
2456 end
2457 end
2458 return table.concat(out)
2459 end
2460
2461 formatStatlist = function(statList)
2462 local out = {""}
2463 for _, stat in pairs(statList.Body) do
2464 joinStatementsSafe(out, formatStatement(stat), ';')
2465 end
2466 return table.concat(out)
2467 end
2468
2469 return formatStatlist(ast)
2470end
2471
2472local function GetYueLineMap(luaCodes)
2473 local current = 1
2474 local lastLine = 1
2475 local lineMap = { }
2476 for lineCode in luaCodes:gmatch("([^\r\n]*)\r?\n?") do
2477 local num = lineCode:match("--%s*(%d+)%s*$")
2478 if num then
2479 local line = tonumber(num)
2480 if line > lastLine then
2481 lastLine = line
2482 end
2483 end
2484 lineMap[current] = lastLine
2485 current = current + 1
2486 end
2487 return lineMap
2488end
2489
2490return {
2491 FormatMini = function(src)
2492 local st, ast = ParseLua(src)
2493 if st then
2494 return Format_Mini(ast)
2495 else
2496 return nil, ast
2497 end
2498 end,
2499
2500 FormatYue = function(src)
2501 local st, ast = ParseLua(src)
2502 if st then
2503 local lineMap = GetYueLineMap(src)
2504 if #lineMap == 0 then
2505 return src
2506 end
2507 return FormatYue(ast, lineMap)
2508 else
2509 return nil, ast
2510 end
2511 end
2512}
2513)lua_codes";
2514
diff --git a/src/3rdParty/gencode.yue b/src/3rdParty/gencode.yue
new file mode 100755
index 0000000..e0dbcb9
--- /dev/null
+++ b/src/3rdParty/gencode.yue
@@ -0,0 +1,26 @@
1#!yue -e
2
3for file in *["luaminify.lua",]
4 text = ""
5 with io.open file
6 text = \read "*a"
7 \close!
8
9 indent = "\t"
10 count = 0
11 text = text\gsub "#!", "--#!"
12 bytes = indent .. string.gsub text, "(.)", (ch)->
13 sep = ""
14 count += 1
15 if count == 15
16 count = 0
17 sep = "\n" .. indent
18 string.format "%3u,%s", string.byte(ch), sep
19
20 name = file\gsub "%.", "_"
21 output = "#{name}.h"
22 with io.open output, "w"
23 \write "const char #{name}[] = {\n#{bytes}\n};"
24 \close!
25
26 print "file \"#{output}\"generated."
diff --git a/src/3rdParty/luaminify.lua b/src/3rdParty/luaminify.lua
index d4389d7..3e7cca0 100644
--- a/src/3rdParty/luaminify.lua
+++ b/src/3rdParty/luaminify.lua
@@ -22,7 +22,7 @@ local function lookupify(tb)
22 return tb 22 return tb
23end 23end
24 24
25 25--[[
26local function CountTable(tb) 26local function CountTable(tb)
27 local c = 0 27 local c = 0
28 for _ in pairs(tb) do c = c + 1 end 28 for _ in pairs(tb) do c = c + 1 end
@@ -71,7 +71,7 @@ local function PrintTable(tb, atIndent)
71 out = out..(useNewlines and string.rep(' ', atIndent) or '').."}" 71 out = out..(useNewlines and string.rep(' ', atIndent) or '').."}"
72 return out 72 return out
73end 73end
74 74]]
75 75
76local blacklist = { 76local blacklist = {
77 ["do"] = true, 77 ["do"] = true,
@@ -163,7 +163,7 @@ local Scope = {
163 end, 163 end,
164 164
165 GetLocal = function(self, name) 165 GetLocal = function(self, name)
166 for k, var in pairs(self.Locals) do 166 for _k, var in pairs(self.Locals) do
167 if var.Name == name then return var end 167 if var.Name == name then return var end
168 end 168 end
169 169
@@ -237,7 +237,7 @@ local Scope = {
237 237
238 GetAllVariables = function(self) 238 GetAllVariables = function(self)
239 local ret = self:getVars(true) -- down 239 local ret = self:getVars(true) -- down
240 for k, v in pairs(self:getVars(false)) do -- up 240 for _k, v in pairs(self:getVars(false)) do -- up
241 table.insert(ret, v) 241 table.insert(ret, v)
242 end 242 end
243 return ret 243 return ret
@@ -246,20 +246,20 @@ local Scope = {
246 getVars = function(self, top) 246 getVars = function(self, top)
247 local ret = { } 247 local ret = { }
248 if top then 248 if top then
249 for k, v in pairs(self.Children) do 249 for _k, v in pairs(self.Children) do
250 for k2, v2 in pairs(v:getVars(true)) do 250 for _k2, v2 in pairs(v:getVars(true)) do
251 table.insert(ret, v2) 251 table.insert(ret, v2)
252 end 252 end
253 end 253 end
254 else 254 else
255 for k, v in pairs(self.Locals) do 255 for _k, v in pairs(self.Locals) do
256 table.insert(ret, v) 256 table.insert(ret, v)
257 end 257 end
258 for k, v in pairs(self.Globals) do 258 for _k, v in pairs(self.Globals) do
259 table.insert(ret, v) 259 table.insert(ret, v)
260 end 260 end
261 if self.Parent then 261 if self.Parent then
262 for k, v in pairs(self.Parent:getVars(false)) do 262 for _k, v in pairs(self.Parent:getVars(false)) do
263 table.insert(ret, v) 263 table.insert(ret, v)
264 end 264 end
265 end 265 end
@@ -282,7 +282,7 @@ local Scope = {
282 end, 282 end,
283 283
284 GetGlobal = function(self, name) 284 GetGlobal = function(self, name)
285 for k, v in pairs(self.Globals) do 285 for _k, v in pairs(self.Globals) do
286 if v.Name == name then return v end 286 if v.Name == name then return v end
287 end 287 end
288 288
@@ -295,8 +295,8 @@ local Scope = {
295 return self:GetLocal(name) or self:GetGlobal(name) 295 return self:GetLocal(name) or self:GetGlobal(name)
296 end, 296 end,
297 297
298 ObfuscateLocals = function(self, recommendedMaxLength, validNameChars) 298 ObfuscateLocals = function(self)
299 for i, var in pairs(self.Locals) do 299 for _i, var in pairs(self.Locals) do
300 if var.Name == "_ENV" then 300 if var.Name == "_ENV" then
301 self:RenameLocal(var.Name, "_ENV") 301 self:RenameLocal(var.Name, "_ENV")
302 else 302 else
@@ -796,7 +796,8 @@ local function ParseLua(src)
796 --find the line 796 --find the line
797 local lineNum = 0 797 local lineNum = 0
798 if type(src) == 'string' then 798 if type(src) == 'string' then
799 for line in src:gmatch("[^\n]*\n?") do 799 for l in src:gmatch("[^\n]*\n?") do
800 line = l
800 if line:sub(-1,-1) == '\n' then line = line:sub(1,-2) end 801 if line:sub(-1,-1) == '\n' then line = line:sub(1,-2) end
801 lineNum = lineNum+1 802 lineNum = lineNum+1
802 if lineNum == tok:Peek().Line then 803 if lineNum == tok:Peek().Line then
@@ -951,7 +952,7 @@ local function ParseLua(src)
951 return true, nodeFunc 952 return true, nodeFunc
952 end 953 end
953 954
954 function ParsePrimaryExpr(scope) 955 ParsePrimaryExpr = function(scope)
955 local tokenList = {} 956 local tokenList = {}
956 957
957 if tok:ConsumeSymbol('(', tokenList) then 958 if tok:ConsumeSymbol('(', tokenList) then
@@ -998,7 +999,7 @@ local function ParseLua(src)
998 end 999 end
999 end 1000 end
1000 1001
1001 function ParseSuffixedExpr(scope, onlyDotColon) 1002 ParseSuffixedExpr = function(scope, onlyDotColon)
1002 --base primary expression 1003 --base primary expression
1003 local st, prim = ParsePrimaryExpr(scope) 1004 local st, prim = ParsePrimaryExpr(scope)
1004 if not st then return false, prim end 1005 if not st then return false, prim end
@@ -1089,7 +1090,7 @@ local function ParseLua(src)
1089 end 1090 end
1090 1091
1091 1092
1092 function ParseSimpleExpr(scope) 1093 ParseSimpleExpr = function(scope)
1093 local tokenList = {} 1094 local tokenList = {}
1094 1095
1095 if tok:Is('Number') then 1096 if tok:Is('Number') then
@@ -1243,7 +1244,7 @@ local function ParseLua(src)
1243 ['and'] = {2,2}; 1244 ['and'] = {2,2};
1244 ['or'] = {1,1}; 1245 ['or'] = {1,1};
1245 } 1246 }
1246 function ParseSubExpr(scope, level) 1247 ParseSubExpr = function(scope, level)
1247 --base item, possibly with unop prefix 1248 --base item, possibly with unop prefix
1248 local st, exp 1249 local st, exp
1249 if unops[tok:Peek().Data] then 1250 if unops[tok:Peek().Data] then
diff --git a/src/3rdParty/luaminify_lua.h b/src/3rdParty/luaminify_lua.h
new file mode 100644
index 0000000..1b2056d
--- /dev/null
+++ b/src/3rdParty/luaminify_lua.h
@@ -0,0 +1,4439 @@
1const char luaminify_lua[] = {
2 45, 45, 91, 91, 10, 84,104,101, 32, 77, 73, 84, 32, 76,105,
3 99,101,110,115,101, 32, 40, 77, 73, 84, 41, 10, 10, 67,111,
4 112,121,114,105,103,104,116, 32, 40, 99, 41, 32, 50, 48, 49,
5 50, 45, 50, 48, 49, 51, 32, 77, 97,114,107, 32, 76, 97,110,
6 103,101,110, 44, 32,109,111,100,105,102,105,101,100, 32, 98,
7 121, 32, 76,105, 32, 74,105,110, 32, 50, 48, 50, 51, 10, 10,
8 80,101,114,109,105,115,115,105,111,110, 32,105,115, 32,104,
9 101,114,101, 98,121, 32,103,114, 97,110,116,101,100, 44, 32,
10 102,114,101,101, 32,111,102, 32, 99,104, 97,114,103,101, 44,
11 32,116,111, 32, 97,110,121, 32,112,101,114,115,111,110, 32,
12 111, 98,116, 97,105,110,105,110,103, 32, 97, 32, 99,111,112,
13 121, 32,111,102, 32,116,104,105,115, 32,115,111,102,116,119,
14 97,114,101, 32, 97,110,100, 32, 97,115,115,111, 99,105, 97,
15 116,101,100, 32,100,111, 99,117,109,101,110,116, 97,116,105,
16 111,110, 32,102,105,108,101,115, 32, 40,116,104,101, 32, 34,
17 83,111,102,116,119, 97,114,101, 34, 41, 44, 32,116,111, 32,
18 100,101, 97,108, 32,105,110, 32,116,104,101, 32, 83,111,102,
19 116,119, 97,114,101, 32,119,105,116,104,111,117,116, 32,114,
20 101,115,116,114,105, 99,116,105,111,110, 44, 32,105,110, 99,
21 108,117,100,105,110,103, 32,119,105,116,104,111,117,116, 32,
22 108,105,109,105,116, 97,116,105,111,110, 32,116,104,101, 32,
23 114,105,103,104,116,115, 32,116,111, 32,117,115,101, 44, 32,
24 99,111,112,121, 44, 32,109,111,100,105,102,121, 44, 32,109,
25 101,114,103,101, 44, 32,112,117, 98,108,105,115,104, 44, 32,
26 100,105,115,116,114,105, 98,117,116,101, 44, 32,115,117, 98,
27 108,105, 99,101,110,115,101, 44, 32, 97,110,100, 47,111,114,
28 32,115,101,108,108, 32, 99,111,112,105,101,115, 32,111,102,
29 32,116,104,101, 32, 83,111,102,116,119, 97,114,101, 44, 32,
30 97,110,100, 32,116,111, 32,112,101,114,109,105,116, 32,112,
31 101,114,115,111,110,115, 32,116,111, 32,119,104,111,109, 32,
32 116,104,101, 32, 83,111,102,116,119, 97,114,101, 32,105,115,
33 32,102,117,114,110,105,115,104,101,100, 32,116,111, 32,100,
34 111, 32,115,111, 44, 32,115,117, 98,106,101, 99,116, 32,116,
35 111, 32,116,104,101, 32,102,111,108,108,111,119,105,110,103,
36 32, 99,111,110,100,105,116,105,111,110,115, 58, 10, 10, 84,
37 104,101, 32, 97, 98,111,118,101, 32, 99,111,112,121,114,105,
38 103,104,116, 32,110,111,116,105, 99,101, 32, 97,110,100, 32,
39 116,104,105,115, 32,112,101,114,109,105,115,115,105,111,110,
40 32,110,111,116,105, 99,101, 32,115,104, 97,108,108, 32, 98,
41 101, 32,105,110, 99,108,117,100,101,100, 32,105,110, 32, 97,
42 108,108, 32, 99,111,112,105,101,115, 32,111,114, 32,115,117,
43 98,115,116, 97,110,116,105, 97,108, 32,112,111,114,116,105,
44 111,110,115, 32,111,102, 32,116,104,101, 32, 83,111,102,116,
45 119, 97,114,101, 46, 10, 10, 84, 72, 69, 32, 83, 79, 70, 84,
46 87, 65, 82, 69, 32, 73, 83, 32, 80, 82, 79, 86, 73, 68, 69,
47 68, 32, 34, 65, 83, 32, 73, 83, 34, 44, 32, 87, 73, 84, 72,
48 79, 85, 84, 32, 87, 65, 82, 82, 65, 78, 84, 89, 32, 79, 70,
49 32, 65, 78, 89, 32, 75, 73, 78, 68, 44, 32, 69, 88, 80, 82,
50 69, 83, 83, 32, 79, 82, 32, 73, 77, 80, 76, 73, 69, 68, 44,
51 32, 73, 78, 67, 76, 85, 68, 73, 78, 71, 32, 66, 85, 84, 32,
52 78, 79, 84, 32, 76, 73, 77, 73, 84, 69, 68, 32, 84, 79, 32,
53 84, 72, 69, 32, 87, 65, 82, 82, 65, 78, 84, 73, 69, 83, 32,
54 79, 70, 32, 77, 69, 82, 67, 72, 65, 78, 84, 65, 66, 73, 76,
55 73, 84, 89, 44, 32, 70, 73, 84, 78, 69, 83, 83, 32, 70, 79,
56 82, 32, 65, 32, 80, 65, 82, 84, 73, 67, 85, 76, 65, 82, 32,
57 80, 85, 82, 80, 79, 83, 69, 32, 65, 78, 68, 32, 78, 79, 78,
58 73, 78, 70, 82, 73, 78, 71, 69, 77, 69, 78, 84, 46, 32, 73,
59 78, 32, 78, 79, 32, 69, 86, 69, 78, 84, 32, 83, 72, 65, 76,
60 76, 32, 84, 72, 69, 32, 65, 85, 84, 72, 79, 82, 83, 32, 79,
61 82, 32, 67, 79, 80, 89, 82, 73, 71, 72, 84, 32, 72, 79, 76,
62 68, 69, 82, 83, 32, 66, 69, 32, 76, 73, 65, 66, 76, 69, 32,
63 70, 79, 82, 32, 65, 78, 89, 32, 67, 76, 65, 73, 77, 44, 32,
64 68, 65, 77, 65, 71, 69, 83, 32, 79, 82, 32, 79, 84, 72, 69,
65 82, 32, 76, 73, 65, 66, 73, 76, 73, 84, 89, 44, 32, 87, 72,
66 69, 84, 72, 69, 82, 32, 73, 78, 32, 65, 78, 32, 65, 67, 84,
67 73, 79, 78, 32, 79, 70, 32, 67, 79, 78, 84, 82, 65, 67, 84,
68 44, 32, 84, 79, 82, 84, 32, 79, 82, 32, 79, 84, 72, 69, 82,
69 87, 73, 83, 69, 44, 32, 65, 82, 73, 83, 73, 78, 71, 32, 70,
70 82, 79, 77, 44, 32, 79, 85, 84, 32, 79, 70, 32, 79, 82, 32,
71 73, 78, 32, 67, 79, 78, 78, 69, 67, 84, 73, 79, 78, 32, 87,
72 73, 84, 72, 32, 84, 72, 69, 32, 83, 79, 70, 84, 87, 65, 82,
73 69, 32, 79, 82, 32, 84, 72, 69, 32, 85, 83, 69, 32, 79, 82,
74 32, 79, 84, 72, 69, 82, 32, 68, 69, 65, 76, 73, 78, 71, 83,
75 32, 73, 78, 32, 84, 72, 69, 32, 83, 79, 70, 84, 87, 65, 82,
76 69, 46, 93, 93, 10, 10, 45, 45, 10, 45, 45, 32, 85,116,105,
77 108, 46,108,117, 97, 10, 45, 45, 10, 45, 45, 32, 80,114,111,
78 118,105,100,101,115, 32,115,111,109,101, 32, 99,111,109,109,
79 111,110, 32,117,116,105,108,105,116,105,101,115, 32,115,104,
80 97,114,101,100, 32,116,104,114,111,117,103,104,111,117,116,
81 32,116,104,101, 32,112,114,111,106,101, 99,116, 46, 10, 45,
82 45, 10, 10,108,111, 99, 97,108, 32,102,117,110, 99,116,105,
83 111,110, 32,108,111,111,107,117,112,105,102,121, 40,116, 98,
84 41, 10, 9,102,111,114, 32, 95, 44, 32,118, 32,105,110, 32,
85 112, 97,105,114,115, 40,116, 98, 41, 32,100,111, 10, 9, 9,
86 116, 98, 91,118, 93, 32, 61, 32,116,114,117,101, 10, 9,101,
87 110,100, 10, 9,114,101,116,117,114,110, 32,116, 98, 10,101,
88 110,100, 10, 10, 45, 45, 91, 91, 10,108,111, 99, 97,108, 32,
89 102,117,110, 99,116,105,111,110, 32, 67,111,117,110,116, 84,
90 97, 98,108,101, 40,116, 98, 41, 10, 9,108,111, 99, 97,108,
91 32, 99, 32, 61, 32, 48, 10, 9,102,111,114, 32, 95, 32,105,
92 110, 32,112, 97,105,114,115, 40,116, 98, 41, 32,100,111, 32,
93 99, 32, 61, 32, 99, 32, 43, 32, 49, 32,101,110,100, 10, 9,
94 114,101,116,117,114,110, 32, 99, 10,101,110,100, 10, 10, 10,
95 108,111, 99, 97,108, 32,102,117,110, 99,116,105,111,110, 32,
96 80,114,105,110,116, 84, 97, 98,108,101, 40,116, 98, 44, 32,
97 97,116, 73,110,100,101,110,116, 41, 10, 9,105,102, 32,116,
98 98, 46, 80,114,105,110,116, 32,116,104,101,110, 10, 9, 9,
99 114,101,116,117,114,110, 32,116, 98, 46, 80,114,105,110,116,
100 40, 41, 10, 9,101,110,100, 10, 9, 97,116, 73,110,100,101,
101 110,116, 32, 61, 32, 97,116, 73,110,100,101,110,116, 32,111,
102 114, 32, 48, 10, 9,108,111, 99, 97,108, 32,117,115,101, 78,
103 101,119,108,105,110,101,115, 32, 61, 32, 40, 67,111,117,110,
104 116, 84, 97, 98,108,101, 40,116, 98, 41, 32, 62, 32, 49, 41,
105 10, 9,108,111, 99, 97,108, 32, 98, 97,115,101, 73,110,100,
106 101,110,116, 32, 61, 32,115,116,114,105,110,103, 46,114,101,
107 112, 40, 39, 32, 32, 32, 32, 39, 44, 32, 97,116, 73,110,100,
108 101,110,116, 43, 49, 41, 10, 9,108,111, 99, 97,108, 32,111,
109 117,116, 32, 61, 32, 34,123, 34, 46, 46, 40,117,115,101, 78,
110 101,119,108,105,110,101,115, 32, 97,110,100, 32, 39, 92,110,
111 39, 32,111,114, 32, 39, 39, 41, 10, 9,102,111,114, 32,107,
112 44, 32,118, 32,105,110, 32,112, 97,105,114,115, 40,116, 98,
113 41, 32,100,111, 10, 9, 9,105,102, 32,116,121,112,101, 40,
114 118, 41, 32,126, 61, 32, 39,102,117,110, 99,116,105,111,110,
115 39, 32,116,104,101,110, 10, 9, 9, 45, 45,100,111, 10, 9,
116 9, 9,111,117,116, 32, 61, 32,111,117,116, 46, 46, 40,117,
117 115,101, 78,101,119,108,105,110,101,115, 32, 97,110,100, 32,
118 98, 97,115,101, 73,110,100,101,110,116, 32,111,114, 32, 39,
119 39, 41, 10, 9, 9, 9,105,102, 32,116,121,112,101, 40,107,
120 41, 32, 61, 61, 32, 39,110,117,109, 98,101,114, 39, 32,116,
121 104,101,110, 10, 9, 9, 9, 9, 45, 45,110,111,116,104,105,
122 110,103, 32,116,111, 32,100,111, 10, 9, 9, 9,101,108,115,
123 101,105,102, 32,116,121,112,101, 40,107, 41, 32, 61, 61, 32,
124 39,115,116,114,105,110,103, 39, 32, 97,110,100, 32,107, 58,
125 109, 97,116, 99,104, 40, 34, 94, 91, 65, 45, 90, 97, 45,122,
126 95, 93, 91, 65, 45, 90, 97, 45,122, 48, 45, 57, 95, 93, 42,
127 36, 34, 41, 32,116,104,101,110, 10, 9, 9, 9, 9,111,117,
128 116, 32, 61, 32,111,117,116, 46, 46,107, 46, 46, 34, 32, 61,
129 32, 34, 10, 9, 9, 9,101,108,115,101,105,102, 32,116,121,
130 112,101, 40,107, 41, 32, 61, 61, 32, 39,115,116,114,105,110,
131 103, 39, 32,116,104,101,110, 10, 9, 9, 9, 9,111,117,116,
132 32, 61, 32,111,117,116, 46, 46, 34, 91, 92, 34, 34, 46, 46,
133 107, 46, 46, 34, 92, 34, 93, 32, 61, 32, 34, 10, 9, 9, 9,
134 101,108,115,101, 10, 9, 9, 9, 9,111,117,116, 32, 61, 32,
135 111,117,116, 46, 46, 34, 91, 34, 46, 46,116,111,115,116,114,
136 105,110,103, 40,107, 41, 46, 46, 34, 93, 32, 61, 32, 34, 10,
137 9, 9, 9,101,110,100, 10, 9, 9, 9,105,102, 32,116,121,
138 112,101, 40,118, 41, 32, 61, 61, 32, 39,115,116,114,105,110,
139 103, 39, 32,116,104,101,110, 10, 9, 9, 9, 9,111,117,116,
140 32, 61, 32,111,117,116, 46, 46, 34, 92, 34, 34, 46, 46,118,
141 46, 46, 34, 92, 34, 34, 10, 9, 9, 9,101,108,115,101,105,
142 102, 32,116,121,112,101, 40,118, 41, 32, 61, 61, 32, 39,110,
143 117,109, 98,101,114, 39, 32,116,104,101,110, 10, 9, 9, 9,
144 9,111,117,116, 32, 61, 32,111,117,116, 46, 46,118, 10, 9,
145 9, 9,101,108,115,101,105,102, 32,116,121,112,101, 40,118,
146 41, 32, 61, 61, 32, 39,116, 97, 98,108,101, 39, 32,116,104,
147 101,110, 10, 9, 9, 9, 9,111,117,116, 32, 61, 32,111,117,
148 116, 46, 46, 80,114,105,110,116, 84, 97, 98,108,101, 40,118,
149 44, 32, 97,116, 73,110,100,101,110,116, 43, 40,117,115,101,
150 78,101,119,108,105,110,101,115, 32, 97,110,100, 32, 49, 32,
151 111,114, 32, 48, 41, 41, 10, 9, 9, 9,101,108,115,101, 10,
152 9, 9, 9, 9,111,117,116, 32, 61, 32,111,117,116, 46, 46,
153 116,111,115,116,114,105,110,103, 40,118, 41, 10, 9, 9, 9,
154 101,110,100, 10, 9, 9, 9,105,102, 32,110,101,120,116, 40,
155 116, 98, 44, 32,107, 41, 32,116,104,101,110, 10, 9, 9, 9,
156 9,111,117,116, 32, 61, 32,111,117,116, 46, 46, 34, 44, 34,
157 10, 9, 9, 9,101,110,100, 10, 9, 9, 9,105,102, 32,117,
158 115,101, 78,101,119,108,105,110,101,115, 32,116,104,101,110,
159 10, 9, 9, 9, 9,111,117,116, 32, 61, 32,111,117,116, 46,
160 46, 39, 92,110, 39, 10, 9, 9, 9,101,110,100, 10, 9, 9,
161 101,110,100, 10, 9,101,110,100, 10, 9,111,117,116, 32, 61,
162 32,111,117,116, 46, 46, 40,117,115,101, 78,101,119,108,105,
163 110,101,115, 32, 97,110,100, 32,115,116,114,105,110,103, 46,
164 114,101,112, 40, 39, 32, 32, 32, 32, 39, 44, 32, 97,116, 73,
165 110,100,101,110,116, 41, 32,111,114, 32, 39, 39, 41, 46, 46,
166 34,125, 34, 10, 9,114,101,116,117,114,110, 32,111,117,116,
167 10,101,110,100, 10, 93, 93, 10, 10,108,111, 99, 97,108, 32,
168 98,108, 97, 99,107,108,105,115,116, 32, 61, 32,123, 10, 9,
169 91, 34,100,111, 34, 93, 32, 61, 32,116,114,117,101, 44, 10,
170 9, 91, 34,105,102, 34, 93, 32, 61, 32,116,114,117,101, 44,
171 10, 9, 91, 34,105,110, 34, 93, 32, 61, 32,116,114,117,101,
172 44, 10, 9, 91, 34,111,114, 34, 93, 32, 61, 32,116,114,117,
173 101, 44, 10, 9, 91, 34,102,111,114, 34, 93, 32, 61, 32,116,
174 114,117,101, 44, 10, 9, 91, 34, 97,110,100, 34, 93, 32, 61,
175 32,116,114,117,101, 44, 10, 9, 91, 34,110,111,116, 34, 93,
176 32, 61, 32,116,114,117,101, 44, 10, 9, 91, 34,101,110,100,
177 34, 93, 32, 61, 32,116,114,117,101, 44, 10, 9, 91, 34,110,
178 105,108, 34, 93, 32, 61, 32,116,114,117,101, 10,125, 10, 10,
179 108,111, 99, 97,108, 32,105,110,115,101,114,116, 44, 32, 99,
180 104, 97,114, 32, 61, 32,116, 97, 98,108,101, 46,105,110,115,
181 101,114,116, 44, 32,115,116,114,105,110,103, 46, 99,104, 97,
182 114, 10, 10,108,111, 99, 97,108, 32, 99,104, 97,114,115, 32,
183 61, 32,123,125, 10,102,111,114, 32,105, 32, 61, 32, 57, 55,
184 44, 32, 49, 50, 50, 32,100,111, 10, 9,105,110,115,101,114,
185 116, 40, 99,104, 97,114,115, 44, 32, 99,104, 97,114, 40,105,
186 41, 41, 10,101,110,100, 10,102,111,114, 32,105, 32, 61, 32,
187 54, 53, 44, 32, 57, 48, 32,100,111, 10, 9,105,110,115,101,
188 114,116, 40, 99,104, 97,114,115, 44, 32, 99,104, 97,114, 40,
189 105, 41, 41, 10,101,110,100, 10, 10,108,111, 99, 97,108, 32,
190 102,117,110, 99,116,105,111,110, 32, 71,101,116, 85,110,105,
191 113,117,101, 40,115,101,108,102, 41, 10, 9,102,111,114, 32,
192 120, 32, 61, 32, 49, 44, 32, 53, 50, 32,100,111, 10, 9, 9,
193 108,111, 99, 97,108, 32, 99, 32, 61, 32, 99,104, 97,114,115,
194 91,120, 93, 10, 9, 9,105,102, 32,110,111,116, 32, 98,108,
195 97, 99,107,108,105,115,116, 91, 99, 93, 32, 97,110,100, 32,
196 110,111,116, 32,115,101,108,102, 58, 71,101,116, 86, 97,114,
197 105, 97, 98,108,101, 40, 99, 41, 32,116,104,101,110, 10, 9,
198 9, 9,114,101,116,117,114,110, 32, 99, 10, 9, 9,101,110,
199 100, 10, 9,101,110,100, 10, 9,102,111,114, 32,120, 32, 61,
200 32, 49, 44, 32, 53, 50, 32,100,111, 10, 9, 9,102,111,114,
201 32,121, 32, 61, 32, 49, 44, 32, 53, 50, 32,100,111, 10, 9,
202 9, 9,108,111, 99, 97,108, 32, 99, 32, 61, 32, 99,104, 97,
203 114,115, 91,120, 93, 46, 46, 99,104, 97,114,115, 91,121, 93,
204 10, 9, 9, 9,105,102, 32,110,111,116, 32, 98,108, 97, 99,
205 107,108,105,115,116, 91, 99, 93, 32, 97,110,100, 32,110,111,
206 116, 32,115,101,108,102, 58, 71,101,116, 86, 97,114,105, 97,
207 98,108,101, 40, 99, 41, 32,116,104,101,110, 10, 9, 9, 9,
208 9,114,101,116,117,114,110, 32, 99, 10, 9, 9, 9,101,110,
209 100, 10, 9, 9,101,110,100, 10, 9,101,110,100, 10, 9,102,
210 111,114, 32,120, 32, 61, 32, 49, 44, 32, 53, 50, 32,100,111,
211 10, 9, 9,102,111,114, 32,121, 32, 61, 32, 49, 44, 32, 53,
212 50, 32,100,111, 10, 9, 9, 9,102,111,114, 32,122, 32, 61,
213 32, 49, 44, 32, 53, 50, 32,100,111, 10, 9, 9, 9, 9,108,
214 111, 99, 97,108, 32, 99, 32, 61, 32, 99,104, 97,114,115, 91,
215 120, 93, 46, 46, 99,104, 97,114,115, 91,121, 93, 46, 46, 99,
216 104, 97,114,115, 91,122, 93, 10, 9, 9, 9, 9,105,102, 32,
217 110,111,116, 32, 98,108, 97, 99,107,108,105,115,116, 91, 99,
218 93, 32, 97,110,100, 32,110,111,116, 32,115,101,108,102, 58,
219 71,101,116, 86, 97,114,105, 97, 98,108,101, 40, 99, 41, 32,
220 116,104,101,110, 10, 9, 9, 9, 9, 9,114,101,116,117,114,
221 110, 32, 99, 10, 9, 9, 9, 9,101,110,100, 10, 9, 9, 9,
222 101,110,100, 10, 9, 9,101,110,100, 10, 9,101,110,100, 10,
223 101,110,100, 10, 10,108,111, 99, 97,108, 32, 83, 99,111,112,
224 101, 32, 61, 32,123, 10, 9,110,101,119, 32, 61, 32,102,117,
225 110, 99,116,105,111,110, 40,115,101,108,102, 44, 32,112, 97,
226 114,101,110,116, 41, 10, 9, 9,108,111, 99, 97,108, 32,115,
227 32, 61, 32,123, 10, 9, 9, 9, 80, 97,114,101,110,116, 32,
228 61, 32,112, 97,114,101,110,116, 44, 10, 9, 9, 9, 76,111,
229 99, 97,108,115, 32, 61, 32,123, 32,125, 44, 10, 9, 9, 9,
230 71,108,111, 98, 97,108,115, 32, 61, 32,123, 32,125, 44, 10,
231 9, 9, 9,111,108,100, 76,111, 99, 97,108, 78, 97,109,101,
232 115, 77, 97,112, 32, 61, 32,123, 32,125, 44, 10, 9, 9, 9,
233 111,108,100, 71,108,111, 98, 97,108, 78, 97,109,101,115, 77,
234 97,112, 32, 61, 32,123, 32,125, 44, 10, 9, 9, 9, 67,104,
235 105,108,100,114,101,110, 32, 61, 32,123, 32,125, 44, 10, 9,
236 9,125, 10, 10, 9, 9,105,102, 32,112, 97,114,101,110,116,
237 32,116,104,101,110, 10, 9, 9, 9,116, 97, 98,108,101, 46,
238 105,110,115,101,114,116, 40,112, 97,114,101,110,116, 46, 67,
239 104,105,108,100,114,101,110, 44, 32,115, 41, 10, 9, 9,101,
240 110,100, 10, 10, 9, 9,114,101,116,117,114,110, 32,115,101,
241 116,109,101,116, 97,116, 97, 98,108,101, 40,115, 44, 32,123,
242 32, 95, 95,105,110,100,101,120, 32, 61, 32,115,101,108,102,
243 32,125, 41, 10, 9,101,110,100, 44, 10, 10, 9, 65,100,100,
244 76,111, 99, 97,108, 32, 61, 32,102,117,110, 99,116,105,111,
245 110, 40,115,101,108,102, 44, 32,118, 41, 10, 9, 9,116, 97,
246 98,108,101, 46,105,110,115,101,114,116, 40,115,101,108,102,
247 46, 76,111, 99, 97,108,115, 44, 32,118, 41, 10, 9,101,110,
248 100, 44, 10, 10, 9, 65,100,100, 71,108,111, 98, 97,108, 32,
249 61, 32,102,117,110, 99,116,105,111,110, 40,115,101,108,102,
250 44, 32,118, 41, 10, 9, 9,116, 97, 98,108,101, 46,105,110,
251 115,101,114,116, 40,115,101,108,102, 46, 71,108,111, 98, 97,
252 108,115, 44, 32,118, 41, 10, 9,101,110,100, 44, 10, 10, 9,
253 67,114,101, 97,116,101, 76,111, 99, 97,108, 32, 61, 32,102,
254 117,110, 99,116,105,111,110, 40,115,101,108,102, 44, 32,110,
255 97,109,101, 41, 10, 9, 9,108,111, 99, 97,108, 32,118, 10,
256 9, 9,118, 32, 61, 32,115,101,108,102, 58, 71,101,116, 76,
257 111, 99, 97,108, 40,110, 97,109,101, 41, 10, 9, 9,105,102,
258 32,118, 32,116,104,101,110, 32,114,101,116,117,114,110, 32,
259 118, 32,101,110,100, 10, 9, 9,118, 32, 61, 32,123, 32,125,
260 10, 9, 9,118, 46, 83, 99,111,112,101, 32, 61, 32,115,101,
261 108,102, 10, 9, 9,118, 46, 78, 97,109,101, 32, 61, 32,110,
262 97,109,101, 10, 9, 9,118, 46, 73,115, 71,108,111, 98, 97,
263 108, 32, 61, 32,102, 97,108,115,101, 10, 9, 9,118, 46, 67,
264 97,110, 82,101,110, 97,109,101, 32, 61, 32,116,114,117,101,
265 10, 9, 9,118, 46, 82,101,102,101,114,101,110, 99,101,115,
266 32, 61, 32, 49, 10, 9, 9,115,101,108,102, 58, 65,100,100,
267 76,111, 99, 97,108, 40,118, 41, 10, 9, 9,114,101,116,117,
268 114,110, 32,118, 10, 9,101,110,100, 44, 10, 10, 9, 71,101,
269 116, 76,111, 99, 97,108, 32, 61, 32,102,117,110, 99,116,105,
270 111,110, 40,115,101,108,102, 44, 32,110, 97,109,101, 41, 10,
271 9, 9,102,111,114, 32, 95,107, 44, 32,118, 97,114, 32,105,
272 110, 32,112, 97,105,114,115, 40,115,101,108,102, 46, 76,111,
273 99, 97,108,115, 41, 32,100,111, 10, 9, 9, 9,105,102, 32,
274 118, 97,114, 46, 78, 97,109,101, 32, 61, 61, 32,110, 97,109,
275 101, 32,116,104,101,110, 32,114,101,116,117,114,110, 32,118,
276 97,114, 32,101,110,100, 10, 9, 9,101,110,100, 10, 10, 9,
277 9,105,102, 32,115,101,108,102, 46, 80, 97,114,101,110,116,
278 32,116,104,101,110, 10, 9, 9, 9,114,101,116,117,114,110,
279 32,115,101,108,102, 46, 80, 97,114,101,110,116, 58, 71,101,
280 116, 76,111, 99, 97,108, 40,110, 97,109,101, 41, 10, 9, 9,
281 101,110,100, 10, 9,101,110,100, 44, 10, 10, 9, 71,101,116,
282 79,108,100, 76,111, 99, 97,108, 32, 61, 32,102,117,110, 99,
283 116,105,111,110, 40,115,101,108,102, 44, 32,110, 97,109,101,
284 41, 10, 9, 9,105,102, 32,115,101,108,102, 46,111,108,100,
285 76,111, 99, 97,108, 78, 97,109,101,115, 77, 97,112, 91,110,
286 97,109,101, 93, 32,116,104,101,110, 10, 9, 9, 9,114,101,
287 116,117,114,110, 32,115,101,108,102, 46,111,108,100, 76,111,
288 99, 97,108, 78, 97,109,101,115, 77, 97,112, 91,110, 97,109,
289 101, 93, 10, 9, 9,101,110,100, 10, 9, 9,114,101,116,117,
290 114,110, 32,115,101,108,102, 58, 71,101,116, 76,111, 99, 97,
291 108, 40,110, 97,109,101, 41, 10, 9,101,110,100, 44, 10, 10,
292 9,109, 97,112, 76,111, 99, 97,108, 32, 61, 32,102,117,110,
293 99,116,105,111,110, 40,115,101,108,102, 44, 32,110, 97,109,
294 101, 44, 32,118, 97,114, 41, 10, 9, 9,115,101,108,102, 46,
295 111,108,100, 76,111, 99, 97,108, 78, 97,109,101,115, 77, 97,
296 112, 91,110, 97,109,101, 93, 32, 61, 32,118, 97,114, 10, 9,
297 101,110,100, 44, 10, 10, 9, 71,101,116, 79,108,100, 71,108,
298 111, 98, 97,108, 32, 61, 32,102,117,110, 99,116,105,111,110,
299 40,115,101,108,102, 44, 32,110, 97,109,101, 41, 10, 9, 9,
300 105,102, 32,115,101,108,102, 46,111,108,100, 71,108,111, 98,
301 97,108, 78, 97,109,101,115, 77, 97,112, 91,110, 97,109,101,
302 93, 32,116,104,101,110, 10, 9, 9, 9,114,101,116,117,114,
303 110, 32,115,101,108,102, 46,111,108,100, 71,108,111, 98, 97,
304 108, 78, 97,109,101,115, 77, 97,112, 91,110, 97,109,101, 93,
305 10, 9, 9,101,110,100, 10, 9, 9,114,101,116,117,114,110,
306 32,115,101,108,102, 58, 71,101,116, 71,108,111, 98, 97,108,
307 40,110, 97,109,101, 41, 10, 9,101,110,100, 44, 10, 10, 9,
308 109, 97,112, 71,108,111, 98, 97,108, 32, 61, 32,102,117,110,
309 99,116,105,111,110, 40,115,101,108,102, 44, 32,110, 97,109,
310 101, 44, 32,118, 97,114, 41, 10, 9, 9,115,101,108,102, 46,
311 111,108,100, 71,108,111, 98, 97,108, 78, 97,109,101,115, 77,
312 97,112, 91,110, 97,109,101, 93, 32, 61, 32,118, 97,114, 10,
313 9,101,110,100, 44, 10, 10, 9, 71,101,116, 79,108,100, 86,
314 97,114,105, 97, 98,108,101, 32, 61, 32,102,117,110, 99,116,
315 105,111,110, 40,115,101,108,102, 44, 32,110, 97,109,101, 41,
316 10, 9, 9,114,101,116,117,114,110, 32,115,101,108,102, 58,
317 71,101,116, 79,108,100, 76,111, 99, 97,108, 40,110, 97,109,
318 101, 41, 32,111,114, 32,115,101,108,102, 58, 71,101,116, 79,
319 108,100, 71,108,111, 98, 97,108, 40,110, 97,109,101, 41, 10,
320 9,101,110,100, 44, 10, 10, 9, 82,101,110, 97,109,101, 76,
321 111, 99, 97,108, 32, 61, 32,102,117,110, 99,116,105,111,110,
322 40,115,101,108,102, 44, 32,111,108,100, 78, 97,109,101, 44,
323 32,110,101,119, 78, 97,109,101, 41, 10, 9, 9,111,108,100,
324 78, 97,109,101, 32, 61, 32,116,121,112,101, 40,111,108,100,
325 78, 97,109,101, 41, 32, 61, 61, 32, 39,115,116,114,105,110,
326 103, 39, 32, 97,110,100, 32,111,108,100, 78, 97,109,101, 32,
327 111,114, 32,111,108,100, 78, 97,109,101, 46, 78, 97,109,101,
328 10, 9, 9,108,111, 99, 97,108, 32,102,111,117,110,100, 32,
329 61, 32,102, 97,108,115,101, 10, 9, 9,108,111, 99, 97,108,
330 32,118, 97,114, 32, 61, 32,115,101,108,102, 58, 71,101,116,
331 76,111, 99, 97,108, 40,111,108,100, 78, 97,109,101, 41, 10,
332 9, 9,105,102, 32,118, 97,114, 32,116,104,101,110, 10, 9,
333 9, 9,118, 97,114, 46, 78, 97,109,101, 32, 61, 32,110,101,
334 119, 78, 97,109,101, 10, 9, 9, 9,115,101,108,102, 58,109,
335 97,112, 76,111, 99, 97,108, 40,111,108,100, 78, 97,109,101,
336 44, 32,118, 97,114, 41, 10, 9, 9, 9,102,111,117,110,100,
337 32, 61, 32,116,114,117,101, 10, 9, 9,101,110,100, 10, 9,
338 9,105,102, 32,110,111,116, 32,102,111,117,110,100, 32, 97,
339 110,100, 32,115,101,108,102, 46, 80, 97,114,101,110,116, 32,
340 116,104,101,110, 10, 9, 9, 9,115,101,108,102, 46, 80, 97,
341 114,101,110,116, 58, 82,101,110, 97,109,101, 76,111, 99, 97,
342 108, 40,111,108,100, 78, 97,109,101, 44, 32,110,101,119, 78,
343 97,109,101, 41, 10, 9, 9,101,110,100, 10, 9,101,110,100,
344 44, 10, 10, 9, 82,101,110, 97,109,101, 71,108,111, 98, 97,
345 108, 32, 61, 32,102,117,110, 99,116,105,111,110, 40,115,101,
346 108,102, 44, 32,111,108,100, 78, 97,109,101, 44, 32,110,101,
347 119, 78, 97,109,101, 41, 10, 9, 9,111,108,100, 78, 97,109,
348 101, 32, 61, 32,116,121,112,101, 40,111,108,100, 78, 97,109,
349 101, 41, 32, 61, 61, 32, 39,115,116,114,105,110,103, 39, 32,
350 97,110,100, 32,111,108,100, 78, 97,109,101, 32,111,114, 32,
351 111,108,100, 78, 97,109,101, 46, 78, 97,109,101, 10, 9, 9,
352 108,111, 99, 97,108, 32,102,111,117,110,100, 32, 61, 32,102,
353 97,108,115,101, 10, 9, 9,108,111, 99, 97,108, 32,118, 97,
354 114, 32, 61, 32,115,101,108,102, 58, 71,101,116, 71,108,111,
355 98, 97,108, 40,111,108,100, 78, 97,109,101, 41, 10, 9, 9,
356 105,102, 32,118, 97,114, 32,116,104,101,110, 10, 9, 9, 9,
357 118, 97,114, 46, 78, 97,109,101, 32, 61, 32,110,101,119, 78,
358 97,109,101, 10, 9, 9, 9,115,101,108,102, 58,109, 97,112,
359 71,108,111, 98, 97,108, 40,111,108,100, 78, 97,109,101, 44,
360 32,118, 97,114, 41, 10, 9, 9, 9,102,111,117,110,100, 32,
361 61, 32,116,114,117,101, 10, 9, 9,101,110,100, 10, 9, 9,
362 105,102, 32,110,111,116, 32,102,111,117,110,100, 32, 97,110,
363 100, 32,115,101,108,102, 46, 80, 97,114,101,110,116, 32,116,
364 104,101,110, 10, 9, 9, 9,115,101,108,102, 46, 80, 97,114,
365 101,110,116, 58, 82,101,110, 97,109,101, 71,108,111, 98, 97,
366 108, 40,111,108,100, 78, 97,109,101, 44, 32,110,101,119, 78,
367 97,109,101, 41, 10, 9, 9,101,110,100, 10, 9,101,110,100,
368 44, 10, 10, 9, 82,101,110, 97,109,101, 86, 97,114,105, 97,
369 98,108,101, 32, 61, 32,102,117,110, 99,116,105,111,110, 40,
370 115,101,108,102, 44, 32,111,108,100, 78, 97,109,101, 44, 32,
371 110,101,119, 78, 97,109,101, 41, 10, 9, 9,111,108,100, 78,
372 97,109,101, 32, 61, 32,116,121,112,101, 40,111,108,100, 78,
373 97,109,101, 41, 32, 61, 61, 32, 39,115,116,114,105,110,103,
374 39, 32, 97,110,100, 32,111,108,100, 78, 97,109,101, 32,111,
375 114, 32,111,108,100, 78, 97,109,101, 46, 78, 97,109,101, 10,
376 9, 9,105,102, 32,115,101,108,102, 58, 71,101,116, 76,111,
377 99, 97,108, 40,111,108,100, 78, 97,109,101, 41, 32,116,104,
378 101,110, 10, 9, 9, 9,115,101,108,102, 58, 82,101,110, 97,
379 109,101, 76,111, 99, 97,108, 40,111,108,100, 78, 97,109,101,
380 44, 32,110,101,119, 78, 97,109,101, 41, 10, 9, 9,101,108,
381 115,101, 10, 9, 9, 9,115,101,108,102, 58, 82,101,110, 97,
382 109,101, 71,108,111, 98, 97,108, 40,111,108,100, 78, 97,109,
383 101, 44, 32,110,101,119, 78, 97,109,101, 41, 10, 9, 9,101,
384 110,100, 10, 9,101,110,100, 44, 10, 10, 9, 71,101,116, 65,
385 108,108, 86, 97,114,105, 97, 98,108,101,115, 32, 61, 32,102,
386 117,110, 99,116,105,111,110, 40,115,101,108,102, 41, 10, 9,
387 9,108,111, 99, 97,108, 32,114,101,116, 32, 61, 32,115,101,
388 108,102, 58,103,101,116, 86, 97,114,115, 40,116,114,117,101,
389 41, 32, 45, 45, 32,100,111,119,110, 10, 9, 9,102,111,114,
390 32, 95,107, 44, 32,118, 32,105,110, 32,112, 97,105,114,115,
391 40,115,101,108,102, 58,103,101,116, 86, 97,114,115, 40,102,
392 97,108,115,101, 41, 41, 32,100,111, 32, 45, 45, 32,117,112,
393 10, 9, 9, 9,116, 97, 98,108,101, 46,105,110,115,101,114,
394 116, 40,114,101,116, 44, 32,118, 41, 10, 9, 9,101,110,100,
395 10, 9, 9,114,101,116,117,114,110, 32,114,101,116, 10, 9,
396 101,110,100, 44, 10, 10, 9,103,101,116, 86, 97,114,115, 32,
397 61, 32,102,117,110, 99,116,105,111,110, 40,115,101,108,102,
398 44, 32,116,111,112, 41, 10, 9, 9,108,111, 99, 97,108, 32,
399 114,101,116, 32, 61, 32,123, 32,125, 10, 9, 9,105,102, 32,
400 116,111,112, 32,116,104,101,110, 10, 9, 9, 9,102,111,114,
401 32, 95,107, 44, 32,118, 32,105,110, 32,112, 97,105,114,115,
402 40,115,101,108,102, 46, 67,104,105,108,100,114,101,110, 41,
403 32,100,111, 10, 9, 9, 9, 9,102,111,114, 32, 95,107, 50,
404 44, 32,118, 50, 32,105,110, 32,112, 97,105,114,115, 40,118,
405 58,103,101,116, 86, 97,114,115, 40,116,114,117,101, 41, 41,
406 32,100,111, 10, 9, 9, 9, 9, 9,116, 97, 98,108,101, 46,
407 105,110,115,101,114,116, 40,114,101,116, 44, 32,118, 50, 41,
408 10, 9, 9, 9, 9,101,110,100, 10, 9, 9, 9,101,110,100,
409 10, 9, 9,101,108,115,101, 10, 9, 9, 9,102,111,114, 32,
410 95,107, 44, 32,118, 32,105,110, 32,112, 97,105,114,115, 40,
411 115,101,108,102, 46, 76,111, 99, 97,108,115, 41, 32,100,111,
412 10, 9, 9, 9, 9,116, 97, 98,108,101, 46,105,110,115,101,
413 114,116, 40,114,101,116, 44, 32,118, 41, 10, 9, 9, 9,101,
414 110,100, 10, 9, 9, 9,102,111,114, 32, 95,107, 44, 32,118,
415 32,105,110, 32,112, 97,105,114,115, 40,115,101,108,102, 46,
416 71,108,111, 98, 97,108,115, 41, 32,100,111, 10, 9, 9, 9,
417 9,116, 97, 98,108,101, 46,105,110,115,101,114,116, 40,114,
418 101,116, 44, 32,118, 41, 10, 9, 9, 9,101,110,100, 10, 9,
419 9, 9,105,102, 32,115,101,108,102, 46, 80, 97,114,101,110,
420 116, 32,116,104,101,110, 10, 9, 9, 9, 9,102,111,114, 32,
421 95,107, 44, 32,118, 32,105,110, 32,112, 97,105,114,115, 40,
422 115,101,108,102, 46, 80, 97,114,101,110,116, 58,103,101,116,
423 86, 97,114,115, 40,102, 97,108,115,101, 41, 41, 32,100,111,
424 10, 9, 9, 9, 9, 9,116, 97, 98,108,101, 46,105,110,115,
425 101,114,116, 40,114,101,116, 44, 32,118, 41, 10, 9, 9, 9,
426 9,101,110,100, 10, 9, 9, 9,101,110,100, 10, 9, 9,101,
427 110,100, 10, 9, 9,114,101,116,117,114,110, 32,114,101,116,
428 10, 9,101,110,100, 44, 10, 10, 9, 67,114,101, 97,116,101,
429 71,108,111, 98, 97,108, 32, 61, 32,102,117,110, 99,116,105,
430 111,110, 40,115,101,108,102, 44, 32,110, 97,109,101, 41, 10,
431 9, 9,108,111, 99, 97,108, 32,118, 10, 9, 9,118, 32, 61,
432 32,115,101,108,102, 58, 71,101,116, 71,108,111, 98, 97,108,
433 40,110, 97,109,101, 41, 10, 9, 9,105,102, 32,118, 32,116,
434 104,101,110, 32,114,101,116,117,114,110, 32,118, 32,101,110,
435 100, 10, 9, 9,118, 32, 61, 32,123, 32,125, 10, 9, 9,118,
436 46, 83, 99,111,112,101, 32, 61, 32,115,101,108,102, 10, 9,
437 9,118, 46, 78, 97,109,101, 32, 61, 32,110, 97,109,101, 10,
438 9, 9,118, 46, 73,115, 71,108,111, 98, 97,108, 32, 61, 32,
439 116,114,117,101, 10, 9, 9,118, 46, 67, 97,110, 82,101,110,
440 97,109,101, 32, 61, 32,116,114,117,101, 10, 9, 9,118, 46,
441 82,101,102,101,114,101,110, 99,101,115, 32, 61, 32, 49, 10,
442 9, 9,115,101,108,102, 58, 65,100,100, 71,108,111, 98, 97,
443 108, 40,118, 41, 10, 9, 9,114,101,116,117,114,110, 32,118,
444 10, 9,101,110,100, 44, 10, 10, 9, 71,101,116, 71,108,111,
445 98, 97,108, 32, 61, 32,102,117,110, 99,116,105,111,110, 40,
446 115,101,108,102, 44, 32,110, 97,109,101, 41, 10, 9, 9,102,
447 111,114, 32, 95,107, 44, 32,118, 32,105,110, 32,112, 97,105,
448 114,115, 40,115,101,108,102, 46, 71,108,111, 98, 97,108,115,
449 41, 32,100,111, 10, 9, 9, 9,105,102, 32,118, 46, 78, 97,
450 109,101, 32, 61, 61, 32,110, 97,109,101, 32,116,104,101,110,
451 32,114,101,116,117,114,110, 32,118, 32,101,110,100, 10, 9,
452 9,101,110,100, 10, 10, 9, 9,105,102, 32,115,101,108,102,
453 46, 80, 97,114,101,110,116, 32,116,104,101,110, 10, 9, 9,
454 9,114,101,116,117,114,110, 32,115,101,108,102, 46, 80, 97,
455 114,101,110,116, 58, 71,101,116, 71,108,111, 98, 97,108, 40,
456 110, 97,109,101, 41, 10, 9, 9,101,110,100, 10, 9,101,110,
457 100, 44, 10, 10, 9, 71,101,116, 86, 97,114,105, 97, 98,108,
458 101, 32, 61, 32,102,117,110, 99,116,105,111,110, 40,115,101,
459 108,102, 44, 32,110, 97,109,101, 41, 10, 9, 9,114,101,116,
460 117,114,110, 32,115,101,108,102, 58, 71,101,116, 76,111, 99,
461 97,108, 40,110, 97,109,101, 41, 32,111,114, 32,115,101,108,
462 102, 58, 71,101,116, 71,108,111, 98, 97,108, 40,110, 97,109,
463 101, 41, 10, 9,101,110,100, 44, 10, 10, 9, 79, 98,102,117,
464 115, 99, 97,116,101, 76,111, 99, 97,108,115, 32, 61, 32,102,
465 117,110, 99,116,105,111,110, 40,115,101,108,102, 41, 10, 9,
466 9,102,111,114, 32, 95,105, 44, 32,118, 97,114, 32,105,110,
467 32,112, 97,105,114,115, 40,115,101,108,102, 46, 76,111, 99,
468 97,108,115, 41, 32,100,111, 10, 9, 9, 9,105,102, 32,118,
469 97,114, 46, 78, 97,109,101, 32, 61, 61, 32, 34, 95, 69, 78,
470 86, 34, 32,116,104,101,110, 10, 9, 9, 9, 9,115,101,108,
471 102, 58, 82,101,110, 97,109,101, 76,111, 99, 97,108, 40,118,
472 97,114, 46, 78, 97,109,101, 44, 32, 34, 95, 69, 78, 86, 34,
473 41, 10, 9, 9, 9,101,108,115,101, 10, 9, 9, 9, 9,108,
474 111, 99, 97,108, 32,105,100, 32, 61, 32, 71,101,116, 85,110,
475 105,113,117,101, 40,115,101,108,102, 41, 10, 9, 9, 9, 9,
476 115,101,108,102, 58, 82,101,110, 97,109,101, 76,111, 99, 97,
477 108, 40,118, 97,114, 46, 78, 97,109,101, 44, 32,105,100, 41,
478 10, 9, 9, 9,101,110,100, 10, 9, 9,101,110,100, 10, 9,
479 101,110,100, 10,125, 10, 10, 45, 45, 10, 45, 45, 32, 80, 97,
480 114,115,101, 76,117, 97, 46,108,117, 97, 10, 45, 45, 10, 45,
481 45, 32, 84,104,101, 32,109, 97,105,110, 32,108,117, 97, 32,
482 112, 97,114,115,101,114, 32, 97,110,100, 32,108,101,120,101,
483 114, 46, 10, 45, 45, 32, 76,101,120, 76,117, 97, 32,114,101,
484 116,117,114,110,115, 32, 97, 32, 76,117, 97, 32,116,111,107,
485 101,110, 32,115,116,114,101, 97,109, 44, 32,119,105,116,104,
486 32,116,111,107,101,110,115, 32,116,104, 97,116, 32,112,114,
487 101,115,101,114,118,101, 10, 45, 45, 32, 97,108,108, 32,119,
488 104,105,116,101,115,112, 97, 99,101, 32,102,111,114,109, 97,
489 116,116,105,110,103, 32,105,110,102,111,114,109, 97,116,105,
490 111,110, 46, 10, 45, 45, 32, 80, 97,114,115,101, 76,117, 97,
491 32,114,101,116,117,114,110,115, 32, 97,110, 32, 65, 83, 84,
492 44, 32,105,110,116,101,114,110, 97,108,108,121, 32,114,101,
493 108,121,105,110,103, 32,111,110, 32, 76,101,120, 76,117, 97,
494 46, 10, 45, 45, 10, 10,108,111, 99, 97,108, 32, 76,111,119,
495 101,114, 67,104, 97,114,115, 32, 61, 32,108,111,111,107,117,
496 112,105,102,121,123, 39, 97, 39, 44, 32, 39, 98, 39, 44, 32,
497 39, 99, 39, 44, 32, 39,100, 39, 44, 32, 39,101, 39, 44, 32,
498 39,102, 39, 44, 32, 39,103, 39, 44, 32, 39,104, 39, 44, 32,
499 39,105, 39, 44, 10, 9, 9, 9, 9, 9, 9, 9, 32, 39,106,
500 39, 44, 32, 39,107, 39, 44, 32, 39,108, 39, 44, 32, 39,109,
501 39, 44, 32, 39,110, 39, 44, 32, 39,111, 39, 44, 32, 39,112,
502 39, 44, 32, 39,113, 39, 44, 32, 39,114, 39, 44, 10, 9, 9,
503 9, 9, 9, 9, 9, 32, 39,115, 39, 44, 32, 39,116, 39, 44,
504 32, 39,117, 39, 44, 32, 39,118, 39, 44, 32, 39,119, 39, 44,
505 32, 39,120, 39, 44, 32, 39,121, 39, 44, 32, 39,122, 39,125,
506 10,108,111, 99, 97,108, 32, 85,112,112,101,114, 67,104, 97,
507 114,115, 32, 61, 32,108,111,111,107,117,112,105,102,121,123,
508 39, 65, 39, 44, 32, 39, 66, 39, 44, 32, 39, 67, 39, 44, 32,
509 39, 68, 39, 44, 32, 39, 69, 39, 44, 32, 39, 70, 39, 44, 32,
510 39, 71, 39, 44, 32, 39, 72, 39, 44, 32, 39, 73, 39, 44, 10,
511 9, 9, 9, 9, 9, 9, 9, 32, 39, 74, 39, 44, 32, 39, 75,
512 39, 44, 32, 39, 76, 39, 44, 32, 39, 77, 39, 44, 32, 39, 78,
513 39, 44, 32, 39, 79, 39, 44, 32, 39, 80, 39, 44, 32, 39, 81,
514 39, 44, 32, 39, 82, 39, 44, 10, 9, 9, 9, 9, 9, 9, 9,
515 32, 39, 83, 39, 44, 32, 39, 84, 39, 44, 32, 39, 85, 39, 44,
516 32, 39, 86, 39, 44, 32, 39, 87, 39, 44, 32, 39, 88, 39, 44,
517 32, 39, 89, 39, 44, 32, 39, 90, 39,125, 10,108,111, 99, 97,
518 108, 32, 68,105,103,105,116,115, 32, 61, 32,108,111,111,107,
519 117,112,105,102,121,123, 39, 48, 39, 44, 32, 39, 49, 39, 44,
520 32, 39, 50, 39, 44, 32, 39, 51, 39, 44, 32, 39, 52, 39, 44,
521 32, 39, 53, 39, 44, 32, 39, 54, 39, 44, 32, 39, 55, 39, 44,
522 32, 39, 56, 39, 44, 32, 39, 57, 39,125, 10,108,111, 99, 97,
523 108, 32, 72,101,120, 68,105,103,105,116,115, 32, 61, 32,108,
524 111,111,107,117,112,105,102,121,123, 39, 48, 39, 44, 32, 39,
525 49, 39, 44, 32, 39, 50, 39, 44, 32, 39, 51, 39, 44, 32, 39,
526 52, 39, 44, 32, 39, 53, 39, 44, 32, 39, 54, 39, 44, 32, 39,
527 55, 39, 44, 32, 39, 56, 39, 44, 32, 39, 57, 39, 44, 10, 9,
528 9, 9, 9, 9, 9, 9, 39, 65, 39, 44, 32, 39, 97, 39, 44,
529 32, 39, 66, 39, 44, 32, 39, 98, 39, 44, 32, 39, 67, 39, 44,
530 32, 39, 99, 39, 44, 32, 39, 68, 39, 44, 32, 39,100, 39, 44,
531 32, 39, 69, 39, 44, 32, 39,101, 39, 44, 32, 39, 70, 39, 44,
532 32, 39,102, 39,125, 10, 10,108,111, 99, 97,108, 32, 83,121,
533 109, 98,111,108,115, 32, 61, 32,108,111,111,107,117,112,105,
534 102,121,123, 39, 43, 39, 44, 32, 39, 45, 39, 44, 32, 39, 42,
535 39, 44, 32, 39, 47, 39, 44, 32, 39, 94, 39, 44, 32, 39, 37,
536 39, 44, 32, 39, 44, 39, 44, 32, 39,123, 39, 44, 32, 39,125,
537 39, 44, 32, 39, 91, 39, 44, 32, 39, 93, 39, 44, 32, 39, 40,
538 39, 44, 32, 39, 41, 39, 44, 32, 39, 59, 39, 44, 32, 39, 35,
539 39,125, 10, 10,108,111, 99, 97,108, 32, 75,101,121,119,111,
540 114,100,115, 32, 61, 32,108,111,111,107,117,112,105,102,121,
541 123, 10, 9, 39, 97,110,100, 39, 44, 32, 39, 98,114,101, 97,
542 107, 39, 44, 32, 39,100,111, 39, 44, 32, 39,101,108,115,101,
543 39, 44, 32, 39,101,108,115,101,105,102, 39, 44, 10, 9, 39,
544 101,110,100, 39, 44, 32, 39,102, 97,108,115,101, 39, 44, 32,
545 39,102,111,114, 39, 44, 32, 39,102,117,110, 99,116,105,111,
546 110, 39, 44, 32, 39,103,111,116,111, 39, 44, 32, 39,105,102,
547 39, 44, 10, 9, 39,105,110, 39, 44, 32, 39,108,111, 99, 97,
548 108, 39, 44, 32, 39,110,105,108, 39, 44, 32, 39,110,111,116,
549 39, 44, 32, 39,111,114, 39, 44, 32, 39,114,101,112,101, 97,
550 116, 39, 44, 10, 9, 39,114,101,116,117,114,110, 39, 44, 32,
551 39,116,104,101,110, 39, 44, 32, 39,116,114,117,101, 39, 44,
552 32, 39,117,110,116,105,108, 39, 44, 32, 39,119,104,105,108,
553 101, 39, 44, 10,125, 59, 10, 10,108,111, 99, 97,108, 32,102,
554 117,110, 99,116,105,111,110, 32, 76,101,120, 76,117, 97, 40,
555 115,114, 99, 41, 10, 9, 45, 45,116,111,107,101,110, 32,100,
556 117,109,112, 10, 9,108,111, 99, 97,108, 32,116,111,107,101,
557 110,115, 32, 61, 32,123,125, 10, 10, 9,108,111, 99, 97,108,
558 32,115,116, 44, 32,101,114,114, 32, 61, 32,112, 99, 97,108,
559 108, 40,102,117,110, 99,116,105,111,110, 40, 41, 10, 9, 9,
560 45, 45,108,105,110,101, 32, 47, 32, 99,104, 97,114, 32, 47,
561 32,112,111,105,110,116,101,114, 32,116,114, 97, 99,107,105,
562 110,103, 10, 9, 9,108,111, 99, 97,108, 32,112, 32, 61, 32,
563 49, 10, 9, 9,108,111, 99, 97,108, 32,108,105,110,101, 32,
564 61, 32, 49, 10, 9, 9,108,111, 99, 97,108, 32, 99,104, 97,
565 114, 32, 61, 32, 49, 10, 10, 9, 9, 45, 45,103,101,116, 32,
566 47, 32,112,101,101,107, 32,102,117,110, 99,116,105,111,110,
567 115, 10, 9, 9,108,111, 99, 97,108, 32,102,117,110, 99,116,
568 105,111,110, 32,103,101,116, 40, 41, 10, 9, 9, 9,108,111,
569 99, 97,108, 32, 99, 32, 61, 32,115,114, 99, 58,115,117, 98,
570 40,112, 44,112, 41, 10, 9, 9, 9,105,102, 32, 99, 32, 61,
571 61, 32, 39, 92,110, 39, 32,116,104,101,110, 10, 9, 9, 9,
572 9, 99,104, 97,114, 32, 61, 32, 49, 10, 9, 9, 9, 9,108,
573 105,110,101, 32, 61, 32,108,105,110,101, 32, 43, 32, 49, 10,
574 9, 9, 9,101,108,115,101, 10, 9, 9, 9, 9, 99,104, 97,
575 114, 32, 61, 32, 99,104, 97,114, 32, 43, 32, 49, 10, 9, 9,
576 9,101,110,100, 10, 9, 9, 9,112, 32, 61, 32,112, 32, 43,
577 32, 49, 10, 9, 9, 9,114,101,116,117,114,110, 32, 99, 10,
578 9, 9,101,110,100, 10, 9, 9,108,111, 99, 97,108, 32,102,
579 117,110, 99,116,105,111,110, 32,112,101,101,107, 40,110, 41,
580 10, 9, 9, 9,110, 32, 61, 32,110, 32,111,114, 32, 48, 10,
581 9, 9, 9,114,101,116,117,114,110, 32,115,114, 99, 58,115,
582 117, 98, 40,112, 43,110, 44,112, 43,110, 41, 10, 9, 9,101,
583 110,100, 10, 9, 9,108,111, 99, 97,108, 32,102,117,110, 99,
584 116,105,111,110, 32, 99,111,110,115,117,109,101, 40, 99,104,
585 97,114,115, 41, 10, 9, 9, 9,108,111, 99, 97,108, 32, 99,
586 32, 61, 32,112,101,101,107, 40, 41, 10, 9, 9, 9,102,111,
587 114, 32,105, 32, 61, 32, 49, 44, 32, 35, 99,104, 97,114,115,
588 32,100,111, 10, 9, 9, 9, 9,105,102, 32, 99, 32, 61, 61,
589 32, 99,104, 97,114,115, 58,115,117, 98, 40,105, 44,105, 41,
590 32,116,104,101,110, 32,114,101,116,117,114,110, 32,103,101,
591 116, 40, 41, 32,101,110,100, 10, 9, 9, 9,101,110,100, 10,
592 9, 9,101,110,100, 10, 10, 9, 9, 45, 45,115,104, 97,114,
593 101,100, 32,115,116,117,102,102, 10, 9, 9,108,111, 99, 97,
594 108, 32,102,117,110, 99,116,105,111,110, 32,103,101,110,101,
595 114, 97,116,101, 69,114,114,111,114, 40,101,114,114, 41, 10,
596 9, 9, 9,114,101,116,117,114,110, 32,101,114,114,111,114,
597 40, 34, 62, 62, 32, 58, 34, 46, 46,108,105,110,101, 46, 46,
598 34, 58, 34, 46, 46, 99,104, 97,114, 46, 46, 34, 58, 32, 34,
599 46, 46,101,114,114, 44, 32, 48, 41, 10, 9, 9,101,110,100,
600 10, 10, 9, 9,108,111, 99, 97,108, 32,102,117,110, 99,116,
601 105,111,110, 32,116,114,121, 71,101,116, 76,111,110,103, 83,
602 116,114,105,110,103, 40, 41, 10, 9, 9, 9,108,111, 99, 97,
603 108, 32,115,116, 97,114,116, 32, 61, 32,112, 10, 9, 9, 9,
604 105,102, 32,112,101,101,107, 40, 41, 32, 61, 61, 32, 39, 91,
605 39, 32,116,104,101,110, 10, 9, 9, 9, 9,108,111, 99, 97,
606 108, 32,101,113,117, 97,108,115, 67,111,117,110,116, 32, 61,
607 32, 48, 10, 9, 9, 9, 9,108,111, 99, 97,108, 32,100,101,
608 112,116,104, 32, 61, 32, 49, 10, 9, 9, 9, 9,119,104,105,
609 108,101, 32,112,101,101,107, 40,101,113,117, 97,108,115, 67,
610 111,117,110,116, 43, 49, 41, 32, 61, 61, 32, 39, 61, 39, 32,
611 100,111, 10, 9, 9, 9, 9, 9,101,113,117, 97,108,115, 67,
612 111,117,110,116, 32, 61, 32,101,113,117, 97,108,115, 67,111,
613 117,110,116, 32, 43, 32, 49, 10, 9, 9, 9, 9,101,110,100,
614 10, 9, 9, 9, 9,105,102, 32,112,101,101,107, 40,101,113,
615 117, 97,108,115, 67,111,117,110,116, 43, 49, 41, 32, 61, 61,
616 32, 39, 91, 39, 32,116,104,101,110, 10, 9, 9, 9, 9, 9,
617 45, 45,115,116, 97,114,116, 32,112, 97,114,115,105,110,103,
618 32,116,104,101, 32,115,116,114,105,110,103, 46, 32, 83,116,
619 114,105,112, 32,116,104,101, 32,115,116, 97,114,116,105,110,
620 103, 32, 98,105,116, 10, 9, 9, 9, 9, 9,102,111,114, 32,
621 95, 32, 61, 32, 48, 44, 32,101,113,117, 97,108,115, 67,111,
622 117,110,116, 43, 49, 32,100,111, 32,103,101,116, 40, 41, 32,
623 101,110,100, 10, 10, 9, 9, 9, 9, 9, 45, 45,103,101,116,
624 32,116,104,101, 32, 99,111,110,116,101,110,116,115, 10, 9,
625 9, 9, 9, 9,108,111, 99, 97,108, 32, 99,111,110,116,101,
626 110,116, 83,116, 97,114,116, 32, 61, 32,112, 10, 9, 9, 9,
627 9, 9,119,104,105,108,101, 32,116,114,117,101, 32,100,111,
628 10, 9, 9, 9, 9, 9, 9, 45, 45, 99,104,101, 99,107, 32,
629 102,111,114, 32,101,111,102, 10, 9, 9, 9, 9, 9, 9,105,
630 102, 32,112,101,101,107, 40, 41, 32, 61, 61, 32, 39, 39, 32,
631 116,104,101,110, 10, 9, 9, 9, 9, 9, 9, 9,103,101,110,
632 101,114, 97,116,101, 69,114,114,111,114, 40, 34, 69,120,112,
633 101, 99,116,101,100, 32, 96, 93, 34, 46, 46,115,116,114,105,
634 110,103, 46,114,101,112, 40, 39, 61, 39, 44, 32,101,113,117,
635 97,108,115, 67,111,117,110,116, 41, 46, 46, 34, 93, 96, 32,
636 110,101, 97,114, 32, 60,101,111,102, 62, 46, 34, 44, 32, 51,
637 41, 10, 9, 9, 9, 9, 9, 9,101,110,100, 10, 10, 9, 9,
638 9, 9, 9, 9, 45, 45, 99,104,101, 99,107, 32,102,111,114,
639 32,116,104,101, 32,101,110,100, 10, 9, 9, 9, 9, 9, 9,
640 108,111, 99, 97,108, 32,102,111,117,110,100, 69,110,100, 32,
641 61, 32,116,114,117,101, 10, 9, 9, 9, 9, 9, 9,105,102,
642 32,112,101,101,107, 40, 41, 32, 61, 61, 32, 39, 93, 39, 32,
643 116,104,101,110, 10, 9, 9, 9, 9, 9, 9, 9,102,111,114,
644 32,105, 32, 61, 32, 49, 44, 32,101,113,117, 97,108,115, 67,
645 111,117,110,116, 32,100,111, 10, 9, 9, 9, 9, 9, 9, 9,
646 9,105,102, 32,112,101,101,107, 40,105, 41, 32,126, 61, 32,
647 39, 61, 39, 32,116,104,101,110, 32,102,111,117,110,100, 69,
648 110,100, 32, 61, 32,102, 97,108,115,101, 32,101,110,100, 10,
649 9, 9, 9, 9, 9, 9, 9,101,110,100, 10, 9, 9, 9, 9,
650 9, 9, 9,105,102, 32,112,101,101,107, 40,101,113,117, 97,
651 108,115, 67,111,117,110,116, 43, 49, 41, 32,126, 61, 32, 39,
652 93, 39, 32,116,104,101,110, 10, 9, 9, 9, 9, 9, 9, 9,
653 9,102,111,117,110,100, 69,110,100, 32, 61, 32,102, 97,108,
654 115,101, 10, 9, 9, 9, 9, 9, 9, 9,101,110,100, 10, 9,
655 9, 9, 9, 9, 9,101,108,115,101, 10, 9, 9, 9, 9, 9,
656 9, 9,105,102, 32,112,101,101,107, 40, 41, 32, 61, 61, 32,
657 39, 91, 39, 32,116,104,101,110, 10, 9, 9, 9, 9, 9, 9,
658 9, 9, 45, 45, 32,105,115, 32,116,104,101,114,101, 32, 97,
659 110, 32,101,109, 98,101,100,100,101,100, 32,108,111,110,103,
660 32,115,116,114,105,110,103, 63, 10, 9, 9, 9, 9, 9, 9,
661 9, 9,108,111, 99, 97,108, 32,101,109, 98,101,100,100,101,
662 100, 32, 61, 32,116,114,117,101, 10, 9, 9, 9, 9, 9, 9,
663 9, 9,102,111,114, 32,105, 32, 61, 32, 49, 44, 32,101,113,
664 117, 97,108,115, 67,111,117,110,116, 32,100,111, 10, 9, 9,
665 9, 9, 9, 9, 9, 9, 9,105,102, 32,112,101,101,107, 40,
666 105, 41, 32,126, 61, 32, 39, 61, 39, 32,116,104,101,110, 10,
667 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,101,109, 98,101,100,
668 100,101,100, 32, 61, 32,102, 97,108,115,101, 10, 9, 9, 9,
669 9, 9, 9, 9, 9, 9, 9, 98,114,101, 97,107, 10, 9, 9,
670 9, 9, 9, 9, 9, 9, 9,101,110,100, 10, 9, 9, 9, 9,
671 9, 9, 9, 9,101,110,100, 10, 9, 9, 9, 9, 9, 9, 9,
672 9,105,102, 32,112,101,101,107, 40,101,113,117, 97,108,115,
673 67,111,117,110,116, 32, 43, 32, 49, 41, 32, 61, 61, 32, 39,
674 91, 39, 32, 97,110,100, 32,101,109, 98,101,100,100,101,100,
675 32,116,104,101,110, 10, 9, 9, 9, 9, 9, 9, 9, 9, 9,
676 45, 45, 32,111,104, 32,108,111,111,107, 44, 32,116,104,101,
677 114,101, 32,119, 97,115, 10, 9, 9, 9, 9, 9, 9, 9, 9,
678 9,100,101,112,116,104, 32, 61, 32,100,101,112,116,104, 32,
679 43, 32, 49, 10, 9, 9, 9, 9, 9, 9, 9, 9, 9,102,111,
680 114, 32,105, 32, 61, 32, 49, 44, 32, 40,101,113,117, 97,108,
681 115, 67,111,117,110,116, 32, 43, 32, 50, 41, 32,100,111, 10,
682 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,103,101,116, 40, 41,
683 10, 9, 9, 9, 9, 9, 9, 9, 9, 9,101,110,100, 10, 9,
684 9, 9, 9, 9, 9, 9, 9,101,110,100, 10, 9, 9, 9, 9,
685 9, 9, 9,101,110,100, 10, 9, 9, 9, 9, 9, 9, 9,102,
686 111,117,110,100, 69,110,100, 32, 61, 32,102, 97,108,115,101,
687 10, 9, 9, 9, 9, 9, 9,101,110,100, 10, 9, 9, 9, 9,
688 9, 9, 45, 45, 10, 9, 9, 9, 9, 9, 9,105,102, 32,102,
689 111,117,110,100, 69,110,100, 32,116,104,101,110, 10, 9, 9,
690 9, 9, 9, 9, 9,100,101,112,116,104, 32, 61, 32,100,101,
691 112,116,104, 32, 45, 32, 49, 10, 9, 9, 9, 9, 9, 9, 9,
692 105,102, 32,100,101,112,116,104, 32, 61, 61, 32, 48, 32,116,
693 104,101,110, 10, 9, 9, 9, 9, 9, 9, 9, 9, 98,114,101,
694 97,107, 10, 9, 9, 9, 9, 9, 9, 9,101,108,115,101, 10,
695 9, 9, 9, 9, 9, 9, 9, 9,102,111,114, 32,105, 32, 61,
696 32, 49, 44, 32,101,113,117, 97,108,115, 67,111,117,110,116,
697 32, 43, 32, 50, 32,100,111, 10, 9, 9, 9, 9, 9, 9, 9,
698 9, 9,103,101,116, 40, 41, 10, 9, 9, 9, 9, 9, 9, 9,
699 9,101,110,100, 10, 9, 9, 9, 9, 9, 9, 9,101,110,100,
700 10, 9, 9, 9, 9, 9, 9,101,108,115,101, 10, 9, 9, 9,
701 9, 9, 9, 9,103,101,116, 40, 41, 10, 9, 9, 9, 9, 9,
702 9,101,110,100, 10, 9, 9, 9, 9, 9,101,110,100, 10, 10,
703 9, 9, 9, 9, 9, 45, 45,103,101,116, 32,116,104,101, 32,
704 105,110,116,101,114,105,111,114, 32,115,116,114,105,110,103,
705 10, 9, 9, 9, 9, 9,108,111, 99, 97,108, 32, 99,111,110,
706 116,101,110,116, 83,116,114,105,110,103, 32, 61, 32,115,114,
707 99, 58,115,117, 98, 40, 99,111,110,116,101,110,116, 83,116,
708 97,114,116, 44, 32,112, 45, 49, 41, 10, 10, 9, 9, 9, 9,
709 9, 45, 45,102,111,117,110,100, 32,116,104,101, 32,101,110,
710 100, 46, 32, 71,101,116, 32,114,105,100, 32,111,102, 32,116,
711 104,101, 32,116,114, 97,105,108,105,110,103, 32, 98,105,116,
712 10, 9, 9, 9, 9, 9,102,111,114, 32,105, 32, 61, 32, 48,
713 44, 32,101,113,117, 97,108,115, 67,111,117,110,116, 43, 49,
714 32,100,111, 32,103,101,116, 40, 41, 32,101,110,100, 10, 10,
715 9, 9, 9, 9, 9, 45, 45,103,101,116, 32,116,104,101, 32,
716 101,120,116,101,114,105,111,114, 32,115,116,114,105,110,103,
717 10, 9, 9, 9, 9, 9,108,111, 99, 97,108, 32,108,111,110,
718 103, 83,116,114,105,110,103, 32, 61, 32,115,114, 99, 58,115,
719 117, 98, 40,115,116, 97,114,116, 44, 32,112, 45, 49, 41, 10,
720 10, 9, 9, 9, 9, 9, 45, 45,114,101,116,117,114,110, 32,
721 116,104,101, 32,115,116,117,102,102, 10, 9, 9, 9, 9, 9,
722 114,101,116,117,114,110, 32, 99,111,110,116,101,110,116, 83,
723 116,114,105,110,103, 44, 32,108,111,110,103, 83,116,114,105,
724 110,103, 10, 9, 9, 9, 9,101,108,115,101, 10, 9, 9, 9,
725 9, 9,114,101,116,117,114,110, 32,110,105,108, 10, 9, 9,
726 9, 9,101,110,100, 10, 9, 9, 9,101,108,115,101, 10, 9,
727 9, 9, 9,114,101,116,117,114,110, 32,110,105,108, 10, 9,
728 9, 9,101,110,100, 10, 9, 9,101,110,100, 10, 10, 9, 9,
729 45, 45,109, 97,105,110, 32,116,111,107,101,110, 32,101,109,
730 105,116,116,105,110,103, 32,108,111,111,112, 10, 9, 9,119,
731 104,105,108,101, 32,116,114,117,101, 32,100,111, 10, 9, 9,
732 9, 45, 45,103,101,116, 32,108,101, 97,100,105,110,103, 32,
733 119,104,105,116,101,115,112, 97, 99,101, 46, 32, 84,104,101,
734 32,108,101, 97,100,105,110,103, 32,119,104,105,116,101,115,
735 112, 97, 99,101, 32,119,105,108,108, 32,105,110, 99,108,117,
736 100,101, 32, 97,110,121, 32, 99,111,109,109,101,110,116,115,
737 10, 9, 9, 9, 45, 45,112,114,101, 99,101,100,105,110,103,
738 32,116,104,101, 32,116,111,107,101,110, 46, 32, 84,104,105,
739 115, 32,112,114,101,118,101,110,116,115, 32,116,104,101, 32,
740 112, 97,114,115,101,114, 32,110,101,101,100,105,110,103, 32,
741 116,111, 32,100,101, 97,108, 32,119,105,116,104, 32, 99,111,
742 109,109,101,110,116,115, 10, 9, 9, 9, 45, 45,115,101,112,
743 97,114, 97,116,101,108,121, 46, 10, 9, 9, 9,108,111, 99,
744 97,108, 32,108,101, 97,100,105,110,103, 32, 61, 32,123, 32,
745 125, 10, 9, 9, 9,108,111, 99, 97,108, 32,108,101, 97,100,
746 105,110,103, 87,104,105,116,101, 32, 61, 32, 39, 39, 10, 9,
747 9, 9,108,111, 99, 97,108, 32,108,111,110,103, 83,116,114,
748 32, 61, 32,102, 97,108,115,101, 10, 9, 9, 9,119,104,105,
749 108,101, 32,116,114,117,101, 32,100,111, 10, 9, 9, 9, 9,
750 108,111, 99, 97,108, 32, 99, 32, 61, 32,112,101,101,107, 40,
751 41, 10, 9, 9, 9, 9,105,102, 32, 99, 32, 61, 61, 32, 39,
752 35, 39, 32, 97,110,100, 32,112,101,101,107, 40, 49, 41, 32,
753 61, 61, 32, 39, 33, 39, 32, 97,110,100, 32,108,105,110,101,
754 32, 61, 61, 32, 49, 32,116,104,101,110, 10, 9, 9, 9, 9,
755 9, 45, 45, 32, 45, 45, 35, 33, 32,115,104,101, 98, 97,110,
756 103, 32,102,111,114, 32,108,105,110,117,120, 32,115, 99,114,
757 105,112,116,115, 10, 9, 9, 9, 9, 9,103,101,116, 40, 41,
758 10, 9, 9, 9, 9, 9,103,101,116, 40, 41, 10, 9, 9, 9,
759 9, 9,108,101, 97,100,105,110,103, 87,104,105,116,101, 32,
760 61, 32, 34, 45, 45, 35, 33, 34, 10, 9, 9, 9, 9, 9,119,
761 104,105,108,101, 32,112,101,101,107, 40, 41, 32,126, 61, 32,
762 39, 92,110, 39, 32, 97,110,100, 32,112,101,101,107, 40, 41,
763 32,126, 61, 32, 39, 39, 32,100,111, 10, 9, 9, 9, 9, 9,
764 9,108,101, 97,100,105,110,103, 87,104,105,116,101, 32, 61,
765 32,108,101, 97,100,105,110,103, 87,104,105,116,101, 32, 46,
766 46, 32,103,101,116, 40, 41, 10, 9, 9, 9, 9, 9,101,110,
767 100, 10, 9, 9, 9, 9, 9,108,111, 99, 97,108, 32,116,111,
768 107,101,110, 32, 61, 32,123, 10, 9, 9, 9, 9, 9, 9, 84,
769 121,112,101, 32, 61, 32, 39, 67,111,109,109,101,110,116, 39,
770 44, 10, 9, 9, 9, 9, 9, 9, 67,111,109,109,101,110,116,
771 84,121,112,101, 32, 61, 32, 39, 83,104,101, 98, 97,110,103,
772 39, 44, 10, 9, 9, 9, 9, 9, 9, 68, 97,116, 97, 32, 61,
773 32,108,101, 97,100,105,110,103, 87,104,105,116,101, 44, 10,
774 9, 9, 9, 9, 9, 9, 76,105,110,101, 32, 61, 32,108,105,
775 110,101, 44, 10, 9, 9, 9, 9, 9, 9, 67,104, 97,114, 32,
776 61, 32, 99,104, 97,114, 10, 9, 9, 9, 9, 9,125, 10, 9,
777 9, 9, 9, 9,116,111,107,101,110, 46, 80,114,105,110,116,
778 32, 61, 32,102,117,110, 99,116,105,111,110, 40, 41, 10, 9,
779 9, 9, 9, 9, 9,114,101,116,117,114,110, 32, 34, 60, 34,
780 46, 46, 40,116,111,107,101,110, 46, 84,121,112,101, 32, 46,
781 46, 32,115,116,114,105,110,103, 46,114,101,112, 40, 39, 32,
782 39, 44, 32, 55, 45, 35,116,111,107,101,110, 46, 84,121,112,
783 101, 41, 41, 46, 46, 34, 32, 32, 34, 46, 46, 40,116,111,107,
784 101,110, 46, 68, 97,116, 97, 32,111,114, 32, 39, 39, 41, 46,
785 46, 34, 32, 62, 34, 10, 9, 9, 9, 9, 9,101,110,100, 10,
786 9, 9, 9, 9, 9,108,101, 97,100,105,110,103, 87,104,105,
787 116,101, 32, 61, 32, 34, 34, 10, 9, 9, 9, 9, 9,116, 97,
788 98,108,101, 46,105,110,115,101,114,116, 40,108,101, 97,100,
789 105,110,103, 44, 32,116,111,107,101,110, 41, 10, 9, 9, 9,
790 9,101,110,100, 10, 9, 9, 9, 9,105,102, 32, 99, 32, 61,
791 61, 32, 39, 32, 39, 32,111,114, 32, 99, 32, 61, 61, 32, 39,
792 92,116, 39, 32,116,104,101,110, 10, 9, 9, 9, 9, 9, 45,
793 45,119,104,105,116,101,115,112, 97, 99,101, 10, 9, 9, 9,
794 9, 9, 45, 45,108,101, 97,100,105,110,103, 87,104,105,116,
795 101, 32, 61, 32,108,101, 97,100,105,110,103, 87,104,105,116,
796 101, 46, 46,103,101,116, 40, 41, 10, 9, 9, 9, 9, 9,108,
797 111, 99, 97,108, 32, 99, 50, 32, 61, 32,103,101,116, 40, 41,
798 32, 45, 45, 32,105,103,110,111,114,101, 32,119,104,105,116,
799 101,115,112, 97, 99,101, 10, 9, 9, 9, 9, 9,116, 97, 98,
800 108,101, 46,105,110,115,101,114,116, 40,108,101, 97,100,105,
801 110,103, 44, 32,123, 32, 84,121,112,101, 32, 61, 32, 39, 87,
802 104,105,116,101,115,112, 97, 99,101, 39, 44, 32, 76,105,110,
803 101, 32, 61, 32,108,105,110,101, 44, 32, 67,104, 97,114, 32,
804 61, 32, 99,104, 97,114, 44, 32, 68, 97,116, 97, 32, 61, 32,
805 99, 50, 32,125, 41, 10, 9, 9, 9, 9,101,108,115,101,105,
806 102, 32, 99, 32, 61, 61, 32, 39, 92,110, 39, 32,111,114, 32,
807 99, 32, 61, 61, 32, 39, 92,114, 39, 32,116,104,101,110, 10,
808 9, 9, 9, 9, 9,108,111, 99, 97,108, 32,110,108, 32, 61,
809 32,103,101,116, 40, 41, 10, 9, 9, 9, 9, 9,105,102, 32,
810 108,101, 97,100,105,110,103, 87,104,105,116,101, 32,126, 61,
811 32, 34, 34, 32,116,104,101,110, 10, 9, 9, 9, 9, 9, 9,
812 108,111, 99, 97,108, 32,116,111,107,101,110, 32, 61, 32,123,
813 10, 9, 9, 9, 9, 9, 9, 9, 84,121,112,101, 32, 61, 32,
814 39, 67,111,109,109,101,110,116, 39, 44, 10, 9, 9, 9, 9,
815 9, 9, 9, 67,111,109,109,101,110,116, 84,121,112,101, 32,
816 61, 32,108,111,110,103, 83,116,114, 32, 97,110,100, 32, 39,
817 76,111,110,103, 67,111,109,109,101,110,116, 39, 32,111,114,
818 32, 39, 67,111,109,109,101,110,116, 39, 44, 10, 9, 9, 9,
819 9, 9, 9, 9, 68, 97,116, 97, 32, 61, 32,108,101, 97,100,
820 105,110,103, 87,104,105,116,101, 44, 10, 9, 9, 9, 9, 9,
821 9, 9, 76,105,110,101, 32, 61, 32,108,105,110,101, 44, 10,
822 9, 9, 9, 9, 9, 9, 9, 67,104, 97,114, 32, 61, 32, 99,
823 104, 97,114, 44, 10, 9, 9, 9, 9, 9, 9,125, 10, 9, 9,
824 9, 9, 9, 9,116,111,107,101,110, 46, 80,114,105,110,116,
825 32, 61, 32,102,117,110, 99,116,105,111,110, 40, 41, 10, 9,
826 9, 9, 9, 9, 9, 9,114,101,116,117,114,110, 32, 34, 60,
827 34, 46, 46, 40,116,111,107,101,110, 46, 84,121,112,101, 32,
828 46, 46, 32,115,116,114,105,110,103, 46,114,101,112, 40, 39,
829 32, 39, 44, 32, 55, 45, 35,116,111,107,101,110, 46, 84,121,
830 112,101, 41, 41, 46, 46, 34, 32, 32, 34, 46, 46, 40,116,111,
831 107,101,110, 46, 68, 97,116, 97, 32,111,114, 32, 39, 39, 41,
832 46, 46, 34, 32, 62, 34, 10, 9, 9, 9, 9, 9, 9,101,110,
833 100, 10, 9, 9, 9, 9, 9, 9,116, 97, 98,108,101, 46,105,
834 110,115,101,114,116, 40,108,101, 97,100,105,110,103, 44, 32,
835 116,111,107,101,110, 41, 10, 9, 9, 9, 9, 9, 9,108,101,
836 97,100,105,110,103, 87,104,105,116,101, 32, 61, 32, 34, 34,
837 10, 9, 9, 9, 9, 9,101,110,100, 10, 9, 9, 9, 9, 9,
838 116, 97, 98,108,101, 46,105,110,115,101,114,116, 40,108,101,
839 97,100,105,110,103, 44, 32,123, 32, 84,121,112,101, 32, 61,
840 32, 39, 87,104,105,116,101,115,112, 97, 99,101, 39, 44, 32,
841 76,105,110,101, 32, 61, 32,108,105,110,101, 44, 32, 67,104,
842 97,114, 32, 61, 32, 99,104, 97,114, 44, 32, 68, 97,116, 97,
843 32, 61, 32,110,108, 32,125, 41, 10, 9, 9, 9, 9,101,108,
844 115,101,105,102, 32, 99, 32, 61, 61, 32, 39, 45, 39, 32, 97,
845 110,100, 32,112,101,101,107, 40, 49, 41, 32, 61, 61, 32, 39,
846 45, 39, 32,116,104,101,110, 10, 9, 9, 9, 9, 9, 45, 45,
847 99,111,109,109,101,110,116, 10, 9, 9, 9, 9, 9,103,101,
848 116, 40, 41, 10, 9, 9, 9, 9, 9,103,101,116, 40, 41, 10,
849 9, 9, 9, 9, 9,108,101, 97,100,105,110,103, 87,104,105,
850 116,101, 32, 61, 32,108,101, 97,100,105,110,103, 87,104,105,
851 116,101, 32, 46, 46, 32, 39, 45, 45, 39, 10, 9, 9, 9, 9,
852 9,108,111, 99, 97,108, 32, 95, 44, 32,119,104,111,108,101,
853 84,101,120,116, 32, 61, 32,116,114,121, 71,101,116, 76,111,
854 110,103, 83,116,114,105,110,103, 40, 41, 10, 9, 9, 9, 9,
855 9,105,102, 32,119,104,111,108,101, 84,101,120,116, 32,116,
856 104,101,110, 10, 9, 9, 9, 9, 9, 9,108,101, 97,100,105,
857 110,103, 87,104,105,116,101, 32, 61, 32,108,101, 97,100,105,
858 110,103, 87,104,105,116,101, 46, 46,119,104,111,108,101, 84,
859 101,120,116, 10, 9, 9, 9, 9, 9, 9,108,111,110,103, 83,
860 116,114, 32, 61, 32,116,114,117,101, 10, 9, 9, 9, 9, 9,
861 101,108,115,101, 10, 9, 9, 9, 9, 9, 9,119,104,105,108,
862 101, 32,112,101,101,107, 40, 41, 32,126, 61, 32, 39, 92,110,
863 39, 32, 97,110,100, 32,112,101,101,107, 40, 41, 32,126, 61,
864 32, 39, 39, 32,100,111, 10, 9, 9, 9, 9, 9, 9, 9,108,
865 101, 97,100,105,110,103, 87,104,105,116,101, 32, 61, 32,108,
866 101, 97,100,105,110,103, 87,104,105,116,101, 46, 46,103,101,
867 116, 40, 41, 10, 9, 9, 9, 9, 9, 9,101,110,100, 10, 9,
868 9, 9, 9, 9,101,110,100, 10, 9, 9, 9, 9,101,108,115,
869 101, 10, 9, 9, 9, 9, 9, 98,114,101, 97,107, 10, 9, 9,
870 9, 9,101,110,100, 10, 9, 9, 9,101,110,100, 10, 9, 9,
871 9,105,102, 32,108,101, 97,100,105,110,103, 87,104,105,116,
872 101, 32,126, 61, 32, 34, 34, 32,116,104,101,110, 10, 9, 9,
873 9, 9,108,111, 99, 97,108, 32,116,111,107,101,110, 32, 61,
874 32,123, 10, 9, 9, 9, 9, 9, 84,121,112,101, 32, 61, 32,
875 39, 67,111,109,109,101,110,116, 39, 44, 10, 9, 9, 9, 9,
876 9, 67,111,109,109,101,110,116, 84,121,112,101, 32, 61, 32,
877 108,111,110,103, 83,116,114, 32, 97,110,100, 32, 39, 76,111,
878 110,103, 67,111,109,109,101,110,116, 39, 32,111,114, 32, 39,
879 67,111,109,109,101,110,116, 39, 44, 10, 9, 9, 9, 9, 9,
880 68, 97,116, 97, 32, 61, 32,108,101, 97,100,105,110,103, 87,
881 104,105,116,101, 44, 10, 9, 9, 9, 9, 9, 76,105,110,101,
882 32, 61, 32,108,105,110,101, 44, 10, 9, 9, 9, 9, 9, 67,
883 104, 97,114, 32, 61, 32, 99,104, 97,114, 44, 10, 9, 9, 9,
884 9,125, 10, 9, 9, 9, 9,116,111,107,101,110, 46, 80,114,
885 105,110,116, 32, 61, 32,102,117,110, 99,116,105,111,110, 40,
886 41, 10, 9, 9, 9, 9, 9,114,101,116,117,114,110, 32, 34,
887 60, 34, 46, 46, 40,116,111,107,101,110, 46, 84,121,112,101,
888 32, 46, 46, 32,115,116,114,105,110,103, 46,114,101,112, 40,
889 39, 32, 39, 44, 32, 55, 45, 35,116,111,107,101,110, 46, 84,
890 121,112,101, 41, 41, 46, 46, 34, 32, 32, 34, 46, 46, 40,116,
891 111,107,101,110, 46, 68, 97,116, 97, 32,111,114, 32, 39, 39,
892 41, 46, 46, 34, 32, 62, 34, 10, 9, 9, 9, 9,101,110,100,
893 10, 9, 9, 9, 9,116, 97, 98,108,101, 46,105,110,115,101,
894 114,116, 40,108,101, 97,100,105,110,103, 44, 32,116,111,107,
895 101,110, 41, 10, 9, 9, 9,101,110,100, 10, 10, 9, 9, 9,
896 45, 45,103,101,116, 32,116,104,101, 32,105,110,105,116,105,
897 97,108, 32, 99,104, 97,114, 10, 9, 9, 9,108,111, 99, 97,
898 108, 32,116,104,105,115, 76,105,110,101, 32, 61, 32,108,105,
899 110,101, 10, 9, 9, 9,108,111, 99, 97,108, 32,116,104,105,
900 115, 67,104, 97,114, 32, 61, 32, 99,104, 97,114, 10, 9, 9,
901 9, 45, 45, 32,108,111, 99, 97,108, 32,101,114,114,111,114,
902 65,116, 32, 61, 32, 34, 58, 34, 46, 46,108,105,110,101, 46,
903 46, 34, 58, 34, 46, 46, 99,104, 97,114, 46, 46, 34, 58, 62,
904 32, 34, 10, 9, 9, 9,108,111, 99, 97,108, 32, 99, 32, 61,
905 32,112,101,101,107, 40, 41, 10, 10, 9, 9, 9, 45, 45,115,
906 121,109, 98,111,108, 32,116,111, 32,101,109,105,116, 10, 9,
907 9, 9,108,111, 99, 97,108, 32,116,111, 69,109,105,116, 32,
908 61, 32,110,105,108, 10, 10, 9, 9, 9, 45, 45, 98,114, 97,
909 110, 99,104, 32,111,110, 32,116,121,112,101, 10, 9, 9, 9,
910 105,102, 32, 99, 32, 61, 61, 32, 39, 39, 32,116,104,101,110,
911 10, 9, 9, 9, 9, 45, 45,101,111,102, 10, 9, 9, 9, 9,
912 116,111, 69,109,105,116, 32, 61, 32,123, 32, 84,121,112,101,
913 32, 61, 32, 39, 69,111,102, 39, 32,125, 10, 10, 9, 9, 9,
914 101,108,115,101,105,102, 32, 85,112,112,101,114, 67,104, 97,
915 114,115, 91, 99, 93, 32,111,114, 32, 76,111,119,101,114, 67,
916 104, 97,114,115, 91, 99, 93, 32,111,114, 32, 99, 32, 61, 61,
917 32, 39, 95, 39, 32,116,104,101,110, 10, 9, 9, 9, 9, 45,
918 45,105,100,101,110,116, 32,111,114, 32,107,101,121,119,111,
919 114,100, 10, 9, 9, 9, 9,108,111, 99, 97,108, 32,115,116,
920 97,114,116, 32, 61, 32,112, 10, 9, 9, 9, 9,114,101,112,
921 101, 97,116, 10, 9, 9, 9, 9, 9,103,101,116, 40, 41, 10,
922 9, 9, 9, 9, 9, 99, 32, 61, 32,112,101,101,107, 40, 41,
923 10, 9, 9, 9, 9,117,110,116,105,108, 32,110,111,116, 32,
924 40, 85,112,112,101,114, 67,104, 97,114,115, 91, 99, 93, 32,
925 111,114, 32, 76,111,119,101,114, 67,104, 97,114,115, 91, 99,
926 93, 32,111,114, 32, 68,105,103,105,116,115, 91, 99, 93, 32,
927 111,114, 32, 99, 32, 61, 61, 32, 39, 95, 39, 41, 10, 9, 9,
928 9, 9,108,111, 99, 97,108, 32,100, 97,116, 32, 61, 32,115,
929 114, 99, 58,115,117, 98, 40,115,116, 97,114,116, 44, 32,112,
930 45, 49, 41, 10, 9, 9, 9, 9,105,102, 32, 75,101,121,119,
931 111,114,100,115, 91,100, 97,116, 93, 32,116,104,101,110, 10,
932 9, 9, 9, 9, 9,116,111, 69,109,105,116, 32, 61, 32,123,
933 84,121,112,101, 32, 61, 32, 39, 75,101,121,119,111,114,100,
934 39, 44, 32, 68, 97,116, 97, 32, 61, 32,100, 97,116,125, 10,
935 9, 9, 9, 9,101,108,115,101, 10, 9, 9, 9, 9, 9,116,
936 111, 69,109,105,116, 32, 61, 32,123, 84,121,112,101, 32, 61,
937 32, 39, 73,100,101,110,116, 39, 44, 32, 68, 97,116, 97, 32,
938 61, 32,100, 97,116,125, 10, 9, 9, 9, 9,101,110,100, 10,
939 10, 9, 9, 9,101,108,115,101,105,102, 32, 68,105,103,105,
940 116,115, 91, 99, 93, 32,111,114, 32, 40,112,101,101,107, 40,
941 41, 32, 61, 61, 32, 39, 46, 39, 32, 97,110,100, 32, 68,105,
942 103,105,116,115, 91,112,101,101,107, 40, 49, 41, 93, 41, 32,
943 116,104,101,110, 10, 9, 9, 9, 9, 45, 45,110,117,109, 98,
944 101,114, 32, 99,111,110,115,116, 10, 9, 9, 9, 9,108,111,
945 99, 97,108, 32,115,116, 97,114,116, 32, 61, 32,112, 10, 9,
946 9, 9, 9,105,102, 32, 99, 32, 61, 61, 32, 39, 48, 39, 32,
947 97,110,100, 32,112,101,101,107, 40, 49, 41, 32, 61, 61, 32,
948 39,120, 39, 32,116,104,101,110, 10, 9, 9, 9, 9, 9,103,
949 101,116, 40, 41, 59,103,101,116, 40, 41, 10, 9, 9, 9, 9,
950 9,119,104,105,108,101, 32, 72,101,120, 68,105,103,105,116,
951 115, 91,112,101,101,107, 40, 41, 93, 32,100,111, 32,103,101,
952 116, 40, 41, 32,101,110,100, 10, 9, 9, 9, 9, 9,105,102,
953 32, 99,111,110,115,117,109,101, 40, 39, 80,112, 39, 41, 32,
954 116,104,101,110, 10, 9, 9, 9, 9, 9, 9, 99,111,110,115,
955 117,109,101, 40, 39, 43, 45, 39, 41, 10, 9, 9, 9, 9, 9,
956 9,119,104,105,108,101, 32, 68,105,103,105,116,115, 91,112,
957 101,101,107, 40, 41, 93, 32,100,111, 32,103,101,116, 40, 41,
958 32,101,110,100, 10, 9, 9, 9, 9, 9,101,110,100, 10, 9,
959 9, 9, 9,101,108,115,101, 10, 9, 9, 9, 9, 9,119,104,
960 105,108,101, 32, 68,105,103,105,116,115, 91,112,101,101,107,
961 40, 41, 93, 32,100,111, 32,103,101,116, 40, 41, 32,101,110,
962 100, 10, 9, 9, 9, 9, 9,105,102, 32, 99,111,110,115,117,
963 109,101, 40, 39, 46, 39, 41, 32,116,104,101,110, 10, 9, 9,
964 9, 9, 9, 9,119,104,105,108,101, 32, 68,105,103,105,116,
965 115, 91,112,101,101,107, 40, 41, 93, 32,100,111, 32,103,101,
966 116, 40, 41, 32,101,110,100, 10, 9, 9, 9, 9, 9,101,110,
967 100, 10, 9, 9, 9, 9, 9,105,102, 32, 99,111,110,115,117,
968 109,101, 40, 39, 69,101, 39, 41, 32,116,104,101,110, 10, 9,
969 9, 9, 9, 9, 9, 99,111,110,115,117,109,101, 40, 39, 43,
970 45, 39, 41, 10, 9, 9, 9, 9, 9, 9,119,104,105,108,101,
971 32, 68,105,103,105,116,115, 91,112,101,101,107, 40, 41, 93,
972 32,100,111, 32,103,101,116, 40, 41, 32,101,110,100, 10, 9,
973 9, 9, 9, 9,101,110,100, 10, 9, 9, 9, 9,101,110,100,
974 10, 9, 9, 9, 9,116,111, 69,109,105,116, 32, 61, 32,123,
975 84,121,112,101, 32, 61, 32, 39, 78,117,109, 98,101,114, 39,
976 44, 32, 68, 97,116, 97, 32, 61, 32,115,114, 99, 58,115,117,
977 98, 40,115,116, 97,114,116, 44, 32,112, 45, 49, 41,125, 10,
978 10, 9, 9, 9,101,108,115,101,105,102, 32, 99, 32, 61, 61,
979 32, 39, 92, 39, 39, 32,111,114, 32, 99, 32, 61, 61, 32, 39,
980 92, 34, 39, 32,116,104,101,110, 10, 9, 9, 9, 9,108,111,
981 99, 97,108, 32,115,116, 97,114,116, 32, 61, 32,112, 10, 9,
982 9, 9, 9, 45, 45,115,116,114,105,110,103, 32, 99,111,110,
983 115,116, 10, 9, 9, 9, 9,108,111, 99, 97,108, 32,100,101,
984 108,105,109, 32, 61, 32,103,101,116, 40, 41, 10, 9, 9, 9,
985 9,108,111, 99, 97,108, 32, 99,111,110,116,101,110,116, 83,
986 116, 97,114,116, 32, 61, 32,112, 10, 9, 9, 9, 9,119,104,
987 105,108,101, 32,116,114,117,101, 32,100,111, 10, 9, 9, 9,
988 9, 9,108,111, 99, 97,108, 32, 99, 32, 61, 32,103,101,116,
989 40, 41, 10, 9, 9, 9, 9, 9,105,102, 32, 99, 32, 61, 61,
990 32, 39, 92, 92, 39, 32,116,104,101,110, 10, 9, 9, 9, 9,
991 9, 9,103,101,116, 40, 41, 32, 45, 45,103,101,116, 32,116,
992 104,101, 32,101,115, 99, 97,112,101, 32, 99,104, 97,114, 10,
993 9, 9, 9, 9, 9,101,108,115,101,105,102, 32, 99, 32, 61,
994 61, 32,100,101,108,105,109, 32,116,104,101,110, 10, 9, 9,
995 9, 9, 9, 9, 98,114,101, 97,107, 10, 9, 9, 9, 9, 9,
996 101,108,115,101,105,102, 32, 99, 32, 61, 61, 32, 39, 39, 32,
997 116,104,101,110, 10, 9, 9, 9, 9, 9, 9,103,101,110,101,
998 114, 97,116,101, 69,114,114,111,114, 40, 34, 85,110,102,105,
999 110,105,115,104,101,100, 32,115,116,114,105,110,103, 32,110,
1000 101, 97,114, 32, 60,101,111,102, 62, 34, 41, 10, 9, 9, 9,
1001 9, 9,101,110,100, 10, 9, 9, 9, 9,101,110,100, 10, 9,
1002 9, 9, 9,108,111, 99, 97,108, 32, 99,111,110,116,101,110,
1003 116, 32, 61, 32,115,114, 99, 58,115,117, 98, 40, 99,111,110,
1004 116,101,110,116, 83,116, 97,114,116, 44, 32,112, 45, 50, 41,
1005 10, 9, 9, 9, 9,108,111, 99, 97,108, 32, 99,111,110,115,
1006 116, 97,110,116, 32, 61, 32,115,114, 99, 58,115,117, 98, 40,
1007 115,116, 97,114,116, 44, 32,112, 45, 49, 41, 10, 9, 9, 9,
1008 9,116,111, 69,109,105,116, 32, 61, 32,123, 84,121,112,101,
1009 32, 61, 32, 39, 83,116,114,105,110,103, 39, 44, 32, 68, 97,
1010 116, 97, 32, 61, 32, 99,111,110,115,116, 97,110,116, 44, 32,
1011 67,111,110,115,116, 97,110,116, 32, 61, 32, 99,111,110,116,
1012 101,110,116,125, 10, 10, 9, 9, 9,101,108,115,101,105,102,
1013 32, 99, 32, 61, 61, 32, 39, 91, 39, 32,116,104,101,110, 10,
1014 9, 9, 9, 9,108,111, 99, 97,108, 32, 99,111,110,116,101,
1015 110,116, 44, 32,119,104,111,108,101,116,101,120,116, 32, 61,
1016 32,116,114,121, 71,101,116, 76,111,110,103, 83,116,114,105,
1017 110,103, 40, 41, 10, 9, 9, 9, 9,105,102, 32,119,104,111,
1018 108,101,116,101,120,116, 32,116,104,101,110, 10, 9, 9, 9,
1019 9, 9,116,111, 69,109,105,116, 32, 61, 32,123, 84,121,112,
1020 101, 32, 61, 32, 39, 83,116,114,105,110,103, 39, 44, 32, 68,
1021 97,116, 97, 32, 61, 32,119,104,111,108,101,116,101,120,116,
1022 44, 32, 67,111,110,115,116, 97,110,116, 32, 61, 32, 99,111,
1023 110,116,101,110,116,125, 10, 9, 9, 9, 9,101,108,115,101,
1024 10, 9, 9, 9, 9, 9,103,101,116, 40, 41, 10, 9, 9, 9,
1025 9, 9,116,111, 69,109,105,116, 32, 61, 32,123, 84,121,112,
1026 101, 32, 61, 32, 39, 83,121,109, 98,111,108, 39, 44, 32, 68,
1027 97,116, 97, 32, 61, 32, 39, 91, 39,125, 10, 9, 9, 9, 9,
1028 101,110,100, 10, 10, 9, 9, 9,101,108,115,101,105,102, 32,
1029 99,111,110,115,117,109,101, 40, 39, 62, 61, 60, 39, 41, 32,
1030 116,104,101,110, 10, 9, 9, 9, 9,105,102, 32, 99,111,110,
1031 115,117,109,101, 40, 39, 61, 39, 41, 32,116,104,101,110, 10,
1032 9, 9, 9, 9, 9,116,111, 69,109,105,116, 32, 61, 32,123,
1033 84,121,112,101, 32, 61, 32, 39, 83,121,109, 98,111,108, 39,
1034 44, 32, 68, 97,116, 97, 32, 61, 32, 99, 46, 46, 39, 61, 39,
1035 125, 10, 9, 9, 9, 9,101,108,115,101, 10, 9, 9, 9, 9,
1036 9,116,111, 69,109,105,116, 32, 61, 32,123, 84,121,112,101,
1037 32, 61, 32, 39, 83,121,109, 98,111,108, 39, 44, 32, 68, 97,
1038 116, 97, 32, 61, 32, 99,125, 10, 9, 9, 9, 9,101,110,100,
1039 10, 10, 9, 9, 9,101,108,115,101,105,102, 32, 99,111,110,
1040 115,117,109,101, 40, 39,126, 39, 41, 32,116,104,101,110, 10,
1041 9, 9, 9, 9,105,102, 32, 99,111,110,115,117,109,101, 40,
1042 39, 61, 39, 41, 32,116,104,101,110, 10, 9, 9, 9, 9, 9,
1043 116,111, 69,109,105,116, 32, 61, 32,123, 84,121,112,101, 32,
1044 61, 32, 39, 83,121,109, 98,111,108, 39, 44, 32, 68, 97,116,
1045 97, 32, 61, 32, 39,126, 61, 39,125, 10, 9, 9, 9, 9,101,
1046 108,115,101, 10, 9, 9, 9, 9, 9,103,101,110,101,114, 97,
1047 116,101, 69,114,114,111,114, 40, 34, 85,110,101,120,112,101,
1048 99,116,101,100, 32,115,121,109, 98,111,108, 32, 96,126, 96,
1049 32,105,110, 32,115,111,117,114, 99,101, 46, 34, 44, 32, 50,
1050 41, 10, 9, 9, 9, 9,101,110,100, 10, 10, 9, 9, 9,101,
1051 108,115,101,105,102, 32, 99,111,110,115,117,109,101, 40, 39,
1052 46, 39, 41, 32,116,104,101,110, 10, 9, 9, 9, 9,105,102,
1053 32, 99,111,110,115,117,109,101, 40, 39, 46, 39, 41, 32,116,
1054 104,101,110, 10, 9, 9, 9, 9, 9,105,102, 32, 99,111,110,
1055 115,117,109,101, 40, 39, 46, 39, 41, 32,116,104,101,110, 10,
1056 9, 9, 9, 9, 9, 9,116,111, 69,109,105,116, 32, 61, 32,
1057 123, 84,121,112,101, 32, 61, 32, 39, 83,121,109, 98,111,108,
1058 39, 44, 32, 68, 97,116, 97, 32, 61, 32, 39, 46, 46, 46, 39,
1059 125, 10, 9, 9, 9, 9, 9,101,108,115,101, 10, 9, 9, 9,
1060 9, 9, 9,116,111, 69,109,105,116, 32, 61, 32,123, 84,121,
1061 112,101, 32, 61, 32, 39, 83,121,109, 98,111,108, 39, 44, 32,
1062 68, 97,116, 97, 32, 61, 32, 39, 46, 46, 39,125, 10, 9, 9,
1063 9, 9, 9,101,110,100, 10, 9, 9, 9, 9,101,108,115,101,
1064 10, 9, 9, 9, 9, 9,116,111, 69,109,105,116, 32, 61, 32,
1065 123, 84,121,112,101, 32, 61, 32, 39, 83,121,109, 98,111,108,
1066 39, 44, 32, 68, 97,116, 97, 32, 61, 32, 39, 46, 39,125, 10,
1067 9, 9, 9, 9,101,110,100, 10, 10, 9, 9, 9,101,108,115,
1068 101,105,102, 32, 99,111,110,115,117,109,101, 40, 39, 58, 39,
1069 41, 32,116,104,101,110, 10, 9, 9, 9, 9,105,102, 32, 99,
1070 111,110,115,117,109,101, 40, 39, 58, 39, 41, 32,116,104,101,
1071 110, 10, 9, 9, 9, 9, 9,116,111, 69,109,105,116, 32, 61,
1072 32,123, 84,121,112,101, 32, 61, 32, 39, 83,121,109, 98,111,
1073 108, 39, 44, 32, 68, 97,116, 97, 32, 61, 32, 39, 58, 58, 39,
1074 125, 10, 9, 9, 9, 9,101,108,115,101, 10, 9, 9, 9, 9,
1075 9,116,111, 69,109,105,116, 32, 61, 32,123, 84,121,112,101,
1076 32, 61, 32, 39, 83,121,109, 98,111,108, 39, 44, 32, 68, 97,
1077 116, 97, 32, 61, 32, 39, 58, 39,125, 10, 9, 9, 9, 9,101,
1078 110,100, 10, 10, 9, 9, 9,101,108,115,101,105,102, 32, 83,
1079 121,109, 98,111,108,115, 91, 99, 93, 32,116,104,101,110, 10,
1080 9, 9, 9, 9,103,101,116, 40, 41, 10, 9, 9, 9, 9,116,
1081 111, 69,109,105,116, 32, 61, 32,123, 84,121,112,101, 32, 61,
1082 32, 39, 83,121,109, 98,111,108, 39, 44, 32, 68, 97,116, 97,
1083 32, 61, 32, 99,125, 10, 10, 9, 9, 9,101,108,115,101, 10,
1084 9, 9, 9, 9,108,111, 99, 97,108, 32, 99,111,110,116,101,
1085 110,116,115, 44, 32, 97,108,108, 32, 61, 32,116,114,121, 71,
1086 101,116, 76,111,110,103, 83,116,114,105,110,103, 40, 41, 10,
1087 9, 9, 9, 9,105,102, 32, 99,111,110,116,101,110,116,115,
1088 32,116,104,101,110, 10, 9, 9, 9, 9, 9,116,111, 69,109,
1089 105,116, 32, 61, 32,123, 84,121,112,101, 32, 61, 32, 39, 83,
1090 116,114,105,110,103, 39, 44, 32, 68, 97,116, 97, 32, 61, 32,
1091 97,108,108, 44, 32, 67,111,110,115,116, 97,110,116, 32, 61,
1092 32, 99,111,110,116,101,110,116,115,125, 10, 9, 9, 9, 9,
1093 101,108,115,101, 10, 9, 9, 9, 9, 9,103,101,110,101,114,
1094 97,116,101, 69,114,114,111,114, 40, 34, 85,110,101,120,112,
1095 101, 99,116,101,100, 32, 83,121,109, 98,111,108, 32, 96, 34,
1096 46, 46, 99, 46, 46, 34, 96, 32,105,110, 32,115,111,117,114,
1097 99,101, 46, 34, 44, 32, 50, 41, 10, 9, 9, 9, 9,101,110,
1098 100, 10, 9, 9, 9,101,110,100, 10, 10, 9, 9, 9, 45, 45,
1099 97,100,100, 32,116,104,101, 32,101,109,105,116,116,101,100,
1100 32,115,121,109, 98,111,108, 44, 32, 97,102,116,101,114, 32,
1101 97,100,100,105,110,103, 32,115,111,109,101, 32, 99,111,109,
1102 109,111,110, 32,100, 97,116, 97, 10, 9, 9, 9,116,111, 69,
1103 109,105,116, 46, 76,101, 97,100,105,110,103, 87,104,105,116,
1104 101, 32, 61, 32,108,101, 97,100,105,110,103, 32, 45, 45, 32,
1105 116, 97, 98,108,101, 32,111,102, 32,108,101, 97,100,105,110,
1106 103, 32,119,104,105,116,101,115,112, 97, 99,101, 47, 99,111,
1107 109,109,101,110,116,115, 10, 9, 9, 9, 45, 45,102,111,114,
1108 32,107, 44, 32,116,111,107, 32,105,110, 32,112, 97,105,114,
1109 115, 40,108,101, 97,100,105,110,103, 41, 32,100,111, 10, 9,
1110 9, 9, 45, 45, 9,116,111,107,101,110,115, 91, 35,116,111,
1111 107,101,110,115, 32, 43, 32, 49, 93, 32, 61, 32,116,111,107,
1112 10, 9, 9, 9, 45, 45,101,110,100, 10, 10, 9, 9, 9,116,
1113 111, 69,109,105,116, 46, 76,105,110,101, 32, 61, 32,116,104,
1114 105,115, 76,105,110,101, 10, 9, 9, 9,116,111, 69,109,105,
1115 116, 46, 67,104, 97,114, 32, 61, 32,116,104,105,115, 67,104,
1116 97,114, 10, 9, 9, 9,116,111, 69,109,105,116, 46, 80,114,
1117 105,110,116, 32, 61, 32,102,117,110, 99,116,105,111,110, 40,
1118 41, 10, 9, 9, 9, 9,114,101,116,117,114,110, 32, 34, 60,
1119 34, 46, 46, 40,116,111, 69,109,105,116, 46, 84,121,112,101,
1120 46, 46,115,116,114,105,110,103, 46,114,101,112, 40, 39, 32,
1121 39, 44, 32, 55, 45, 35,116,111, 69,109,105,116, 46, 84,121,
1122 112,101, 41, 41, 46, 46, 34, 32, 32, 34, 46, 46, 40,116,111,
1123 69,109,105,116, 46, 68, 97,116, 97, 32,111,114, 32, 39, 39,
1124 41, 46, 46, 34, 32, 62, 34, 10, 9, 9, 9,101,110,100, 10,
1125 9, 9, 9,116,111,107,101,110,115, 91, 35,116,111,107,101,
1126 110,115, 43, 49, 93, 32, 61, 32,116,111, 69,109,105,116, 10,
1127 10, 9, 9, 9, 45, 45,104, 97,108,116, 32, 97,102,116,101,
1128 114, 32,101,111,102, 32,104, 97,115, 32, 98,101,101,110, 32,
1129 101,109,105,116,116,101,100, 10, 9, 9, 9,105,102, 32,116,
1130 111, 69,109,105,116, 46, 84,121,112,101, 32, 61, 61, 32, 39,
1131 69,111,102, 39, 32,116,104,101,110, 32, 98,114,101, 97,107,
1132 32,101,110,100, 10, 9, 9,101,110,100, 10, 9,101,110,100,
1133 41, 10, 9,105,102, 32,110,111,116, 32,115,116, 32,116,104,
1134 101,110, 10, 9, 9,114,101,116,117,114,110, 32,102, 97,108,
1135 115,101, 44, 32,101,114,114, 10, 9,101,110,100, 10, 10, 9,
1136 45, 45,112,117, 98,108,105, 99, 32,105,110,116,101,114,102,
1137 97, 99,101, 58, 10, 9,108,111, 99, 97,108, 32,116,111,107,
1138 32, 61, 32,123,125, 10, 9,108,111, 99, 97,108, 32,115, 97,
1139 118,101,100, 80, 32, 61, 32,123,125, 10, 9,108,111, 99, 97,
1140 108, 32,112, 32, 61, 32, 49, 10, 10, 9,102,117,110, 99,116,
1141 105,111,110, 32,116,111,107, 58,103,101,116,112, 40, 41, 10,
1142 9, 9,114,101,116,117,114,110, 32,112, 10, 9,101,110,100,
1143 10, 10, 9,102,117,110, 99,116,105,111,110, 32,116,111,107,
1144 58,115,101,116,112, 40,110, 41, 10, 9, 9,112, 32, 61, 32,
1145 110, 10, 9,101,110,100, 10, 10, 9,102,117,110, 99,116,105,
1146 111,110, 32,116,111,107, 58,103,101,116, 84,111,107,101,110,
1147 76,105,115,116, 40, 41, 10, 9, 9,114,101,116,117,114,110,
1148 32,116,111,107,101,110,115, 10, 9,101,110,100, 10, 10, 9,
1149 45, 45,103,101,116,116,101,114,115, 10, 9,102,117,110, 99,
1150 116,105,111,110, 32,116,111,107, 58, 80,101,101,107, 40,110,
1151 41, 10, 9, 9,110, 32, 61, 32,110, 32,111,114, 32, 48, 10,
1152 9, 9,114,101,116,117,114,110, 32,116,111,107,101,110,115,
1153 91,109, 97,116,104, 46,109,105,110, 40, 35,116,111,107,101,
1154 110,115, 44, 32,112, 43,110, 41, 93, 10, 9,101,110,100, 10,
1155 9,102,117,110, 99,116,105,111,110, 32,116,111,107, 58, 71,
1156 101,116, 40,116,111,107,101,110, 76,105,115,116, 41, 10, 9,
1157 9,108,111, 99, 97,108, 32,116, 32, 61, 32,116,111,107,101,
1158 110,115, 91,112, 93, 10, 9, 9,112, 32, 61, 32,109, 97,116,
1159 104, 46,109,105,110, 40,112, 32, 43, 32, 49, 44, 32, 35,116,
1160 111,107,101,110,115, 41, 10, 9, 9,105,102, 32,116,111,107,
1161 101,110, 76,105,115,116, 32,116,104,101,110, 10, 9, 9, 9,
1162 116, 97, 98,108,101, 46,105,110,115,101,114,116, 40,116,111,
1163 107,101,110, 76,105,115,116, 44, 32,116, 41, 10, 9, 9,101,
1164 110,100, 10, 9, 9,114,101,116,117,114,110, 32,116, 10, 9,
1165 101,110,100, 10, 9,102,117,110, 99,116,105,111,110, 32,116,
1166 111,107, 58, 73,115, 40,116, 41, 10, 9, 9,114,101,116,117,
1167 114,110, 32,116,111,107, 58, 80,101,101,107, 40, 41, 46, 84,
1168 121,112,101, 32, 61, 61, 32,116, 10, 9,101,110,100, 10, 10,
1169 9, 45, 45,115, 97,118,101, 32, 47, 32,114,101,115,116,111,
1170 114,101, 32,112,111,105,110,116,115, 32,105,110, 32,116,104,
1171 101, 32,115,116,114,101, 97,109, 10, 9,102,117,110, 99,116,
1172 105,111,110, 32,116,111,107, 58, 83, 97,118,101, 40, 41, 10,
1173 9, 9,115, 97,118,101,100, 80, 91, 35,115, 97,118,101,100,
1174 80, 43, 49, 93, 32, 61, 32,112, 10, 9,101,110,100, 10, 9,
1175 102,117,110, 99,116,105,111,110, 32,116,111,107, 58, 67,111,
1176 109,109,105,116, 40, 41, 10, 9, 9,115, 97,118,101,100, 80,
1177 91, 35,115, 97,118,101,100, 80, 93, 32, 61, 32,110,105,108,
1178 10, 9,101,110,100, 10, 9,102,117,110, 99,116,105,111,110,
1179 32,116,111,107, 58, 82,101,115,116,111,114,101, 40, 41, 10,
1180 9, 9,112, 32, 61, 32,115, 97,118,101,100, 80, 91, 35,115,
1181 97,118,101,100, 80, 93, 10, 9, 9,115, 97,118,101,100, 80,
1182 91, 35,115, 97,118,101,100, 80, 93, 32, 61, 32,110,105,108,
1183 10, 9,101,110,100, 10, 10, 9, 45, 45,101,105,116,104,101,
1184 114, 32,114,101,116,117,114,110, 32, 97, 32,115,121,109, 98,
1185 111,108, 32,105,102, 32,116,104,101,114,101, 32,105,115, 32,
1186 111,110,101, 44, 32,111,114, 32,114,101,116,117,114,110, 32,
1187 116,114,117,101, 32,105,102, 32,116,104,101, 32,114,101,113,
1188 117,101,115,116,101,100, 10, 9, 45, 45,115,121,109, 98,111,
1189 108, 32,119, 97,115, 32,103,111,116,116,101,110, 46, 10, 9,
1190 102,117,110, 99,116,105,111,110, 32,116,111,107, 58, 67,111,
1191 110,115,117,109,101, 83,121,109, 98,111,108, 40,115,121,109,
1192 98, 44, 32,116,111,107,101,110, 76,105,115,116, 41, 10, 9,
1193 9,108,111, 99, 97,108, 32,116, 32, 61, 32,115,101,108,102,
1194 58, 80,101,101,107, 40, 41, 10, 9, 9,105,102, 32,116, 46,
1195 84,121,112,101, 32, 61, 61, 32, 39, 83,121,109, 98,111,108,
1196 39, 32,116,104,101,110, 10, 9, 9, 9,105,102, 32,115,121,
1197 109, 98, 32,116,104,101,110, 10, 9, 9, 9, 9,105,102, 32,
1198 116, 46, 68, 97,116, 97, 32, 61, 61, 32,115,121,109, 98, 32,
1199 116,104,101,110, 10, 9, 9, 9, 9, 9,115,101,108,102, 58,
1200 71,101,116, 40,116,111,107,101,110, 76,105,115,116, 41, 10,
1201 9, 9, 9, 9, 9,114,101,116,117,114,110, 32,116,114,117,
1202 101, 10, 9, 9, 9, 9,101,108,115,101, 10, 9, 9, 9, 9,
1203 9,114,101,116,117,114,110, 32,110,105,108, 10, 9, 9, 9,
1204 9,101,110,100, 10, 9, 9, 9,101,108,115,101, 10, 9, 9,
1205 9, 9,115,101,108,102, 58, 71,101,116, 40,116,111,107,101,
1206 110, 76,105,115,116, 41, 10, 9, 9, 9, 9,114,101,116,117,
1207 114,110, 32,116, 10, 9, 9, 9,101,110,100, 10, 9, 9,101,
1208 108,115,101, 10, 9, 9, 9,114,101,116,117,114,110, 32,110,
1209 105,108, 10, 9, 9,101,110,100, 10, 9,101,110,100, 10, 10,
1210 9,102,117,110, 99,116,105,111,110, 32,116,111,107, 58, 67,
1211 111,110,115,117,109,101, 75,101,121,119,111,114,100, 40,107,
1212 119, 44, 32,116,111,107,101,110, 76,105,115,116, 41, 10, 9,
1213 9,108,111, 99, 97,108, 32,116, 32, 61, 32,115,101,108,102,
1214 58, 80,101,101,107, 40, 41, 10, 9, 9,105,102, 32,116, 46,
1215 84,121,112,101, 32, 61, 61, 32, 39, 75,101,121,119,111,114,
1216 100, 39, 32, 97,110,100, 32,116, 46, 68, 97,116, 97, 32, 61,
1217 61, 32,107,119, 32,116,104,101,110, 10, 9, 9, 9,115,101,
1218 108,102, 58, 71,101,116, 40,116,111,107,101,110, 76,105,115,
1219 116, 41, 10, 9, 9, 9,114,101,116,117,114,110, 32,116,114,
1220 117,101, 10, 9, 9,101,108,115,101, 10, 9, 9, 9,114,101,
1221 116,117,114,110, 32,110,105,108, 10, 9, 9,101,110,100, 10,
1222 9,101,110,100, 10, 10, 9,102,117,110, 99,116,105,111,110,
1223 32,116,111,107, 58, 73,115, 75,101,121,119,111,114,100, 40,
1224 107,119, 41, 10, 9, 9,108,111, 99, 97,108, 32,116, 32, 61,
1225 32,116,111,107, 58, 80,101,101,107, 40, 41, 10, 9, 9,114,
1226 101,116,117,114,110, 32,116, 46, 84,121,112,101, 32, 61, 61,
1227 32, 39, 75,101,121,119,111,114,100, 39, 32, 97,110,100, 32,
1228 116, 46, 68, 97,116, 97, 32, 61, 61, 32,107,119, 10, 9,101,
1229 110,100, 10, 10, 9,102,117,110, 99,116,105,111,110, 32,116,
1230 111,107, 58, 73,115, 83,121,109, 98,111,108, 40,115, 41, 10,
1231 9, 9,108,111, 99, 97,108, 32,116, 32, 61, 32,116,111,107,
1232 58, 80,101,101,107, 40, 41, 10, 9, 9,114,101,116,117,114,
1233 110, 32,116, 46, 84,121,112,101, 32, 61, 61, 32, 39, 83,121,
1234 109, 98,111,108, 39, 32, 97,110,100, 32,116, 46, 68, 97,116,
1235 97, 32, 61, 61, 32,115, 10, 9,101,110,100, 10, 10, 9,102,
1236 117,110, 99,116,105,111,110, 32,116,111,107, 58, 73,115, 69,
1237 111,102, 40, 41, 10, 9, 9,114,101,116,117,114,110, 32,116,
1238 111,107, 58, 80,101,101,107, 40, 41, 46, 84,121,112,101, 32,
1239 61, 61, 32, 39, 69,111,102, 39, 10, 9,101,110,100, 10, 10,
1240 9,114,101,116,117,114,110, 32,116,114,117,101, 44, 32,116,
1241 111,107, 10,101,110,100, 10, 10, 10,108,111, 99, 97,108, 32,
1242 102,117,110, 99,116,105,111,110, 32, 80, 97,114,115,101, 76,
1243 117, 97, 40,115,114, 99, 41, 10, 9,108,111, 99, 97,108, 32,
1244 115,116, 44, 32,116,111,107, 10, 9,105,102, 32,116,121,112,
1245 101, 40,115,114, 99, 41, 32,126, 61, 32, 39,116, 97, 98,108,
1246 101, 39, 32,116,104,101,110, 10, 9, 9,115,116, 44, 32,116,
1247 111,107, 32, 61, 32, 76,101,120, 76,117, 97, 40,115,114, 99,
1248 41, 10, 9,101,108,115,101, 10, 9, 9,115,116, 44, 32,116,
1249 111,107, 32, 61, 32,116,114,117,101, 44, 32,115,114, 99, 10,
1250 9,101,110,100, 10, 9,105,102, 32,110,111,116, 32,115,116,
1251 32,116,104,101,110, 10, 9, 9,114,101,116,117,114,110, 32,
1252 102, 97,108,115,101, 44, 32,116,111,107, 10, 9,101,110,100,
1253 10, 9, 45, 45, 10, 9,108,111, 99, 97,108, 32,102,117,110,
1254 99,116,105,111,110, 32, 71,101,110,101,114, 97,116,101, 69,
1255 114,114,111,114, 40,109,115,103, 41, 10, 9, 9,108,111, 99,
1256 97,108, 32,101,114,114, 32, 61, 32, 34, 62, 62, 32, 58, 34,
1257 46, 46,116,111,107, 58, 80,101,101,107, 40, 41, 46, 76,105,
1258 110,101, 46, 46, 34, 58, 34, 46, 46,116,111,107, 58, 80,101,
1259 101,107, 40, 41, 46, 67,104, 97,114, 46, 46, 34, 58, 32, 34,
1260 46, 46,109,115,103, 46, 46, 34, 92,110, 34, 10, 9, 9, 45,
1261 45,102,105,110,100, 32,116,104,101, 32,108,105,110,101, 10,
1262 9, 9,108,111, 99, 97,108, 32,108,105,110,101, 78,117,109,
1263 32, 61, 32, 48, 10, 9, 9,105,102, 32,116,121,112,101, 40,
1264 115,114, 99, 41, 32, 61, 61, 32, 39,115,116,114,105,110,103,
1265 39, 32,116,104,101,110, 10, 9, 9, 9,102,111,114, 32,108,
1266 32,105,110, 32,115,114, 99, 58,103,109, 97,116, 99,104, 40,
1267 34, 91, 94, 92,110, 93, 42, 92,110, 63, 34, 41, 32,100,111,
1268 10, 9, 9, 9, 9,108,105,110,101, 32, 61, 32,108, 10, 9,
1269 9, 9, 9,105,102, 32,108,105,110,101, 58,115,117, 98, 40,
1270 45, 49, 44, 45, 49, 41, 32, 61, 61, 32, 39, 92,110, 39, 32,
1271 116,104,101,110, 32,108,105,110,101, 32, 61, 32,108,105,110,
1272 101, 58,115,117, 98, 40, 49, 44, 45, 50, 41, 32,101,110,100,
1273 10, 9, 9, 9, 9,108,105,110,101, 78,117,109, 32, 61, 32,
1274 108,105,110,101, 78,117,109, 43, 49, 10, 9, 9, 9, 9,105,
1275 102, 32,108,105,110,101, 78,117,109, 32, 61, 61, 32,116,111,
1276 107, 58, 80,101,101,107, 40, 41, 46, 76,105,110,101, 32,116,
1277 104,101,110, 10, 9, 9, 9, 9, 9,101,114,114, 32, 61, 32,
1278 101,114,114, 46, 46, 34, 62, 62, 32, 96, 34, 46, 46,108,105,
1279 110,101, 58,103,115,117, 98, 40, 39, 92,116, 39, 44, 39, 32,
1280 32, 32, 32, 39, 41, 46, 46, 34, 96, 92,110, 34, 10, 9, 9,
1281 9, 9, 9,102,111,114, 32,105, 32, 61, 32, 49, 44, 32,116,
1282 111,107, 58, 80,101,101,107, 40, 41, 46, 67,104, 97,114, 32,
1283 100,111, 10, 9, 9, 9, 9, 9, 9,108,111, 99, 97,108, 32,
1284 99, 32, 61, 32,108,105,110,101, 58,115,117, 98, 40,105, 44,
1285 105, 41, 10, 9, 9, 9, 9, 9, 9,105,102, 32, 99, 32, 61,
1286 61, 32, 39, 92,116, 39, 32,116,104,101,110, 10, 9, 9, 9,
1287 9, 9, 9, 9,101,114,114, 32, 61, 32,101,114,114, 46, 46,
1288 39, 32, 32, 32, 32, 39, 10, 9, 9, 9, 9, 9, 9,101,108,
1289 115,101, 10, 9, 9, 9, 9, 9, 9, 9,101,114,114, 32, 61,
1290 32,101,114,114, 46, 46, 39, 32, 39, 10, 9, 9, 9, 9, 9,
1291 9,101,110,100, 10, 9, 9, 9, 9, 9,101,110,100, 10, 9,
1292 9, 9, 9, 9,101,114,114, 32, 61, 32,101,114,114, 46, 46,
1293 34, 32, 32, 32, 94, 94, 94, 94, 34, 10, 9, 9, 9, 9, 9,
1294 98,114,101, 97,107, 10, 9, 9, 9, 9,101,110,100, 10, 9,
1295 9, 9,101,110,100, 10, 9, 9,101,110,100, 10, 9, 9,114,
1296 101,116,117,114,110, 32,101,114,114, 10, 9,101,110,100, 10,
1297 9, 45, 45, 10, 9, 45, 45, 32,108,111, 99, 97,108, 32, 86,
1298 97,114, 85,105,100, 32, 61, 32, 48, 10, 9, 45, 45, 32, 78,
1299 111, 32,108,111,110,103,101,114, 32,110,101,101,100,101,100,
1300 58, 32,104, 97,110,100,108,101,100, 32,105,110, 32, 83, 99,
1301 111,112,101,115, 32,110,111,119, 32,108,111, 99, 97,108, 32,
1302 71,108,111, 98, 97,108, 86, 97,114, 71,101,116, 77, 97,112,
1303 32, 61, 32,123,125, 10, 9, 45, 45, 32,108,111, 99, 97,108,
1304 32, 86, 97,114, 68,105,103,105,116,115, 32, 61, 32,123, 39,
1305 95, 39, 44, 32, 39, 97, 39, 44, 32, 39, 98, 39, 44, 32, 39,
1306 99, 39, 44, 32, 39,100, 39,125, 10, 9,108,111, 99, 97,108,
1307 32,102,117,110, 99,116,105,111,110, 32, 67,114,101, 97,116,
1308 101, 83, 99,111,112,101, 40,112, 97,114,101,110,116, 41, 10,
1309 9, 9, 45, 45, 91, 91, 10, 9, 9,108,111, 99, 97,108, 32,
1310 115, 99,111,112,101, 32, 61, 32,123,125, 10, 9, 9,115, 99,
1311 111,112,101, 46, 80, 97,114,101,110,116, 32, 61, 32,112, 97,
1312 114,101,110,116, 10, 9, 9,115, 99,111,112,101, 46, 76,111,
1313 99, 97,108, 76,105,115,116, 32, 61, 32,123,125, 10, 9, 9,
1314 115, 99,111,112,101, 46, 76,111, 99, 97,108, 77, 97,112, 32,
1315 61, 32,123,125, 10, 10, 9, 9,102,117,110, 99,116,105,111,
1316 110, 32,115, 99,111,112,101, 58, 79, 98,102,117,115, 99, 97,
1317 116,101, 86, 97,114,105, 97, 98,108,101,115, 40, 41, 10, 9,
1318 9, 9,102,111,114, 32, 95, 44, 32,118, 97,114, 32,105,110,
1319 32,112, 97,105,114,115, 40,115, 99,111,112,101, 46, 76,111,
1320 99, 97,108, 76,105,115,116, 41, 32,100,111, 10, 9, 9, 9,
1321 9,108,111, 99, 97,108, 32,105,100, 32, 61, 32, 34, 34, 10,
1322 9, 9, 9, 9,114,101,112,101, 97,116, 10, 9, 9, 9, 9,
1323 9,108,111, 99, 97,108, 32, 99,104, 97,114,115, 32, 61, 32,
1324 34, 81, 87, 69, 82, 84, 89, 85, 73, 79, 80, 65, 83, 68, 70,
1325 71, 72, 74, 75, 76, 90, 88, 67, 86, 66, 78, 77,113,119,101,
1326 114,116,121,117,105,111,112,108,107,106,104,103,102,100,115,
1327 97,122,120, 99,118, 98,110,109, 95, 34, 10, 9, 9, 9, 9,
1328 9,108,111, 99, 97,108, 32, 99,104, 97,114,115, 50, 32, 61,
1329 32, 34, 81, 87, 69, 82, 84, 89, 85, 73, 79, 80, 65, 83, 68,
1330 70, 71, 72, 74, 75, 76, 90, 88, 67, 86, 66, 78, 77,113,119,
1331 101,114,116,121,117,105,111,112,108,107,106,104,103,102,100,
1332 115, 97,122,120, 99,118, 98,110,109, 95, 49, 50, 51, 52, 53,
1333 54, 55, 56, 57, 48, 34, 10, 9, 9, 9, 9, 9,108,111, 99,
1334 97,108, 32,110, 32, 61, 32,109, 97,116,104, 46,114, 97,110,
1335 100,111,109, 40, 49, 44, 32, 35, 99,104, 97,114,115, 41, 10,
1336 9, 9, 9, 9, 9,105,100, 32, 61, 32,105,100, 32, 46, 46,
1337 32, 99,104, 97,114,115, 58,115,117, 98, 40,110, 44, 32,110,
1338 41, 10, 9, 9, 9, 9, 9,102,111,114, 32,105, 32, 61, 32,
1339 49, 44, 32,109, 97,116,104, 46,114, 97,110,100,111,109, 40,
1340 48, 44, 50, 48, 41, 32,100,111, 10, 9, 9, 9, 9, 9, 9,
1341 108,111, 99, 97,108, 32,110, 32, 61, 32,109, 97,116,104, 46,
1342 114, 97,110,100,111,109, 40, 49, 44, 32, 35, 99,104, 97,114,
1343 115, 50, 41, 10, 9, 9, 9, 9, 9, 9,105,100, 32, 61, 32,
1344 105,100, 32, 46, 46, 32, 99,104, 97,114,115, 50, 58,115,117,
1345 98, 40,110, 44, 32,110, 41, 10, 9, 9, 9, 9, 9,101,110,
1346 100, 10, 9, 9, 9, 9,117,110,116,105,108, 32,110,111,116,
1347 32, 71,108,111, 98, 97,108, 86, 97,114, 71,101,116, 77, 97,
1348 112, 91,105,100, 93, 32, 97,110,100, 32,110,111,116, 32,112,
1349 97,114,101,110,116, 58, 71,101,116, 76,111, 99, 97,108, 40,
1350 105,100, 41, 32, 97,110,100, 32,110,111,116, 32,115, 99,111,
1351 112,101, 46, 76,111, 99, 97,108, 77, 97,112, 91,105,100, 93,
1352 10, 9, 9, 9, 9,118, 97,114, 46, 78, 97,109,101, 32, 61,
1353 32,105,100, 10, 9, 9, 9, 9,115, 99,111,112,101, 46, 76,
1354 111, 99, 97,108, 77, 97,112, 91,105,100, 93, 32, 61, 32,118,
1355 97,114, 10, 9, 9, 9,101,110,100, 10, 9, 9,101,110,100,
1356 10, 10, 9, 9,115, 99,111,112,101, 46, 82,101,110, 97,109,
1357 101, 86, 97,114,115, 32, 61, 32,115, 99,111,112,101, 46, 79,
1358 98,102,117,115, 99, 97,116,101, 86, 97,114,105, 97, 98,108,
1359 101,115, 10, 10, 9, 9, 45, 45, 32, 82,101,110, 97,109,101,
1360 115, 32, 97, 32,118, 97,114,105, 97, 98,108,101, 32,102,114,
1361 111,109, 32,116,104,105,115, 32,115, 99,111,112,101, 32, 97,
1362 110,100, 32,100,111,119,110, 46, 10, 9, 9, 45, 45, 32, 68,
1363 111,101,115, 32,110,111,116, 32,114,101,110, 97,109,101, 32,
1364 103,108,111, 98, 97,108, 32,118, 97,114,105, 97, 98,108,101,
1365 115, 46, 10, 9, 9,102,117,110, 99,116,105,111,110, 32,115,
1366 99,111,112,101, 58, 82,101,110, 97,109,101, 86, 97,114,105,
1367 97, 98,108,101, 40,111,108,100, 44, 32,110,101,119, 78, 97,
1368 109,101, 41, 10, 9, 9, 9,105,102, 32,116,121,112,101, 40,
1369 111,108,100, 41, 32, 61, 61, 32, 34,116, 97, 98,108,101, 34,
1370 32,116,104,101,110, 32, 45, 45, 32,105,116,115, 32, 40,116,
1371 104,101,111,114,101,116,105, 99, 97,108,108,121, 41, 32, 97,
1372 110, 32, 65,115,116, 78,111,100,101, 32,118, 97,114,105, 97,
1373 98,108,101, 10, 9, 9, 9, 9,111,108,100, 32, 61, 32,111,
1374 108,100, 46, 78, 97,109,101, 10, 9, 9, 9,101,110,100, 10,
1375 9, 9, 9,102,111,114, 32, 95, 44, 32,118, 97,114, 32,105,
1376 110, 32,112, 97,105,114,115, 40,115, 99,111,112,101, 46, 76,
1377 111, 99, 97,108, 76,105,115,116, 41, 32,100,111, 10, 9, 9,
1378 9, 9,105,102, 32,118, 97,114, 46, 78, 97,109,101, 32, 61,
1379 61, 32,111,108,100, 32,116,104,101,110, 10, 9, 9, 9, 9,
1380 9,118, 97,114, 46, 78, 97,109,101, 32, 61, 32,110,101,119,
1381 78, 97,109,101, 10, 9, 9, 9, 9, 9,115, 99,111,112,101,
1382 46, 76,111, 99, 97,108, 77, 97,112, 91,110,101,119, 78, 97,
1383 109,101, 93, 32, 61, 32,118, 97,114, 10, 9, 9, 9, 9,101,
1384 110,100, 10, 9, 9, 9,101,110,100, 10, 9, 9,101,110,100,
1385 10, 10, 9, 9,102,117,110, 99,116,105,111,110, 32,115, 99,
1386 111,112,101, 58, 71,101,116, 76,111, 99, 97,108, 40,110, 97,
1387 109,101, 41, 10, 9, 9, 9, 45, 45,102,105,114,115,116, 44,
1388 32,116,114,121, 32,116,111, 32,103,101,116, 32,109,121, 32,
1389 118, 97,114,105, 97, 98,108,101, 10, 9, 9, 9,108,111, 99,
1390 97,108, 32,109,121, 32, 61, 32,115, 99,111,112,101, 46, 76,
1391 111, 99, 97,108, 77, 97,112, 91,110, 97,109,101, 93, 10, 9,
1392 9, 9,105,102, 32,109,121, 32,116,104,101,110, 32,114,101,
1393 116,117,114,110, 32,109,121, 32,101,110,100, 10, 10, 9, 9,
1394 9, 45, 45,110,101,120,116, 44, 32,116,114,121, 32,112, 97,
1395 114,101,110,116, 10, 9, 9, 9,105,102, 32,115, 99,111,112,
1396 101, 46, 80, 97,114,101,110,116, 32,116,104,101,110, 10, 9,
1397 9, 9, 9,108,111, 99, 97,108, 32,112, 97,114, 32, 61, 32,
1398 115, 99,111,112,101, 46, 80, 97,114,101,110,116, 58, 71,101,
1399 116, 76,111, 99, 97,108, 40,110, 97,109,101, 41, 10, 9, 9,
1400 9, 9,105,102, 32,112, 97,114, 32,116,104,101,110, 32,114,
1401 101,116,117,114,110, 32,112, 97,114, 32,101,110,100, 10, 9,
1402 9, 9,101,110,100, 10, 10, 9, 9, 9,114,101,116,117,114,
1403 110, 32,110,105,108, 10, 9, 9,101,110,100, 10, 10, 9, 9,
1404 102,117,110, 99,116,105,111,110, 32,115, 99,111,112,101, 58,
1405 67,114,101, 97,116,101, 76,111, 99, 97,108, 40,110, 97,109,
1406 101, 41, 10, 9, 9, 9, 45, 45, 99,114,101, 97,116,101, 32,
1407 109,121, 32,111,119,110, 32,118, 97,114, 10, 9, 9, 9,108,
1408 111, 99, 97,108, 32,109,121, 32, 61, 32,123,125, 10, 9, 9,
1409 9,109,121, 46, 83, 99,111,112,101, 32, 61, 32,115, 99,111,
1410 112,101, 10, 9, 9, 9,109,121, 46, 78, 97,109,101, 32, 61,
1411 32,110, 97,109,101, 10, 9, 9, 9,109,121, 46, 67, 97,110,
1412 82,101,110, 97,109,101, 32, 61, 32,116,114,117,101, 10, 9,
1413 9, 9, 45, 45, 10, 9, 9, 9,115, 99,111,112,101, 46, 76,
1414 111, 99, 97,108, 76,105,115,116, 91, 35,115, 99,111,112,101,
1415 46, 76,111, 99, 97,108, 76,105,115,116, 43, 49, 93, 32, 61,
1416 32,109,121, 10, 9, 9, 9,115, 99,111,112,101, 46, 76,111,
1417 99, 97,108, 77, 97,112, 91,110, 97,109,101, 93, 32, 61, 32,
1418 109,121, 10, 9, 9, 9, 45, 45, 10, 9, 9, 9,114,101,116,
1419 117,114,110, 32,109,121, 10, 9, 9,101,110,100, 93, 93, 10,
1420 9, 9,108,111, 99, 97,108, 32,115, 99,111,112,101, 32, 61,
1421 32, 83, 99,111,112,101, 58,110,101,119, 40,112, 97,114,101,
1422 110,116, 41, 10, 9, 9,115, 99,111,112,101, 46, 82,101,110,
1423 97,109,101, 86, 97,114,115, 32, 61, 32,115, 99,111,112,101,
1424 46, 79, 98,102,117,115, 99, 97,116,101, 76,111, 99, 97,108,
1425 115, 10, 9, 9,115, 99,111,112,101, 46, 79, 98,102,117,115,
1426 99, 97,116,101, 86, 97,114,105, 97, 98,108,101,115, 32, 61,
1427 32,115, 99,111,112,101, 46, 79, 98,102,117,115, 99, 97,116,
1428 101, 76,111, 99, 97,108,115, 10, 9, 9,115, 99,111,112,101,
1429 46, 80,114,105,110,116, 32, 61, 32,102,117,110, 99,116,105,
1430 111,110, 40, 41, 32,114,101,116,117,114,110, 32, 34, 60, 83,
1431 99,111,112,101, 62, 34, 32,101,110,100, 10, 9, 9,114,101,
1432 116,117,114,110, 32,115, 99,111,112,101, 10, 9,101,110,100,
1433 10, 10, 9,108,111, 99, 97,108, 32, 80, 97,114,115,101, 69,
1434 120,112,114, 10, 9,108,111, 99, 97,108, 32, 80, 97,114,115,
1435 101, 83,116, 97,116,101,109,101,110,116, 76,105,115,116, 10,
1436 9,108,111, 99, 97,108, 32, 80, 97,114,115,101, 83,105,109,
1437 112,108,101, 69,120,112,114, 44, 10, 9, 9, 9, 80, 97,114,
1438 115,101, 83,117, 98, 69,120,112,114, 44, 10, 9, 9, 9, 80,
1439 97,114,115,101, 80,114,105,109, 97,114,121, 69,120,112,114,
1440 44, 10, 9, 9, 9, 80, 97,114,115,101, 83,117,102,102,105,
1441 120,101,100, 69,120,112,114, 10, 10, 9,108,111, 99, 97,108,
1442 32,102,117,110, 99,116,105,111,110, 32, 80, 97,114,115,101,
1443 70,117,110, 99,116,105,111,110, 65,114,103,115, 65,110,100,
1444 66,111,100,121, 40,115, 99,111,112,101, 44, 32,116,111,107,
1445 101,110, 76,105,115,116, 41, 10, 9, 9,108,111, 99, 97,108,
1446 32,102,117,110, 99, 83, 99,111,112,101, 32, 61, 32, 67,114,
1447 101, 97,116,101, 83, 99,111,112,101, 40,115, 99,111,112,101,
1448 41, 10, 9, 9,105,102, 32,110,111,116, 32,116,111,107, 58,
1449 67,111,110,115,117,109,101, 83,121,109, 98,111,108, 40, 39,
1450 40, 39, 44, 32,116,111,107,101,110, 76,105,115,116, 41, 32,
1451 116,104,101,110, 10, 9, 9, 9,114,101,116,117,114,110, 32,
1452 102, 97,108,115,101, 44, 32, 71,101,110,101,114, 97,116,101,
1453 69,114,114,111,114, 40, 34, 96, 40, 96, 32,101,120,112,101,
1454 99,116,101,100, 46, 34, 41, 10, 9, 9,101,110,100, 10, 10,
1455 9, 9, 45, 45, 97,114,103, 32,108,105,115,116, 10, 9, 9,
1456 108,111, 99, 97,108, 32, 97,114,103, 76,105,115,116, 32, 61,
1457 32,123,125, 10, 9, 9,108,111, 99, 97,108, 32,105,115, 86,
1458 97,114, 65,114,103, 32, 61, 32,102, 97,108,115,101, 10, 9,
1459 9,119,104,105,108,101, 32,110,111,116, 32,116,111,107, 58,
1460 67,111,110,115,117,109,101, 83,121,109, 98,111,108, 40, 39,
1461 41, 39, 44, 32,116,111,107,101,110, 76,105,115,116, 41, 32,
1462 100,111, 10, 9, 9, 9,105,102, 32,116,111,107, 58, 73,115,
1463 40, 39, 73,100,101,110,116, 39, 41, 32,116,104,101,110, 10,
1464 9, 9, 9, 9,108,111, 99, 97,108, 32, 97,114,103, 32, 61,
1465 32,102,117,110, 99, 83, 99,111,112,101, 58, 67,114,101, 97,
1466 116,101, 76,111, 99, 97,108, 40,116,111,107, 58, 71,101,116,
1467 40,116,111,107,101,110, 76,105,115,116, 41, 46, 68, 97,116,
1468 97, 41, 10, 9, 9, 9, 9, 97,114,103, 76,105,115,116, 91,
1469 35, 97,114,103, 76,105,115,116, 43, 49, 93, 32, 61, 32, 97,
1470 114,103, 10, 9, 9, 9, 9,105,102, 32,110,111,116, 32,116,
1471 111,107, 58, 67,111,110,115,117,109,101, 83,121,109, 98,111,
1472 108, 40, 39, 44, 39, 44, 32,116,111,107,101,110, 76,105,115,
1473 116, 41, 32,116,104,101,110, 10, 9, 9, 9, 9, 9,105,102,
1474 32,116,111,107, 58, 67,111,110,115,117,109,101, 83,121,109,
1475 98,111,108, 40, 39, 41, 39, 44, 32,116,111,107,101,110, 76,
1476 105,115,116, 41, 32,116,104,101,110, 10, 9, 9, 9, 9, 9,
1477 9, 98,114,101, 97,107, 10, 9, 9, 9, 9, 9,101,108,115,
1478 101, 10, 9, 9, 9, 9, 9, 9,114,101,116,117,114,110, 32,
1479 102, 97,108,115,101, 44, 32, 71,101,110,101,114, 97,116,101,
1480 69,114,114,111,114, 40, 34, 96, 41, 96, 32,101,120,112,101,
1481 99,116,101,100, 46, 34, 41, 10, 9, 9, 9, 9, 9,101,110,
1482 100, 10, 9, 9, 9, 9,101,110,100, 10, 9, 9, 9,101,108,
1483 115,101,105,102, 32,116,111,107, 58, 67,111,110,115,117,109,
1484 101, 83,121,109, 98,111,108, 40, 39, 46, 46, 46, 39, 44, 32,
1485 116,111,107,101,110, 76,105,115,116, 41, 32,116,104,101,110,
1486 10, 9, 9, 9, 9,105,115, 86, 97,114, 65,114,103, 32, 61,
1487 32,116,114,117,101, 10, 9, 9, 9, 9,105,102, 32,110,111,
1488 116, 32,116,111,107, 58, 67,111,110,115,117,109,101, 83,121,
1489 109, 98,111,108, 40, 39, 41, 39, 44, 32,116,111,107,101,110,
1490 76,105,115,116, 41, 32,116,104,101,110, 10, 9, 9, 9, 9,
1491 9,114,101,116,117,114,110, 32,102, 97,108,115,101, 44, 32,
1492 71,101,110,101,114, 97,116,101, 69,114,114,111,114, 40, 34,
1493 96, 46, 46, 46, 96, 32,109,117,115,116, 32, 98,101, 32,116,
1494 104,101, 32,108, 97,115,116, 32, 97,114,103,117,109,101,110,
1495 116, 32,111,102, 32, 97, 32,102,117,110, 99,116,105,111,110,
1496 46, 34, 41, 10, 9, 9, 9, 9,101,110,100, 10, 9, 9, 9,
1497 9, 98,114,101, 97,107, 10, 9, 9, 9,101,108,115,101, 10,
1498 9, 9, 9, 9,114,101,116,117,114,110, 32,102, 97,108,115,
1499 101, 44, 32, 71,101,110,101,114, 97,116,101, 69,114,114,111,
1500 114, 40, 34, 65,114,103,117,109,101,110,116, 32,110, 97,109,
1501 101, 32,111,114, 32, 96, 46, 46, 46, 96, 32,101,120,112,101,
1502 99,116,101,100, 34, 41, 10, 9, 9, 9,101,110,100, 10, 9,
1503 9,101,110,100, 10, 10, 9, 9, 45, 45, 98,111,100,121, 10,
1504 9, 9,108,111, 99, 97,108, 32,115,116, 44, 32, 98,111,100,
1505 121, 32, 61, 32, 80, 97,114,115,101, 83,116, 97,116,101,109,
1506 101,110,116, 76,105,115,116, 40,102,117,110, 99, 83, 99,111,
1507 112,101, 41, 10, 9, 9,105,102, 32,110,111,116, 32,115,116,
1508 32,116,104,101,110, 32,114,101,116,117,114,110, 32,102, 97,
1509 108,115,101, 44, 32, 98,111,100,121, 32,101,110,100, 10, 10,
1510 9, 9, 45, 45,101,110,100, 10, 9, 9,105,102, 32,110,111,
1511 116, 32,116,111,107, 58, 67,111,110,115,117,109,101, 75,101,
1512 121,119,111,114,100, 40, 39,101,110,100, 39, 44, 32,116,111,
1513 107,101,110, 76,105,115,116, 41, 32,116,104,101,110, 10, 9,
1514 9, 9,114,101,116,117,114,110, 32,102, 97,108,115,101, 44,
1515 32, 71,101,110,101,114, 97,116,101, 69,114,114,111,114, 40,
1516 34, 96,101,110,100, 96, 32,101,120,112,101, 99,116,101,100,
1517 32, 97,102,116,101,114, 32,102,117,110, 99,116,105,111,110,
1518 32, 98,111,100,121, 34, 41, 10, 9, 9,101,110,100, 10, 9,
1519 9,108,111, 99, 97,108, 32,110,111,100,101, 70,117,110, 99,
1520 32, 61, 32,123,125, 10, 9, 9,110,111,100,101, 70,117,110,
1521 99, 46, 65,115,116, 84,121,112,101, 32, 32, 32, 61, 32, 39,
1522 70,117,110, 99,116,105,111,110, 39, 10, 9, 9,110,111,100,
1523 101, 70,117,110, 99, 46, 83, 99,111,112,101, 32, 32, 32, 32,
1524 32, 61, 32,102,117,110, 99, 83, 99,111,112,101, 10, 9, 9,
1525 110,111,100,101, 70,117,110, 99, 46, 65,114,103,117,109,101,
1526 110,116,115, 32, 61, 32, 97,114,103, 76,105,115,116, 10, 9,
1527 9,110,111,100,101, 70,117,110, 99, 46, 66,111,100,121, 32,
1528 32, 32, 32, 32, 32, 61, 32, 98,111,100,121, 10, 9, 9,110,
1529 111,100,101, 70,117,110, 99, 46, 86, 97,114, 65,114,103, 32,
1530 32, 32, 32, 61, 32,105,115, 86, 97,114, 65,114,103, 10, 9,
1531 9,110,111,100,101, 70,117,110, 99, 46, 84,111,107,101,110,
1532 115, 32, 32, 32, 32, 61, 32,116,111,107,101,110, 76,105,115,
1533 116, 10, 9, 9, 45, 45, 10, 9, 9,114,101,116,117,114,110,
1534 32,116,114,117,101, 44, 32,110,111,100,101, 70,117,110, 99,
1535 10, 9,101,110,100, 10, 10, 9, 80, 97,114,115,101, 80,114,
1536 105,109, 97,114,121, 69,120,112,114, 32, 61, 32,102,117,110,
1537 99,116,105,111,110, 40,115, 99,111,112,101, 41, 10, 9, 9,
1538 108,111, 99, 97,108, 32,116,111,107,101,110, 76,105,115,116,
1539 32, 61, 32,123,125, 10, 10, 9, 9,105,102, 32,116,111,107,
1540 58, 67,111,110,115,117,109,101, 83,121,109, 98,111,108, 40,
1541 39, 40, 39, 44, 32,116,111,107,101,110, 76,105,115,116, 41,
1542 32,116,104,101,110, 10, 9, 9, 9,108,111, 99, 97,108, 32,
1543 115,116, 44, 32,101,120, 32, 61, 32, 80, 97,114,115,101, 69,
1544 120,112,114, 40,115, 99,111,112,101, 41, 10, 9, 9, 9,105,
1545 102, 32,110,111,116, 32,115,116, 32,116,104,101,110, 32,114,
1546 101,116,117,114,110, 32,102, 97,108,115,101, 44, 32,101,120,
1547 32,101,110,100, 10, 9, 9, 9,105,102, 32,110,111,116, 32,
1548 116,111,107, 58, 67,111,110,115,117,109,101, 83,121,109, 98,
1549 111,108, 40, 39, 41, 39, 44, 32,116,111,107,101,110, 76,105,
1550 115,116, 41, 32,116,104,101,110, 10, 9, 9, 9, 9,114,101,
1551 116,117,114,110, 32,102, 97,108,115,101, 44, 32, 71,101,110,
1552 101,114, 97,116,101, 69,114,114,111,114, 40, 34, 96, 41, 96,
1553 32, 69,120,112,101, 99,116,101,100, 46, 34, 41, 10, 9, 9,
1554 9,101,110,100, 10, 9, 9, 9,105,102, 32,102, 97,108,115,
1555 101, 32,116,104,101,110, 10, 9, 9, 9, 9, 45, 45,115, 97,
1556 118,101, 32,116,104,101, 32,105,110,102,111,114,109, 97,116,
1557 105,111,110, 32, 97, 98,111,117,116, 32,112, 97,114,101,110,
1558 116,104,101,115,105,122,101,100, 32,101,120,112,114,101,115,
1559 115,105,111,110,115, 32,115,111,109,101,119,104,101,114,101,
1560 10, 9, 9, 9, 9,101,120, 46, 80, 97,114,101,110, 67,111,
1561 117,110,116, 32, 61, 32, 40,101,120, 46, 80, 97,114,101,110,
1562 67,111,117,110,116, 32,111,114, 32, 48, 41, 32, 43, 32, 49,
1563 10, 9, 9, 9, 9,114,101,116,117,114,110, 32,116,114,117,
1564 101, 44, 32,101,120, 10, 9, 9, 9,101,108,115,101, 10, 9,
1565 9, 9, 9,108,111, 99, 97,108, 32,112, 97,114,101,110,115,
1566 69,120,112, 32, 61, 32,123,125, 10, 9, 9, 9, 9,112, 97,
1567 114,101,110,115, 69,120,112, 46, 65,115,116, 84,121,112,101,
1568 32, 32, 32, 61, 32, 39, 80, 97,114,101,110,116,104,101,115,
1569 101,115, 39, 10, 9, 9, 9, 9,112, 97,114,101,110,115, 69,
1570 120,112, 46, 73,110,110,101,114, 32, 32, 32, 32, 32, 61, 32,
1571 101,120, 10, 9, 9, 9, 9,112, 97,114,101,110,115, 69,120,
1572 112, 46, 84,111,107,101,110,115, 32, 32, 32, 32, 61, 32,116,
1573 111,107,101,110, 76,105,115,116, 10, 9, 9, 9, 9,114,101,
1574 116,117,114,110, 32,116,114,117,101, 44, 32,112, 97,114,101,
1575 110,115, 69,120,112, 10, 9, 9, 9,101,110,100, 10, 10, 9,
1576 9,101,108,115,101,105,102, 32,116,111,107, 58, 73,115, 40,
1577 39, 73,100,101,110,116, 39, 41, 32,116,104,101,110, 10, 9,
1578 9, 9,108,111, 99, 97,108, 32,105,100, 32, 61, 32,116,111,
1579 107, 58, 71,101,116, 40,116,111,107,101,110, 76,105,115,116,
1580 41, 10, 9, 9, 9,108,111, 99, 97,108, 32,118, 97,114, 32,
1581 61, 32,115, 99,111,112,101, 58, 71,101,116, 76,111, 99, 97,
1582 108, 40,105,100, 46, 68, 97,116, 97, 41, 10, 9, 9, 9,105,
1583 102, 32,110,111,116, 32,118, 97,114, 32,116,104,101,110, 10,
1584 9, 9, 9, 9,118, 97,114, 32, 61, 32,115, 99,111,112,101,
1585 58, 71,101,116, 71,108,111, 98, 97,108, 40,105,100, 46, 68,
1586 97,116, 97, 41, 10, 9, 9, 9, 9,105,102, 32,110,111,116,
1587 32,118, 97,114, 32,116,104,101,110, 10, 9, 9, 9, 9, 9,
1588 118, 97,114, 32, 61, 32,115, 99,111,112,101, 58, 67,114,101,
1589 97,116,101, 71,108,111, 98, 97,108, 40,105,100, 46, 68, 97,
1590 116, 97, 41, 10, 9, 9, 9, 9,101,108,115,101, 10, 9, 9,
1591 9, 9, 9,118, 97,114, 46, 82,101,102,101,114,101,110, 99,
1592 101,115, 32, 61, 32,118, 97,114, 46, 82,101,102,101,114,101,
1593 110, 99,101,115, 32, 43, 32, 49, 10, 9, 9, 9, 9,101,110,
1594 100, 10, 9, 9, 9,101,108,115,101, 10, 9, 9, 9, 9,118,
1595 97,114, 46, 82,101,102,101,114,101,110, 99,101,115, 32, 61,
1596 32,118, 97,114, 46, 82,101,102,101,114,101,110, 99,101,115,
1597 32, 43, 32, 49, 10, 9, 9, 9,101,110,100, 10, 9, 9, 9,
1598 45, 45, 10, 9, 9, 9,108,111, 99, 97,108, 32,110,111,100,
1599 101, 80,114,105,109, 69,120,112, 32, 61, 32,123,125, 10, 9,
1600 9, 9,110,111,100,101, 80,114,105,109, 69,120,112, 46, 65,
1601 115,116, 84,121,112,101, 32, 32, 32, 61, 32, 39, 86, 97,114,
1602 69,120,112,114, 39, 10, 9, 9, 9,110,111,100,101, 80,114,
1603 105,109, 69,120,112, 46, 78, 97,109,101, 32, 32, 32, 32, 32,
1604 32, 61, 32,105,100, 46, 68, 97,116, 97, 10, 9, 9, 9,110,
1605 111,100,101, 80,114,105,109, 69,120,112, 46, 86, 97,114,105,
1606 97, 98,108,101, 32, 32, 61, 32,118, 97,114, 10, 9, 9, 9,
1607 110,111,100,101, 80,114,105,109, 69,120,112, 46, 84,111,107,
1608 101,110,115, 32, 32, 32, 32, 61, 32,116,111,107,101,110, 76,
1609 105,115,116, 10, 9, 9, 9, 45, 45, 10, 9, 9, 9,114,101,
1610 116,117,114,110, 32,116,114,117,101, 44, 32,110,111,100,101,
1611 80,114,105,109, 69,120,112, 10, 9, 9,101,108,115,101, 10,
1612 9, 9, 9,114,101,116,117,114,110, 32,102, 97,108,115,101,
1613 44, 32, 71,101,110,101,114, 97,116,101, 69,114,114,111,114,
1614 40, 34,112,114,105,109, 97,114,121, 32,101,120,112,114,101,
1615 115,115,105,111,110, 32,101,120,112,101, 99,116,101,100, 34,
1616 41, 10, 9, 9,101,110,100, 10, 9,101,110,100, 10, 10, 9,
1617 80, 97,114,115,101, 83,117,102,102,105,120,101,100, 69,120,
1618 112,114, 32, 61, 32,102,117,110, 99,116,105,111,110, 40,115,
1619 99,111,112,101, 44, 32,111,110,108,121, 68,111,116, 67,111,
1620 108,111,110, 41, 10, 9, 9, 45, 45, 98, 97,115,101, 32,112,
1621 114,105,109, 97,114,121, 32,101,120,112,114,101,115,115,105,
1622 111,110, 10, 9, 9,108,111, 99, 97,108, 32,115,116, 44, 32,
1623 112,114,105,109, 32, 61, 32, 80, 97,114,115,101, 80,114,105,
1624 109, 97,114,121, 69,120,112,114, 40,115, 99,111,112,101, 41,
1625 10, 9, 9,105,102, 32,110,111,116, 32,115,116, 32,116,104,
1626 101,110, 32,114,101,116,117,114,110, 32,102, 97,108,115,101,
1627 44, 32,112,114,105,109, 32,101,110,100, 10, 9, 9, 45, 45,
1628 10, 9, 9,119,104,105,108,101, 32,116,114,117,101, 32,100,
1629 111, 10, 9, 9, 9,108,111, 99, 97,108, 32,116,111,107,101,
1630 110, 76,105,115,116, 32, 61, 32,123,125, 10, 10, 9, 9, 9,
1631 105,102, 32,116,111,107, 58, 73,115, 83,121,109, 98,111,108,
1632 40, 39, 46, 39, 41, 32,111,114, 32,116,111,107, 58, 73,115,
1633 83,121,109, 98,111,108, 40, 39, 58, 39, 41, 32,116,104,101,
1634 110, 10, 9, 9, 9, 9,108,111, 99, 97,108, 32,115,121,109,
1635 98, 32, 61, 32,116,111,107, 58, 71,101,116, 40,116,111,107,
1636 101,110, 76,105,115,116, 41, 46, 68, 97,116, 97, 10, 9, 9,
1637 9, 9,105,102, 32,110,111,116, 32,116,111,107, 58, 73,115,
1638 40, 39, 73,100,101,110,116, 39, 41, 32,116,104,101,110, 10,
1639 9, 9, 9, 9, 9,114,101,116,117,114,110, 32,102, 97,108,
1640 115,101, 44, 32, 71,101,110,101,114, 97,116,101, 69,114,114,
1641 111,114, 40, 34, 60, 73,100,101,110,116, 62, 32,101,120,112,
1642 101, 99,116,101,100, 46, 34, 41, 10, 9, 9, 9, 9,101,110,
1643 100, 10, 9, 9, 9, 9,108,111, 99, 97,108, 32,105,100, 32,
1644 61, 32,116,111,107, 58, 71,101,116, 40,116,111,107,101,110,
1645 76,105,115,116, 41, 10, 9, 9, 9, 9,108,111, 99, 97,108,
1646 32,110,111,100,101, 73,110,100,101,120, 32, 61, 32,123,125,
1647 10, 9, 9, 9, 9,110,111,100,101, 73,110,100,101,120, 46,
1648 65,115,116, 84,121,112,101, 32, 32, 61, 32, 39, 77,101,109,
1649 98,101,114, 69,120,112,114, 39, 10, 9, 9, 9, 9,110,111,
1650 100,101, 73,110,100,101,120, 46, 66, 97,115,101, 32, 32, 32,
1651 32, 32, 61, 32,112,114,105,109, 10, 9, 9, 9, 9,110,111,
1652 100,101, 73,110,100,101,120, 46, 73,110,100,101,120,101,114,
1653 32, 32, 61, 32,115,121,109, 98, 10, 9, 9, 9, 9,110,111,
1654 100,101, 73,110,100,101,120, 46, 73,100,101,110,116, 32, 32,
1655 32, 32, 61, 32,105,100, 10, 9, 9, 9, 9,110,111,100,101,
1656 73,110,100,101,120, 46, 84,111,107,101,110,115, 32, 32, 32,
1657 61, 32,116,111,107,101,110, 76,105,115,116, 10, 9, 9, 9,
1658 9, 45, 45, 10, 9, 9, 9, 9,112,114,105,109, 32, 61, 32,
1659 110,111,100,101, 73,110,100,101,120, 10, 10, 9, 9, 9,101,
1660 108,115,101,105,102, 32,110,111,116, 32,111,110,108,121, 68,
1661 111,116, 67,111,108,111,110, 32, 97,110,100, 32,116,111,107,
1662 58, 67,111,110,115,117,109,101, 83,121,109, 98,111,108, 40,
1663 39, 91, 39, 44, 32,116,111,107,101,110, 76,105,115,116, 41,
1664 32,116,104,101,110, 10, 9, 9, 9, 9,108,111, 99, 97,108,
1665 32,115,116, 44, 32,101,120, 32, 61, 32, 80, 97,114,115,101,
1666 69,120,112,114, 40,115, 99,111,112,101, 41, 10, 9, 9, 9,
1667 9,105,102, 32,110,111,116, 32,115,116, 32,116,104,101,110,
1668 32,114,101,116,117,114,110, 32,102, 97,108,115,101, 44, 32,
1669 101,120, 32,101,110,100, 10, 9, 9, 9, 9,105,102, 32,110,
1670 111,116, 32,116,111,107, 58, 67,111,110,115,117,109,101, 83,
1671 121,109, 98,111,108, 40, 39, 93, 39, 44, 32,116,111,107,101,
1672 110, 76,105,115,116, 41, 32,116,104,101,110, 10, 9, 9, 9,
1673 9, 9,114,101,116,117,114,110, 32,102, 97,108,115,101, 44,
1674 32, 71,101,110,101,114, 97,116,101, 69,114,114,111,114, 40,
1675 34, 96, 93, 96, 32,101,120,112,101, 99,116,101,100, 46, 34,
1676 41, 10, 9, 9, 9, 9,101,110,100, 10, 9, 9, 9, 9,108,
1677 111, 99, 97,108, 32,110,111,100,101, 73,110,100,101,120, 32,
1678 61, 32,123,125, 10, 9, 9, 9, 9,110,111,100,101, 73,110,
1679 100,101,120, 46, 65,115,116, 84,121,112,101, 32, 32, 61, 32,
1680 39, 73,110,100,101,120, 69,120,112,114, 39, 10, 9, 9, 9,
1681 9,110,111,100,101, 73,110,100,101,120, 46, 66, 97,115,101,
1682 32, 32, 32, 32, 32, 61, 32,112,114,105,109, 10, 9, 9, 9,
1683 9,110,111,100,101, 73,110,100,101,120, 46, 73,110,100,101,
1684 120, 32, 32, 32, 32, 61, 32,101,120, 10, 9, 9, 9, 9,110,
1685 111,100,101, 73,110,100,101,120, 46, 84,111,107,101,110,115,
1686 32, 32, 32, 61, 32,116,111,107,101,110, 76,105,115,116, 10,
1687 9, 9, 9, 9, 45, 45, 10, 9, 9, 9, 9,112,114,105,109,
1688 32, 61, 32,110,111,100,101, 73,110,100,101,120, 10, 10, 9,
1689 9, 9,101,108,115,101,105,102, 32,110,111,116, 32,111,110,
1690 108,121, 68,111,116, 67,111,108,111,110, 32, 97,110,100, 32,
1691 116,111,107, 58, 67,111,110,115,117,109,101, 83,121,109, 98,
1692 111,108, 40, 39, 40, 39, 44, 32,116,111,107,101,110, 76,105,
1693 115,116, 41, 32,116,104,101,110, 10, 9, 9, 9, 9,108,111,
1694 99, 97,108, 32, 97,114,103,115, 32, 61, 32,123,125, 10, 9,
1695 9, 9, 9,119,104,105,108,101, 32,110,111,116, 32,116,111,
1696 107, 58, 67,111,110,115,117,109,101, 83,121,109, 98,111,108,
1697 40, 39, 41, 39, 44, 32,116,111,107,101,110, 76,105,115,116,
1698 41, 32,100,111, 10, 9, 9, 9, 9, 9,108,111, 99, 97,108,
1699 32,115,116, 44, 32,101,120, 32, 61, 32, 80, 97,114,115,101,
1700 69,120,112,114, 40,115, 99,111,112,101, 41, 10, 9, 9, 9,
1701 9, 9,105,102, 32,110,111,116, 32,115,116, 32,116,104,101,
1702 110, 32,114,101,116,117,114,110, 32,102, 97,108,115,101, 44,
1703 32,101,120, 32,101,110,100, 10, 9, 9, 9, 9, 9, 97,114,
1704 103,115, 91, 35, 97,114,103,115, 43, 49, 93, 32, 61, 32,101,
1705 120, 10, 9, 9, 9, 9, 9,105,102, 32,110,111,116, 32,116,
1706 111,107, 58, 67,111,110,115,117,109,101, 83,121,109, 98,111,
1707 108, 40, 39, 44, 39, 44, 32,116,111,107,101,110, 76,105,115,
1708 116, 41, 32,116,104,101,110, 10, 9, 9, 9, 9, 9, 9,105,
1709 102, 32,116,111,107, 58, 67,111,110,115,117,109,101, 83,121,
1710 109, 98,111,108, 40, 39, 41, 39, 44, 32,116,111,107,101,110,
1711 76,105,115,116, 41, 32,116,104,101,110, 10, 9, 9, 9, 9,
1712 9, 9, 9, 98,114,101, 97,107, 10, 9, 9, 9, 9, 9, 9,
1713 101,108,115,101, 10, 9, 9, 9, 9, 9, 9, 9,114,101,116,
1714 117,114,110, 32,102, 97,108,115,101, 44, 32, 71,101,110,101,
1715 114, 97,116,101, 69,114,114,111,114, 40, 34, 96, 41, 96, 32,
1716 69,120,112,101, 99,116,101,100, 46, 34, 41, 10, 9, 9, 9,
1717 9, 9, 9,101,110,100, 10, 9, 9, 9, 9, 9,101,110,100,
1718 10, 9, 9, 9, 9,101,110,100, 10, 9, 9, 9, 9,108,111,
1719 99, 97,108, 32,110,111,100,101, 67, 97,108,108, 32, 61, 32,
1720 123,125, 10, 9, 9, 9, 9,110,111,100,101, 67, 97,108,108,
1721 46, 65,115,116, 84,121,112,101, 32, 32, 32, 61, 32, 39, 67,
1722 97,108,108, 69,120,112,114, 39, 10, 9, 9, 9, 9,110,111,
1723 100,101, 67, 97,108,108, 46, 66, 97,115,101, 32, 32, 32, 32,
1724 32, 32, 61, 32,112,114,105,109, 10, 9, 9, 9, 9,110,111,
1725 100,101, 67, 97,108,108, 46, 65,114,103,117,109,101,110,116,
1726 115, 32, 61, 32, 97,114,103,115, 10, 9, 9, 9, 9,110,111,
1727 100,101, 67, 97,108,108, 46, 84,111,107,101,110,115, 32, 32,
1728 32, 32, 61, 32,116,111,107,101,110, 76,105,115,116, 10, 9,
1729 9, 9, 9, 45, 45, 10, 9, 9, 9, 9,112,114,105,109, 32,
1730 61, 32,110,111,100,101, 67, 97,108,108, 10, 10, 9, 9, 9,
1731 101,108,115,101,105,102, 32,110,111,116, 32,111,110,108,121,
1732 68,111,116, 67,111,108,111,110, 32, 97,110,100, 32,116,111,
1733 107, 58, 73,115, 40, 39, 83,116,114,105,110,103, 39, 41, 32,
1734 116,104,101,110, 10, 9, 9, 9, 9, 45, 45,115,116,114,105,
1735 110,103, 32, 99, 97,108,108, 10, 9, 9, 9, 9,108,111, 99,
1736 97,108, 32,110,111,100,101, 67, 97,108,108, 32, 61, 32,123,
1737 125, 10, 9, 9, 9, 9,110,111,100,101, 67, 97,108,108, 46,
1738 65,115,116, 84,121,112,101, 32, 32, 32, 32, 61, 32, 39, 83,
1739 116,114,105,110,103, 67, 97,108,108, 69,120,112,114, 39, 10,
1740 9, 9, 9, 9,110,111,100,101, 67, 97,108,108, 46, 66, 97,
1741 115,101, 32, 32, 32, 32, 32, 32, 32, 61, 32,112,114,105,109,
1742 10, 9, 9, 9, 9,110,111,100,101, 67, 97,108,108, 46, 65,
1743 114,103,117,109,101,110,116,115, 32, 32, 61, 32,123, 32,116,
1744 111,107, 58, 71,101,116, 40,116,111,107,101,110, 76,105,115,
1745 116, 41, 32,125, 10, 9, 9, 9, 9,110,111,100,101, 67, 97,
1746 108,108, 46, 84,111,107,101,110,115, 32, 32, 32, 32, 32, 61,
1747 32,116,111,107,101,110, 76,105,115,116, 10, 9, 9, 9, 9,
1748 45, 45, 10, 9, 9, 9, 9,112,114,105,109, 32, 61, 32,110,
1749 111,100,101, 67, 97,108,108, 10, 10, 9, 9, 9,101,108,115,
1750 101,105,102, 32,110,111,116, 32,111,110,108,121, 68,111,116,
1751 67,111,108,111,110, 32, 97,110,100, 32,116,111,107, 58, 73,
1752 115, 83,121,109, 98,111,108, 40, 39,123, 39, 41, 32,116,104,
1753 101,110, 10, 9, 9, 9, 9, 45, 45,116, 97, 98,108,101, 32,
1754 99, 97,108,108, 10, 9, 9, 9, 9,108,111, 99, 97,108, 32,
1755 115,116, 44, 32,101,120, 32, 61, 32, 80, 97,114,115,101, 83,
1756 105,109,112,108,101, 69,120,112,114, 40,115, 99,111,112,101,
1757 41, 10, 9, 9, 9, 9, 45, 45, 32, 70, 73, 88, 58, 32, 80,
1758 97,114,115,101, 69,120,112,114, 40,115, 99,111,112,101, 41,
1759 32,112, 97,114,115,101,115, 32,116,104,101, 32,116, 97, 98,
1760 108,101, 32, 65, 78, 68, 32, 97,110,100, 32, 97,110,121, 32,
1761 102,111,108,108,111,119,105,110,103, 32, 98,105,110, 97,114,
1762 121, 32,101,120,112,114,101,115,115,105,111,110,115, 46, 10,
1763 9, 9, 9, 9, 45, 45, 32, 87,101, 32,106,117,115,116, 32,
1764 119, 97,110,116, 32,116,104,101, 32,116, 97, 98,108,101, 10,
1765 9, 9, 9, 9,105,102, 32,110,111,116, 32,115,116, 32,116,
1766 104,101,110, 32,114,101,116,117,114,110, 32,102, 97,108,115,
1767 101, 44, 32,101,120, 32,101,110,100, 10, 9, 9, 9, 9,108,
1768 111, 99, 97,108, 32,110,111,100,101, 67, 97,108,108, 32, 61,
1769 32,123,125, 10, 9, 9, 9, 9,110,111,100,101, 67, 97,108,
1770 108, 46, 65,115,116, 84,121,112,101, 32, 32, 32, 61, 32, 39,
1771 84, 97, 98,108,101, 67, 97,108,108, 69,120,112,114, 39, 10,
1772 9, 9, 9, 9,110,111,100,101, 67, 97,108,108, 46, 66, 97,
1773 115,101, 32, 32, 32, 32, 32, 32, 61, 32,112,114,105,109, 10,
1774 9, 9, 9, 9,110,111,100,101, 67, 97,108,108, 46, 65,114,
1775 103,117,109,101,110,116,115, 32, 61, 32,123, 32,101,120, 32,
1776 125, 10, 9, 9, 9, 9,110,111,100,101, 67, 97,108,108, 46,
1777 84,111,107,101,110,115, 32, 32, 32, 32, 61, 32,116,111,107,
1778 101,110, 76,105,115,116, 10, 9, 9, 9, 9, 45, 45, 10, 9,
1779 9, 9, 9,112,114,105,109, 32, 61, 32,110,111,100,101, 67,
1780 97,108,108, 10, 10, 9, 9, 9,101,108,115,101, 10, 9, 9,
1781 9, 9, 98,114,101, 97,107, 10, 9, 9, 9,101,110,100, 10,
1782 9, 9,101,110,100, 10, 9, 9,114,101,116,117,114,110, 32,
1783 116,114,117,101, 44, 32,112,114,105,109, 10, 9,101,110,100,
1784 10, 10, 10, 9, 80, 97,114,115,101, 83,105,109,112,108,101,
1785 69,120,112,114, 32, 61, 32,102,117,110, 99,116,105,111,110,
1786 40,115, 99,111,112,101, 41, 10, 9, 9,108,111, 99, 97,108,
1787 32,116,111,107,101,110, 76,105,115,116, 32, 61, 32,123,125,
1788 10, 10, 9, 9,105,102, 32,116,111,107, 58, 73,115, 40, 39,
1789 78,117,109, 98,101,114, 39, 41, 32,116,104,101,110, 10, 9,
1790 9, 9,108,111, 99, 97,108, 32,110,111,100,101, 78,117,109,
1791 32, 61, 32,123,125, 10, 9, 9, 9,110,111,100,101, 78,117,
1792 109, 46, 65,115,116, 84,121,112,101, 32, 61, 32, 39, 78,117,
1793 109, 98,101,114, 69,120,112,114, 39, 10, 9, 9, 9,110,111,
1794 100,101, 78,117,109, 46, 86, 97,108,117,101, 32, 32, 32, 61,
1795 32,116,111,107, 58, 71,101,116, 40,116,111,107,101,110, 76,
1796 105,115,116, 41, 10, 9, 9, 9,110,111,100,101, 78,117,109,
1797 46, 84,111,107,101,110,115, 32, 32, 61, 32,116,111,107,101,
1798 110, 76,105,115,116, 10, 9, 9, 9,114,101,116,117,114,110,
1799 32,116,114,117,101, 44, 32,110,111,100,101, 78,117,109, 10,
1800 10, 9, 9,101,108,115,101,105,102, 32,116,111,107, 58, 73,
1801 115, 40, 39, 83,116,114,105,110,103, 39, 41, 32,116,104,101,
1802 110, 10, 9, 9, 9,108,111, 99, 97,108, 32,110,111,100,101,
1803 83,116,114, 32, 61, 32,123,125, 10, 9, 9, 9,110,111,100,
1804 101, 83,116,114, 46, 65,115,116, 84,121,112,101, 32, 61, 32,
1805 39, 83,116,114,105,110,103, 69,120,112,114, 39, 10, 9, 9,
1806 9,110,111,100,101, 83,116,114, 46, 86, 97,108,117,101, 32,
1807 32, 32, 61, 32,116,111,107, 58, 71,101,116, 40,116,111,107,
1808 101,110, 76,105,115,116, 41, 10, 9, 9, 9,110,111,100,101,
1809 83,116,114, 46, 84,111,107,101,110,115, 32, 32, 61, 32,116,
1810 111,107,101,110, 76,105,115,116, 10, 9, 9, 9,114,101,116,
1811 117,114,110, 32,116,114,117,101, 44, 32,110,111,100,101, 83,
1812 116,114, 10, 10, 9, 9,101,108,115,101,105,102, 32,116,111,
1813 107, 58, 67,111,110,115,117,109,101, 75,101,121,119,111,114,
1814 100, 40, 39,110,105,108, 39, 44, 32,116,111,107,101,110, 76,
1815 105,115,116, 41, 32,116,104,101,110, 10, 9, 9, 9,108,111,
1816 99, 97,108, 32,110,111,100,101, 78,105,108, 32, 61, 32,123,
1817 125, 10, 9, 9, 9,110,111,100,101, 78,105,108, 46, 65,115,
1818 116, 84,121,112,101, 32, 61, 32, 39, 78,105,108, 69,120,112,
1819 114, 39, 10, 9, 9, 9,110,111,100,101, 78,105,108, 46, 84,
1820 111,107,101,110,115, 32, 32, 61, 32,116,111,107,101,110, 76,
1821 105,115,116, 10, 9, 9, 9,114,101,116,117,114,110, 32,116,
1822 114,117,101, 44, 32,110,111,100,101, 78,105,108, 10, 10, 9,
1823 9,101,108,115,101,105,102, 32,116,111,107, 58, 73,115, 75,
1824 101,121,119,111,114,100, 40, 39,102, 97,108,115,101, 39, 41,
1825 32,111,114, 32,116,111,107, 58, 73,115, 75,101,121,119,111,
1826 114,100, 40, 39,116,114,117,101, 39, 41, 32,116,104,101,110,
1827 10, 9, 9, 9,108,111, 99, 97,108, 32,110,111,100,101, 66,
1828 111,111,108,101, 97,110, 32, 61, 32,123,125, 10, 9, 9, 9,
1829 110,111,100,101, 66,111,111,108,101, 97,110, 46, 65,115,116,
1830 84,121,112,101, 32, 61, 32, 39, 66,111,111,108,101, 97,110,
1831 69,120,112,114, 39, 10, 9, 9, 9,110,111,100,101, 66,111,
1832 111,108,101, 97,110, 46, 86, 97,108,117,101, 32, 32, 32, 61,
1833 32, 40,116,111,107, 58, 71,101,116, 40,116,111,107,101,110,
1834 76,105,115,116, 41, 46, 68, 97,116, 97, 32, 61, 61, 32, 39,
1835 116,114,117,101, 39, 41, 10, 9, 9, 9,110,111,100,101, 66,
1836 111,111,108,101, 97,110, 46, 84,111,107,101,110,115, 32, 32,
1837 61, 32,116,111,107,101,110, 76,105,115,116, 10, 9, 9, 9,
1838 114,101,116,117,114,110, 32,116,114,117,101, 44, 32,110,111,
1839 100,101, 66,111,111,108,101, 97,110, 10, 10, 9, 9,101,108,
1840 115,101,105,102, 32,116,111,107, 58, 67,111,110,115,117,109,
1841 101, 83,121,109, 98,111,108, 40, 39, 46, 46, 46, 39, 44, 32,
1842 116,111,107,101,110, 76,105,115,116, 41, 32,116,104,101,110,
1843 10, 9, 9, 9,108,111, 99, 97,108, 32,110,111,100,101, 68,
1844 111,116,115, 32, 61, 32,123,125, 10, 9, 9, 9,110,111,100,
1845 101, 68,111,116,115, 46, 65,115,116, 84,121,112,101, 32, 32,
1846 61, 32, 39, 68,111,116,115, 69,120,112,114, 39, 10, 9, 9,
1847 9,110,111,100,101, 68,111,116,115, 46, 84,111,107,101,110,
1848 115, 32, 32, 32, 61, 32,116,111,107,101,110, 76,105,115,116,
1849 10, 9, 9, 9,114,101,116,117,114,110, 32,116,114,117,101,
1850 44, 32,110,111,100,101, 68,111,116,115, 10, 10, 9, 9,101,
1851 108,115,101,105,102, 32,116,111,107, 58, 67,111,110,115,117,
1852 109,101, 83,121,109, 98,111,108, 40, 39,123, 39, 44, 32,116,
1853 111,107,101,110, 76,105,115,116, 41, 32,116,104,101,110, 10,
1854 9, 9, 9,108,111, 99, 97,108, 32,118, 32, 61, 32,123,125,
1855 10, 9, 9, 9,118, 46, 65,115,116, 84,121,112,101, 32, 61,
1856 32, 39, 67,111,110,115,116,114,117, 99,116,111,114, 69,120,
1857 112,114, 39, 10, 9, 9, 9,118, 46, 69,110,116,114,121, 76,
1858 105,115,116, 32, 61, 32,123,125, 10, 9, 9, 9, 45, 45, 10,
1859 9, 9, 9,119,104,105,108,101, 32,116,114,117,101, 32,100,
1860 111, 10, 9, 9, 9, 9,105,102, 32,116,111,107, 58, 73,115,
1861 83,121,109, 98,111,108, 40, 39, 91, 39, 44, 32,116,111,107,
1862 101,110, 76,105,115,116, 41, 32,116,104,101,110, 10, 9, 9,
1863 9, 9, 9, 45, 45,107,101,121, 10, 9, 9, 9, 9, 9,116,
1864 111,107, 58, 71,101,116, 40,116,111,107,101,110, 76,105,115,
1865 116, 41, 10, 9, 9, 9, 9, 9,108,111, 99, 97,108, 32,115,
1866 116, 44, 32,107,101,121, 32, 61, 32, 80, 97,114,115,101, 69,
1867 120,112,114, 40,115, 99,111,112,101, 41, 10, 9, 9, 9, 9,
1868 9,105,102, 32,110,111,116, 32,115,116, 32,116,104,101,110,
1869 10, 9, 9, 9, 9, 9, 9,114,101,116,117,114,110, 32,102,
1870 97,108,115,101, 44, 32, 71,101,110,101,114, 97,116,101, 69,
1871 114,114,111,114, 40, 34, 75,101,121, 32, 69,120,112,114,101,
1872 115,115,105,111,110, 32, 69,120,112,101, 99,116,101,100, 34,
1873 41, 10, 9, 9, 9, 9, 9,101,110,100, 10, 9, 9, 9, 9,
1874 9,105,102, 32,110,111,116, 32,116,111,107, 58, 67,111,110,
1875 115,117,109,101, 83,121,109, 98,111,108, 40, 39, 93, 39, 44,
1876 32,116,111,107,101,110, 76,105,115,116, 41, 32,116,104,101,
1877 110, 10, 9, 9, 9, 9, 9, 9,114,101,116,117,114,110, 32,
1878 102, 97,108,115,101, 44, 32, 71,101,110,101,114, 97,116,101,
1879 69,114,114,111,114, 40, 34, 96, 93, 96, 32, 69,120,112,101,
1880 99,116,101,100, 34, 41, 10, 9, 9, 9, 9, 9,101,110,100,
1881 10, 9, 9, 9, 9, 9,105,102, 32,110,111,116, 32,116,111,
1882 107, 58, 67,111,110,115,117,109,101, 83,121,109, 98,111,108,
1883 40, 39, 61, 39, 44, 32,116,111,107,101,110, 76,105,115,116,
1884 41, 32,116,104,101,110, 10, 9, 9, 9, 9, 9, 9,114,101,
1885 116,117,114,110, 32,102, 97,108,115,101, 44, 32, 71,101,110,
1886 101,114, 97,116,101, 69,114,114,111,114, 40, 34, 96, 61, 96,
1887 32, 69,120,112,101, 99,116,101,100, 34, 41, 10, 9, 9, 9,
1888 9, 9,101,110,100, 10, 9, 9, 9, 9, 9,108,111, 99, 97,
1889 108, 32,115,116, 44, 32,118, 97,108,117,101, 32, 61, 32, 80,
1890 97,114,115,101, 69,120,112,114, 40,115, 99,111,112,101, 41,
1891 10, 9, 9, 9, 9, 9,105,102, 32,110,111,116, 32,115,116,
1892 32,116,104,101,110, 10, 9, 9, 9, 9, 9, 9,114,101,116,
1893 117,114,110, 32,102, 97,108,115,101, 44, 32, 71,101,110,101,
1894 114, 97,116,101, 69,114,114,111,114, 40, 34, 86, 97,108,117,
1895 101, 32, 69,120,112,114,101,115,115,105,111,110, 32, 69,120,
1896 112,101, 99,116,101,100, 34, 41, 10, 9, 9, 9, 9, 9,101,
1897 110,100, 10, 9, 9, 9, 9, 9,118, 46, 69,110,116,114,121,
1898 76,105,115,116, 91, 35,118, 46, 69,110,116,114,121, 76,105,
1899 115,116, 43, 49, 93, 32, 61, 32,123, 10, 9, 9, 9, 9, 9,
1900 9, 84,121,112,101, 32, 32, 61, 32, 39, 75,101,121, 39, 59,
1901 10, 9, 9, 9, 9, 9, 9, 75,101,121, 32, 32, 32, 61, 32,
1902 107,101,121, 59, 10, 9, 9, 9, 9, 9, 9, 86, 97,108,117,
1903 101, 32, 61, 32,118, 97,108,117,101, 59, 10, 9, 9, 9, 9,
1904 9,125, 10, 10, 9, 9, 9, 9,101,108,115,101,105,102, 32,
1905 116,111,107, 58, 73,115, 40, 39, 73,100,101,110,116, 39, 41,
1906 32,116,104,101,110, 10, 9, 9, 9, 9, 9, 45, 45,118, 97,
1907 108,117,101, 32,111,114, 32,107,101,121, 10, 9, 9, 9, 9,
1908 9,108,111, 99, 97,108, 32,108,111,111,107, 97,104,101, 97,
1909 100, 32, 61, 32,116,111,107, 58, 80,101,101,107, 40, 49, 41,
1910 10, 9, 9, 9, 9, 9,105,102, 32,108,111,111,107, 97,104,
1911 101, 97,100, 46, 84,121,112,101, 32, 61, 61, 32, 39, 83,121,
1912 109, 98,111,108, 39, 32, 97,110,100, 32,108,111,111,107, 97,
1913 104,101, 97,100, 46, 68, 97,116, 97, 32, 61, 61, 32, 39, 61,
1914 39, 32,116,104,101,110, 10, 9, 9, 9, 9, 9, 9, 45, 45,
1915 119,101, 32, 97,114,101, 32, 97, 32,107,101,121, 10, 9, 9,
1916 9, 9, 9, 9,108,111, 99, 97,108, 32,107,101,121, 32, 61,
1917 32,116,111,107, 58, 71,101,116, 40,116,111,107,101,110, 76,
1918 105,115,116, 41, 10, 9, 9, 9, 9, 9, 9,105,102, 32,110,
1919 111,116, 32,116,111,107, 58, 67,111,110,115,117,109,101, 83,
1920 121,109, 98,111,108, 40, 39, 61, 39, 44, 32,116,111,107,101,
1921 110, 76,105,115,116, 41, 32,116,104,101,110, 10, 9, 9, 9,
1922 9, 9, 9, 9,114,101,116,117,114,110, 32,102, 97,108,115,
1923 101, 44, 32, 71,101,110,101,114, 97,116,101, 69,114,114,111,
1924 114, 40, 34, 96, 61, 96, 32, 69,120,112,101, 99,116,101,100,
1925 34, 41, 10, 9, 9, 9, 9, 9, 9,101,110,100, 10, 9, 9,
1926 9, 9, 9, 9,108,111, 99, 97,108, 32,115,116, 44, 32,118,
1927 97,108,117,101, 32, 61, 32, 80, 97,114,115,101, 69,120,112,
1928 114, 40,115, 99,111,112,101, 41, 10, 9, 9, 9, 9, 9, 9,
1929 105,102, 32,110,111,116, 32,115,116, 32,116,104,101,110, 10,
1930 9, 9, 9, 9, 9, 9, 9,114,101,116,117,114,110, 32,102,
1931 97,108,115,101, 44, 32, 71,101,110,101,114, 97,116,101, 69,
1932 114,114,111,114, 40, 34, 86, 97,108,117,101, 32, 69,120,112,
1933 114,101,115,115,105,111,110, 32, 69,120,112,101, 99,116,101,
1934 100, 34, 41, 10, 9, 9, 9, 9, 9, 9,101,110,100, 10, 9,
1935 9, 9, 9, 9, 9,118, 46, 69,110,116,114,121, 76,105,115,
1936 116, 91, 35,118, 46, 69,110,116,114,121, 76,105,115,116, 43,
1937 49, 93, 32, 61, 32,123, 10, 9, 9, 9, 9, 9, 9, 9, 84,
1938 121,112,101, 32, 32, 61, 32, 39, 75,101,121, 83,116,114,105,
1939 110,103, 39, 59, 10, 9, 9, 9, 9, 9, 9, 9, 75,101,121,
1940 32, 32, 32, 61, 32,107,101,121, 46, 68, 97,116, 97, 59, 10,
1941 9, 9, 9, 9, 9, 9, 9, 86, 97,108,117,101, 32, 61, 32,
1942 118, 97,108,117,101, 59, 10, 9, 9, 9, 9, 9, 9,125, 10,
1943 10, 9, 9, 9, 9, 9,101,108,115,101, 10, 9, 9, 9, 9,
1944 9, 9, 45, 45,119,101, 32, 97,114,101, 32, 97, 32,118, 97,
1945 108,117,101, 10, 9, 9, 9, 9, 9, 9,108,111, 99, 97,108,
1946 32,115,116, 44, 32,118, 97,108,117,101, 32, 61, 32, 80, 97,
1947 114,115,101, 69,120,112,114, 40,115, 99,111,112,101, 41, 10,
1948 9, 9, 9, 9, 9, 9,105,102, 32,110,111,116, 32,115,116,
1949 32,116,104,101,110, 10, 9, 9, 9, 9, 9, 9, 9,114,101,
1950 116,117,114,110, 32,102, 97,108,115,101, 44, 32, 71,101,110,
1951 101,114, 97,116,101, 69,114,114,111,114, 40, 34, 86, 97,108,
1952 117,101, 32, 69,120,101, 99,116,101,100, 34, 41, 10, 9, 9,
1953 9, 9, 9, 9,101,110,100, 10, 9, 9, 9, 9, 9, 9,118,
1954 46, 69,110,116,114,121, 76,105,115,116, 91, 35,118, 46, 69,
1955 110,116,114,121, 76,105,115,116, 43, 49, 93, 32, 61, 32,123,
1956 10, 9, 9, 9, 9, 9, 9, 9, 84,121,112,101, 32, 61, 32,
1957 39, 86, 97,108,117,101, 39, 59, 10, 9, 9, 9, 9, 9, 9,
1958 9, 86, 97,108,117,101, 32, 61, 32,118, 97,108,117,101, 59,
1959 10, 9, 9, 9, 9, 9, 9,125, 10, 10, 9, 9, 9, 9, 9,
1960 101,110,100, 10, 9, 9, 9, 9,101,108,115,101,105,102, 32,
1961 116,111,107, 58, 67,111,110,115,117,109,101, 83,121,109, 98,
1962 111,108, 40, 39,125, 39, 44, 32,116,111,107,101,110, 76,105,
1963 115,116, 41, 32,116,104,101,110, 10, 9, 9, 9, 9, 9, 98,
1964 114,101, 97,107, 10, 10, 9, 9, 9, 9,101,108,115,101, 10,
1965 9, 9, 9, 9, 9, 45, 45,118, 97,108,117,101, 10, 9, 9,
1966 9, 9, 9,108,111, 99, 97,108, 32,115,116, 44, 32,118, 97,
1967 108,117,101, 32, 61, 32, 80, 97,114,115,101, 69,120,112,114,
1968 40,115, 99,111,112,101, 41, 10, 9, 9, 9, 9, 9,118, 46,
1969 69,110,116,114,121, 76,105,115,116, 91, 35,118, 46, 69,110,
1970 116,114,121, 76,105,115,116, 43, 49, 93, 32, 61, 32,123, 10,
1971 9, 9, 9, 9, 9, 9, 84,121,112,101, 32, 61, 32, 39, 86,
1972 97,108,117,101, 39, 59, 10, 9, 9, 9, 9, 9, 9, 86, 97,
1973 108,117,101, 32, 61, 32,118, 97,108,117,101, 59, 10, 9, 9,
1974 9, 9, 9,125, 10, 9, 9, 9, 9, 9,105,102, 32,110,111,
1975 116, 32,115,116, 32,116,104,101,110, 10, 9, 9, 9, 9, 9,
1976 9,114,101,116,117,114,110, 32,102, 97,108,115,101, 44, 32,
1977 71,101,110,101,114, 97,116,101, 69,114,114,111,114, 40, 34,
1978 86, 97,108,117,101, 32, 69,120,112,101, 99,116,101,100, 34,
1979 41, 10, 9, 9, 9, 9, 9,101,110,100, 10, 9, 9, 9, 9,
1980 101,110,100, 10, 10, 9, 9, 9, 9,105,102, 32,116,111,107,
1981 58, 67,111,110,115,117,109,101, 83,121,109, 98,111,108, 40,
1982 39, 59, 39, 44, 32,116,111,107,101,110, 76,105,115,116, 41,
1983 32,111,114, 32,116,111,107, 58, 67,111,110,115,117,109,101,
1984 83,121,109, 98,111,108, 40, 39, 44, 39, 44, 32,116,111,107,
1985 101,110, 76,105,115,116, 41, 32,116,104,101,110, 10, 9, 9,
1986 9, 9, 9, 45, 45, 97,108,108, 32,105,115, 32,103,111,111,
1987 100, 10, 9, 9, 9, 9,101,108,115,101,105,102, 32,116,111,
1988 107, 58, 67,111,110,115,117,109,101, 83,121,109, 98,111,108,
1989 40, 39,125, 39, 44, 32,116,111,107,101,110, 76,105,115,116,
1990 41, 32,116,104,101,110, 10, 9, 9, 9, 9, 9, 98,114,101,
1991 97,107, 10, 9, 9, 9, 9,101,108,115,101, 10, 9, 9, 9,
1992 9, 9,114,101,116,117,114,110, 32,102, 97,108,115,101, 44,
1993 32, 71,101,110,101,114, 97,116,101, 69,114,114,111,114, 40,
1994 34, 96,125, 96, 32,111,114, 32,116, 97, 98,108,101, 32,101,
1995 110,116,114,121, 32, 69,120,112,101, 99,116,101,100, 34, 41,
1996 10, 9, 9, 9, 9,101,110,100, 10, 9, 9, 9,101,110,100,
1997 10, 9, 9, 9,118, 46, 84,111,107,101,110,115, 32, 32, 61,
1998 32,116,111,107,101,110, 76,105,115,116, 10, 9, 9, 9,114,
1999 101,116,117,114,110, 32,116,114,117,101, 44, 32,118, 10, 10,
2000 9, 9,101,108,115,101,105,102, 32,116,111,107, 58, 67,111,
2001 110,115,117,109,101, 75,101,121,119,111,114,100, 40, 39,102,
2002 117,110, 99,116,105,111,110, 39, 44, 32,116,111,107,101,110,
2003 76,105,115,116, 41, 32,116,104,101,110, 10, 9, 9, 9,108,
2004 111, 99, 97,108, 32,115,116, 44, 32,102,117,110, 99, 32, 61,
2005 32, 80, 97,114,115,101, 70,117,110, 99,116,105,111,110, 65,
2006 114,103,115, 65,110,100, 66,111,100,121, 40,115, 99,111,112,
2007 101, 44, 32,116,111,107,101,110, 76,105,115,116, 41, 10, 9,
2008 9, 9,105,102, 32,110,111,116, 32,115,116, 32,116,104,101,
2009 110, 32,114,101,116,117,114,110, 32,102, 97,108,115,101, 44,
2010 32,102,117,110, 99, 32,101,110,100, 10, 9, 9, 9, 45, 45,
2011 10, 9, 9, 9,102,117,110, 99, 46, 73,115, 76,111, 99, 97,
2012 108, 32, 61, 32,116,114,117,101, 10, 9, 9, 9,114,101,116,
2013 117,114,110, 32,116,114,117,101, 44, 32,102,117,110, 99, 10,
2014 10, 9, 9,101,108,115,101, 10, 9, 9, 9,114,101,116,117,
2015 114,110, 32, 80, 97,114,115,101, 83,117,102,102,105,120,101,
2016 100, 69,120,112,114, 40,115, 99,111,112,101, 41, 10, 9, 9,
2017 101,110,100, 10, 9,101,110,100, 10, 10, 10, 9,108,111, 99,
2018 97,108, 32,117,110,111,112,115, 32, 61, 32,108,111,111,107,
2019 117,112,105,102,121,123, 39, 45, 39, 44, 32, 39,110,111,116,
2020 39, 44, 32, 39, 35, 39,125, 10, 9,108,111, 99, 97,108, 32,
2021 117,110,111,112,112,114,105,111, 32, 61, 32, 56, 10, 9,108,
2022 111, 99, 97,108, 32,112,114,105,111,114,105,116,121, 32, 61,
2023 32,123, 10, 9, 9, 91, 39, 43, 39, 93, 32, 61, 32,123, 54,
2024 44, 54,125, 59, 10, 9, 9, 91, 39, 45, 39, 93, 32, 61, 32,
2025 123, 54, 44, 54,125, 59, 10, 9, 9, 91, 39, 37, 39, 93, 32,
2026 61, 32,123, 55, 44, 55,125, 59, 10, 9, 9, 91, 39, 47, 39,
2027 93, 32, 61, 32,123, 55, 44, 55,125, 59, 10, 9, 9, 91, 39,
2028 42, 39, 93, 32, 61, 32,123, 55, 44, 55,125, 59, 10, 9, 9,
2029 91, 39, 94, 39, 93, 32, 61, 32,123, 49, 48, 44, 57,125, 59,
2030 10, 9, 9, 91, 39, 46, 46, 39, 93, 32, 61, 32,123, 53, 44,
2031 52,125, 59, 10, 9, 9, 91, 39, 61, 61, 39, 93, 32, 61, 32,
2032 123, 51, 44, 51,125, 59, 10, 9, 9, 91, 39, 60, 39, 93, 32,
2033 61, 32,123, 51, 44, 51,125, 59, 10, 9, 9, 91, 39, 60, 61,
2034 39, 93, 32, 61, 32,123, 51, 44, 51,125, 59, 10, 9, 9, 91,
2035 39,126, 61, 39, 93, 32, 61, 32,123, 51, 44, 51,125, 59, 10,
2036 9, 9, 91, 39, 62, 39, 93, 32, 61, 32,123, 51, 44, 51,125,
2037 59, 10, 9, 9, 91, 39, 62, 61, 39, 93, 32, 61, 32,123, 51,
2038 44, 51,125, 59, 10, 9, 9, 91, 39, 97,110,100, 39, 93, 32,
2039 61, 32,123, 50, 44, 50,125, 59, 10, 9, 9, 91, 39,111,114,
2040 39, 93, 32, 61, 32,123, 49, 44, 49,125, 59, 10, 9,125, 10,
2041 9, 80, 97,114,115,101, 83,117, 98, 69,120,112,114, 32, 61,
2042 32,102,117,110, 99,116,105,111,110, 40,115, 99,111,112,101,
2043 44, 32,108,101,118,101,108, 41, 10, 9, 9, 45, 45, 98, 97,
2044 115,101, 32,105,116,101,109, 44, 32,112,111,115,115,105, 98,
2045 108,121, 32,119,105,116,104, 32,117,110,111,112, 32,112,114,
2046 101,102,105,120, 10, 9, 9,108,111, 99, 97,108, 32,115,116,
2047 44, 32,101,120,112, 10, 9, 9,105,102, 32,117,110,111,112,
2048 115, 91,116,111,107, 58, 80,101,101,107, 40, 41, 46, 68, 97,
2049 116, 97, 93, 32,116,104,101,110, 10, 9, 9, 9,108,111, 99,
2050 97,108, 32,116,111,107,101,110, 76,105,115,116, 32, 61, 32,
2051 123,125, 10, 9, 9, 9,108,111, 99, 97,108, 32,111,112, 32,
2052 61, 32,116,111,107, 58, 71,101,116, 40,116,111,107,101,110,
2053 76,105,115,116, 41, 46, 68, 97,116, 97, 10, 9, 9, 9,115,
2054 116, 44, 32,101,120,112, 32, 61, 32, 80, 97,114,115,101, 83,
2055 117, 98, 69,120,112,114, 40,115, 99,111,112,101, 44, 32,117,
2056 110,111,112,112,114,105,111, 41, 10, 9, 9, 9,105,102, 32,
2057 110,111,116, 32,115,116, 32,116,104,101,110, 32,114,101,116,
2058 117,114,110, 32,102, 97,108,115,101, 44, 32,101,120,112, 32,
2059 101,110,100, 10, 9, 9, 9,108,111, 99, 97,108, 32,110,111,
2060 100,101, 69,120, 32, 61, 32,123,125, 10, 9, 9, 9,110,111,
2061 100,101, 69,120, 46, 65,115,116, 84,121,112,101, 32, 61, 32,
2062 39, 85,110,111,112, 69,120,112,114, 39, 10, 9, 9, 9,110,
2063 111,100,101, 69,120, 46, 82,104,115, 32, 32, 32, 32, 32, 61,
2064 32,101,120,112, 10, 9, 9, 9,110,111,100,101, 69,120, 46,
2065 79,112, 32, 32, 32, 32, 32, 32, 61, 32,111,112, 10, 9, 9,
2066 9,110,111,100,101, 69,120, 46, 79,112,101,114, 97,116,111,
2067 114, 80,114,101, 99,101,100,101,110, 99,101, 32, 61, 32,117,
2068 110,111,112,112,114,105,111, 10, 9, 9, 9,110,111,100,101,
2069 69,120, 46, 84,111,107,101,110,115, 32, 32, 61, 32,116,111,
2070 107,101,110, 76,105,115,116, 10, 9, 9, 9,101,120,112, 32,
2071 61, 32,110,111,100,101, 69,120, 10, 9, 9,101,108,115,101,
2072 10, 9, 9, 9,115,116, 44, 32,101,120,112, 32, 61, 32, 80,
2073 97,114,115,101, 83,105,109,112,108,101, 69,120,112,114, 40,
2074 115, 99,111,112,101, 41, 10, 9, 9, 9,105,102, 32,110,111,
2075 116, 32,115,116, 32,116,104,101,110, 32,114,101,116,117,114,
2076 110, 32,102, 97,108,115,101, 44, 32,101,120,112, 32,101,110,
2077 100, 10, 9, 9,101,110,100, 10, 10, 9, 9, 45, 45,110,101,
2078 120,116, 32,105,116,101,109,115, 32,105,110, 32, 99,104, 97,
2079 105,110, 10, 9, 9,119,104,105,108,101, 32,116,114,117,101,
2080 32,100,111, 10, 9, 9, 9,108,111, 99, 97,108, 32,112,114,
2081 105,111, 32, 61, 32,112,114,105,111,114,105,116,121, 91,116,
2082 111,107, 58, 80,101,101,107, 40, 41, 46, 68, 97,116, 97, 93,
2083 10, 9, 9, 9,105,102, 32,112,114,105,111, 32, 97,110,100,
2084 32,112,114,105,111, 91, 49, 93, 32, 62, 32,108,101,118,101,
2085 108, 32,116,104,101,110, 10, 9, 9, 9, 9,108,111, 99, 97,
2086 108, 32,116,111,107,101,110, 76,105,115,116, 32, 61, 32,123,
2087 125, 10, 9, 9, 9, 9,108,111, 99, 97,108, 32,111,112, 32,
2088 61, 32,116,111,107, 58, 71,101,116, 40,116,111,107,101,110,
2089 76,105,115,116, 41, 46, 68, 97,116, 97, 10, 9, 9, 9, 9,
2090 108,111, 99, 97,108, 32,115,116, 44, 32,114,104,115, 32, 61,
2091 32, 80, 97,114,115,101, 83,117, 98, 69,120,112,114, 40,115,
2092 99,111,112,101, 44, 32,112,114,105,111, 91, 50, 93, 41, 10,
2093 9, 9, 9, 9,105,102, 32,110,111,116, 32,115,116, 32,116,
2094 104,101,110, 32,114,101,116,117,114,110, 32,102, 97,108,115,
2095 101, 44, 32,114,104,115, 32,101,110,100, 10, 9, 9, 9, 9,
2096 108,111, 99, 97,108, 32,110,111,100,101, 69,120, 32, 61, 32,
2097 123,125, 10, 9, 9, 9, 9,110,111,100,101, 69,120, 46, 65,
2098 115,116, 84,121,112,101, 32, 61, 32, 39, 66,105,110,111,112,
2099 69,120,112,114, 39, 10, 9, 9, 9, 9,110,111,100,101, 69,
2100 120, 46, 76,104,115, 32, 32, 32, 32, 32, 61, 32,101,120,112,
2101 10, 9, 9, 9, 9,110,111,100,101, 69,120, 46, 79,112, 32,
2102 32, 32, 32, 32, 32, 61, 32,111,112, 10, 9, 9, 9, 9,110,
2103 111,100,101, 69,120, 46, 79,112,101,114, 97,116,111,114, 80,
2104 114,101, 99,101,100,101,110, 99,101, 32, 61, 32,112,114,105,
2105 111, 91, 49, 93, 10, 9, 9, 9, 9,110,111,100,101, 69,120,
2106 46, 82,104,115, 32, 32, 32, 32, 32, 61, 32,114,104,115, 10,
2107 9, 9, 9, 9,110,111,100,101, 69,120, 46, 84,111,107,101,
2108 110,115, 32, 32, 61, 32,116,111,107,101,110, 76,105,115,116,
2109 10, 9, 9, 9, 9, 45, 45, 10, 9, 9, 9, 9,101,120,112,
2110 32, 61, 32,110,111,100,101, 69,120, 10, 9, 9, 9,101,108,
2111 115,101, 10, 9, 9, 9, 9, 98,114,101, 97,107, 10, 9, 9,
2112 9,101,110,100, 10, 9, 9,101,110,100, 10, 10, 9, 9,114,
2113 101,116,117,114,110, 32,116,114,117,101, 44, 32,101,120,112,
2114 10, 9,101,110,100, 10, 10, 10, 9, 80, 97,114,115,101, 69,
2115 120,112,114, 32, 61, 32,102,117,110, 99,116,105,111,110, 40,
2116 115, 99,111,112,101, 41, 10, 9, 9,114,101,116,117,114,110,
2117 32, 80, 97,114,115,101, 83,117, 98, 69,120,112,114, 40,115,
2118 99,111,112,101, 44, 32, 48, 41, 10, 9,101,110,100, 10, 10,
2119 9,108,111, 99, 97,108, 32,102,117,110, 99,116,105,111,110,
2120 32, 80, 97,114,115,101, 83,116, 97,116,101,109,101,110,116,
2121 40,115, 99,111,112,101, 41, 10, 9, 9,108,111, 99, 97,108,
2122 32,115,116, 97,116, 32, 61, 32,110,105,108, 10, 9, 9,108,
2123 111, 99, 97,108, 32,116,111,107,101,110, 76,105,115,116, 32,
2124 61, 32,123,125, 10, 9, 9,105,102, 32,116,111,107, 58, 67,
2125 111,110,115,117,109,101, 75,101,121,119,111,114,100, 40, 39,
2126 105,102, 39, 44, 32,116,111,107,101,110, 76,105,115,116, 41,
2127 32,116,104,101,110, 10, 9, 9, 9, 45, 45,115,101,116,117,
2128 112, 10, 9, 9, 9,108,111, 99, 97,108, 32,110,111,100,101,
2129 73,102, 83,116, 97,116, 32, 61, 32,123,125, 10, 9, 9, 9,
2130 110,111,100,101, 73,102, 83,116, 97,116, 46, 65,115,116, 84,
2131 121,112,101, 32, 61, 32, 39, 73,102, 83,116, 97,116,101,109,
2132 101,110,116, 39, 10, 9, 9, 9,110,111,100,101, 73,102, 83,
2133 116, 97,116, 46, 67,108, 97,117,115,101,115, 32, 61, 32,123,
2134 125, 10, 10, 9, 9, 9, 45, 45, 99,108, 97,117,115,101,115,
2135 10, 9, 9, 9,114,101,112,101, 97,116, 10, 9, 9, 9, 9,
2136 108,111, 99, 97,108, 32,115,116, 44, 32,110,111,100,101, 67,
2137 111,110,100, 32, 61, 32, 80, 97,114,115,101, 69,120,112,114,
2138 40,115, 99,111,112,101, 41, 10, 9, 9, 9, 9,105,102, 32,
2139 110,111,116, 32,115,116, 32,116,104,101,110, 32,114,101,116,
2140 117,114,110, 32,102, 97,108,115,101, 44, 32,110,111,100,101,
2141 67,111,110,100, 32,101,110,100, 10, 9, 9, 9, 9,105,102,
2142 32,110,111,116, 32,116,111,107, 58, 67,111,110,115,117,109,
2143 101, 75,101,121,119,111,114,100, 40, 39,116,104,101,110, 39,
2144 44, 32,116,111,107,101,110, 76,105,115,116, 41, 32,116,104,
2145 101,110, 10, 9, 9, 9, 9, 9,114,101,116,117,114,110, 32,
2146 102, 97,108,115,101, 44, 32, 71,101,110,101,114, 97,116,101,
2147 69,114,114,111,114, 40, 34, 96,116,104,101,110, 96, 32,101,
2148 120,112,101, 99,116,101,100, 46, 34, 41, 10, 9, 9, 9, 9,
2149 101,110,100, 10, 9, 9, 9, 9,105,102, 32,116,111,107, 58,
2150 73,115, 83,121,109, 98,111,108, 40, 39, 59, 39, 41, 32,116,
2151 104,101,110, 10, 9, 9, 9, 9, 9,116,111,107, 58, 71,101,
2152 116, 40, 41, 10, 9, 9, 9, 9,101,110,100, 10, 9, 9, 9,
2153 9,108,111, 99, 97,108, 32,115,116, 44, 32,110,111,100,101,
2154 66,111,100,121, 32, 61, 32, 80, 97,114,115,101, 83,116, 97,
2155 116,101,109,101,110,116, 76,105,115,116, 40,115, 99,111,112,
2156 101, 41, 10, 9, 9, 9, 9,105,102, 32,110,111,116, 32,115,
2157 116, 32,116,104,101,110, 32,114,101,116,117,114,110, 32,102,
2158 97,108,115,101, 44, 32,110,111,100,101, 66,111,100,121, 32,
2159 101,110,100, 10, 9, 9, 9, 9,110,111,100,101, 73,102, 83,
2160 116, 97,116, 46, 67,108, 97,117,115,101,115, 91, 35,110,111,
2161 100,101, 73,102, 83,116, 97,116, 46, 67,108, 97,117,115,101,
2162 115, 43, 49, 93, 32, 61, 32,123, 10, 9, 9, 9, 9, 9, 67,
2163 111,110,100,105,116,105,111,110, 32, 61, 32,110,111,100,101,
2164 67,111,110,100, 59, 10, 9, 9, 9, 9, 9, 66,111,100,121,
2165 32, 61, 32,110,111,100,101, 66,111,100,121, 59, 10, 9, 9,
2166 9, 9,125, 10, 9, 9, 9,117,110,116,105,108, 32,110,111,
2167 116, 32,116,111,107, 58, 67,111,110,115,117,109,101, 75,101,
2168 121,119,111,114,100, 40, 39,101,108,115,101,105,102, 39, 44,
2169 32,116,111,107,101,110, 76,105,115,116, 41, 10, 10, 9, 9,
2170 9, 45, 45,101,108,115,101, 32, 99,108, 97,117,115,101, 10,
2171 9, 9, 9,105,102, 32,116,111,107, 58, 67,111,110,115,117,
2172 109,101, 75,101,121,119,111,114,100, 40, 39,101,108,115,101,
2173 39, 44, 32,116,111,107,101,110, 76,105,115,116, 41, 32,116,
2174 104,101,110, 10, 9, 9, 9, 9,108,111, 99, 97,108, 32,115,
2175 116, 44, 32,110,111,100,101, 66,111,100,121, 32, 61, 32, 80,
2176 97,114,115,101, 83,116, 97,116,101,109,101,110,116, 76,105,
2177 115,116, 40,115, 99,111,112,101, 41, 10, 9, 9, 9, 9,105,
2178 102, 32,110,111,116, 32,115,116, 32,116,104,101,110, 32,114,
2179 101,116,117,114,110, 32,102, 97,108,115,101, 44, 32,110,111,
2180 100,101, 66,111,100,121, 32,101,110,100, 10, 9, 9, 9, 9,
2181 110,111,100,101, 73,102, 83,116, 97,116, 46, 67,108, 97,117,
2182 115,101,115, 91, 35,110,111,100,101, 73,102, 83,116, 97,116,
2183 46, 67,108, 97,117,115,101,115, 43, 49, 93, 32, 61, 32,123,
2184 10, 9, 9, 9, 9, 9, 66,111,100,121, 32, 61, 32,110,111,
2185 100,101, 66,111,100,121, 59, 10, 9, 9, 9, 9,125, 10, 9,
2186 9, 9,101,110,100, 10, 10, 9, 9, 9, 45, 45,101,110,100,
2187 10, 9, 9, 9,105,102, 32,110,111,116, 32,116,111,107, 58,
2188 67,111,110,115,117,109,101, 75,101,121,119,111,114,100, 40,
2189 39,101,110,100, 39, 44, 32,116,111,107,101,110, 76,105,115,
2190 116, 41, 32,116,104,101,110, 10, 9, 9, 9, 9,114,101,116,
2191 117,114,110, 32,102, 97,108,115,101, 44, 32, 71,101,110,101,
2192 114, 97,116,101, 69,114,114,111,114, 40, 34, 96,101,110,100,
2193 96, 32,101,120,112,101, 99,116,101,100, 46, 34, 41, 10, 9,
2194 9, 9,101,110,100, 10, 10, 9, 9, 9,110,111,100,101, 73,
2195 102, 83,116, 97,116, 46, 84,111,107,101,110,115, 32, 61, 32,
2196 116,111,107,101,110, 76,105,115,116, 10, 9, 9, 9,115,116,
2197 97,116, 32, 61, 32,110,111,100,101, 73,102, 83,116, 97,116,
2198 10, 10, 9, 9,101,108,115,101,105,102, 32,116,111,107, 58,
2199 67,111,110,115,117,109,101, 75,101,121,119,111,114,100, 40,
2200 39,119,104,105,108,101, 39, 44, 32,116,111,107,101,110, 76,
2201 105,115,116, 41, 32,116,104,101,110, 10, 9, 9, 9, 45, 45,
2202 115,101,116,117,112, 10, 9, 9, 9,108,111, 99, 97,108, 32,
2203 110,111,100,101, 87,104,105,108,101, 83,116, 97,116, 32, 61,
2204 32,123,125, 10, 9, 9, 9,110,111,100,101, 87,104,105,108,
2205 101, 83,116, 97,116, 46, 65,115,116, 84,121,112,101, 32, 61,
2206 32, 39, 87,104,105,108,101, 83,116, 97,116,101,109,101,110,
2207 116, 39, 10, 10, 9, 9, 9, 45, 45, 99,111,110,100,105,116,
2208 105,111,110, 10, 9, 9, 9,108,111, 99, 97,108, 32,115,116,
2209 44, 32,110,111,100,101, 67,111,110,100, 32, 61, 32, 80, 97,
2210 114,115,101, 69,120,112,114, 40,115, 99,111,112,101, 41, 10,
2211 9, 9, 9,105,102, 32,110,111,116, 32,115,116, 32,116,104,
2212 101,110, 32,114,101,116,117,114,110, 32,102, 97,108,115,101,
2213 44, 32,110,111,100,101, 67,111,110,100, 32,101,110,100, 10,
2214 10, 9, 9, 9, 45, 45,100,111, 10, 9, 9, 9,105,102, 32,
2215 110,111,116, 32,116,111,107, 58, 67,111,110,115,117,109,101,
2216 75,101,121,119,111,114,100, 40, 39,100,111, 39, 44, 32,116,
2217 111,107,101,110, 76,105,115,116, 41, 32,116,104,101,110, 10,
2218 9, 9, 9, 9,114,101,116,117,114,110, 32,102, 97,108,115,
2219 101, 44, 32, 71,101,110,101,114, 97,116,101, 69,114,114,111,
2220 114, 40, 34, 96,100,111, 96, 32,101,120,112,101, 99,116,101,
2221 100, 46, 34, 41, 10, 9, 9, 9,101,110,100, 10, 10, 9, 9,
2222 9, 45, 45, 98,111,100,121, 10, 9, 9, 9,108,111, 99, 97,
2223 108, 32,115,116, 44, 32,110,111,100,101, 66,111,100,121, 32,
2224 61, 32, 80, 97,114,115,101, 83,116, 97,116,101,109,101,110,
2225 116, 76,105,115,116, 40,115, 99,111,112,101, 41, 10, 9, 9,
2226 9,105,102, 32,110,111,116, 32,115,116, 32,116,104,101,110,
2227 32,114,101,116,117,114,110, 32,102, 97,108,115,101, 44, 32,
2228 110,111,100,101, 66,111,100,121, 32,101,110,100, 10, 10, 9,
2229 9, 9, 45, 45,101,110,100, 10, 9, 9, 9,105,102, 32,110,
2230 111,116, 32,116,111,107, 58, 67,111,110,115,117,109,101, 75,
2231 101,121,119,111,114,100, 40, 39,101,110,100, 39, 44, 32,116,
2232 111,107,101,110, 76,105,115,116, 41, 32,116,104,101,110, 10,
2233 9, 9, 9, 9,114,101,116,117,114,110, 32,102, 97,108,115,
2234 101, 44, 32, 71,101,110,101,114, 97,116,101, 69,114,114,111,
2235 114, 40, 34, 96,101,110,100, 96, 32,101,120,112,101, 99,116,
2236 101,100, 46, 34, 41, 10, 9, 9, 9,101,110,100, 10, 10, 9,
2237 9, 9, 45, 45,114,101,116,117,114,110, 10, 9, 9, 9,110,
2238 111,100,101, 87,104,105,108,101, 83,116, 97,116, 46, 67,111,
2239 110,100,105,116,105,111,110, 32, 61, 32,110,111,100,101, 67,
2240 111,110,100, 10, 9, 9, 9,110,111,100,101, 87,104,105,108,
2241 101, 83,116, 97,116, 46, 66,111,100,121, 32, 32, 32, 32, 32,
2242 32, 61, 32,110,111,100,101, 66,111,100,121, 10, 9, 9, 9,
2243 110,111,100,101, 87,104,105,108,101, 83,116, 97,116, 46, 84,
2244 111,107,101,110,115, 32, 32, 32, 32, 61, 32,116,111,107,101,
2245 110, 76,105,115,116, 10, 9, 9, 9,115,116, 97,116, 32, 61,
2246 32,110,111,100,101, 87,104,105,108,101, 83,116, 97,116, 10,
2247 10, 9, 9,101,108,115,101,105,102, 32,116,111,107, 58, 67,
2248 111,110,115,117,109,101, 75,101,121,119,111,114,100, 40, 39,
2249 100,111, 39, 44, 32,116,111,107,101,110, 76,105,115,116, 41,
2250 32,116,104,101,110, 10, 9, 9, 9, 45, 45,100,111, 32, 98,
2251 108,111, 99,107, 10, 9, 9, 9,108,111, 99, 97,108, 32,115,
2252 116, 44, 32,110,111,100,101, 66,108,111, 99,107, 32, 61, 32,
2253 80, 97,114,115,101, 83,116, 97,116,101,109,101,110,116, 76,
2254 105,115,116, 40,115, 99,111,112,101, 41, 10, 9, 9, 9,105,
2255 102, 32,110,111,116, 32,115,116, 32,116,104,101,110, 32,114,
2256 101,116,117,114,110, 32,102, 97,108,115,101, 44, 32,110,111,
2257 100,101, 66,108,111, 99,107, 32,101,110,100, 10, 9, 9, 9,
2258 105,102, 32,110,111,116, 32,116,111,107, 58, 67,111,110,115,
2259 117,109,101, 75,101,121,119,111,114,100, 40, 39,101,110,100,
2260 39, 44, 32,116,111,107,101,110, 76,105,115,116, 41, 32,116,
2261 104,101,110, 10, 9, 9, 9, 9,114,101,116,117,114,110, 32,
2262 102, 97,108,115,101, 44, 32, 71,101,110,101,114, 97,116,101,
2263 69,114,114,111,114, 40, 34, 96,101,110,100, 96, 32,101,120,
2264 112,101, 99,116,101,100, 46, 34, 41, 10, 9, 9, 9,101,110,
2265 100, 10, 10, 9, 9, 9,108,111, 99, 97,108, 32,110,111,100,
2266 101, 68,111, 83,116, 97,116, 32, 61, 32,123,125, 10, 9, 9,
2267 9,110,111,100,101, 68,111, 83,116, 97,116, 46, 65,115,116,
2268 84,121,112,101, 32, 61, 32, 39, 68,111, 83,116, 97,116,101,
2269 109,101,110,116, 39, 10, 9, 9, 9,110,111,100,101, 68,111,
2270 83,116, 97,116, 46, 66,111,100,121, 32, 32, 32, 32, 61, 32,
2271 110,111,100,101, 66,108,111, 99,107, 10, 9, 9, 9,110,111,
2272 100,101, 68,111, 83,116, 97,116, 46, 84,111,107,101,110,115,
2273 32, 32, 61, 32,116,111,107,101,110, 76,105,115,116, 10, 9,
2274 9, 9,115,116, 97,116, 32, 61, 32,110,111,100,101, 68,111,
2275 83,116, 97,116, 10, 10, 9, 9,101,108,115,101,105,102, 32,
2276 116,111,107, 58, 67,111,110,115,117,109,101, 75,101,121,119,
2277 111,114,100, 40, 39,102,111,114, 39, 44, 32,116,111,107,101,
2278 110, 76,105,115,116, 41, 32,116,104,101,110, 10, 9, 9, 9,
2279 45, 45,102,111,114, 32, 98,108,111, 99,107, 10, 9, 9, 9,
2280 105,102, 32,110,111,116, 32,116,111,107, 58, 73,115, 40, 39,
2281 73,100,101,110,116, 39, 41, 32,116,104,101,110, 10, 9, 9,
2282 9, 9,114,101,116,117,114,110, 32,102, 97,108,115,101, 44,
2283 32, 71,101,110,101,114, 97,116,101, 69,114,114,111,114, 40,
2284 34, 60,105,100,101,110,116, 62, 32,101,120,112,101, 99,116,
2285 101,100, 46, 34, 41, 10, 9, 9, 9,101,110,100, 10, 9, 9,
2286 9,108,111, 99, 97,108, 32, 98, 97,115,101, 86, 97,114, 78,
2287 97,109,101, 32, 61, 32,116,111,107, 58, 71,101,116, 40,116,
2288 111,107,101,110, 76,105,115,116, 41, 10, 9, 9, 9,105,102,
2289 32,116,111,107, 58, 67,111,110,115,117,109,101, 83,121,109,
2290 98,111,108, 40, 39, 61, 39, 44, 32,116,111,107,101,110, 76,
2291 105,115,116, 41, 32,116,104,101,110, 10, 9, 9, 9, 9, 45,
2292 45,110,117,109,101,114,105, 99, 32,102,111,114, 10, 9, 9,
2293 9, 9,108,111, 99, 97,108, 32,102,111,114, 83, 99,111,112,
2294 101, 32, 61, 32, 67,114,101, 97,116,101, 83, 99,111,112,101,
2295 40,115, 99,111,112,101, 41, 10, 9, 9, 9, 9,108,111, 99,
2296 97,108, 32,102,111,114, 86, 97,114, 32, 61, 32,102,111,114,
2297 83, 99,111,112,101, 58, 67,114,101, 97,116,101, 76,111, 99,
2298 97,108, 40, 98, 97,115,101, 86, 97,114, 78, 97,109,101, 46,
2299 68, 97,116, 97, 41, 10, 9, 9, 9, 9, 45, 45, 10, 9, 9,
2300 9, 9,108,111, 99, 97,108, 32,115,116, 44, 32,115,116, 97,
2301 114,116, 69,120, 32, 61, 32, 80, 97,114,115,101, 69,120,112,
2302 114, 40,115, 99,111,112,101, 41, 10, 9, 9, 9, 9,105,102,
2303 32,110,111,116, 32,115,116, 32,116,104,101,110, 32,114,101,
2304 116,117,114,110, 32,102, 97,108,115,101, 44, 32,115,116, 97,
2305 114,116, 69,120, 32,101,110,100, 10, 9, 9, 9, 9,105,102,
2306 32,110,111,116, 32,116,111,107, 58, 67,111,110,115,117,109,
2307 101, 83,121,109, 98,111,108, 40, 39, 44, 39, 44, 32,116,111,
2308 107,101,110, 76,105,115,116, 41, 32,116,104,101,110, 10, 9,
2309 9, 9, 9, 9,114,101,116,117,114,110, 32,102, 97,108,115,
2310 101, 44, 32, 71,101,110,101,114, 97,116,101, 69,114,114,111,
2311 114, 40, 34, 96, 44, 96, 32, 69,120,112,101, 99,116,101,100,
2312 34, 41, 10, 9, 9, 9, 9,101,110,100, 10, 9, 9, 9, 9,
2313 108,111, 99, 97,108, 32,115,116, 44, 32,101,110,100, 69,120,
2314 32, 61, 32, 80, 97,114,115,101, 69,120,112,114, 40,115, 99,
2315 111,112,101, 41, 10, 9, 9, 9, 9,105,102, 32,110,111,116,
2316 32,115,116, 32,116,104,101,110, 32,114,101,116,117,114,110,
2317 32,102, 97,108,115,101, 44, 32,101,110,100, 69,120, 32,101,
2318 110,100, 10, 9, 9, 9, 9,108,111, 99, 97,108, 32,115,116,
2319 44, 32,115,116,101,112, 69,120, 59, 10, 9, 9, 9, 9,105,
2320 102, 32,116,111,107, 58, 67,111,110,115,117,109,101, 83,121,
2321 109, 98,111,108, 40, 39, 44, 39, 44, 32,116,111,107,101,110,
2322 76,105,115,116, 41, 32,116,104,101,110, 10, 9, 9, 9, 9,
2323 9,115,116, 44, 32,115,116,101,112, 69,120, 32, 61, 32, 80,
2324 97,114,115,101, 69,120,112,114, 40,115, 99,111,112,101, 41,
2325 10, 9, 9, 9, 9, 9,105,102, 32,110,111,116, 32,115,116,
2326 32,116,104,101,110, 32,114,101,116,117,114,110, 32,102, 97,
2327 108,115,101, 44, 32,115,116,101,112, 69,120, 32,101,110,100,
2328 10, 9, 9, 9, 9,101,110,100, 10, 9, 9, 9, 9,105,102,
2329 32,110,111,116, 32,116,111,107, 58, 67,111,110,115,117,109,
2330 101, 75,101,121,119,111,114,100, 40, 39,100,111, 39, 44, 32,
2331 116,111,107,101,110, 76,105,115,116, 41, 32,116,104,101,110,
2332 10, 9, 9, 9, 9, 9,114,101,116,117,114,110, 32,102, 97,
2333 108,115,101, 44, 32, 71,101,110,101,114, 97,116,101, 69,114,
2334 114,111,114, 40, 34, 96,100,111, 96, 32,101,120,112,101, 99,
2335 116,101,100, 34, 41, 10, 9, 9, 9, 9,101,110,100, 10, 9,
2336 9, 9, 9, 45, 45, 10, 9, 9, 9, 9,108,111, 99, 97,108,
2337 32,115,116, 44, 32, 98,111,100,121, 32, 61, 32, 80, 97,114,
2338 115,101, 83,116, 97,116,101,109,101,110,116, 76,105,115,116,
2339 40,102,111,114, 83, 99,111,112,101, 41, 10, 9, 9, 9, 9,
2340 105,102, 32,110,111,116, 32,115,116, 32,116,104,101,110, 32,
2341 114,101,116,117,114,110, 32,102, 97,108,115,101, 44, 32, 98,
2342 111,100,121, 32,101,110,100, 10, 9, 9, 9, 9,105,102, 32,
2343 110,111,116, 32,116,111,107, 58, 67,111,110,115,117,109,101,
2344 75,101,121,119,111,114,100, 40, 39,101,110,100, 39, 44, 32,
2345 116,111,107,101,110, 76,105,115,116, 41, 32,116,104,101,110,
2346 10, 9, 9, 9, 9, 9,114,101,116,117,114,110, 32,102, 97,
2347 108,115,101, 44, 32, 71,101,110,101,114, 97,116,101, 69,114,
2348 114,111,114, 40, 34, 96,101,110,100, 96, 32,101,120,112,101,
2349 99,116,101,100, 34, 41, 10, 9, 9, 9, 9,101,110,100, 10,
2350 9, 9, 9, 9, 45, 45, 10, 9, 9, 9, 9,108,111, 99, 97,
2351 108, 32,110,111,100,101, 70,111,114, 32, 61, 32,123,125, 10,
2352 9, 9, 9, 9,110,111,100,101, 70,111,114, 46, 65,115,116,
2353 84,121,112,101, 32, 32, 61, 32, 39, 78,117,109,101,114,105,
2354 99, 70,111,114, 83,116, 97,116,101,109,101,110,116, 39, 10,
2355 9, 9, 9, 9,110,111,100,101, 70,111,114, 46, 83, 99,111,
2356 112,101, 32, 32, 32, 32, 61, 32,102,111,114, 83, 99,111,112,
2357 101, 10, 9, 9, 9, 9,110,111,100,101, 70,111,114, 46, 86,
2358 97,114,105, 97, 98,108,101, 32, 61, 32,102,111,114, 86, 97,
2359 114, 10, 9, 9, 9, 9,110,111,100,101, 70,111,114, 46, 83,
2360 116, 97,114,116, 32, 32, 32, 32, 61, 32,115,116, 97,114,116,
2361 69,120, 10, 9, 9, 9, 9,110,111,100,101, 70,111,114, 46,
2362 69,110,100, 32, 32, 32, 32, 32, 32, 61, 32,101,110,100, 69,
2363 120, 10, 9, 9, 9, 9,110,111,100,101, 70,111,114, 46, 83,
2364 116,101,112, 32, 32, 32, 32, 32, 61, 32,115,116,101,112, 69,
2365 120, 10, 9, 9, 9, 9,110,111,100,101, 70,111,114, 46, 66,
2366 111,100,121, 32, 32, 32, 32, 32, 61, 32, 98,111,100,121, 10,
2367 9, 9, 9, 9,110,111,100,101, 70,111,114, 46, 84,111,107,
2368 101,110,115, 32, 32, 32, 61, 32,116,111,107,101,110, 76,105,
2369 115,116, 10, 9, 9, 9, 9,115,116, 97,116, 32, 61, 32,110,
2370 111,100,101, 70,111,114, 10, 9, 9, 9,101,108,115,101, 10,
2371 9, 9, 9, 9, 45, 45,103,101,110,101,114,105, 99, 32,102,
2372 111,114, 10, 9, 9, 9, 9,108,111, 99, 97,108, 32,102,111,
2373 114, 83, 99,111,112,101, 32, 61, 32, 67,114,101, 97,116,101,
2374 83, 99,111,112,101, 40,115, 99,111,112,101, 41, 10, 9, 9,
2375 9, 9, 45, 45, 10, 9, 9, 9, 9,108,111, 99, 97,108, 32,
2376 118, 97,114, 76,105,115,116, 32, 61, 32,123, 32,102,111,114,
2377 83, 99,111,112,101, 58, 67,114,101, 97,116,101, 76,111, 99,
2378 97,108, 40, 98, 97,115,101, 86, 97,114, 78, 97,109,101, 46,
2379 68, 97,116, 97, 41, 32,125, 10, 9, 9, 9, 9,119,104,105,
2380 108,101, 32,116,111,107, 58, 67,111,110,115,117,109,101, 83,
2381 121,109, 98,111,108, 40, 39, 44, 39, 44, 32,116,111,107,101,
2382 110, 76,105,115,116, 41, 32,100,111, 10, 9, 9, 9, 9, 9,
2383 105,102, 32,110,111,116, 32,116,111,107, 58, 73,115, 40, 39,
2384 73,100,101,110,116, 39, 41, 32,116,104,101,110, 10, 9, 9,
2385 9, 9, 9, 9,114,101,116,117,114,110, 32,102, 97,108,115,
2386 101, 44, 32, 71,101,110,101,114, 97,116,101, 69,114,114,111,
2387 114, 40, 34,102,111,114, 32,118, 97,114,105, 97, 98,108,101,
2388 32,101,120,112,101, 99,116,101,100, 46, 34, 41, 10, 9, 9,
2389 9, 9, 9,101,110,100, 10, 9, 9, 9, 9, 9,118, 97,114,
2390 76,105,115,116, 91, 35,118, 97,114, 76,105,115,116, 43, 49,
2391 93, 32, 61, 32,102,111,114, 83, 99,111,112,101, 58, 67,114,
2392 101, 97,116,101, 76,111, 99, 97,108, 40,116,111,107, 58, 71,
2393 101,116, 40,116,111,107,101,110, 76,105,115,116, 41, 46, 68,
2394 97,116, 97, 41, 10, 9, 9, 9, 9,101,110,100, 10, 9, 9,
2395 9, 9,105,102, 32,110,111,116, 32,116,111,107, 58, 67,111,
2396 110,115,117,109,101, 75,101,121,119,111,114,100, 40, 39,105,
2397 110, 39, 44, 32,116,111,107,101,110, 76,105,115,116, 41, 32,
2398 116,104,101,110, 10, 9, 9, 9, 9, 9,114,101,116,117,114,
2399 110, 32,102, 97,108,115,101, 44, 32, 71,101,110,101,114, 97,
2400 116,101, 69,114,114,111,114, 40, 34, 96,105,110, 96, 32,101,
2401 120,112,101, 99,116,101,100, 46, 34, 41, 10, 9, 9, 9, 9,
2402 101,110,100, 10, 9, 9, 9, 9,108,111, 99, 97,108, 32,103,
2403 101,110,101,114, 97,116,111,114,115, 32, 61, 32,123,125, 10,
2404 9, 9, 9, 9,108,111, 99, 97,108, 32,115,116, 44, 32,102,
2405 105,114,115,116, 71,101,110,101,114, 97,116,111,114, 32, 61,
2406 32, 80, 97,114,115,101, 69,120,112,114, 40,115, 99,111,112,
2407 101, 41, 10, 9, 9, 9, 9,105,102, 32,110,111,116, 32,115,
2408 116, 32,116,104,101,110, 32,114,101,116,117,114,110, 32,102,
2409 97,108,115,101, 44, 32,102,105,114,115,116, 71,101,110,101,
2410 114, 97,116,111,114, 32,101,110,100, 10, 9, 9, 9, 9,103,
2411 101,110,101,114, 97,116,111,114,115, 91, 35,103,101,110,101,
2412 114, 97,116,111,114,115, 43, 49, 93, 32, 61, 32,102,105,114,
2413 115,116, 71,101,110,101,114, 97,116,111,114, 10, 9, 9, 9,
2414 9,119,104,105,108,101, 32,116,111,107, 58, 67,111,110,115,
2415 117,109,101, 83,121,109, 98,111,108, 40, 39, 44, 39, 44, 32,
2416 116,111,107,101,110, 76,105,115,116, 41, 32,100,111, 10, 9,
2417 9, 9, 9, 9,108,111, 99, 97,108, 32,115,116, 44, 32,103,
2418 101,110, 32, 61, 32, 80, 97,114,115,101, 69,120,112,114, 40,
2419 115, 99,111,112,101, 41, 10, 9, 9, 9, 9, 9,105,102, 32,
2420 110,111,116, 32,115,116, 32,116,104,101,110, 32,114,101,116,
2421 117,114,110, 32,102, 97,108,115,101, 44, 32,103,101,110, 32,
2422 101,110,100, 10, 9, 9, 9, 9, 9,103,101,110,101,114, 97,
2423 116,111,114,115, 91, 35,103,101,110,101,114, 97,116,111,114,
2424 115, 43, 49, 93, 32, 61, 32,103,101,110, 10, 9, 9, 9, 9,
2425 101,110,100, 10, 9, 9, 9, 9,105,102, 32,110,111,116, 32,
2426 116,111,107, 58, 67,111,110,115,117,109,101, 75,101,121,119,
2427 111,114,100, 40, 39,100,111, 39, 44, 32,116,111,107,101,110,
2428 76,105,115,116, 41, 32,116,104,101,110, 10, 9, 9, 9, 9,
2429 9,114,101,116,117,114,110, 32,102, 97,108,115,101, 44, 32,
2430 71,101,110,101,114, 97,116,101, 69,114,114,111,114, 40, 34,
2431 96,100,111, 96, 32,101,120,112,101, 99,116,101,100, 46, 34,
2432 41, 10, 9, 9, 9, 9,101,110,100, 10, 9, 9, 9, 9,108,
2433 111, 99, 97,108, 32,115,116, 44, 32, 98,111,100,121, 32, 61,
2434 32, 80, 97,114,115,101, 83,116, 97,116,101,109,101,110,116,
2435 76,105,115,116, 40,102,111,114, 83, 99,111,112,101, 41, 10,
2436 9, 9, 9, 9,105,102, 32,110,111,116, 32,115,116, 32,116,
2437 104,101,110, 32,114,101,116,117,114,110, 32,102, 97,108,115,
2438 101, 44, 32, 98,111,100,121, 32,101,110,100, 10, 9, 9, 9,
2439 9,105,102, 32,110,111,116, 32,116,111,107, 58, 67,111,110,
2440 115,117,109,101, 75,101,121,119,111,114,100, 40, 39,101,110,
2441 100, 39, 44, 32,116,111,107,101,110, 76,105,115,116, 41, 32,
2442 116,104,101,110, 10, 9, 9, 9, 9, 9,114,101,116,117,114,
2443 110, 32,102, 97,108,115,101, 44, 32, 71,101,110,101,114, 97,
2444 116,101, 69,114,114,111,114, 40, 34, 96,101,110,100, 96, 32,
2445 101,120,112,101, 99,116,101,100, 46, 34, 41, 10, 9, 9, 9,
2446 9,101,110,100, 10, 9, 9, 9, 9, 45, 45, 10, 9, 9, 9,
2447 9,108,111, 99, 97,108, 32,110,111,100,101, 70,111,114, 32,
2448 61, 32,123,125, 10, 9, 9, 9, 9,110,111,100,101, 70,111,
2449 114, 46, 65,115,116, 84,121,112,101, 32, 32, 32, 32, 32, 32,
2450 61, 32, 39, 71,101,110,101,114,105, 99, 70,111,114, 83,116,
2451 97,116,101,109,101,110,116, 39, 10, 9, 9, 9, 9,110,111,
2452 100,101, 70,111,114, 46, 83, 99,111,112,101, 32, 32, 32, 32,
2453 32, 32, 32, 32, 61, 32,102,111,114, 83, 99,111,112,101, 10,
2454 9, 9, 9, 9,110,111,100,101, 70,111,114, 46, 86, 97,114,
2455 105, 97, 98,108,101, 76,105,115,116, 32, 61, 32,118, 97,114,
2456 76,105,115,116, 10, 9, 9, 9, 9,110,111,100,101, 70,111,
2457 114, 46, 71,101,110,101,114, 97,116,111,114,115, 32, 32, 32,
2458 61, 32,103,101,110,101,114, 97,116,111,114,115, 10, 9, 9,
2459 9, 9,110,111,100,101, 70,111,114, 46, 66,111,100,121, 32,
2460 32, 32, 32, 32, 32, 32, 32, 32, 61, 32, 98,111,100,121, 10,
2461 9, 9, 9, 9,110,111,100,101, 70,111,114, 46, 84,111,107,
2462 101,110,115, 32, 32, 32, 32, 32, 32, 32, 61, 32,116,111,107,
2463 101,110, 76,105,115,116, 10, 9, 9, 9, 9,115,116, 97,116,
2464 32, 61, 32,110,111,100,101, 70,111,114, 10, 9, 9, 9,101,
2465 110,100, 10, 10, 9, 9,101,108,115,101,105,102, 32,116,111,
2466 107, 58, 67,111,110,115,117,109,101, 75,101,121,119,111,114,
2467 100, 40, 39,114,101,112,101, 97,116, 39, 44, 32,116,111,107,
2468 101,110, 76,105,115,116, 41, 32,116,104,101,110, 10, 9, 9,
2469 9,108,111, 99, 97,108, 32,115,116, 44, 32, 98,111,100,121,
2470 32, 61, 32, 80, 97,114,115,101, 83,116, 97,116,101,109,101,
2471 110,116, 76,105,115,116, 40,115, 99,111,112,101, 41, 10, 9,
2472 9, 9,105,102, 32,110,111,116, 32,115,116, 32,116,104,101,
2473 110, 32,114,101,116,117,114,110, 32,102, 97,108,115,101, 44,
2474 32, 98,111,100,121, 32,101,110,100, 10, 9, 9, 9, 45, 45,
2475 10, 9, 9, 9,105,102, 32,110,111,116, 32,116,111,107, 58,
2476 67,111,110,115,117,109,101, 75,101,121,119,111,114,100, 40,
2477 39,117,110,116,105,108, 39, 44, 32,116,111,107,101,110, 76,
2478 105,115,116, 41, 32,116,104,101,110, 10, 9, 9, 9, 9,114,
2479 101,116,117,114,110, 32,102, 97,108,115,101, 44, 32, 71,101,
2480 110,101,114, 97,116,101, 69,114,114,111,114, 40, 34, 96,117,
2481 110,116,105,108, 96, 32,101,120,112,101, 99,116,101,100, 46,
2482 34, 41, 10, 9, 9, 9,101,110,100, 10, 9, 9, 9, 45, 45,
2483 32, 70, 73, 88, 58, 32, 85,115,101,100, 32,116,111, 32,112,
2484 97,114,115,101, 32,105,110, 32,112, 97,114,101,110,116, 32,
2485 115, 99,111,112,101, 10, 9, 9, 9, 45, 45, 32, 78,111,119,
2486 32,112, 97,114,115,101,115, 32,105,110, 32,114,101,112,101,
2487 97,116, 32,115, 99,111,112,101, 10, 9, 9, 9,108,111, 99,
2488 97,108, 32,115,116, 44, 32, 99,111,110,100, 32, 61, 32, 80,
2489 97,114,115,101, 69,120,112,114, 40, 98,111,100,121, 46, 83,
2490 99,111,112,101, 41, 10, 9, 9, 9,105,102, 32,110,111,116,
2491 32,115,116, 32,116,104,101,110, 32,114,101,116,117,114,110,
2492 32,102, 97,108,115,101, 44, 32, 99,111,110,100, 32,101,110,
2493 100, 10, 9, 9, 9, 45, 45, 10, 9, 9, 9,108,111, 99, 97,
2494 108, 32,110,111,100,101, 82,101,112,101, 97,116, 32, 61, 32,
2495 123,125, 10, 9, 9, 9,110,111,100,101, 82,101,112,101, 97,
2496 116, 46, 65,115,116, 84,121,112,101, 32, 32, 32, 61, 32, 39,
2497 82,101,112,101, 97,116, 83,116, 97,116,101,109,101,110,116,
2498 39, 10, 9, 9, 9,110,111,100,101, 82,101,112,101, 97,116,
2499 46, 67,111,110,100,105,116,105,111,110, 32, 61, 32, 99,111,
2500 110,100, 10, 9, 9, 9,110,111,100,101, 82,101,112,101, 97,
2501 116, 46, 66,111,100,121, 32, 32, 32, 32, 32, 32, 61, 32, 98,
2502 111,100,121, 10, 9, 9, 9,110,111,100,101, 82,101,112,101,
2503 97,116, 46, 84,111,107,101,110,115, 32, 32, 32, 32, 61, 32,
2504 116,111,107,101,110, 76,105,115,116, 10, 9, 9, 9,115,116,
2505 97,116, 32, 61, 32,110,111,100,101, 82,101,112,101, 97,116,
2506 10, 10, 9, 9,101,108,115,101,105,102, 32,116,111,107, 58,
2507 67,111,110,115,117,109,101, 75,101,121,119,111,114,100, 40,
2508 39,102,117,110, 99,116,105,111,110, 39, 44, 32,116,111,107,
2509 101,110, 76,105,115,116, 41, 32,116,104,101,110, 10, 9, 9,
2510 9,105,102, 32,110,111,116, 32,116,111,107, 58, 73,115, 40,
2511 39, 73,100,101,110,116, 39, 41, 32,116,104,101,110, 10, 9,
2512 9, 9, 9,114,101,116,117,114,110, 32,102, 97,108,115,101,
2513 44, 32, 71,101,110,101,114, 97,116,101, 69,114,114,111,114,
2514 40, 34, 70,117,110, 99,116,105,111,110, 32,110, 97,109,101,
2515 32,101,120,112,101, 99,116,101,100, 34, 41, 10, 9, 9, 9,
2516 101,110,100, 10, 9, 9, 9,108,111, 99, 97,108, 32,115,116,
2517 44, 32,110, 97,109,101, 32, 61, 32, 80, 97,114,115,101, 83,
2518 117,102,102,105,120,101,100, 69,120,112,114, 40,115, 99,111,
2519 112,101, 44, 32,116,114,117,101, 41, 32, 45, 45,116,114,117,
2520 101, 32, 61, 62, 32,111,110,108,121, 32,100,111,116,115, 32,
2521 97,110,100, 32, 99,111,108,111,110,115, 10, 9, 9, 9,105,
2522 102, 32,110,111,116, 32,115,116, 32,116,104,101,110, 32,114,
2523 101,116,117,114,110, 32,102, 97,108,115,101, 44, 32,110, 97,
2524 109,101, 32,101,110,100, 10, 9, 9, 9, 45, 45, 10, 9, 9,
2525 9,108,111, 99, 97,108, 32,115,116, 44, 32,102,117,110, 99,
2526 32, 61, 32, 80, 97,114,115,101, 70,117,110, 99,116,105,111,
2527 110, 65,114,103,115, 65,110,100, 66,111,100,121, 40,115, 99,
2528 111,112,101, 44, 32,116,111,107,101,110, 76,105,115,116, 41,
2529 10, 9, 9, 9,105,102, 32,110,111,116, 32,115,116, 32,116,
2530 104,101,110, 32,114,101,116,117,114,110, 32,102, 97,108,115,
2531 101, 44, 32,102,117,110, 99, 32,101,110,100, 10, 9, 9, 9,
2532 45, 45, 10, 9, 9, 9,102,117,110, 99, 46, 73,115, 76,111,
2533 99, 97,108, 32, 61, 32,102, 97,108,115,101, 10, 9, 9, 9,
2534 102,117,110, 99, 46, 78, 97,109,101, 32, 32, 32, 32, 61, 32,
2535 110, 97,109,101, 10, 9, 9, 9,115,116, 97,116, 32, 61, 32,
2536 102,117,110, 99, 10, 10, 9, 9,101,108,115,101,105,102, 32,
2537 116,111,107, 58, 67,111,110,115,117,109,101, 75,101,121,119,
2538 111,114,100, 40, 39,108,111, 99, 97,108, 39, 44, 32,116,111,
2539 107,101,110, 76,105,115,116, 41, 32,116,104,101,110, 10, 9,
2540 9, 9,105,102, 32,116,111,107, 58, 73,115, 40, 39, 73,100,
2541 101,110,116, 39, 41, 32,116,104,101,110, 10, 9, 9, 9, 9,
2542 108,111, 99, 97,108, 32,118, 97,114, 76,105,115,116, 44, 32,
2543 97,116,116,114, 76,105,115,116, 32, 61, 32,123,125, 44, 32,
2544 123,125, 10, 9, 9, 9, 9,114,101,112,101, 97,116, 10, 9,
2545 9, 9, 9, 9,105,102, 32,110,111,116, 32,116,111,107, 58,
2546 73,115, 40, 39, 73,100,101,110,116, 39, 41, 32,116,104,101,
2547 110, 10, 9, 9, 9, 9, 9, 9,114,101,116,117,114,110, 32,
2548 102, 97,108,115,101, 44, 32, 71,101,110,101,114, 97,116,101,
2549 69,114,114,111,114, 40, 34,108,111, 99, 97,108, 32,118, 97,
2550 114, 32,110, 97,109,101, 32,101,120,112,101, 99,116,101,100,
2551 34, 41, 10, 9, 9, 9, 9, 9,101,110,100, 10, 9, 9, 9,
2552 9, 9,118, 97,114, 76,105,115,116, 91, 35,118, 97,114, 76,
2553 105,115,116, 43, 49, 93, 32, 61, 32,116,111,107, 58, 71,101,
2554 116, 40,116,111,107,101,110, 76,105,115,116, 41, 46, 68, 97,
2555 116, 97, 10, 9, 9, 9, 9, 9,105,102, 32,116,111,107, 58,
2556 67,111,110,115,117,109,101, 83,121,109, 98,111,108, 40, 39,
2557 60, 39, 44, 32,116,111,107,101,110, 76,105,115,116, 41, 32,
2558 116,104,101,110, 10, 9, 9, 9, 9, 9, 9,105,102, 32,110,
2559 111,116, 32,116,111,107, 58, 73,115, 40, 39, 73,100,101,110,
2560 116, 39, 41, 32,116,104,101,110, 10, 9, 9, 9, 9, 9, 9,
2561 9,114,101,116,117,114,110, 32,102, 97,108,115,101, 44, 32,
2562 71,101,110,101,114, 97,116,101, 69,114,114,111,114, 40, 34,
2563 97,116,116,114,105, 98, 32,110, 97,109,101, 32,101,120,112,
2564 101, 99,116,101,100, 34, 41, 10, 9, 9, 9, 9, 9, 9,101,
2565 110,100, 10, 9, 9, 9, 9, 9, 9, 97,116,116,114, 76,105,
2566 115,116, 91, 35, 97,116,116,114, 76,105,115,116, 43, 49, 93,
2567 32, 61, 32,116,111,107, 58, 71,101,116, 40,116,111,107,101,
2568 110, 76,105,115,116, 41, 46, 68, 97,116, 97, 10, 9, 9, 9,
2569 9, 9, 9,105,102, 32,110,111,116, 32,116,111,107, 58, 67,
2570 111,110,115,117,109,101, 83,121,109, 98,111,108, 40, 39, 62,
2571 39, 44, 32,116,111,107,101,110, 76,105,115,116, 41, 32,116,
2572 104,101,110, 10, 9, 9, 9, 9, 9, 9, 9,114,101,116,117,
2573 114,110, 32,102, 97,108,115,101, 44, 32, 71,101,110,101,114,
2574 97,116,101, 69,114,114,111,114, 40, 34,109,105,115,115,105,
2575 110,103, 32, 39, 62, 39, 32,116,111, 32, 99,108,111,115,101,
2576 32, 97,116,116,114,105, 98, 32,110, 97,109,101, 34, 41, 10,
2577 9, 9, 9, 9, 9, 9,101,110,100, 10, 9, 9, 9, 9, 9,
2578 101,108,115,101, 10, 9, 9, 9, 9, 9, 9, 97,116,116,114,
2579 76,105,115,116, 91, 35, 97,116,116,114, 76,105,115,116, 43,
2580 49, 93, 32, 61, 32,102, 97,108,115,101, 10, 9, 9, 9, 9,
2581 9,101,110,100, 10, 9, 9, 9, 9,117,110,116,105,108, 32,
2582 110,111,116, 32,116,111,107, 58, 67,111,110,115,117,109,101,
2583 83,121,109, 98,111,108, 40, 39, 44, 39, 44, 32,116,111,107,
2584 101,110, 76,105,115,116, 41, 10, 10, 9, 9, 9, 9,108,111,
2585 99, 97,108, 32,105,110,105,116, 76,105,115,116, 32, 61, 32,
2586 123,125, 10, 9, 9, 9, 9,105,102, 32,116,111,107, 58, 67,
2587 111,110,115,117,109,101, 83,121,109, 98,111,108, 40, 39, 61,
2588 39, 44, 32,116,111,107,101,110, 76,105,115,116, 41, 32,116,
2589 104,101,110, 10, 9, 9, 9, 9, 9,114,101,112,101, 97,116,
2590 10, 9, 9, 9, 9, 9, 9,108,111, 99, 97,108, 32,115,116,
2591 44, 32,101,120, 32, 61, 32, 80, 97,114,115,101, 69,120,112,
2592 114, 40,115, 99,111,112,101, 41, 10, 9, 9, 9, 9, 9, 9,
2593 105,102, 32,110,111,116, 32,115,116, 32,116,104,101,110, 32,
2594 114,101,116,117,114,110, 32,102, 97,108,115,101, 44, 32,101,
2595 120, 32,101,110,100, 10, 9, 9, 9, 9, 9, 9,105,110,105,
2596 116, 76,105,115,116, 91, 35,105,110,105,116, 76,105,115,116,
2597 43, 49, 93, 32, 61, 32,101,120, 10, 9, 9, 9, 9, 9,117,
2598 110,116,105,108, 32,110,111,116, 32,116,111,107, 58, 67,111,
2599 110,115,117,109,101, 83,121,109, 98,111,108, 40, 39, 44, 39,
2600 44, 32,116,111,107,101,110, 76,105,115,116, 41, 10, 9, 9,
2601 9, 9,101,110,100, 10, 10, 9, 9, 9, 9, 45, 45,110,111,
2602 119, 32,112, 97,116, 99,104, 32,118, 97,114, 32,108,105,115,
2603 116, 10, 9, 9, 9, 9, 45, 45,119,101, 32, 99, 97,110, 39,
2604 116, 32,100,111, 32,116,104,105,115, 32, 98,101,102,111,114,
2605 101, 32,103,101,116,116,105,110,103, 32,116,104,101, 32,105,
2606 110,105,116, 32,108,105,115,116, 44, 32, 98,101, 99, 97,117,
2607 115,101, 32,116,104,101, 32,105,110,105,116, 32,108,105,115,
2608 116, 32,100,111,101,115, 32,110,111,116, 10, 9, 9, 9, 9,
2609 45, 45,104, 97,118,101, 32,116,104,101, 32,108,111, 99, 97,
2610 108,115, 32,116,104,101,109,115,101,108,118,101,115, 32,105,
2611 110, 32,115, 99,111,112,101, 46, 10, 9, 9, 9, 9,102,111,
2612 114, 32,105, 44, 32,118, 32,105,110, 32,112, 97,105,114,115,
2613 40,118, 97,114, 76,105,115,116, 41, 32,100,111, 10, 9, 9,
2614 9, 9, 9,118, 97,114, 76,105,115,116, 91,105, 93, 32, 61,
2615 32,115, 99,111,112,101, 58, 67,114,101, 97,116,101, 76,111,
2616 99, 97,108, 40,118, 41, 10, 9, 9, 9, 9,101,110,100, 10,
2617 10, 9, 9, 9, 9,108,111, 99, 97,108, 32,110,111,100,101,
2618 76,111, 99, 97,108, 32, 61, 32,123,125, 10, 9, 9, 9, 9,
2619 110,111,100,101, 76,111, 99, 97,108, 46, 65,115,116, 84,121,
2620 112,101, 32, 32, 32, 61, 32, 39, 76,111, 99, 97,108, 83,116,
2621 97,116,101,109,101,110,116, 39, 10, 9, 9, 9, 9,110,111,
2622 100,101, 76,111, 99, 97,108, 46, 76,111, 99, 97,108, 76,105,
2623 115,116, 32, 61, 32,118, 97,114, 76,105,115,116, 10, 9, 9,
2624 9, 9,110,111,100,101, 76,111, 99, 97,108, 46, 65,116,116,
2625 114, 76,105,115,116, 32, 32, 61, 32, 97,116,116,114, 76,105,
2626 115,116, 10, 9, 9, 9, 9,110,111,100,101, 76,111, 99, 97,
2627 108, 46, 73,110,105,116, 76,105,115,116, 32, 32, 61, 32,105,
2628 110,105,116, 76,105,115,116, 10, 9, 9, 9, 9,110,111,100,
2629 101, 76,111, 99, 97,108, 46, 84,111,107,101,110,115, 32, 32,
2630 32, 32, 61, 32,116,111,107,101,110, 76,105,115,116, 10, 9,
2631 9, 9, 9, 45, 45, 10, 9, 9, 9, 9,115,116, 97,116, 32,
2632 61, 32,110,111,100,101, 76,111, 99, 97,108, 10, 10, 9, 9,
2633 9,101,108,115,101,105,102, 32,116,111,107, 58, 67,111,110,
2634 115,117,109,101, 75,101,121,119,111,114,100, 40, 39,102,117,
2635 110, 99,116,105,111,110, 39, 44, 32,116,111,107,101,110, 76,
2636 105,115,116, 41, 32,116,104,101,110, 10, 9, 9, 9, 9,105,
2637 102, 32,110,111,116, 32,116,111,107, 58, 73,115, 40, 39, 73,
2638 100,101,110,116, 39, 41, 32,116,104,101,110, 10, 9, 9, 9,
2639 9, 9,114,101,116,117,114,110, 32,102, 97,108,115,101, 44,
2640 32, 71,101,110,101,114, 97,116,101, 69,114,114,111,114, 40,
2641 34, 70,117,110, 99,116,105,111,110, 32,110, 97,109,101, 32,
2642 101,120,112,101, 99,116,101,100, 34, 41, 10, 9, 9, 9, 9,
2643 101,110,100, 10, 9, 9, 9, 9,108,111, 99, 97,108, 32,110,
2644 97,109,101, 32, 61, 32,116,111,107, 58, 71,101,116, 40,116,
2645 111,107,101,110, 76,105,115,116, 41, 46, 68, 97,116, 97, 10,
2646 9, 9, 9, 9,108,111, 99, 97,108, 32,108,111, 99, 97,108,
2647 86, 97,114, 32, 61, 32,115, 99,111,112,101, 58, 67,114,101,
2648 97,116,101, 76,111, 99, 97,108, 40,110, 97,109,101, 41, 10,
2649 9, 9, 9, 9, 45, 45, 10, 9, 9, 9, 9,108,111, 99, 97,
2650 108, 32,115,116, 44, 32,102,117,110, 99, 32, 61, 32, 80, 97,
2651 114,115,101, 70,117,110, 99,116,105,111,110, 65,114,103,115,
2652 65,110,100, 66,111,100,121, 40,115, 99,111,112,101, 44, 32,
2653 116,111,107,101,110, 76,105,115,116, 41, 10, 9, 9, 9, 9,
2654 105,102, 32,110,111,116, 32,115,116, 32,116,104,101,110, 32,
2655 114,101,116,117,114,110, 32,102, 97,108,115,101, 44, 32,102,
2656 117,110, 99, 32,101,110,100, 10, 9, 9, 9, 9, 45, 45, 10,
2657 9, 9, 9, 9,102,117,110, 99, 46, 78, 97,109,101, 32, 32,
2658 32, 32, 32, 32, 32, 32, 32, 61, 32,108,111, 99, 97,108, 86,
2659 97,114, 10, 9, 9, 9, 9,102,117,110, 99, 46, 73,115, 76,
2660 111, 99, 97,108, 32, 32, 32, 32, 32, 32, 61, 32,116,114,117,
2661 101, 10, 9, 9, 9, 9,115,116, 97,116, 32, 61, 32,102,117,
2662 110, 99, 10, 10, 9, 9, 9,101,108,115,101, 10, 9, 9, 9,
2663 9,114,101,116,117,114,110, 32,102, 97,108,115,101, 44, 32,
2664 71,101,110,101,114, 97,116,101, 69,114,114,111,114, 40, 34,
2665 108,111, 99, 97,108, 32,118, 97,114, 32,111,114, 32,102,117,
2666 110, 99,116,105,111,110, 32,100,101,102, 32,101,120,112,101,
2667 99,116,101,100, 34, 41, 10, 9, 9, 9,101,110,100, 10, 10,
2668 9, 9,101,108,115,101,105,102, 32,116,111,107, 58, 67,111,
2669 110,115,117,109,101, 83,121,109, 98,111,108, 40, 39, 58, 58,
2670 39, 44, 32,116,111,107,101,110, 76,105,115,116, 41, 32,116,
2671 104,101,110, 10, 9, 9, 9,105,102, 32,110,111,116, 32,116,
2672 111,107, 58, 73,115, 40, 39, 73,100,101,110,116, 39, 41, 32,
2673 116,104,101,110, 10, 9, 9, 9, 9,114,101,116,117,114,110,
2674 32,102, 97,108,115,101, 44, 32, 71,101,110,101,114, 97,116,
2675 101, 69,114,114,111,114, 40, 39, 76, 97, 98,101,108, 32,110,
2676 97,109,101, 32,101,120,112,101, 99,116,101,100, 39, 41, 10,
2677 9, 9, 9,101,110,100, 10, 9, 9, 9,108,111, 99, 97,108,
2678 32,108, 97, 98,101,108, 32, 61, 32,116,111,107, 58, 71,101,
2679 116, 40,116,111,107,101,110, 76,105,115,116, 41, 46, 68, 97,
2680 116, 97, 10, 9, 9, 9,105,102, 32,110,111,116, 32,116,111,
2681 107, 58, 67,111,110,115,117,109,101, 83,121,109, 98,111,108,
2682 40, 39, 58, 58, 39, 44, 32,116,111,107,101,110, 76,105,115,
2683 116, 41, 32,116,104,101,110, 10, 9, 9, 9, 9,114,101,116,
2684 117,114,110, 32,102, 97,108,115,101, 44, 32, 71,101,110,101,
2685 114, 97,116,101, 69,114,114,111,114, 40, 34, 96, 58, 58, 96,
2686 32,101,120,112,101, 99,116,101,100, 34, 41, 10, 9, 9, 9,
2687 101,110,100, 10, 9, 9, 9,108,111, 99, 97,108, 32,110,111,
2688 100,101, 76, 97, 98,101,108, 32, 61, 32,123,125, 10, 9, 9,
2689 9,110,111,100,101, 76, 97, 98,101,108, 46, 65,115,116, 84,
2690 121,112,101, 32, 61, 32, 39, 76, 97, 98,101,108, 83,116, 97,
2691 116,101,109,101,110,116, 39, 10, 9, 9, 9,110,111,100,101,
2692 76, 97, 98,101,108, 46, 76, 97, 98,101,108, 32, 32, 32, 61,
2693 32,108, 97, 98,101,108, 10, 9, 9, 9,110,111,100,101, 76,
2694 97, 98,101,108, 46, 84,111,107,101,110,115, 32, 32, 61, 32,
2695 116,111,107,101,110, 76,105,115,116, 10, 9, 9, 9,115,116,
2696 97,116, 32, 61, 32,110,111,100,101, 76, 97, 98,101,108, 10,
2697 10, 9, 9,101,108,115,101,105,102, 32,116,111,107, 58, 67,
2698 111,110,115,117,109,101, 75,101,121,119,111,114,100, 40, 39,
2699 114,101,116,117,114,110, 39, 44, 32,116,111,107,101,110, 76,
2700 105,115,116, 41, 32,116,104,101,110, 10, 9, 9, 9,108,111,
2701 99, 97,108, 32,101,120, 76,105,115,116, 32, 61, 32,123,125,
2702 10, 9, 9, 9,105,102, 32,110,111,116, 32,116,111,107, 58,
2703 73,115, 75,101,121,119,111,114,100, 40, 39,101,110,100, 39,
2704 41, 32,116,104,101,110, 10, 9, 9, 9, 9,108,111, 99, 97,
2705 108, 32,115,116, 44, 32,102,105,114,115,116, 69,120, 32, 61,
2706 32, 80, 97,114,115,101, 69,120,112,114, 40,115, 99,111,112,
2707 101, 41, 10, 9, 9, 9, 9,105,102, 32,115,116, 32,116,104,
2708 101,110, 10, 9, 9, 9, 9, 9,101,120, 76,105,115,116, 91,
2709 49, 93, 32, 61, 32,102,105,114,115,116, 69,120, 10, 9, 9,
2710 9, 9, 9,119,104,105,108,101, 32,116,111,107, 58, 67,111,
2711 110,115,117,109,101, 83,121,109, 98,111,108, 40, 39, 44, 39,
2712 44, 32,116,111,107,101,110, 76,105,115,116, 41, 32,100,111,
2713 10, 9, 9, 9, 9, 9, 9,108,111, 99, 97,108, 32,115,116,
2714 44, 32,101,120, 32, 61, 32, 80, 97,114,115,101, 69,120,112,
2715 114, 40,115, 99,111,112,101, 41, 10, 9, 9, 9, 9, 9, 9,
2716 105,102, 32,110,111,116, 32,115,116, 32,116,104,101,110, 32,
2717 114,101,116,117,114,110, 32,102, 97,108,115,101, 44, 32,101,
2718 120, 32,101,110,100, 10, 9, 9, 9, 9, 9, 9,101,120, 76,
2719 105,115,116, 91, 35,101,120, 76,105,115,116, 43, 49, 93, 32,
2720 61, 32,101,120, 10, 9, 9, 9, 9, 9,101,110,100, 10, 9,
2721 9, 9, 9,101,110,100, 10, 9, 9, 9,101,110,100, 10, 10,
2722 9, 9, 9,108,111, 99, 97,108, 32,110,111,100,101, 82,101,
2723 116,117,114,110, 32, 61, 32,123,125, 10, 9, 9, 9,110,111,
2724 100,101, 82,101,116,117,114,110, 46, 65,115,116, 84,121,112,
2725 101, 32, 32, 32, 61, 32, 39, 82,101,116,117,114,110, 83,116,
2726 97,116,101,109,101,110,116, 39, 10, 9, 9, 9,110,111,100,
2727 101, 82,101,116,117,114,110, 46, 65,114,103,117,109,101,110,
2728 116,115, 32, 61, 32,101,120, 76,105,115,116, 10, 9, 9, 9,
2729 110,111,100,101, 82,101,116,117,114,110, 46, 84,111,107,101,
2730 110,115, 32, 32, 32, 32, 61, 32,116,111,107,101,110, 76,105,
2731 115,116, 10, 9, 9, 9,115,116, 97,116, 32, 61, 32,110,111,
2732 100,101, 82,101,116,117,114,110, 10, 10, 9, 9,101,108,115,
2733 101,105,102, 32,116,111,107, 58, 67,111,110,115,117,109,101,
2734 75,101,121,119,111,114,100, 40, 39, 98,114,101, 97,107, 39,
2735 44, 32,116,111,107,101,110, 76,105,115,116, 41, 32,116,104,
2736 101,110, 10, 9, 9, 9,108,111, 99, 97,108, 32,110,111,100,
2737 101, 66,114,101, 97,107, 32, 61, 32,123,125, 10, 9, 9, 9,
2738 110,111,100,101, 66,114,101, 97,107, 46, 65,115,116, 84,121,
2739 112,101, 32, 61, 32, 39, 66,114,101, 97,107, 83,116, 97,116,
2740 101,109,101,110,116, 39, 10, 9, 9, 9,110,111,100,101, 66,
2741 114,101, 97,107, 46, 84,111,107,101,110,115, 32, 32, 61, 32,
2742 116,111,107,101,110, 76,105,115,116, 10, 9, 9, 9,115,116,
2743 97,116, 32, 61, 32,110,111,100,101, 66,114,101, 97,107, 10,
2744 10, 9, 9,101,108,115,101,105,102, 32,116,111,107, 58, 67,
2745 111,110,115,117,109,101, 75,101,121,119,111,114,100, 40, 39,
2746 103,111,116,111, 39, 44, 32,116,111,107,101,110, 76,105,115,
2747 116, 41, 32,116,104,101,110, 10, 9, 9, 9,105,102, 32,110,
2748 111,116, 32,116,111,107, 58, 73,115, 40, 39, 73,100,101,110,
2749 116, 39, 41, 32,116,104,101,110, 10, 9, 9, 9, 9,114,101,
2750 116,117,114,110, 32,102, 97,108,115,101, 44, 32, 71,101,110,
2751 101,114, 97,116,101, 69,114,114,111,114, 40, 34, 76, 97, 98,
2752 101,108, 32,101,120,112,101, 99,116,101,100, 34, 41, 10, 9,
2753 9, 9,101,110,100, 10, 9, 9, 9,108,111, 99, 97,108, 32,
2754 108, 97, 98,101,108, 32, 61, 32,116,111,107, 58, 71,101,116,
2755 40,116,111,107,101,110, 76,105,115,116, 41, 46, 68, 97,116,
2756 97, 10, 9, 9, 9,108,111, 99, 97,108, 32,110,111,100,101,
2757 71,111,116,111, 32, 61, 32,123,125, 10, 9, 9, 9,110,111,
2758 100,101, 71,111,116,111, 46, 65,115,116, 84,121,112,101, 32,
2759 61, 32, 39, 71,111,116,111, 83,116, 97,116,101,109,101,110,
2760 116, 39, 10, 9, 9, 9,110,111,100,101, 71,111,116,111, 46,
2761 76, 97, 98,101,108, 32, 32, 32, 61, 32,108, 97, 98,101,108,
2762 10, 9, 9, 9,110,111,100,101, 71,111,116,111, 46, 84,111,
2763 107,101,110,115, 32, 32, 61, 32,116,111,107,101,110, 76,105,
2764 115,116, 10, 9, 9, 9,115,116, 97,116, 32, 61, 32,110,111,
2765 100,101, 71,111,116,111, 10, 10, 9, 9,101,108,115,101, 10,
2766 9, 9, 9, 45, 45,115,116, 97,116,101,109,101,110,116, 80,
2767 97,114,115,101, 69,120,112,114, 10, 9, 9, 9,108,111, 99,
2768 97,108, 32,115,116, 44, 32,115,117,102,102,105,120,101,100,
2769 32, 61, 32, 80, 97,114,115,101, 83,117,102,102,105,120,101,
2770 100, 69,120,112,114, 40,115, 99,111,112,101, 41, 10, 9, 9,
2771 9,105,102, 32,110,111,116, 32,115,116, 32,116,104,101,110,
2772 32,114,101,116,117,114,110, 32,102, 97,108,115,101, 44, 32,
2773 115,117,102,102,105,120,101,100, 32,101,110,100, 10, 10, 9,
2774 9, 9, 45, 45, 97,115,115,105,103,110,109,101,110,116, 32,
2775 111,114, 32, 99, 97,108,108, 63, 10, 9, 9, 9,105,102, 32,
2776 116,111,107, 58, 73,115, 83,121,109, 98,111,108, 40, 39, 44,
2777 39, 41, 32,111,114, 32,116,111,107, 58, 73,115, 83,121,109,
2778 98,111,108, 40, 39, 61, 39, 41, 32,116,104,101,110, 10, 9,
2779 9, 9, 9, 45, 45, 99,104,101, 99,107, 32,116,104, 97,116,
2780 32,105,116, 32,119, 97,115, 32,110,111,116, 32,112, 97,114,
2781 101,110,116,104,101,115,105,122,101,100, 44, 32,109, 97,107,
2782 105,110,103, 32,105,116, 32,110,111,116, 32, 97,110, 32,108,
2783 118, 97,108,117,101, 10, 9, 9, 9, 9,105,102, 32, 40,115,
2784 117,102,102,105,120,101,100, 46, 80, 97,114,101,110, 67,111,
2785 117,110,116, 32,111,114, 32, 48, 41, 32, 62, 32, 48, 32,116,
2786 104,101,110, 10, 9, 9, 9, 9, 9,114,101,116,117,114,110,
2787 32,102, 97,108,115,101, 44, 32, 71,101,110,101,114, 97,116,
2788 101, 69,114,114,111,114, 40, 34, 67, 97,110, 32,110,111,116,
2789 32, 97,115,115,105,103,110, 32,116,111, 32,112, 97,114,101,
2790 110,116,104,101,115,105,122,101,100, 32,101,120,112,114,101,
2791 115,115,105,111,110, 44, 32,105,115, 32,110,111,116, 32, 97,
2792 110, 32,108,118, 97,108,117,101, 34, 41, 10, 9, 9, 9, 9,
2793 101,110,100, 10, 10, 9, 9, 9, 9, 45, 45,109,111,114,101,
2794 32,112,114,111, 99,101,115,115,105,110,103, 32,110,101,101,
2795 100,101,100, 10, 9, 9, 9, 9,108,111, 99, 97,108, 32,108,
2796 104,115, 32, 61, 32,123, 32,115,117,102,102,105,120,101,100,
2797 32,125, 10, 9, 9, 9, 9,119,104,105,108,101, 32,116,111,
2798 107, 58, 67,111,110,115,117,109,101, 83,121,109, 98,111,108,
2799 40, 39, 44, 39, 44, 32,116,111,107,101,110, 76,105,115,116,
2800 41, 32,100,111, 10, 9, 9, 9, 9, 9,108,111, 99, 97,108,
2801 32,115,116, 44, 32,108,104,115, 80, 97,114,116, 32, 61, 32,
2802 80, 97,114,115,101, 83,117,102,102,105,120,101,100, 69,120,
2803 112,114, 40,115, 99,111,112,101, 41, 10, 9, 9, 9, 9, 9,
2804 105,102, 32,110,111,116, 32,115,116, 32,116,104,101,110, 32,
2805 114,101,116,117,114,110, 32,102, 97,108,115,101, 44, 32,108,
2806 104,115, 80, 97,114,116, 32,101,110,100, 10, 9, 9, 9, 9,
2807 9,108,104,115, 91, 35,108,104,115, 43, 49, 93, 32, 61, 32,
2808 108,104,115, 80, 97,114,116, 10, 9, 9, 9, 9,101,110,100,
2809 10, 10, 9, 9, 9, 9, 45, 45,101,113,117, 97,108,115, 10,
2810 9, 9, 9, 9,105,102, 32,110,111,116, 32,116,111,107, 58,
2811 67,111,110,115,117,109,101, 83,121,109, 98,111,108, 40, 39,
2812 61, 39, 44, 32,116,111,107,101,110, 76,105,115,116, 41, 32,
2813 116,104,101,110, 10, 9, 9, 9, 9, 9,114,101,116,117,114,
2814 110, 32,102, 97,108,115,101, 44, 32, 71,101,110,101,114, 97,
2815 116,101, 69,114,114,111,114, 40, 34, 96, 61, 96, 32, 69,120,
2816 112,101, 99,116,101,100, 46, 34, 41, 10, 9, 9, 9, 9,101,
2817 110,100, 10, 10, 9, 9, 9, 9, 45, 45,114,104,115, 10, 9,
2818 9, 9, 9,108,111, 99, 97,108, 32,114,104,115, 32, 61, 32,
2819 123,125, 10, 9, 9, 9, 9,108,111, 99, 97,108, 32,115,116,
2820 44, 32,102,105,114,115,116, 82,104,115, 32, 61, 32, 80, 97,
2821 114,115,101, 69,120,112,114, 40,115, 99,111,112,101, 41, 10,
2822 9, 9, 9, 9,105,102, 32,110,111,116, 32,115,116, 32,116,
2823 104,101,110, 32,114,101,116,117,114,110, 32,102, 97,108,115,
2824 101, 44, 32,102,105,114,115,116, 82,104,115, 32,101,110,100,
2825 10, 9, 9, 9, 9,114,104,115, 91, 49, 93, 32, 61, 32,102,
2826 105,114,115,116, 82,104,115, 10, 9, 9, 9, 9,119,104,105,
2827 108,101, 32,116,111,107, 58, 67,111,110,115,117,109,101, 83,
2828 121,109, 98,111,108, 40, 39, 44, 39, 44, 32,116,111,107,101,
2829 110, 76,105,115,116, 41, 32,100,111, 10, 9, 9, 9, 9, 9,
2830 108,111, 99, 97,108, 32,115,116, 44, 32,114,104,115, 80, 97,
2831 114,116, 32, 61, 32, 80, 97,114,115,101, 69,120,112,114, 40,
2832 115, 99,111,112,101, 41, 10, 9, 9, 9, 9, 9,105,102, 32,
2833 110,111,116, 32,115,116, 32,116,104,101,110, 32,114,101,116,
2834 117,114,110, 32,102, 97,108,115,101, 44, 32,114,104,115, 80,
2835 97,114,116, 32,101,110,100, 10, 9, 9, 9, 9, 9,114,104,
2836 115, 91, 35,114,104,115, 43, 49, 93, 32, 61, 32,114,104,115,
2837 80, 97,114,116, 10, 9, 9, 9, 9,101,110,100, 10, 10, 9,
2838 9, 9, 9, 45, 45,100,111,110,101, 10, 9, 9, 9, 9,108,
2839 111, 99, 97,108, 32,110,111,100,101, 65,115,115,105,103,110,
2840 32, 61, 32,123,125, 10, 9, 9, 9, 9,110,111,100,101, 65,
2841 115,115,105,103,110, 46, 65,115,116, 84,121,112,101, 32, 61,
2842 32, 39, 65,115,115,105,103,110,109,101,110,116, 83,116, 97,
2843 116,101,109,101,110,116, 39, 10, 9, 9, 9, 9,110,111,100,
2844 101, 65,115,115,105,103,110, 46, 76,104,115, 32, 32, 32, 32,
2845 32, 61, 32,108,104,115, 10, 9, 9, 9, 9,110,111,100,101,
2846 65,115,115,105,103,110, 46, 82,104,115, 32, 32, 32, 32, 32,
2847 61, 32,114,104,115, 10, 9, 9, 9, 9,110,111,100,101, 65,
2848 115,115,105,103,110, 46, 84,111,107,101,110,115, 32, 32, 61,
2849 32,116,111,107,101,110, 76,105,115,116, 10, 9, 9, 9, 9,
2850 115,116, 97,116, 32, 61, 32,110,111,100,101, 65,115,115,105,
2851 103,110, 10, 10, 9, 9, 9,101,108,115,101,105,102, 32,115,
2852 117,102,102,105,120,101,100, 46, 65,115,116, 84,121,112,101,
2853 32, 61, 61, 32, 39, 67, 97,108,108, 69,120,112,114, 39, 32,
2854 111,114, 10, 9, 9, 9, 9, 32, 32, 32,115,117,102,102,105,
2855 120,101,100, 46, 65,115,116, 84,121,112,101, 32, 61, 61, 32,
2856 39, 84, 97, 98,108,101, 67, 97,108,108, 69,120,112,114, 39,
2857 32,111,114, 10, 9, 9, 9, 9, 32, 32, 32,115,117,102,102,
2858 105,120,101,100, 46, 65,115,116, 84,121,112,101, 32, 61, 61,
2859 32, 39, 83,116,114,105,110,103, 67, 97,108,108, 69,120,112,
2860 114, 39, 10, 9, 9, 9,116,104,101,110, 10, 9, 9, 9, 9,
2861 45, 45,105,116, 39,115, 32, 97, 32, 99, 97,108,108, 32,115,
2862 116, 97,116,101,109,101,110,116, 10, 9, 9, 9, 9,108,111,
2863 99, 97,108, 32,110,111,100,101, 67, 97,108,108, 32, 61, 32,
2864 123,125, 10, 9, 9, 9, 9,110,111,100,101, 67, 97,108,108,
2865 46, 65,115,116, 84,121,112,101, 32, 32, 32, 32, 61, 32, 39,
2866 67, 97,108,108, 83,116, 97,116,101,109,101,110,116, 39, 10,
2867 9, 9, 9, 9,110,111,100,101, 67, 97,108,108, 46, 69,120,
2868 112,114,101,115,115,105,111,110, 32, 61, 32,115,117,102,102,
2869 105,120,101,100, 10, 9, 9, 9, 9,110,111,100,101, 67, 97,
2870 108,108, 46, 84,111,107,101,110,115, 32, 32, 32, 32, 32, 61,
2871 32,116,111,107,101,110, 76,105,115,116, 10, 9, 9, 9, 9,
2872 115,116, 97,116, 32, 61, 32,110,111,100,101, 67, 97,108,108,
2873 10, 9, 9, 9,101,108,115,101, 10, 9, 9, 9, 9,114,101,
2874 116,117,114,110, 32,102, 97,108,115,101, 44, 32, 71,101,110,
2875 101,114, 97,116,101, 69,114,114,111,114, 40, 34, 65,115,115,
2876 105,103,110,109,101,110,116, 32, 83,116, 97,116,101,109,101,
2877 110,116, 32, 69,120,112,101, 99,116,101,100, 34, 41, 10, 9,
2878 9, 9,101,110,100, 10, 9, 9,101,110,100, 10, 10, 9, 9,
2879 105,102, 32,116,111,107, 58, 73,115, 83,121,109, 98,111,108,
2880 40, 39, 59, 39, 41, 32,116,104,101,110, 10, 9, 9, 9,115,
2881 116, 97,116, 46, 83,101,109,105, 99,111,108,111,110, 32, 61,
2882 32,116,111,107, 58, 71,101,116, 40, 32,115,116, 97,116, 46,
2883 84,111,107,101,110,115, 32, 41, 10, 9, 9,101,110,100, 10,
2884 9, 9,114,101,116,117,114,110, 32,116,114,117,101, 44, 32,
2885 115,116, 97,116, 10, 9,101,110,100, 10, 10, 10, 9,108,111,
2886 99, 97,108, 32,115,116, 97,116, 76,105,115,116, 67,108,111,
2887 115,101, 75,101,121,119,111,114,100,115, 32, 61, 32,108,111,
2888 111,107,117,112,105,102,121,123, 39,101,110,100, 39, 44, 32,
2889 39,101,108,115,101, 39, 44, 32, 39,101,108,115,101,105,102,
2890 39, 44, 32, 39,117,110,116,105,108, 39,125, 10, 10, 9, 80,
2891 97,114,115,101, 83,116, 97,116,101,109,101,110,116, 76,105,
2892 115,116, 32, 61, 32,102,117,110, 99,116,105,111,110, 40,115,
2893 99,111,112,101, 41, 10, 9, 9,108,111, 99, 97,108, 32,110,
2894 111,100,101, 83,116, 97,116,108,105,115,116, 32, 32, 32, 61,
2895 32,123,125, 10, 9, 9,110,111,100,101, 83,116, 97,116,108,
2896 105,115,116, 46, 83, 99,111,112,101, 32, 32, 32, 61, 32, 67,
2897 114,101, 97,116,101, 83, 99,111,112,101, 40,115, 99,111,112,
2898 101, 41, 10, 9, 9,110,111,100,101, 83,116, 97,116,108,105,
2899 115,116, 46, 65,115,116, 84,121,112,101, 32, 61, 32, 39, 83,
2900 116, 97,116,108,105,115,116, 39, 10, 9, 9,110,111,100,101,
2901 83,116, 97,116,108,105,115,116, 46, 66,111,100,121, 32, 32,
2902 32, 32, 61, 32,123, 32,125, 10, 9, 9,110,111,100,101, 83,
2903 116, 97,116,108,105,115,116, 46, 84,111,107,101,110,115, 32,
2904 32, 61, 32,123, 32,125, 10, 9, 9, 45, 45, 10, 9, 9, 45,
2905 45,108,111, 99, 97,108, 32,115,116, 97,116,115, 32, 61, 32,
2906 123,125, 10, 9, 9, 45, 45, 10, 9, 9,119,104,105,108,101,
2907 32,110,111,116, 32,115,116, 97,116, 76,105,115,116, 67,108,
2908 111,115,101, 75,101,121,119,111,114,100,115, 91,116,111,107,
2909 58, 80,101,101,107, 40, 41, 46, 68, 97,116, 97, 93, 32, 97,
2910 110,100, 32,110,111,116, 32,116,111,107, 58, 73,115, 69,111,
2911 102, 40, 41, 32,100,111, 10, 9, 9, 9,108,111, 99, 97,108,
2912 32,115,116, 44, 32,110,111,100,101, 83,116, 97,116,101,109,
2913 101,110,116, 32, 61, 32, 80, 97,114,115,101, 83,116, 97,116,
2914 101,109,101,110,116, 40,110,111,100,101, 83,116, 97,116,108,
2915 105,115,116, 46, 83, 99,111,112,101, 41, 10, 9, 9, 9,105,
2916 102, 32,110,111,116, 32,115,116, 32,116,104,101,110, 32,114,
2917 101,116,117,114,110, 32,102, 97,108,115,101, 44, 32,110,111,
2918 100,101, 83,116, 97,116,101,109,101,110,116, 32,101,110,100,
2919 10, 9, 9, 9, 45, 45,115,116, 97,116,115, 91, 35,115,116,
2920 97,116,115, 43, 49, 93, 32, 61, 32,110,111,100,101, 83,116,
2921 97,116,101,109,101,110,116, 10, 9, 9, 9,110,111,100,101,
2922 83,116, 97,116,108,105,115,116, 46, 66,111,100,121, 91, 35,
2923 110,111,100,101, 83,116, 97,116,108,105,115,116, 46, 66,111,
2924 100,121, 32, 43, 32, 49, 93, 32, 61, 32,110,111,100,101, 83,
2925 116, 97,116,101,109,101,110,116, 10, 9, 9,101,110,100, 10,
2926 10, 9, 9,105,102, 32,116,111,107, 58, 73,115, 69,111,102,
2927 40, 41, 32,116,104,101,110, 10, 9, 9, 9,108,111, 99, 97,
2928 108, 32,110,111,100,101, 69,111,102, 32, 61, 32,123,125, 10,
2929 9, 9, 9,110,111,100,101, 69,111,102, 46, 65,115,116, 84,
2930 121,112,101, 32, 61, 32, 39, 69,111,102, 39, 10, 9, 9, 9,
2931 110,111,100,101, 69,111,102, 46, 84,111,107,101,110,115, 32,
2932 32, 61, 32,123, 32,116,111,107, 58, 71,101,116, 40, 41, 32,
2933 125, 10, 9, 9, 9,110,111,100,101, 83,116, 97,116,108,105,
2934 115,116, 46, 66,111,100,121, 91, 35,110,111,100,101, 83,116,
2935 97,116,108,105,115,116, 46, 66,111,100,121, 32, 43, 32, 49,
2936 93, 32, 61, 32,110,111,100,101, 69,111,102, 10, 9, 9,101,
2937 110,100, 10, 10, 9, 9, 45, 45, 10, 9, 9, 45, 45,110,111,
2938 100,101, 83,116, 97,116,108,105,115,116, 46, 66,111,100,121,
2939 32, 61, 32,115,116, 97,116,115, 10, 9, 9,114,101,116,117,
2940 114,110, 32,116,114,117,101, 44, 32,110,111,100,101, 83,116,
2941 97,116,108,105,115,116, 10, 9,101,110,100, 10, 10, 10, 9,
2942 108,111, 99, 97,108, 32,102,117,110, 99,116,105,111,110, 32,
2943 109, 97,105,110,102,117,110, 99, 40, 41, 10, 9, 9,108,111,
2944 99, 97,108, 32,116,111,112, 83, 99,111,112,101, 32, 61, 32,
2945 67,114,101, 97,116,101, 83, 99,111,112,101, 40, 41, 10, 9,
2946 9,114,101,116,117,114,110, 32, 80, 97,114,115,101, 83,116,
2947 97,116,101,109,101,110,116, 76,105,115,116, 40,116,111,112,
2948 83, 99,111,112,101, 41, 10, 9,101,110,100, 10, 10, 9,108,
2949 111, 99, 97,108, 32,115,116, 44, 32,109, 97,105,110, 32, 61,
2950 32,109, 97,105,110,102,117,110, 99, 40, 41, 10, 9, 45, 45,
2951 112,114,105,110,116, 40, 34, 76, 97,115,116, 32, 84,111,107,
2952 101,110, 58, 32, 34, 46, 46, 80,114,105,110,116, 84, 97, 98,
2953 108,101, 40,116,111,107, 58, 80,101,101,107, 40, 41, 41, 41,
2954 10, 9,114,101,116,117,114,110, 32,115,116, 44, 32,109, 97,
2955 105,110, 10,101,110,100, 10, 10, 45, 45, 10, 45, 45, 32, 70,
2956 111,114,109, 97,116, 77,105,110,105, 46,108,117, 97, 10, 45,
2957 45, 10, 45, 45, 32, 82,101,116,117,114,110,115, 32,116,104,
2958 101, 32,109,105,110,105,102,105,101,100, 32,118,101,114,115,
2959 105,111,110, 32,111,102, 32, 97,110, 32, 65, 83, 84, 46, 32,
2960 79,112,101,114, 97,116,105,111,110,115, 32,119,104,105, 99,
2961 104, 32, 97,114,101, 32,112,101,114,102,111,114,109,101,100,
2962 58, 10, 45, 45, 32, 45, 32, 65,108,108, 32, 99,111,109,109,
2963 101,110,116,115, 32, 97,110,100, 32,119,104,105,116,101,115,
2964 112, 97, 99,101, 32, 97,114,101, 32,105,103,110,111,114,101,
2965 100, 10, 45, 45, 32, 45, 32, 65,108,108, 32,108,111, 99, 97,
2966 108, 32,118, 97,114,105, 97, 98,108,101,115, 32, 97,114,101,
2967 32,114,101,110, 97,109,101,100, 10, 45, 45, 10, 10,108,111,
2968 99, 97,108, 32,102,117,110, 99,116,105,111,110, 32, 70,111,
2969 114,109, 97,116, 95, 77,105,110,105, 40, 97,115,116, 41, 10,
2970 9,108,111, 99, 97,108, 32,102,111,114,109, 97,116, 83,116,
2971 97,116,108,105,115,116, 44, 32,102,111,114,109, 97,116, 69,
2972 120,112,114, 59, 10, 9, 45, 45,108,111, 99, 97,108, 32, 99,
2973 111,117,110,116, 32, 61, 32, 48, 10, 9, 45, 45, 10, 9,108,
2974 111, 99, 97,108, 32,102,117,110, 99,116,105,111,110, 32,106,
2975 111,105,110, 83,116, 97,116,101,109,101,110,116,115, 83, 97,
2976 102,101, 40, 97, 44, 32, 98, 44, 32,115,101,112, 41, 10, 9,
2977 45, 45,112,114,105,110,116, 40, 97, 44, 32, 98, 41, 10, 9,
2978 9, 45, 45, 91, 91, 10, 9, 9,105,102, 32, 99,111,117,110,
2979 116, 32, 62, 32, 49, 53, 48, 32,116,104,101,110, 10, 9, 9,
2980 9, 99,111,117,110,116, 32, 61, 32, 48, 10, 9, 9, 9,114,
2981 101,116,117,114,110, 32, 97, 46, 46, 34, 92,110, 34, 46, 46,
2982 98, 10, 9, 9,101,110,100, 93, 93, 10, 9, 9,115,101,112,
2983 32, 61, 32,115,101,112, 32,111,114, 32, 39, 32, 39, 10, 9,
2984 9,105,102, 32,115,101,112, 32, 61, 61, 32, 39, 59, 39, 32,
2985 116,104,101,110, 10, 9, 9, 9,108,111, 99, 97,108, 32,116,
2986 111,107,101,110, 32, 61, 32, 97, 58,109, 97,116, 99,104, 40,
2987 34, 40, 91, 37,119, 95, 93, 43, 41, 37,115, 42, 36, 34, 41,
2988 10, 9, 9, 9,105,102, 32,116,111,107,101,110, 32, 61, 61,
2989 32, 34,116,104,101,110, 34, 32,111,114, 32,116,111,107,101,
2990 110, 32, 61, 61, 32, 34,100,111, 34, 32,116,104,101,110, 10,
2991 9, 9, 9, 9,115,101,112, 32, 61, 32, 39, 32, 39, 10, 9,
2992 9, 9,101,110,100, 10, 9, 9,101,110,100, 10, 9, 9,108,
2993 111, 99, 97,108, 32, 97, 97, 44, 32, 98, 98, 32, 61, 32, 97,
2994 58,115,117, 98, 40, 45, 49, 44, 45, 49, 41, 44, 32, 98, 58,
2995 115,117, 98, 40, 49, 44, 49, 41, 10, 9, 9,105,102, 32, 85,
2996 112,112,101,114, 67,104, 97,114,115, 91, 97, 97, 93, 32,111,
2997 114, 32, 76,111,119,101,114, 67,104, 97,114,115, 91, 97, 97,
2998 93, 32,111,114, 32, 97, 97, 32, 61, 61, 32, 39, 95, 39, 32,
2999 116,104,101,110, 10, 9, 9, 9,105,102, 32,110,111,116, 32,
3000 40, 85,112,112,101,114, 67,104, 97,114,115, 91, 98, 98, 93,
3001 32,111,114, 32, 76,111,119,101,114, 67,104, 97,114,115, 91,
3002 98, 98, 93, 32,111,114, 32, 98, 98, 32, 61, 61, 32, 39, 95,
3003 39, 32,111,114, 32, 68,105,103,105,116,115, 91, 98, 98, 93,
3004 41, 32,116,104,101,110, 10, 9, 9, 9, 9, 45, 45, 98, 98,
3005 32,105,115, 32, 97, 32,115,121,109, 98,111,108, 44, 32, 99,
3006 97,110, 32,106,111,105,110, 32,119,105,116,104,111,117,116,
3007 32,115,101,112, 10, 9, 9, 9, 9,114,101,116,117,114,110,
3008 32, 97, 46, 46, 98, 10, 9, 9, 9,101,108,115,101,105,102,
3009 32, 98, 98, 32, 61, 61, 32, 39, 40, 39, 32,116,104,101,110,
3010 10, 9, 9, 9, 9, 45, 45,112,114,101,118,101,110,116, 32,
3011 97,109, 98,105,103,117,111,117,115, 32,115,121,110,116, 97,
3012 120, 10, 9, 9, 9, 9,114,101,116,117,114,110, 32, 97, 46,
3013 46,115,101,112, 46, 46, 98, 10, 9, 9, 9,101,108,115,101,
3014 10, 9, 9, 9, 9,114,101,116,117,114,110, 32, 97, 46, 46,
3015 115,101,112, 46, 46, 98, 10, 9, 9, 9,101,110,100, 10, 9,
3016 9,101,108,115,101,105,102, 32, 68,105,103,105,116,115, 91,
3017 97, 97, 93, 32,116,104,101,110, 10, 9, 9, 9,105,102, 32,
3018 98, 98, 32, 61, 61, 32, 39, 40, 39, 32,116,104,101,110, 10,
3019 9, 9, 9, 9, 45, 45, 99, 97,110, 32,106,111,105,110, 32,
3020 115,116, 97,116,101,109,101,110,116,115, 32,100,105,114,101,
3021 99,116,108,121, 10, 9, 9, 9, 9,114,101,116,117,114,110,
3022 32, 97, 46, 46, 98, 10, 9, 9, 9,101,108,115,101,105,102,
3023 32, 83,121,109, 98,111,108,115, 91, 98, 98, 93, 32,116,104,
3024 101,110, 10, 9, 9, 9, 9,114,101,116,117,114,110, 32, 97,
3025 32, 46, 46, 32, 98, 10, 9, 9, 9,101,108,115,101, 10, 9,
3026 9, 9, 9,114,101,116,117,114,110, 32, 97, 46, 46,115,101,
3027 112, 46, 46, 98, 10, 9, 9, 9,101,110,100, 10, 9, 9,101,
3028 108,115,101,105,102, 32, 97, 97, 32, 61, 61, 32, 39, 39, 32,
3029 116,104,101,110, 10, 9, 9, 9,114,101,116,117,114,110, 32,
3030 97, 46, 46, 98, 10, 9, 9,101,108,115,101, 10, 9, 9, 9,
3031 105,102, 32, 98, 98, 32, 61, 61, 32, 39, 40, 39, 32,116,104,
3032 101,110, 10, 9, 9, 9, 9, 45, 45,100,111,110, 39,116, 32,
3033 119, 97,110,116, 32,116,111, 32, 97, 99, 99,105,100,101,110,
3034 116, 97,108,108,121, 32, 99, 97,108,108, 32,108, 97,115,116,
3035 32,115,116, 97,116,101,109,101,110,116, 44, 32, 99, 97,110,
3036 39,116, 32,106,111,105,110, 32,100,105,114,101, 99,116,108,
3037 121, 10, 9, 9, 9, 9,114,101,116,117,114,110, 32, 97, 46,
3038 46,115,101,112, 46, 46, 98, 10, 9, 9, 9,101,108,115,101,
3039 10, 9, 9, 9, 9, 45, 45,112,114,105,110,116, 40, 34, 97,
3040 115,100,102, 34, 44, 32, 39, 34, 39, 46, 46, 97, 46, 46, 39,
3041 34, 39, 44, 32, 39, 34, 39, 46, 46, 98, 46, 46, 39, 34, 39,
3042 41, 10, 9, 9, 9, 9,114,101,116,117,114,110, 32, 97, 46,
3043 46, 98, 10, 9, 9, 9,101,110,100, 10, 9, 9,101,110,100,
3044 10, 9,101,110,100, 10, 10, 9,102,111,114,109, 97,116, 69,
3045 120,112,114, 32, 61, 32,102,117,110, 99,116,105,111,110, 40,
3046 101,120,112,114, 44, 32,112,114,101, 99,101,100,101,110, 99,
3047 101, 41, 10, 9, 9,108,111, 99, 97,108, 32,112,114,101, 99,
3048 101,100,101,110, 99,101, 32, 61, 32,112,114,101, 99,101,100,
3049 101,110, 99,101, 32,111,114, 32, 48, 10, 9, 9,108,111, 99,
3050 97,108, 32, 99,117,114,114,101,110,116, 80,114,101, 99,101,
3051 100,101,110, 99,101, 32, 61, 32, 48, 10, 9, 9,108,111, 99,
3052 97,108, 32,115,107,105,112, 80, 97,114,101,110,115, 32, 61,
3053 32,102, 97,108,115,101, 10, 9, 9,108,111, 99, 97,108, 32,
3054 111,117,116, 32, 61, 32, 34, 34, 10, 9, 9,105,102, 32,101,
3055 120,112,114, 46, 65,115,116, 84,121,112,101, 32, 61, 61, 32,
3056 39, 86, 97,114, 69,120,112,114, 39, 32,116,104,101,110, 10,
3057 9, 9, 9,105,102, 32,101,120,112,114, 46, 86, 97,114,105,
3058 97, 98,108,101, 32,116,104,101,110, 10, 9, 9, 9, 9,111,
3059 117,116, 32, 61, 32,111,117,116, 46, 46,101,120,112,114, 46,
3060 86, 97,114,105, 97, 98,108,101, 46, 78, 97,109,101, 10, 9,
3061 9, 9,101,108,115,101, 10, 9, 9, 9, 9,111,117,116, 32,
3062 61, 32,111,117,116, 46, 46,101,120,112,114, 46, 78, 97,109,
3063 101, 10, 9, 9, 9,101,110,100, 10, 10, 9, 9,101,108,115,
3064 101,105,102, 32,101,120,112,114, 46, 65,115,116, 84,121,112,
3065 101, 32, 61, 61, 32, 39, 78,117,109, 98,101,114, 69,120,112,
3066 114, 39, 32,116,104,101,110, 10, 9, 9, 9,111,117,116, 32,
3067 61, 32,111,117,116, 46, 46,101,120,112,114, 46, 86, 97,108,
3068 117,101, 46, 68, 97,116, 97, 10, 10, 9, 9,101,108,115,101,
3069 105,102, 32,101,120,112,114, 46, 65,115,116, 84,121,112,101,
3070 32, 61, 61, 32, 39, 83,116,114,105,110,103, 69,120,112,114,
3071 39, 32,116,104,101,110, 10, 9, 9, 9,111,117,116, 32, 61,
3072 32,111,117,116, 46, 46,101,120,112,114, 46, 86, 97,108,117,
3073 101, 46, 68, 97,116, 97, 10, 10, 9, 9,101,108,115,101,105,
3074 102, 32,101,120,112,114, 46, 65,115,116, 84,121,112,101, 32,
3075 61, 61, 32, 39, 66,111,111,108,101, 97,110, 69,120,112,114,
3076 39, 32,116,104,101,110, 10, 9, 9, 9,111,117,116, 32, 61,
3077 32,111,117,116, 46, 46,116,111,115,116,114,105,110,103, 40,
3078 101,120,112,114, 46, 86, 97,108,117,101, 41, 10, 10, 9, 9,
3079 101,108,115,101,105,102, 32,101,120,112,114, 46, 65,115,116,
3080 84,121,112,101, 32, 61, 61, 32, 39, 78,105,108, 69,120,112,
3081 114, 39, 32,116,104,101,110, 10, 9, 9, 9,111,117,116, 32,
3082 61, 32,106,111,105,110, 83,116, 97,116,101,109,101,110,116,
3083 115, 83, 97,102,101, 40,111,117,116, 44, 32, 34,110,105,108,
3084 34, 41, 10, 10, 9, 9,101,108,115,101,105,102, 32,101,120,
3085 112,114, 46, 65,115,116, 84,121,112,101, 32, 61, 61, 32, 39,
3086 66,105,110,111,112, 69,120,112,114, 39, 32,116,104,101,110,
3087 10, 9, 9, 9, 99,117,114,114,101,110,116, 80,114,101, 99,
3088 101,100,101,110, 99,101, 32, 61, 32,101,120,112,114, 46, 79,
3089 112,101,114, 97,116,111,114, 80,114,101, 99,101,100,101,110,
3090 99,101, 10, 9, 9, 9,111,117,116, 32, 61, 32,106,111,105,
3091 110, 83,116, 97,116,101,109,101,110,116,115, 83, 97,102,101,
3092 40,111,117,116, 44, 32,102,111,114,109, 97,116, 69,120,112,
3093 114, 40,101,120,112,114, 46, 76,104,115, 44, 32, 99,117,114,
3094 114,101,110,116, 80,114,101, 99,101,100,101,110, 99,101, 41,
3095 41, 10, 9, 9, 9,111,117,116, 32, 61, 32,106,111,105,110,
3096 83,116, 97,116,101,109,101,110,116,115, 83, 97,102,101, 40,
3097 111,117,116, 44, 32,101,120,112,114, 46, 79,112, 41, 10, 9,
3098 9, 9,111,117,116, 32, 61, 32,106,111,105,110, 83,116, 97,
3099 116,101,109,101,110,116,115, 83, 97,102,101, 40,111,117,116,
3100 44, 32,102,111,114,109, 97,116, 69,120,112,114, 40,101,120,
3101 112,114, 46, 82,104,115, 41, 41, 10, 9, 9, 9,105,102, 32,
3102 101,120,112,114, 46, 79,112, 32, 61, 61, 32, 39, 94, 39, 32,
3103 111,114, 32,101,120,112,114, 46, 79,112, 32, 61, 61, 32, 39,
3104 46, 46, 39, 32,116,104,101,110, 10, 9, 9, 9, 9, 99,117,
3105 114,114,101,110,116, 80,114,101, 99,101,100,101,110, 99,101,
3106 32, 61, 32, 99,117,114,114,101,110,116, 80,114,101, 99,101,
3107 100,101,110, 99,101, 32, 45, 32, 49, 10, 9, 9, 9,101,110,
3108 100, 10, 10, 9, 9, 9,105,102, 32, 99,117,114,114,101,110,
3109 116, 80,114,101, 99,101,100,101,110, 99,101, 32, 60, 32,112,
3110 114,101, 99,101,100,101,110, 99,101, 32,116,104,101,110, 10,
3111 9, 9, 9, 9,115,107,105,112, 80, 97,114,101,110,115, 32,
3112 61, 32,102, 97,108,115,101, 10, 9, 9, 9,101,108,115,101,
3113 10, 9, 9, 9, 9,115,107,105,112, 80, 97,114,101,110,115,
3114 32, 61, 32,116,114,117,101, 10, 9, 9, 9,101,110,100, 10,
3115 9, 9, 9, 45, 45,112,114,105,110,116, 40,115,107,105,112,
3116 80, 97,114,101,110,115, 44, 32,112,114,101, 99,101,100,101,
3117 110, 99,101, 44, 32, 99,117,114,114,101,110,116, 80,114,101,
3118 99,101,100,101,110, 99,101, 41, 10, 9, 9,101,108,115,101,
3119 105,102, 32,101,120,112,114, 46, 65,115,116, 84,121,112,101,
3120 32, 61, 61, 32, 39, 85,110,111,112, 69,120,112,114, 39, 32,
3121 116,104,101,110, 10, 9, 9, 9,111,117,116, 32, 61, 32,106,
3122 111,105,110, 83,116, 97,116,101,109,101,110,116,115, 83, 97,
3123 102,101, 40,111,117,116, 44, 32,101,120,112,114, 46, 79,112,
3124 41, 10, 9, 9, 9,111,117,116, 32, 61, 32,106,111,105,110,
3125 83,116, 97,116,101,109,101,110,116,115, 83, 97,102,101, 40,
3126 111,117,116, 44, 32,102,111,114,109, 97,116, 69,120,112,114,
3127 40,101,120,112,114, 46, 82,104,115, 41, 41, 10, 10, 9, 9,
3128 101,108,115,101,105,102, 32,101,120,112,114, 46, 65,115,116,
3129 84,121,112,101, 32, 61, 61, 32, 39, 68,111,116,115, 69,120,
3130 112,114, 39, 32,116,104,101,110, 10, 9, 9, 9,111,117,116,
3131 32, 61, 32,111,117,116, 46, 46, 34, 46, 46, 46, 34, 10, 10,
3132 9, 9,101,108,115,101,105,102, 32,101,120,112,114, 46, 65,
3133 115,116, 84,121,112,101, 32, 61, 61, 32, 39, 67, 97,108,108,
3134 69,120,112,114, 39, 32,116,104,101,110, 10, 9, 9, 9,111,
3135 117,116, 32, 61, 32,111,117,116, 46, 46,102,111,114,109, 97,
3136 116, 69,120,112,114, 40,101,120,112,114, 46, 66, 97,115,101,
3137 41, 10, 9, 9, 9,111,117,116, 32, 61, 32,111,117,116, 46,
3138 46, 34, 40, 34, 10, 9, 9, 9,102,111,114, 32,105, 32, 61,
3139 32, 49, 44, 32, 35,101,120,112,114, 46, 65,114,103,117,109,
3140 101,110,116,115, 32,100,111, 10, 9, 9, 9, 9,111,117,116,
3141 32, 61, 32,111,117,116, 46, 46,102,111,114,109, 97,116, 69,
3142 120,112,114, 40,101,120,112,114, 46, 65,114,103,117,109,101,
3143 110,116,115, 91,105, 93, 41, 10, 9, 9, 9, 9,105,102, 32,
3144 105, 32,126, 61, 32, 35,101,120,112,114, 46, 65,114,103,117,
3145 109,101,110,116,115, 32,116,104,101,110, 10, 9, 9, 9, 9,
3146 9,111,117,116, 32, 61, 32,111,117,116, 46, 46, 34, 44, 34,
3147 10, 9, 9, 9, 9,101,110,100, 10, 9, 9, 9,101,110,100,
3148 10, 9, 9, 9,111,117,116, 32, 61, 32,111,117,116, 46, 46,
3149 34, 41, 34, 10, 10, 9, 9,101,108,115,101,105,102, 32,101,
3150 120,112,114, 46, 65,115,116, 84,121,112,101, 32, 61, 61, 32,
3151 39, 84, 97, 98,108,101, 67, 97,108,108, 69,120,112,114, 39,
3152 32,116,104,101,110, 10, 9, 9, 9,111,117,116, 32, 61, 32,
3153 111,117,116, 46, 46,102,111,114,109, 97,116, 69,120,112,114,
3154 40,101,120,112,114, 46, 66, 97,115,101, 41, 10, 9, 9, 9,
3155 111,117,116, 32, 61, 32,111,117,116, 46, 46,102,111,114,109,
3156 97,116, 69,120,112,114, 40,101,120,112,114, 46, 65,114,103,
3157 117,109,101,110,116,115, 91, 49, 93, 41, 10, 10, 9, 9,101,
3158 108,115,101,105,102, 32,101,120,112,114, 46, 65,115,116, 84,
3159 121,112,101, 32, 61, 61, 32, 39, 83,116,114,105,110,103, 67,
3160 97,108,108, 69,120,112,114, 39, 32,116,104,101,110, 10, 9,
3161 9, 9,111,117,116, 32, 61, 32,111,117,116, 46, 46,102,111,
3162 114,109, 97,116, 69,120,112,114, 40,101,120,112,114, 46, 66,
3163 97,115,101, 41, 10, 9, 9, 9,111,117,116, 32, 61, 32,111,
3164 117,116, 46, 46,101,120,112,114, 46, 65,114,103,117,109,101,
3165 110,116,115, 91, 49, 93, 46, 68, 97,116, 97, 10, 10, 9, 9,
3166 101,108,115,101,105,102, 32,101,120,112,114, 46, 65,115,116,
3167 84,121,112,101, 32, 61, 61, 32, 39, 73,110,100,101,120, 69,
3168 120,112,114, 39, 32,116,104,101,110, 10, 9, 9, 9,111,117,
3169 116, 32, 61, 32,111,117,116, 46, 46,102,111,114,109, 97,116,
3170 69,120,112,114, 40,101,120,112,114, 46, 66, 97,115,101, 41,
3171 46, 46, 34, 91, 34, 46, 46,102,111,114,109, 97,116, 69,120,
3172 112,114, 40,101,120,112,114, 46, 73,110,100,101,120, 41, 46,
3173 46, 34, 93, 34, 10, 10, 9, 9,101,108,115,101,105,102, 32,
3174 101,120,112,114, 46, 65,115,116, 84,121,112,101, 32, 61, 61,
3175 32, 39, 77,101,109, 98,101,114, 69,120,112,114, 39, 32,116,
3176 104,101,110, 10, 9, 9, 9,111,117,116, 32, 61, 32,111,117,
3177 116, 46, 46,102,111,114,109, 97,116, 69,120,112,114, 40,101,
3178 120,112,114, 46, 66, 97,115,101, 41, 46, 46,101,120,112,114,
3179 46, 73,110,100,101,120,101,114, 46, 46,101,120,112,114, 46,
3180 73,100,101,110,116, 46, 68, 97,116, 97, 10, 10, 9, 9,101,
3181 108,115,101,105,102, 32,101,120,112,114, 46, 65,115,116, 84,
3182 121,112,101, 32, 61, 61, 32, 39, 70,117,110, 99,116,105,111,
3183 110, 39, 32,116,104,101,110, 10, 9, 9, 9,101,120,112,114,
3184 46, 83, 99,111,112,101, 58, 79, 98,102,117,115, 99, 97,116,
3185 101, 86, 97,114,105, 97, 98,108,101,115, 40, 41, 10, 9, 9,
3186 9,111,117,116, 32, 61, 32,111,117,116, 46, 46, 34,102,117,
3187 110, 99,116,105,111,110, 40, 34, 10, 9, 9, 9,105,102, 32,
3188 35,101,120,112,114, 46, 65,114,103,117,109,101,110,116,115,
3189 32, 62, 32, 48, 32,116,104,101,110, 10, 9, 9, 9, 9,102,
3190 111,114, 32,105, 32, 61, 32, 49, 44, 32, 35,101,120,112,114,
3191 46, 65,114,103,117,109,101,110,116,115, 32,100,111, 10, 9,
3192 9, 9, 9, 9,111,117,116, 32, 61, 32,111,117,116, 46, 46,
3193 101,120,112,114, 46, 65,114,103,117,109,101,110,116,115, 91,
3194 105, 93, 46, 78, 97,109,101, 10, 9, 9, 9, 9, 9,105,102,
3195 32,105, 32,126, 61, 32, 35,101,120,112,114, 46, 65,114,103,
3196 117,109,101,110,116,115, 32,116,104,101,110, 10, 9, 9, 9,
3197 9, 9, 9,111,117,116, 32, 61, 32,111,117,116, 46, 46, 34,
3198 44, 34, 10, 9, 9, 9, 9, 9,101,108,115,101,105,102, 32,
3199 101,120,112,114, 46, 86, 97,114, 65,114,103, 32,116,104,101,
3200 110, 10, 9, 9, 9, 9, 9, 9,111,117,116, 32, 61, 32,111,
3201 117,116, 46, 46, 34, 44, 46, 46, 46, 34, 10, 9, 9, 9, 9,
3202 9,101,110,100, 10, 9, 9, 9, 9,101,110,100, 10, 9, 9,
3203 9,101,108,115,101,105,102, 32,101,120,112,114, 46, 86, 97,
3204 114, 65,114,103, 32,116,104,101,110, 10, 9, 9, 9, 9,111,
3205 117,116, 32, 61, 32,111,117,116, 46, 46, 34, 46, 46, 46, 34,
3206 10, 9, 9, 9,101,110,100, 10, 9, 9, 9,111,117,116, 32,
3207 61, 32,111,117,116, 46, 46, 34, 41, 34, 10, 9, 9, 9,111,
3208 117,116, 32, 61, 32,106,111,105,110, 83,116, 97,116,101,109,
3209 101,110,116,115, 83, 97,102,101, 40,111,117,116, 44, 32,102,
3210 111,114,109, 97,116, 83,116, 97,116,108,105,115,116, 40,101,
3211 120,112,114, 46, 66,111,100,121, 41, 41, 10, 9, 9, 9,111,
3212 117,116, 32, 61, 32,106,111,105,110, 83,116, 97,116,101,109,
3213 101,110,116,115, 83, 97,102,101, 40,111,117,116, 44, 32, 34,
3214 101,110,100, 34, 41, 10, 10, 9, 9,101,108,115,101,105,102,
3215 32,101,120,112,114, 46, 65,115,116, 84,121,112,101, 32, 61,
3216 61, 32, 39, 67,111,110,115,116,114,117, 99,116,111,114, 69,
3217 120,112,114, 39, 32,116,104,101,110, 10, 9, 9, 9,111,117,
3218 116, 32, 61, 32,111,117,116, 46, 46, 34,123, 34, 10, 9, 9,
3219 9,102,111,114, 32,105, 32, 61, 32, 49, 44, 32, 35,101,120,
3220 112,114, 46, 69,110,116,114,121, 76,105,115,116, 32,100,111,
3221 10, 9, 9, 9, 9,108,111, 99, 97,108, 32,101,110,116,114,
3222 121, 32, 61, 32,101,120,112,114, 46, 69,110,116,114,121, 76,
3223 105,115,116, 91,105, 93, 10, 9, 9, 9, 9,105,102, 32,101,
3224 110,116,114,121, 46, 84,121,112,101, 32, 61, 61, 32, 39, 75,
3225 101,121, 39, 32,116,104,101,110, 10, 9, 9, 9, 9, 9,111,
3226 117,116, 32, 61, 32,111,117,116, 46, 46, 34, 91, 34, 46, 46,
3227 102,111,114,109, 97,116, 69,120,112,114, 40,101,110,116,114,
3228 121, 46, 75,101,121, 41, 46, 46, 34, 93, 61, 34, 46, 46,102,
3229 111,114,109, 97,116, 69,120,112,114, 40,101,110,116,114,121,
3230 46, 86, 97,108,117,101, 41, 10, 9, 9, 9, 9,101,108,115,
3231 101,105,102, 32,101,110,116,114,121, 46, 84,121,112,101, 32,
3232 61, 61, 32, 39, 86, 97,108,117,101, 39, 32,116,104,101,110,
3233 10, 9, 9, 9, 9, 9,111,117,116, 32, 61, 32,111,117,116,
3234 46, 46,102,111,114,109, 97,116, 69,120,112,114, 40,101,110,
3235 116,114,121, 46, 86, 97,108,117,101, 41, 10, 9, 9, 9, 9,
3236 101,108,115,101,105,102, 32,101,110,116,114,121, 46, 84,121,
3237 112,101, 32, 61, 61, 32, 39, 75,101,121, 83,116,114,105,110,
3238 103, 39, 32,116,104,101,110, 10, 9, 9, 9, 9, 9,111,117,
3239 116, 32, 61, 32,111,117,116, 46, 46,101,110,116,114,121, 46,
3240 75,101,121, 46, 46, 34, 61, 34, 46, 46,102,111,114,109, 97,
3241 116, 69,120,112,114, 40,101,110,116,114,121, 46, 86, 97,108,
3242 117,101, 41, 10, 9, 9, 9, 9,101,110,100, 10, 9, 9, 9,
3243 9,105,102, 32,105, 32,126, 61, 32, 35,101,120,112,114, 46,
3244 69,110,116,114,121, 76,105,115,116, 32,116,104,101,110, 10,
3245 9, 9, 9, 9, 9,111,117,116, 32, 61, 32,111,117,116, 46,
3246 46, 34, 44, 34, 10, 9, 9, 9, 9,101,110,100, 10, 9, 9,
3247 9,101,110,100, 10, 9, 9, 9,111,117,116, 32, 61, 32,111,
3248 117,116, 46, 46, 34,125, 34, 10, 10, 9, 9,101,108,115,101,
3249 105,102, 32,101,120,112,114, 46, 65,115,116, 84,121,112,101,
3250 32, 61, 61, 32, 39, 80, 97,114,101,110,116,104,101,115,101,
3251 115, 39, 32,116,104,101,110, 10, 9, 9, 9,111,117,116, 32,
3252 61, 32,111,117,116, 46, 46, 34, 40, 34, 46, 46,102,111,114,
3253 109, 97,116, 69,120,112,114, 40,101,120,112,114, 46, 73,110,
3254 110,101,114, 41, 46, 46, 34, 41, 34, 10, 10, 9, 9,101,110,
3255 100, 10, 9, 9, 45, 45,112,114,105,110,116, 40, 34, 62, 62,
3256 34, 44, 32,115,107,105,112, 80, 97,114,101,110,115, 44, 32,
3257 101,120,112,114, 46, 80, 97,114,101,110, 67,111,117,110,116,
3258 44, 32,111,117,116, 41, 10, 9, 9,105,102, 32,110,111,116,
3259 32,115,107,105,112, 80, 97,114,101,110,115, 32,116,104,101,
3260 110, 10, 9, 9, 9, 45, 45,112,114,105,110,116, 40, 34,104,
3261 101,104,101, 34, 41, 10, 9, 9, 9,111,117,116, 32, 61, 32,
3262 115,116,114,105,110,103, 46,114,101,112, 40, 39, 40, 39, 44,
3263 32,101,120,112,114, 46, 80, 97,114,101,110, 67,111,117,110,
3264 116, 32,111,114, 32, 48, 41, 32, 46, 46, 32,111,117,116, 10,
3265 9, 9, 9,111,117,116, 32, 61, 32,111,117,116, 32, 46, 46,
3266 32,115,116,114,105,110,103, 46,114,101,112, 40, 39, 41, 39,
3267 44, 32,101,120,112,114, 46, 80, 97,114,101,110, 67,111,117,
3268 110,116, 32,111,114, 32, 48, 41, 10, 9, 9, 9, 45, 45,112,
3269 114,105,110,116, 40, 34, 34, 44, 32,111,117,116, 41, 10, 9,
3270 9,101,110,100, 10, 9, 9, 45, 45, 99,111,117,110,116, 32,
3271 61, 32, 99,111,117,110,116, 32, 43, 32, 35,111,117,116, 10,
3272 9, 9,114,101,116,117,114,110, 32, 45, 45, 91, 91,112,114,
3273 105,110,116, 40,111,117,116, 41, 32,111,114, 93, 93, 32,111,
3274 117,116, 10, 9,101,110,100, 10, 10, 9,108,111, 99, 97,108,
3275 32,102,111,114,109, 97,116, 83,116, 97,116,101,109,101,110,
3276 116, 32, 61, 32,102,117,110, 99,116,105,111,110, 40,115,116,
3277 97,116,101,109,101,110,116, 41, 10, 9, 9,108,111, 99, 97,
3278 108, 32,111,117,116, 32, 61, 32, 39, 39, 10, 9, 9,105,102,
3279 32,115,116, 97,116,101,109,101,110,116, 46, 65,115,116, 84,
3280 121,112,101, 32, 61, 61, 32, 39, 65,115,115,105,103,110,109,
3281 101,110,116, 83,116, 97,116,101,109,101,110,116, 39, 32,116,
3282 104,101,110, 10, 9, 9, 9,102,111,114, 32,105, 32, 61, 32,
3283 49, 44, 32, 35,115,116, 97,116,101,109,101,110,116, 46, 76,
3284 104,115, 32,100,111, 10, 9, 9, 9, 9,111,117,116, 32, 61,
3285 32,111,117,116, 46, 46,102,111,114,109, 97,116, 69,120,112,
3286 114, 40,115,116, 97,116,101,109,101,110,116, 46, 76,104,115,
3287 91,105, 93, 41, 10, 9, 9, 9, 9,105,102, 32,105, 32,126,
3288 61, 32, 35,115,116, 97,116,101,109,101,110,116, 46, 76,104,
3289 115, 32,116,104,101,110, 10, 9, 9, 9, 9, 9,111,117,116,
3290 32, 61, 32,111,117,116, 46, 46, 34, 44, 34, 10, 9, 9, 9,
3291 9,101,110,100, 10, 9, 9, 9,101,110,100, 10, 9, 9, 9,
3292 105,102, 32, 35,115,116, 97,116,101,109,101,110,116, 46, 82,
3293 104,115, 32, 62, 32, 48, 32,116,104,101,110, 10, 9, 9, 9,
3294 9,111,117,116, 32, 61, 32,111,117,116, 46, 46, 34, 61, 34,
3295 10, 9, 9, 9, 9,102,111,114, 32,105, 32, 61, 32, 49, 44,
3296 32, 35,115,116, 97,116,101,109,101,110,116, 46, 82,104,115,
3297 32,100,111, 10, 9, 9, 9, 9, 9,111,117,116, 32, 61, 32,
3298 111,117,116, 46, 46,102,111,114,109, 97,116, 69,120,112,114,
3299 40,115,116, 97,116,101,109,101,110,116, 46, 82,104,115, 91,
3300 105, 93, 41, 10, 9, 9, 9, 9, 9,105,102, 32,105, 32,126,
3301 61, 32, 35,115,116, 97,116,101,109,101,110,116, 46, 82,104,
3302 115, 32,116,104,101,110, 10, 9, 9, 9, 9, 9, 9,111,117,
3303 116, 32, 61, 32,111,117,116, 46, 46, 34, 44, 34, 10, 9, 9,
3304 9, 9, 9,101,110,100, 10, 9, 9, 9, 9,101,110,100, 10,
3305 9, 9, 9,101,110,100, 10, 10, 9, 9,101,108,115,101,105,
3306 102, 32,115,116, 97,116,101,109,101,110,116, 46, 65,115,116,
3307 84,121,112,101, 32, 61, 61, 32, 39, 67, 97,108,108, 83,116,
3308 97,116,101,109,101,110,116, 39, 32,116,104,101,110, 10, 9,
3309 9, 9,111,117,116, 32, 61, 32,102,111,114,109, 97,116, 69,
3310 120,112,114, 40,115,116, 97,116,101,109,101,110,116, 46, 69,
3311 120,112,114,101,115,115,105,111,110, 41, 10, 10, 9, 9,101,
3312 108,115,101,105,102, 32,115,116, 97,116,101,109,101,110,116,
3313 46, 65,115,116, 84,121,112,101, 32, 61, 61, 32, 39, 76,111,
3314 99, 97,108, 83,116, 97,116,101,109,101,110,116, 39, 32,116,
3315 104,101,110, 10, 9, 9, 9,111,117,116, 32, 61, 32,111,117,
3316 116, 46, 46, 34,108,111, 99, 97,108, 32, 34, 10, 9, 9, 9,
3317 102,111,114, 32,105, 32, 61, 32, 49, 44, 32, 35,115,116, 97,
3318 116,101,109,101,110,116, 46, 76,111, 99, 97,108, 76,105,115,
3319 116, 32,100,111, 10, 9, 9, 9, 9,111,117,116, 32, 61, 32,
3320 111,117,116, 46, 46,115,116, 97,116,101,109,101,110,116, 46,
3321 76,111, 99, 97,108, 76,105,115,116, 91,105, 93, 46, 78, 97,
3322 109,101, 10, 9, 9, 9, 9,105,102, 32,115,116, 97,116,101,
3323 109,101,110,116, 46, 65,116,116,114, 76,105,115,116, 91,105,
3324 93, 32,116,104,101,110, 10, 9, 9, 9, 9, 9,111,117,116,
3325 32, 61, 32,111,117,116, 46, 46, 34, 60, 34, 46, 46,115,116,
3326 97,116,101,109,101,110,116, 46, 65,116,116,114, 76,105,115,
3327 116, 91,105, 93, 46, 46, 34, 62, 34, 10, 9, 9, 9, 9, 9,
3328 105,102, 32,105, 32, 61, 61, 32, 35,115,116, 97,116,101,109,
3329 101,110,116, 46, 76,111, 99, 97,108, 76,105,115,116, 32,116,
3330 104,101,110, 10, 9, 9, 9, 9, 9, 9,111,117,116, 32, 61,
3331 32,111,117,116, 46, 46, 34, 32, 34, 10, 9, 9, 9, 9, 9,
3332 101,110,100, 10, 9, 9, 9, 9,101,110,100, 10, 9, 9, 9,
3333 9,105,102, 32,105, 32,126, 61, 32, 35,115,116, 97,116,101,
3334 109,101,110,116, 46, 76,111, 99, 97,108, 76,105,115,116, 32,
3335 116,104,101,110, 10, 9, 9, 9, 9, 9,111,117,116, 32, 61,
3336 32,111,117,116, 46, 46, 34, 44, 34, 10, 9, 9, 9, 9,101,
3337 110,100, 10, 9, 9, 9,101,110,100, 10, 9, 9, 9,105,102,
3338 32, 35,115,116, 97,116,101,109,101,110,116, 46, 73,110,105,
3339 116, 76,105,115,116, 32, 62, 32, 48, 32,116,104,101,110, 10,
3340 9, 9, 9, 9,111,117,116, 32, 61, 32,111,117,116, 46, 46,
3341 34, 61, 34, 10, 9, 9, 9, 9,102,111,114, 32,105, 32, 61,
3342 32, 49, 44, 32, 35,115,116, 97,116,101,109,101,110,116, 46,
3343 73,110,105,116, 76,105,115,116, 32,100,111, 10, 9, 9, 9,
3344 9, 9,111,117,116, 32, 61, 32,111,117,116, 46, 46,102,111,
3345 114,109, 97,116, 69,120,112,114, 40,115,116, 97,116,101,109,
3346 101,110,116, 46, 73,110,105,116, 76,105,115,116, 91,105, 93,
3347 41, 10, 9, 9, 9, 9, 9,105,102, 32,105, 32,126, 61, 32,
3348 35,115,116, 97,116,101,109,101,110,116, 46, 73,110,105,116,
3349 76,105,115,116, 32,116,104,101,110, 10, 9, 9, 9, 9, 9,
3350 9,111,117,116, 32, 61, 32,111,117,116, 46, 46, 34, 44, 34,
3351 10, 9, 9, 9, 9, 9,101,110,100, 10, 9, 9, 9, 9,101,
3352 110,100, 10, 9, 9, 9,101,110,100, 10, 10, 9, 9,101,108,
3353 115,101,105,102, 32,115,116, 97,116,101,109,101,110,116, 46,
3354 65,115,116, 84,121,112,101, 32, 61, 61, 32, 39, 73,102, 83,
3355 116, 97,116,101,109,101,110,116, 39, 32,116,104,101,110, 10,
3356 9, 9, 9,111,117,116, 32, 61, 32,106,111,105,110, 83,116,
3357 97,116,101,109,101,110,116,115, 83, 97,102,101, 40, 34,105,
3358 102, 34, 44, 32,102,111,114,109, 97,116, 69,120,112,114, 40,
3359 115,116, 97,116,101,109,101,110,116, 46, 67,108, 97,117,115,
3360 101,115, 91, 49, 93, 46, 67,111,110,100,105,116,105,111,110,
3361 41, 41, 10, 9, 9, 9,111,117,116, 32, 61, 32,106,111,105,
3362 110, 83,116, 97,116,101,109,101,110,116,115, 83, 97,102,101,
3363 40,111,117,116, 44, 32, 34,116,104,101,110, 34, 41, 10, 9,
3364 9, 9,111,117,116, 32, 61, 32,106,111,105,110, 83,116, 97,
3365 116,101,109,101,110,116,115, 83, 97,102,101, 40,111,117,116,
3366 44, 32,102,111,114,109, 97,116, 83,116, 97,116,108,105,115,
3367 116, 40,115,116, 97,116,101,109,101,110,116, 46, 67,108, 97,
3368 117,115,101,115, 91, 49, 93, 46, 66,111,100,121, 41, 41, 10,
3369 9, 9, 9,102,111,114, 32,105, 32, 61, 32, 50, 44, 32, 35,
3370 115,116, 97,116,101,109,101,110,116, 46, 67,108, 97,117,115,
3371 101,115, 32,100,111, 10, 9, 9, 9, 9,108,111, 99, 97,108,
3372 32,115,116, 32, 61, 32,115,116, 97,116,101,109,101,110,116,
3373 46, 67,108, 97,117,115,101,115, 91,105, 93, 10, 9, 9, 9,
3374 9,105,102, 32,115,116, 46, 67,111,110,100,105,116,105,111,
3375 110, 32,116,104,101,110, 10, 9, 9, 9, 9, 9,111,117,116,
3376 32, 61, 32,106,111,105,110, 83,116, 97,116,101,109,101,110,
3377 116,115, 83, 97,102,101, 40,111,117,116, 44, 32, 34,101,108,
3378 115,101,105,102, 34, 41, 10, 9, 9, 9, 9, 9,111,117,116,
3379 32, 61, 32,106,111,105,110, 83,116, 97,116,101,109,101,110,
3380 116,115, 83, 97,102,101, 40,111,117,116, 44, 32,102,111,114,
3381 109, 97,116, 69,120,112,114, 40,115,116, 46, 67,111,110,100,
3382 105,116,105,111,110, 41, 41, 10, 9, 9, 9, 9, 9,111,117,
3383 116, 32, 61, 32,106,111,105,110, 83,116, 97,116,101,109,101,
3384 110,116,115, 83, 97,102,101, 40,111,117,116, 44, 32, 34,116,
3385 104,101,110, 34, 41, 10, 9, 9, 9, 9,101,108,115,101, 10,
3386 9, 9, 9, 9, 9,111,117,116, 32, 61, 32,106,111,105,110,
3387 83,116, 97,116,101,109,101,110,116,115, 83, 97,102,101, 40,
3388 111,117,116, 44, 32, 34,101,108,115,101, 34, 41, 10, 9, 9,
3389 9, 9,101,110,100, 10, 9, 9, 9, 9,111,117,116, 32, 61,
3390 32,106,111,105,110, 83,116, 97,116,101,109,101,110,116,115,
3391 83, 97,102,101, 40,111,117,116, 44, 32,102,111,114,109, 97,
3392 116, 83,116, 97,116,108,105,115,116, 40,115,116, 46, 66,111,
3393 100,121, 41, 41, 10, 9, 9, 9,101,110,100, 10, 9, 9, 9,
3394 111,117,116, 32, 61, 32,106,111,105,110, 83,116, 97,116,101,
3395 109,101,110,116,115, 83, 97,102,101, 40,111,117,116, 44, 32,
3396 34,101,110,100, 34, 41, 10, 10, 9, 9,101,108,115,101,105,
3397 102, 32,115,116, 97,116,101,109,101,110,116, 46, 65,115,116,
3398 84,121,112,101, 32, 61, 61, 32, 39, 87,104,105,108,101, 83,
3399 116, 97,116,101,109,101,110,116, 39, 32,116,104,101,110, 10,
3400 9, 9, 9,111,117,116, 32, 61, 32,106,111,105,110, 83,116,
3401 97,116,101,109,101,110,116,115, 83, 97,102,101, 40, 34,119,
3402 104,105,108,101, 34, 44, 32,102,111,114,109, 97,116, 69,120,
3403 112,114, 40,115,116, 97,116,101,109,101,110,116, 46, 67,111,
3404 110,100,105,116,105,111,110, 41, 41, 10, 9, 9, 9,111,117,
3405 116, 32, 61, 32,106,111,105,110, 83,116, 97,116,101,109,101,
3406 110,116,115, 83, 97,102,101, 40,111,117,116, 44, 32, 34,100,
3407 111, 34, 41, 10, 9, 9, 9,111,117,116, 32, 61, 32,106,111,
3408 105,110, 83,116, 97,116,101,109,101,110,116,115, 83, 97,102,
3409 101, 40,111,117,116, 44, 32,102,111,114,109, 97,116, 83,116,
3410 97,116,108,105,115,116, 40,115,116, 97,116,101,109,101,110,
3411 116, 46, 66,111,100,121, 41, 41, 10, 9, 9, 9,111,117,116,
3412 32, 61, 32,106,111,105,110, 83,116, 97,116,101,109,101,110,
3413 116,115, 83, 97,102,101, 40,111,117,116, 44, 32, 34,101,110,
3414 100, 34, 41, 10, 10, 9, 9,101,108,115,101,105,102, 32,115,
3415 116, 97,116,101,109,101,110,116, 46, 65,115,116, 84,121,112,
3416 101, 32, 61, 61, 32, 39, 68,111, 83,116, 97,116,101,109,101,
3417 110,116, 39, 32,116,104,101,110, 10, 9, 9, 9,111,117,116,
3418 32, 61, 32,106,111,105,110, 83,116, 97,116,101,109,101,110,
3419 116,115, 83, 97,102,101, 40,111,117,116, 44, 32, 34,100,111,
3420 34, 41, 10, 9, 9, 9,111,117,116, 32, 61, 32,106,111,105,
3421 110, 83,116, 97,116,101,109,101,110,116,115, 83, 97,102,101,
3422 40,111,117,116, 44, 32,102,111,114,109, 97,116, 83,116, 97,
3423 116,108,105,115,116, 40,115,116, 97,116,101,109,101,110,116,
3424 46, 66,111,100,121, 41, 41, 10, 9, 9, 9,111,117,116, 32,
3425 61, 32,106,111,105,110, 83,116, 97,116,101,109,101,110,116,
3426 115, 83, 97,102,101, 40,111,117,116, 44, 32, 34,101,110,100,
3427 34, 41, 10, 10, 9, 9,101,108,115,101,105,102, 32,115,116,
3428 97,116,101,109,101,110,116, 46, 65,115,116, 84,121,112,101,
3429 32, 61, 61, 32, 39, 82,101,116,117,114,110, 83,116, 97,116,
3430 101,109,101,110,116, 39, 32,116,104,101,110, 10, 9, 9, 9,
3431 111,117,116, 32, 61, 32, 34,114,101,116,117,114,110, 34, 10,
3432 9, 9, 9,102,111,114, 32,105, 32, 61, 32, 49, 44, 32, 35,
3433 115,116, 97,116,101,109,101,110,116, 46, 65,114,103,117,109,
3434 101,110,116,115, 32,100,111, 10, 9, 9, 9, 9,111,117,116,
3435 32, 61, 32,106,111,105,110, 83,116, 97,116,101,109,101,110,
3436 116,115, 83, 97,102,101, 40,111,117,116, 44, 32,102,111,114,
3437 109, 97,116, 69,120,112,114, 40,115,116, 97,116,101,109,101,
3438 110,116, 46, 65,114,103,117,109,101,110,116,115, 91,105, 93,
3439 41, 41, 10, 9, 9, 9, 9,105,102, 32,105, 32,126, 61, 32,
3440 35,115,116, 97,116,101,109,101,110,116, 46, 65,114,103,117,
3441 109,101,110,116,115, 32,116,104,101,110, 10, 9, 9, 9, 9,
3442 9,111,117,116, 32, 61, 32,111,117,116, 46, 46, 34, 44, 34,
3443 10, 9, 9, 9, 9,101,110,100, 10, 9, 9, 9,101,110,100,
3444 10, 10, 9, 9,101,108,115,101,105,102, 32,115,116, 97,116,
3445 101,109,101,110,116, 46, 65,115,116, 84,121,112,101, 32, 61,
3446 61, 32, 39, 66,114,101, 97,107, 83,116, 97,116,101,109,101,
3447 110,116, 39, 32,116,104,101,110, 10, 9, 9, 9,111,117,116,
3448 32, 61, 32, 34, 98,114,101, 97,107, 34, 10, 10, 9, 9,101,
3449 108,115,101,105,102, 32,115,116, 97,116,101,109,101,110,116,
3450 46, 65,115,116, 84,121,112,101, 32, 61, 61, 32, 39, 82,101,
3451 112,101, 97,116, 83,116, 97,116,101,109,101,110,116, 39, 32,
3452 116,104,101,110, 10, 9, 9, 9,111,117,116, 32, 61, 32, 34,
3453 114,101,112,101, 97,116, 34, 10, 9, 9, 9,111,117,116, 32,
3454 61, 32,106,111,105,110, 83,116, 97,116,101,109,101,110,116,
3455 115, 83, 97,102,101, 40,111,117,116, 44, 32,102,111,114,109,
3456 97,116, 83,116, 97,116,108,105,115,116, 40,115,116, 97,116,
3457 101,109,101,110,116, 46, 66,111,100,121, 41, 41, 10, 9, 9,
3458 9,111,117,116, 32, 61, 32,106,111,105,110, 83,116, 97,116,
3459 101,109,101,110,116,115, 83, 97,102,101, 40,111,117,116, 44,
3460 32, 34,117,110,116,105,108, 34, 41, 10, 9, 9, 9,111,117,
3461 116, 32, 61, 32,106,111,105,110, 83,116, 97,116,101,109,101,
3462 110,116,115, 83, 97,102,101, 40,111,117,116, 44, 32,102,111,
3463 114,109, 97,116, 69,120,112,114, 40,115,116, 97,116,101,109,
3464 101,110,116, 46, 67,111,110,100,105,116,105,111,110, 41, 41,
3465 10, 10, 9, 9,101,108,115,101,105,102, 32,115,116, 97,116,
3466 101,109,101,110,116, 46, 65,115,116, 84,121,112,101, 32, 61,
3467 61, 32, 39, 70,117,110, 99,116,105,111,110, 39, 32,116,104,
3468 101,110, 10, 9, 9, 9,115,116, 97,116,101,109,101,110,116,
3469 46, 83, 99,111,112,101, 58, 79, 98,102,117,115, 99, 97,116,
3470 101, 86, 97,114,105, 97, 98,108,101,115, 40, 41, 10, 9, 9,
3471 9,105,102, 32,115,116, 97,116,101,109,101,110,116, 46, 73,
3472 115, 76,111, 99, 97,108, 32,116,104,101,110, 10, 9, 9, 9,
3473 9,111,117,116, 32, 61, 32, 34,108,111, 99, 97,108, 34, 10,
3474 9, 9, 9,101,110,100, 10, 9, 9, 9,111,117,116, 32, 61,
3475 32,106,111,105,110, 83,116, 97,116,101,109,101,110,116,115,
3476 83, 97,102,101, 40,111,117,116, 44, 32, 34,102,117,110, 99,
3477 116,105,111,110, 32, 34, 41, 10, 9, 9, 9,105,102, 32,115,
3478 116, 97,116,101,109,101,110,116, 46, 73,115, 76,111, 99, 97,
3479 108, 32,116,104,101,110, 10, 9, 9, 9, 9,111,117,116, 32,
3480 61, 32,111,117,116, 46, 46,115,116, 97,116,101,109,101,110,
3481 116, 46, 78, 97,109,101, 46, 78, 97,109,101, 10, 9, 9, 9,
3482 101,108,115,101, 10, 9, 9, 9, 9,111,117,116, 32, 61, 32,
3483 111,117,116, 46, 46,102,111,114,109, 97,116, 69,120,112,114,
3484 40,115,116, 97,116,101,109,101,110,116, 46, 78, 97,109,101,
3485 41, 10, 9, 9, 9,101,110,100, 10, 9, 9, 9,111,117,116,
3486 32, 61, 32,111,117,116, 46, 46, 34, 40, 34, 10, 9, 9, 9,
3487 105,102, 32, 35,115,116, 97,116,101,109,101,110,116, 46, 65,
3488 114,103,117,109,101,110,116,115, 32, 62, 32, 48, 32,116,104,
3489 101,110, 10, 9, 9, 9, 9,102,111,114, 32,105, 32, 61, 32,
3490 49, 44, 32, 35,115,116, 97,116,101,109,101,110,116, 46, 65,
3491 114,103,117,109,101,110,116,115, 32,100,111, 10, 9, 9, 9,
3492 9, 9,111,117,116, 32, 61, 32,111,117,116, 46, 46,115,116,
3493 97,116,101,109,101,110,116, 46, 65,114,103,117,109,101,110,
3494 116,115, 91,105, 93, 46, 78, 97,109,101, 10, 9, 9, 9, 9,
3495 9,105,102, 32,105, 32,126, 61, 32, 35,115,116, 97,116,101,
3496 109,101,110,116, 46, 65,114,103,117,109,101,110,116,115, 32,
3497 116,104,101,110, 10, 9, 9, 9, 9, 9, 9,111,117,116, 32,
3498 61, 32,111,117,116, 46, 46, 34, 44, 34, 10, 9, 9, 9, 9,
3499 9,101,108,115,101,105,102, 32,115,116, 97,116,101,109,101,
3500 110,116, 46, 86, 97,114, 65,114,103, 32,116,104,101,110, 10,
3501 9, 9, 9, 9, 9, 9, 45, 45,112,114,105,110,116, 40, 34,
3502 65,112,112,108,121, 32,118, 97,114, 97,114,103, 34, 41, 10,
3503 9, 9, 9, 9, 9, 9,111,117,116, 32, 61, 32,111,117,116,
3504 46, 46, 34, 44, 46, 46, 46, 34, 10, 9, 9, 9, 9, 9,101,
3505 110,100, 10, 9, 9, 9, 9,101,110,100, 10, 9, 9, 9,101,
3506 108,115,101,105,102, 32,115,116, 97,116,101,109,101,110,116,
3507 46, 86, 97,114, 65,114,103, 32,116,104,101,110, 10, 9, 9,
3508 9, 9,111,117,116, 32, 61, 32,111,117,116, 46, 46, 34, 46,
3509 46, 46, 34, 10, 9, 9, 9,101,110,100, 10, 9, 9, 9,111,
3510 117,116, 32, 61, 32,111,117,116, 46, 46, 34, 41, 34, 10, 9,
3511 9, 9,111,117,116, 32, 61, 32,106,111,105,110, 83,116, 97,
3512 116,101,109,101,110,116,115, 83, 97,102,101, 40,111,117,116,
3513 44, 32,102,111,114,109, 97,116, 83,116, 97,116,108,105,115,
3514 116, 40,115,116, 97,116,101,109,101,110,116, 46, 66,111,100,
3515 121, 41, 41, 10, 9, 9, 9,111,117,116, 32, 61, 32,106,111,
3516 105,110, 83,116, 97,116,101,109,101,110,116,115, 83, 97,102,
3517 101, 40,111,117,116, 44, 32, 34,101,110,100, 34, 41, 10, 10,
3518 9, 9,101,108,115,101,105,102, 32,115,116, 97,116,101,109,
3519 101,110,116, 46, 65,115,116, 84,121,112,101, 32, 61, 61, 32,
3520 39, 71,101,110,101,114,105, 99, 70,111,114, 83,116, 97,116,
3521 101,109,101,110,116, 39, 32,116,104,101,110, 10, 9, 9, 9,
3522 115,116, 97,116,101,109,101,110,116, 46, 83, 99,111,112,101,
3523 58, 79, 98,102,117,115, 99, 97,116,101, 86, 97,114,105, 97,
3524 98,108,101,115, 40, 41, 10, 9, 9, 9,111,117,116, 32, 61,
3525 32, 34,102,111,114, 32, 34, 10, 9, 9, 9,102,111,114, 32,
3526 105, 32, 61, 32, 49, 44, 32, 35,115,116, 97,116,101,109,101,
3527 110,116, 46, 86, 97,114,105, 97, 98,108,101, 76,105,115,116,
3528 32,100,111, 10, 9, 9, 9, 9,111,117,116, 32, 61, 32,111,
3529 117,116, 46, 46,115,116, 97,116,101,109,101,110,116, 46, 86,
3530 97,114,105, 97, 98,108,101, 76,105,115,116, 91,105, 93, 46,
3531 78, 97,109,101, 10, 9, 9, 9, 9,105,102, 32,105, 32,126,
3532 61, 32, 35,115,116, 97,116,101,109,101,110,116, 46, 86, 97,
3533 114,105, 97, 98,108,101, 76,105,115,116, 32,116,104,101,110,
3534 10, 9, 9, 9, 9, 9,111,117,116, 32, 61, 32,111,117,116,
3535 46, 46, 34, 44, 34, 10, 9, 9, 9, 9,101,110,100, 10, 9,
3536 9, 9,101,110,100, 10, 9, 9, 9,111,117,116, 32, 61, 32,
3537 111,117,116, 46, 46, 34, 32,105,110, 34, 10, 9, 9, 9,102,
3538 111,114, 32,105, 32, 61, 32, 49, 44, 32, 35,115,116, 97,116,
3539 101,109,101,110,116, 46, 71,101,110,101,114, 97,116,111,114,
3540 115, 32,100,111, 10, 9, 9, 9, 9,111,117,116, 32, 61, 32,
3541 106,111,105,110, 83,116, 97,116,101,109,101,110,116,115, 83,
3542 97,102,101, 40,111,117,116, 44, 32,102,111,114,109, 97,116,
3543 69,120,112,114, 40,115,116, 97,116,101,109,101,110,116, 46,
3544 71,101,110,101,114, 97,116,111,114,115, 91,105, 93, 41, 41,
3545 10, 9, 9, 9, 9,105,102, 32,105, 32,126, 61, 32, 35,115,
3546 116, 97,116,101,109,101,110,116, 46, 71,101,110,101,114, 97,
3547 116,111,114,115, 32,116,104,101,110, 10, 9, 9, 9, 9, 9,
3548 111,117,116, 32, 61, 32,106,111,105,110, 83,116, 97,116,101,
3549 109,101,110,116,115, 83, 97,102,101, 40,111,117,116, 44, 32,
3550 39, 44, 39, 41, 10, 9, 9, 9, 9,101,110,100, 10, 9, 9,
3551 9,101,110,100, 10, 9, 9, 9,111,117,116, 32, 61, 32,106,
3552 111,105,110, 83,116, 97,116,101,109,101,110,116,115, 83, 97,
3553 102,101, 40,111,117,116, 44, 32, 34,100,111, 34, 41, 10, 9,
3554 9, 9,111,117,116, 32, 61, 32,106,111,105,110, 83,116, 97,
3555 116,101,109,101,110,116,115, 83, 97,102,101, 40,111,117,116,
3556 44, 32,102,111,114,109, 97,116, 83,116, 97,116,108,105,115,
3557 116, 40,115,116, 97,116,101,109,101,110,116, 46, 66,111,100,
3558 121, 41, 41, 10, 9, 9, 9,111,117,116, 32, 61, 32,106,111,
3559 105,110, 83,116, 97,116,101,109,101,110,116,115, 83, 97,102,
3560 101, 40,111,117,116, 44, 32, 34,101,110,100, 34, 41, 10, 10,
3561 9, 9,101,108,115,101,105,102, 32,115,116, 97,116,101,109,
3562 101,110,116, 46, 65,115,116, 84,121,112,101, 32, 61, 61, 32,
3563 39, 78,117,109,101,114,105, 99, 70,111,114, 83,116, 97,116,
3564 101,109,101,110,116, 39, 32,116,104,101,110, 10, 9, 9, 9,
3565 115,116, 97,116,101,109,101,110,116, 46, 83, 99,111,112,101,
3566 58, 79, 98,102,117,115, 99, 97,116,101, 86, 97,114,105, 97,
3567 98,108,101,115, 40, 41, 10, 9, 9, 9,111,117,116, 32, 61,
3568 32, 34,102,111,114, 32, 34, 10, 9, 9, 9,111,117,116, 32,
3569 61, 32,111,117,116, 46, 46,115,116, 97,116,101,109,101,110,
3570 116, 46, 86, 97,114,105, 97, 98,108,101, 46, 78, 97,109,101,
3571 46, 46, 34, 61, 34, 10, 9, 9, 9,111,117,116, 32, 61, 32,
3572 111,117,116, 46, 46,102,111,114,109, 97,116, 69,120,112,114,
3573 40,115,116, 97,116,101,109,101,110,116, 46, 83,116, 97,114,
3574 116, 41, 46, 46, 34, 44, 34, 46, 46,102,111,114,109, 97,116,
3575 69,120,112,114, 40,115,116, 97,116,101,109,101,110,116, 46,
3576 69,110,100, 41, 10, 9, 9, 9,105,102, 32,115,116, 97,116,
3577 101,109,101,110,116, 46, 83,116,101,112, 32,116,104,101,110,
3578 10, 9, 9, 9, 9,111,117,116, 32, 61, 32,111,117,116, 46,
3579 46, 34, 44, 34, 46, 46,102,111,114,109, 97,116, 69,120,112,
3580 114, 40,115,116, 97,116,101,109,101,110,116, 46, 83,116,101,
3581 112, 41, 10, 9, 9, 9,101,110,100, 10, 9, 9, 9,111,117,
3582 116, 32, 61, 32,106,111,105,110, 83,116, 97,116,101,109,101,
3583 110,116,115, 83, 97,102,101, 40,111,117,116, 44, 32, 34,100,
3584 111, 34, 41, 10, 9, 9, 9,111,117,116, 32, 61, 32,106,111,
3585 105,110, 83,116, 97,116,101,109,101,110,116,115, 83, 97,102,
3586 101, 40,111,117,116, 44, 32,102,111,114,109, 97,116, 83,116,
3587 97,116,108,105,115,116, 40,115,116, 97,116,101,109,101,110,
3588 116, 46, 66,111,100,121, 41, 41, 10, 9, 9, 9,111,117,116,
3589 32, 61, 32,106,111,105,110, 83,116, 97,116,101,109,101,110,
3590 116,115, 83, 97,102,101, 40,111,117,116, 44, 32, 34,101,110,
3591 100, 34, 41, 10, 9, 9,101,108,115,101,105,102, 32,115,116,
3592 97,116,101,109,101,110,116, 46, 65,115,116, 84,121,112,101,
3593 32, 61, 61, 32, 39, 76, 97, 98,101,108, 83,116, 97,116,101,
3594 109,101,110,116, 39, 32,116,104,101,110, 10, 9, 9, 9,111,
3595 117,116, 32, 61, 32,106,111,105,110, 83,116, 97,116,101,109,
3596 101,110,116,115, 83, 97,102,101, 40,111,117,116, 44, 32, 34,
3597 58, 58, 34, 32, 46, 46, 32,115,116, 97,116,101,109,101,110,
3598 116, 46, 76, 97, 98,101,108, 32, 46, 46, 32, 34, 58, 58, 34,
3599 41, 10, 9, 9,101,108,115,101,105,102, 32,115,116, 97,116,
3600 101,109,101,110,116, 46, 65,115,116, 84,121,112,101, 32, 61,
3601 61, 32, 39, 71,111,116,111, 83,116, 97,116,101,109,101,110,
3602 116, 39, 32,116,104,101,110, 10, 9, 9, 9,111,117,116, 32,
3603 61, 32,106,111,105,110, 83,116, 97,116,101,109,101,110,116,
3604 115, 83, 97,102,101, 40,111,117,116, 44, 32, 34,103,111,116,
3605 111, 32, 34, 32, 46, 46, 32,115,116, 97,116,101,109,101,110,
3606 116, 46, 76, 97, 98,101,108, 41, 10, 9, 9,101,108,115,101,
3607 105,102, 32,115,116, 97,116,101,109,101,110,116, 46, 65,115,
3608 116, 84,121,112,101, 32, 61, 61, 32, 39, 67,111,109,109,101,
3609 110,116, 39, 32,116,104,101,110, 10, 9, 9, 9, 45, 45, 32,
3610 105,103,110,111,114,101, 10, 9, 9,101,108,115,101,105,102,
3611 32,115,116, 97,116,101,109,101,110,116, 46, 65,115,116, 84,
3612 121,112,101, 32, 61, 61, 32, 39, 69,111,102, 39, 32,116,104,
3613 101,110, 10, 9, 9, 9, 45, 45, 32,105,103,110,111,114,101,
3614 10, 9, 9,101,108,115,101, 10, 9, 9, 9,112,114,105,110,
3615 116, 40, 34, 85,110,107,110,111,119,110, 32, 65, 83, 84, 32,
3616 84,121,112,101, 58, 32, 34, 32, 46, 46, 32,115,116, 97,116,
3617 101,109,101,110,116, 46, 65,115,116, 84,121,112,101, 41, 10,
3618 9, 9,101,110,100, 10, 9, 9, 45, 45, 99,111,117,110,116,
3619 32, 61, 32, 99,111,117,110,116, 32, 43, 32, 35,111,117,116,
3620 10, 9, 9,114,101,116,117,114,110, 32,111,117,116, 10, 9,
3621 101,110,100, 10, 10, 9,102,111,114,109, 97,116, 83,116, 97,
3622 116,108,105,115,116, 32, 61, 32,102,117,110, 99,116,105,111,
3623 110, 40,115,116, 97,116, 76,105,115,116, 41, 10, 9, 9,108,
3624 111, 99, 97,108, 32,111,117,116, 32, 61, 32, 39, 39, 10, 9,
3625 9,115,116, 97,116, 76,105,115,116, 46, 83, 99,111,112,101,
3626 58, 79, 98,102,117,115, 99, 97,116,101, 86, 97,114,105, 97,
3627 98,108,101,115, 40, 41, 10, 9, 9,102,111,114, 32, 95, 44,
3628 32,115,116, 97,116, 32,105,110, 32,112, 97,105,114,115, 40,
3629 115,116, 97,116, 76,105,115,116, 46, 66,111,100,121, 41, 32,
3630 100,111, 10, 9, 9, 9,111,117,116, 32, 61, 32,106,111,105,
3631 110, 83,116, 97,116,101,109,101,110,116,115, 83, 97,102,101,
3632 40,111,117,116, 44, 32,102,111,114,109, 97,116, 83,116, 97,
3633 116,101,109,101,110,116, 40,115,116, 97,116, 41, 44, 32, 39,
3634 59, 39, 41, 10, 9, 9,101,110,100, 10, 9, 9,114,101,116,
3635 117,114,110, 32,111,117,116, 10, 9,101,110,100, 10, 10, 9,
3636 97,115,116, 46, 83, 99,111,112,101, 58, 79, 98,102,117,115,
3637 99, 97,116,101, 86, 97,114,105, 97, 98,108,101,115, 40, 41,
3638 10, 9,114,101,116,117,114,110, 32,102,111,114,109, 97,116,
3639 83,116, 97,116,108,105,115,116, 40, 97,115,116, 41, 10,101,
3640 110,100, 10, 10,108,111, 99, 97,108, 32,102,117,110, 99,116,
3641 105,111,110, 32, 70,111,114,109, 97,116, 89,117,101, 40, 97,
3642 115,116, 44, 32,108,105,110,101, 77, 97,112, 41, 10, 9,108,
3643 111, 99, 97,108, 32, 99,117,114,114,101,110,116, 76,105,110,
3644 101, 32, 61, 32, 49, 10, 9,108,111, 99, 97,108, 32,102,111,
3645 114,109, 97,116, 83,116, 97,116,108,105,115,116, 44, 32,102,
3646 111,114,109, 97,116, 69,120,112,114, 10, 10, 9,108,111, 99,
3647 97,108, 32,102,117,110, 99,116,105,111,110, 32,106,111,105,
3648 110, 83,116, 97,116,101,109,101,110,116,115, 83, 97,102,101,
3649 40,111,117,116, 44, 32, 98, 44, 32,115,101,112, 41, 10, 9,
3650 9,105,102, 32, 35,111,117,116, 32, 60, 32, 49, 32,116,104,
3651 101,110, 10, 9, 9, 9,114,101,116,117,114,110, 32, 39, 39,
3652 10, 9, 9,101,110,100, 10, 9, 9,108,111, 99, 97,108, 32,
3653 97, 97, 32, 61, 32, 39, 39, 10, 9, 9,108,111, 99, 97,108,
3654 32, 98, 49, 32, 61, 32, 98, 58,115,117, 98, 40, 49, 44, 49,
3655 41, 10, 9, 9,108,111, 99, 97,108, 32,115,112, 97, 99,101,
3656 83,101,112, 32, 61, 32, 98, 49, 32, 61, 61, 32, 39, 32, 39,
3657 32,111,114, 32, 98, 49, 32, 61, 61, 32, 39, 92,110, 39, 10,
3658 9, 9,102,111,114, 32,105, 32, 61, 32, 35,111,117,116, 44,
3659 32, 49, 44, 32, 45, 49, 32,100,111, 10, 9, 9, 9,108,111,
3660 99, 97,108, 32, 97, 32, 61, 32,111,117,116, 91,105, 93, 10,
3661 9, 9, 9,108,111, 99, 97,108, 32, 97, 49, 32, 61, 32, 97,
3662 58,115,117, 98, 40, 45, 49, 44, 45, 49, 41, 10, 9, 9, 9,
3663 105,102, 32, 97, 49, 32, 61, 61, 32, 39, 32, 39, 32,111,114,
3664 32, 97, 49, 32, 61, 61, 32, 39, 92,110, 39, 32,116,104,101,
3665 110, 10, 9, 9, 9, 9,115,112, 97, 99,101, 83,101,112, 32,
3666 61, 32,116,114,117,101, 10, 9, 9, 9,101,110,100, 10, 9,
3667 9, 9, 97, 97, 32, 61, 32, 97, 58,109, 97,116, 99,104, 40,
3668 34, 40, 91, 94, 37,115, 93, 41, 37,115, 42, 36, 34, 41, 10,
3669 9, 9, 9,105,102, 32, 97, 97, 32,116,104,101,110, 10, 9,
3670 9, 9, 9, 98,114,101, 97,107, 10, 9, 9, 9,101,110,100,
3671 10, 9, 9,101,110,100, 10, 9, 9, 97, 97, 32, 61, 32, 97,
3672 97, 32,111,114, 32, 39, 39, 10, 9, 9,115,101,112, 32, 61,
3673 32,115,101,112, 32,111,114, 32, 39, 32, 39, 10, 9, 9,105,
3674 102, 32,115,112, 97, 99,101, 83,101,112, 32,116,104,101,110,
3675 10, 9, 9, 9,115,101,112, 32, 61, 32, 39, 39, 10, 9, 9,
3676 101,108,115,101,105,102, 32,115,101,112, 32, 61, 61, 32, 39,
3677 59, 39, 32,116,104,101,110, 10, 9, 9, 9,108,111, 99, 97,
3678 108, 32,116,111,107,101,110, 32, 61, 32, 97, 97, 58,109, 97,
3679 116, 99,104, 40, 34, 40, 91, 37,119, 95, 93, 43, 41, 37,115,
3680 42, 36, 34, 41, 10, 9, 9, 9,105,102, 32,116,111,107,101,
3681 110, 32, 61, 61, 32, 34,116,104,101,110, 34, 32,111,114, 32,
3682 116,111,107,101,110, 32, 61, 61, 32, 34,100,111, 34, 32,116,
3683 104,101,110, 10, 9, 9, 9, 9,115,101,112, 32, 61, 32, 39,
3684 32, 39, 10, 9, 9, 9,101,110,100, 10, 9, 9,101,110,100,
3685 10, 9, 9,108,111, 99, 97,108, 32, 98, 98, 32, 61, 32, 98,
3686 58,109, 97,116, 99,104, 40, 34, 94, 37,115, 42, 40, 91, 94,
3687 37,115, 93, 41, 34, 41, 10, 9, 9,105,102, 32, 85,112,112,
3688 101,114, 67,104, 97,114,115, 91, 97, 97, 93, 32,111,114, 32,
3689 76,111,119,101,114, 67,104, 97,114,115, 91, 97, 97, 93, 32,
3690 111,114, 32, 97, 97, 32, 61, 61, 32, 39, 95, 39, 32,116,104,
3691 101,110, 10, 9, 9, 9,105,102, 32,110,111,116, 32, 40, 85,
3692 112,112,101,114, 67,104, 97,114,115, 91, 98, 98, 93, 32,111,
3693 114, 32, 76,111,119,101,114, 67,104, 97,114,115, 91, 98, 98,
3694 93, 32,111,114, 32, 98, 98, 32, 61, 61, 32, 39, 95, 39, 32,
3695 111,114, 32, 68,105,103,105,116,115, 91, 98, 98, 93, 41, 32,
3696 116,104,101,110, 10, 9, 9, 9, 9, 45, 45, 98, 98, 32,105,
3697 115, 32, 97, 32,115,121,109, 98,111,108, 44, 32, 99, 97,110,
3698 32,106,111,105,110, 32,119,105,116,104,111,117,116, 32,115,
3699 101,112, 10, 9, 9, 9, 9,111,117,116, 91, 35,111,117,116,
3700 32, 43, 32, 49, 93, 32, 61, 32, 98, 10, 9, 9, 9,101,108,
3701 115,101,105,102, 32, 98, 98, 32, 61, 61, 32, 39, 40, 39, 32,
3702 116,104,101,110, 10, 9, 9, 9, 9, 45, 45,112,114,101,118,
3703 101,110,116, 32, 97,109, 98,105,103,117,111,117,115, 32,115,
3704 121,110,116, 97,120, 10, 9, 9, 9, 9,111,117,116, 91, 35,
3705 111,117,116, 32, 43, 32, 49, 93, 32, 61, 32,115,101,112, 10,
3706 9, 9, 9, 9,111,117,116, 91, 35,111,117,116, 32, 43, 32,
3707 49, 93, 32, 61, 32, 98, 10, 9, 9, 9,101,108,115,101, 10,
3708 9, 9, 9, 9,111,117,116, 91, 35,111,117,116, 32, 43, 32,
3709 49, 93, 32, 61, 32,115,101,112, 10, 9, 9, 9, 9,111,117,
3710 116, 91, 35,111,117,116, 32, 43, 32, 49, 93, 32, 61, 32, 98,
3711 10, 9, 9, 9,101,110,100, 10, 9, 9,101,108,115,101,105,
3712 102, 32, 68,105,103,105,116,115, 91, 97, 97, 93, 32,116,104,
3713 101,110, 10, 9, 9, 9,105,102, 32, 98, 98, 32, 61, 61, 32,
3714 39, 40, 39, 32,116,104,101,110, 10, 9, 9, 9, 9, 45, 45,
3715 99, 97,110, 32,106,111,105,110, 32,115,116, 97,116,101,109,
3716 101,110,116,115, 32,100,105,114,101, 99,116,108,121, 10, 9,
3717 9, 9, 9,111,117,116, 91, 35,111,117,116, 32, 43, 32, 49,
3718 93, 32, 61, 32, 98, 10, 9, 9, 9,101,108,115,101,105,102,
3719 32, 83,121,109, 98,111,108,115, 91, 98, 98, 93, 32,116,104,
3720 101,110, 10, 9, 9, 9, 9,111,117,116, 91, 35,111,117,116,
3721 32, 43, 32, 49, 93, 32, 61, 32, 98, 10, 9, 9, 9,101,108,
3722 115,101, 10, 9, 9, 9, 9,111,117,116, 91, 35,111,117,116,
3723 32, 43, 32, 49, 93, 32, 61, 32,115,101,112, 10, 9, 9, 9,
3724 9,111,117,116, 91, 35,111,117,116, 32, 43, 32, 49, 93, 32,
3725 61, 32, 98, 10, 9, 9, 9,101,110,100, 10, 9, 9,101,108,
3726 115,101,105,102, 32, 97, 97, 32, 61, 61, 32, 39, 39, 32,116,
3727 104,101,110, 10, 9, 9, 9,111,117,116, 91, 35,111,117,116,
3728 32, 43, 32, 49, 93, 32, 61, 32, 98, 10, 9, 9,101,108,115,
3729 101, 10, 9, 9, 9,105,102, 32, 98, 98, 32, 61, 61, 32, 39,
3730 40, 39, 32,116,104,101,110, 10, 9, 9, 9, 9, 45, 45,100,
3731 111,110, 39,116, 32,119, 97,110,116, 32,116,111, 32, 97, 99,
3732 99,105,100,101,110,116, 97,108,108,121, 32, 99, 97,108,108,
3733 32,108, 97,115,116, 32,115,116, 97,116,101,109,101,110,116,
3734 44, 32, 99, 97,110, 39,116, 32,106,111,105,110, 32,100,105,
3735 114,101, 99,116,108,121, 10, 9, 9, 9, 9,111,117,116, 91,
3736 35,111,117,116, 32, 43, 32, 49, 93, 32, 61, 32,115,101,112,
3737 10, 9, 9, 9, 9,111,117,116, 91, 35,111,117,116, 32, 43,
3738 32, 49, 93, 32, 61, 32, 98, 10, 9, 9, 9,101,108,115,101,
3739 10, 9, 9, 9, 9,111,117,116, 91, 35,111,117,116, 32, 43,
3740 32, 49, 93, 32, 61, 32, 98, 10, 9, 9, 9,101,110,100, 10,
3741 9, 9,101,110,100, 10, 9,101,110,100, 10, 10, 9,102,111,
3742 114,109, 97,116, 69,120,112,114, 32, 61, 32,102,117,110, 99,
3743 116,105,111,110, 40,101,120,112,114, 41, 10, 9, 9,108,111,
3744 99, 97,108, 32,111,117,116, 32, 61, 32,123,115,116,114,105,
3745 110,103, 46,114,101,112, 40, 39, 40, 39, 44, 32,101,120,112,
3746 114, 46, 80, 97,114,101,110, 67,111,117,110,116, 32,111,114,
3747 32, 48, 41,125, 10, 9, 9,105,102, 32,101,120,112,114, 46,
3748 65,115,116, 84,121,112,101, 32, 61, 61, 32, 39, 86, 97,114,
3749 69,120,112,114, 39, 32,116,104,101,110, 10, 9, 9, 9,105,
3750 102, 32,101,120,112,114, 46, 86, 97,114,105, 97, 98,108,101,
3751 32,116,104,101,110, 10, 9, 9, 9, 9,111,117,116, 91, 35,
3752 111,117,116, 32, 43, 32, 49, 93, 32, 61, 32,101,120,112,114,
3753 46, 86, 97,114,105, 97, 98,108,101, 46, 78, 97,109,101, 10,
3754 9, 9, 9,101,108,115,101, 10, 9, 9, 9, 9,111,117,116,
3755 91, 35,111,117,116, 32, 43, 32, 49, 93, 32, 61, 32,101,120,
3756 112,114, 46, 78, 97,109,101, 10, 9, 9, 9,101,110,100, 10,
3757 10, 9, 9,101,108,115,101,105,102, 32,101,120,112,114, 46,
3758 65,115,116, 84,121,112,101, 32, 61, 61, 32, 39, 78,117,109,
3759 98,101,114, 69,120,112,114, 39, 32,116,104,101,110, 10, 9,
3760 9, 9,111,117,116, 91, 35,111,117,116, 32, 43, 32, 49, 93,
3761 32, 61, 32,101,120,112,114, 46, 86, 97,108,117,101, 46, 68,
3762 97,116, 97, 10, 10, 9, 9,101,108,115,101,105,102, 32,101,
3763 120,112,114, 46, 65,115,116, 84,121,112,101, 32, 61, 61, 32,
3764 39, 83,116,114,105,110,103, 69,120,112,114, 39, 32,116,104,
3765 101,110, 10, 9, 9, 9,111,117,116, 91, 35,111,117,116, 32,
3766 43, 32, 49, 93, 32, 61, 32,101,120,112,114, 46, 86, 97,108,
3767 117,101, 46, 68, 97,116, 97, 10, 10, 9, 9,101,108,115,101,
3768 105,102, 32,101,120,112,114, 46, 65,115,116, 84,121,112,101,
3769 32, 61, 61, 32, 39, 66,111,111,108,101, 97,110, 69,120,112,
3770 114, 39, 32,116,104,101,110, 10, 9, 9, 9,111,117,116, 91,
3771 35,111,117,116, 32, 43, 32, 49, 93, 32, 61, 32,116,111,115,
3772 116,114,105,110,103, 40,101,120,112,114, 46, 86, 97,108,117,
3773 101, 41, 10, 10, 9, 9,101,108,115,101,105,102, 32,101,120,
3774 112,114, 46, 65,115,116, 84,121,112,101, 32, 61, 61, 32, 39,
3775 78,105,108, 69,120,112,114, 39, 32,116,104,101,110, 10, 9,
3776 9, 9,106,111,105,110, 83,116, 97,116,101,109,101,110,116,
3777 115, 83, 97,102,101, 40,111,117,116, 44, 32, 34,110,105,108,
3778 34, 44, 32,110,105,108, 41, 10, 10, 9, 9,101,108,115,101,
3779 105,102, 32,101,120,112,114, 46, 65,115,116, 84,121,112,101,
3780 32, 61, 61, 32, 39, 66,105,110,111,112, 69,120,112,114, 39,
3781 32,116,104,101,110, 10, 9, 9, 9,106,111,105,110, 83,116,
3782 97,116,101,109,101,110,116,115, 83, 97,102,101, 40,111,117,
3783 116, 44, 32,102,111,114,109, 97,116, 69,120,112,114, 40,101,
3784 120,112,114, 46, 76,104,115, 41, 44, 32,110,105,108, 41, 10,
3785 9, 9, 9,111,117,116, 91, 35,111,117,116, 32, 43, 32, 49,
3786 93, 32, 61, 32, 34, 32, 34, 10, 9, 9, 9,106,111,105,110,
3787 83,116, 97,116,101,109,101,110,116,115, 83, 97,102,101, 40,
3788 111,117,116, 44, 32,101,120,112,114, 46, 79,112, 44, 32,110,
3789 105,108, 41, 10, 9, 9, 9,111,117,116, 91, 35,111,117,116,
3790 32, 43, 32, 49, 93, 32, 61, 32, 34, 32, 34, 10, 9, 9, 9,
3791 106,111,105,110, 83,116, 97,116,101,109,101,110,116,115, 83,
3792 97,102,101, 40,111,117,116, 44, 32,102,111,114,109, 97,116,
3793 69,120,112,114, 40,101,120,112,114, 46, 82,104,115, 41, 44,
3794 32,110,105,108, 41, 10, 10, 9, 9,101,108,115,101,105,102,
3795 32,101,120,112,114, 46, 65,115,116, 84,121,112,101, 32, 61,
3796 61, 32, 39, 85,110,111,112, 69,120,112,114, 39, 32,116,104,
3797 101,110, 10, 9, 9, 9,106,111,105,110, 83,116, 97,116,101,
3798 109,101,110,116,115, 83, 97,102,101, 40,111,117,116, 44, 32,
3799 101,120,112,114, 46, 79,112, 44, 32,110,105,108, 41, 10, 9,
3800 9, 9,111,117,116, 91, 35,111,117,116, 32, 43, 32, 49, 93,
3801 32, 61, 32, 40, 35,101,120,112,114, 46, 79,112, 32,126, 61,
3802 32, 49, 32, 97,110,100, 32, 34, 32, 34, 32,111,114, 32, 34,
3803 34, 41, 10, 9, 9, 9,106,111,105,110, 83,116, 97,116,101,
3804 109,101,110,116,115, 83, 97,102,101, 40,111,117,116, 44, 32,
3805 102,111,114,109, 97,116, 69,120,112,114, 40,101,120,112,114,
3806 46, 82,104,115, 41, 44, 32,110,105,108, 41, 10, 10, 9, 9,
3807 101,108,115,101,105,102, 32,101,120,112,114, 46, 65,115,116,
3808 84,121,112,101, 32, 61, 61, 32, 39, 68,111,116,115, 69,120,
3809 112,114, 39, 32,116,104,101,110, 10, 9, 9, 9,111,117,116,
3810 91, 35,111,117,116, 32, 43, 32, 49, 93, 32, 61, 32, 34, 46,
3811 46, 46, 34, 10, 10, 9, 9,101,108,115,101,105,102, 32,101,
3812 120,112,114, 46, 65,115,116, 84,121,112,101, 32, 61, 61, 32,
3813 39, 67, 97,108,108, 69,120,112,114, 39, 32,116,104,101,110,
3814 10, 9, 9, 9,111,117,116, 91, 35,111,117,116, 32, 43, 32,
3815 49, 93, 32, 61, 32,102,111,114,109, 97,116, 69,120,112,114,
3816 40,101,120,112,114, 46, 66, 97,115,101, 41, 10, 9, 9, 9,
3817 111,117,116, 91, 35,111,117,116, 32, 43, 32, 49, 93, 32, 61,
3818 32, 34, 40, 34, 10, 9, 9, 9,102,111,114, 32,105, 32, 61,
3819 32, 49, 44, 32, 35,101,120,112,114, 46, 65,114,103,117,109,
3820 101,110,116,115, 32,100,111, 10, 9, 9, 9, 9,111,117,116,
3821 91, 35,111,117,116, 32, 43, 32, 49, 93, 32, 61, 32,102,111,
3822 114,109, 97,116, 69,120,112,114, 40,101,120,112,114, 46, 65,
3823 114,103,117,109,101,110,116,115, 91,105, 93, 41, 10, 9, 9,
3824 9, 9,105,102, 32,105, 32,126, 61, 32, 35,101,120,112,114,
3825 46, 65,114,103,117,109,101,110,116,115, 32,116,104,101,110,
3826 10, 9, 9, 9, 9, 9,111,117,116, 91, 35,111,117,116, 32,
3827 43, 32, 49, 93, 32, 61, 32, 34, 44, 32, 34, 10, 9, 9, 9,
3828 9,101,110,100, 10, 9, 9, 9,101,110,100, 10, 9, 9, 9,
3829 111,117,116, 91, 35,111,117,116, 32, 43, 32, 49, 93, 32, 61,
3830 32, 34, 41, 34, 10, 10, 9, 9,101,108,115,101,105,102, 32,
3831 101,120,112,114, 46, 65,115,116, 84,121,112,101, 32, 61, 61,
3832 32, 39, 84, 97, 98,108,101, 67, 97,108,108, 69,120,112,114,
3833 39, 32,116,104,101,110, 10, 9, 9, 9,111,117,116, 91, 35,
3834 111,117,116, 32, 43, 32, 49, 93, 32, 61, 32,102,111,114,109,
3835 97,116, 69,120,112,114, 40,101,120,112,114, 46, 66, 97,115,
3836 101, 41, 10, 9, 9, 9,111,117,116, 91, 35,111,117,116, 32,
3837 43, 32, 49, 93, 32, 61, 32, 34, 32, 34, 10, 9, 9, 9,111,
3838 117,116, 91, 35,111,117,116, 32, 43, 32, 49, 93, 32, 61, 32,
3839 102,111,114,109, 97,116, 69,120,112,114, 40,101,120,112,114,
3840 46, 65,114,103,117,109,101,110,116,115, 91, 49, 93, 41, 10,
3841 10, 9, 9,101,108,115,101,105,102, 32,101,120,112,114, 46,
3842 65,115,116, 84,121,112,101, 32, 61, 61, 32, 39, 83,116,114,
3843 105,110,103, 67, 97,108,108, 69,120,112,114, 39, 32,116,104,
3844 101,110, 10, 9, 9, 9,111,117,116, 91, 35,111,117,116, 32,
3845 43, 32, 49, 93, 32, 61, 32,102,111,114,109, 97,116, 69,120,
3846 112,114, 40,101,120,112,114, 46, 66, 97,115,101, 41, 10, 9,
3847 9, 9,111,117,116, 91, 35,111,117,116, 32, 43, 32, 49, 93,
3848 32, 61, 32, 34, 32, 34, 10, 9, 9, 9,111,117,116, 91, 35,
3849 111,117,116, 32, 43, 32, 49, 93, 32, 61, 32,101,120,112,114,
3850 46, 65,114,103,117,109,101,110,116,115, 91, 49, 93, 46, 68,
3851 97,116, 97, 10, 10, 9, 9,101,108,115,101,105,102, 32,101,
3852 120,112,114, 46, 65,115,116, 84,121,112,101, 32, 61, 61, 32,
3853 39, 73,110,100,101,120, 69,120,112,114, 39, 32,116,104,101,
3854 110, 10, 9, 9, 9,111,117,116, 91, 35,111,117,116, 32, 43,
3855 32, 49, 93, 32, 61, 32,102,111,114,109, 97,116, 69,120,112,
3856 114, 40,101,120,112,114, 46, 66, 97,115,101, 41, 10, 9, 9,
3857 9,111,117,116, 91, 35,111,117,116, 32, 43, 32, 49, 93, 32,
3858 61, 32, 34, 91, 34, 10, 9, 9, 9,111,117,116, 91, 35,111,
3859 117,116, 32, 43, 32, 49, 93, 32, 61, 32,102,111,114,109, 97,
3860 116, 69,120,112,114, 40,101,120,112,114, 46, 73,110,100,101,
3861 120, 41, 10, 9, 9, 9,111,117,116, 91, 35,111,117,116, 32,
3862 43, 32, 49, 93, 32, 61, 32, 34, 93, 34, 10, 10, 9, 9,101,
3863 108,115,101,105,102, 32,101,120,112,114, 46, 65,115,116, 84,
3864 121,112,101, 32, 61, 61, 32, 39, 77,101,109, 98,101,114, 69,
3865 120,112,114, 39, 32,116,104,101,110, 10, 9, 9, 9,111,117,
3866 116, 91, 35,111,117,116, 32, 43, 32, 49, 93, 32, 61, 32,102,
3867 111,114,109, 97,116, 69,120,112,114, 40,101,120,112,114, 46,
3868 66, 97,115,101, 41, 10, 9, 9, 9,108,111, 99, 97,108, 32,
3869 116, 97,114,103,101,116, 76,105,110,101, 32, 61, 32,108,105,
3870 110,101, 77, 97,112, 91,101,120,112,114, 46, 73,100,101,110,
3871 116, 46, 76,105,110,101, 93, 10, 9, 9, 9,105,102, 32,116,
3872 97,114,103,101,116, 76,105,110,101, 32, 97,110,100, 32, 99,
3873 117,114,114,101,110,116, 76,105,110,101, 32, 60, 32,116, 97,
3874 114,103,101,116, 76,105,110,101, 32,116,104,101,110, 10, 9,
3875 9, 9, 9,111,117,116, 91, 35,111,117,116, 32, 43, 32, 49,
3876 93, 32, 61, 32,115,116,114,105,110,103, 46,114,101,112, 40,
3877 39, 92,110, 39, 44, 32,116, 97,114,103,101,116, 76,105,110,
3878 101, 32, 45, 32, 99,117,114,114,101,110,116, 76,105,110,101,
3879 41, 10, 9, 9, 9, 9, 99,117,114,114,101,110,116, 76,105,
3880 110,101, 32, 61, 32,116, 97,114,103,101,116, 76,105,110,101,
3881 10, 9, 9, 9,101,110,100, 10, 9, 9, 9,111,117,116, 91,
3882 35,111,117,116, 32, 43, 32, 49, 93, 32, 61, 32,101,120,112,
3883 114, 46, 73,110,100,101,120,101,114, 10, 9, 9, 9,111,117,
3884 116, 91, 35,111,117,116, 32, 43, 32, 49, 93, 32, 61, 32,101,
3885 120,112,114, 46, 73,100,101,110,116, 46, 68, 97,116, 97, 10,
3886 10, 9, 9,101,108,115,101,105,102, 32,101,120,112,114, 46,
3887 65,115,116, 84,121,112,101, 32, 61, 61, 32, 39, 70,117,110,
3888 99,116,105,111,110, 39, 32,116,104,101,110, 10, 9, 9, 9,
3889 45, 45, 32, 97,110,111,110,121,109,111,117,115, 32,102,117,
3890 110, 99,116,105,111,110, 10, 9, 9, 9,111,117,116, 91, 35,
3891 111,117,116, 32, 43, 32, 49, 93, 32, 61, 32, 34,102,117,110,
3892 99,116,105,111,110, 40, 34, 10, 9, 9, 9,105,102, 32, 35,
3893 101,120,112,114, 46, 65,114,103,117,109,101,110,116,115, 32,
3894 62, 32, 48, 32,116,104,101,110, 10, 9, 9, 9, 9,102,111,
3895 114, 32,105, 32, 61, 32, 49, 44, 32, 35,101,120,112,114, 46,
3896 65,114,103,117,109,101,110,116,115, 32,100,111, 10, 9, 9,
3897 9, 9, 9,111,117,116, 91, 35,111,117,116, 32, 43, 32, 49,
3898 93, 32, 61, 32,101,120,112,114, 46, 65,114,103,117,109,101,
3899 110,116,115, 91,105, 93, 46, 78, 97,109,101, 10, 9, 9, 9,
3900 9, 9,105,102, 32,105, 32,126, 61, 32, 35,101,120,112,114,
3901 46, 65,114,103,117,109,101,110,116,115, 32,116,104,101,110,
3902 10, 9, 9, 9, 9, 9, 9,111,117,116, 91, 35,111,117,116,
3903 32, 43, 32, 49, 93, 32, 61, 32, 34, 44, 32, 34, 10, 9, 9,
3904 9, 9, 9,101,108,115,101,105,102, 32,101,120,112,114, 46,
3905 86, 97,114, 65,114,103, 32,116,104,101,110, 10, 9, 9, 9,
3906 9, 9, 9,111,117,116, 91, 35,111,117,116, 32, 43, 32, 49,
3907 93, 32, 61, 32, 34, 44, 32, 46, 46, 46, 34, 10, 9, 9, 9,
3908 9, 9,101,110,100, 10, 9, 9, 9, 9,101,110,100, 10, 9,
3909 9, 9,101,108,115,101,105,102, 32,101,120,112,114, 46, 86,
3910 97,114, 65,114,103, 32,116,104,101,110, 10, 9, 9, 9, 9,
3911 111,117,116, 91, 35,111,117,116, 32, 43, 32, 49, 93, 32, 61,
3912 32, 34, 46, 46, 46, 34, 10, 9, 9, 9,101,110,100, 10, 9,
3913 9, 9,111,117,116, 91, 35,111,117,116, 32, 43, 32, 49, 93,
3914 32, 61, 32, 34, 41, 34, 10, 9, 9, 9,106,111,105,110, 83,
3915 116, 97,116,101,109,101,110,116,115, 83, 97,102,101, 40,111,
3916 117,116, 44, 32,102,111,114,109, 97,116, 83,116, 97,116,108,
3917 105,115,116, 40,101,120,112,114, 46, 66,111,100,121, 41, 44,
3918 32,110,105,108, 41, 10, 9, 9, 9,106,111,105,110, 83,116,
3919 97,116,101,109,101,110,116,115, 83, 97,102,101, 40,111,117,
3920 116, 44, 32, 34,101,110,100, 34, 44, 32,110,105,108, 41, 10,
3921 9, 9,101,108,115,101,105,102, 32,101,120,112,114, 46, 65,
3922 115,116, 84,121,112,101, 32, 61, 61, 32, 39, 67,111,110,115,
3923 116,114,117, 99,116,111,114, 69,120,112,114, 39, 32,116,104,
3924 101,110, 10, 9, 9, 9,111,117,116, 91, 35,111,117,116, 32,
3925 43, 32, 49, 93, 32, 61, 32, 34,123, 32, 34, 10, 9, 9, 9,
3926 102,111,114, 32,105, 32, 61, 32, 49, 44, 32, 35,101,120,112,
3927 114, 46, 69,110,116,114,121, 76,105,115,116, 32,100,111, 10,
3928 9, 9, 9, 9,108,111, 99, 97,108, 32,101,110,116,114,121,
3929 32, 61, 32,101,120,112,114, 46, 69,110,116,114,121, 76,105,
3930 115,116, 91,105, 93, 10, 9, 9, 9, 9,105,102, 32,101,110,
3931 116,114,121, 46, 84,121,112,101, 32, 61, 61, 32, 39, 75,101,
3932 121, 39, 32,116,104,101,110, 10, 9, 9, 9, 9, 9,111,117,
3933 116, 91, 35,111,117,116, 32, 43, 32, 49, 93, 32, 61, 32, 34,
3934 91, 34, 10, 9, 9, 9, 9, 9,111,117,116, 91, 35,111,117,
3935 116, 32, 43, 32, 49, 93, 32, 61, 32,102,111,114,109, 97,116,
3936 69,120,112,114, 40,101,110,116,114,121, 46, 75,101,121, 41,
3937 10, 9, 9, 9, 9, 9,111,117,116, 91, 35,111,117,116, 32,
3938 43, 32, 49, 93, 32, 61, 32, 34, 93, 32, 61, 32, 34, 10, 9,
3939 9, 9, 9, 9,111,117,116, 91, 35,111,117,116, 32, 43, 32,
3940 49, 93, 32, 61, 32,102,111,114,109, 97,116, 69,120,112,114,
3941 40,101,110,116,114,121, 46, 86, 97,108,117,101, 41, 10, 9,
3942 9, 9, 9,101,108,115,101,105,102, 32,101,110,116,114,121,
3943 46, 84,121,112,101, 32, 61, 61, 32, 39, 86, 97,108,117,101,
3944 39, 32,116,104,101,110, 10, 9, 9, 9, 9, 9,111,117,116,
3945 91, 35,111,117,116, 32, 43, 32, 49, 93, 32, 61, 32,102,111,
3946 114,109, 97,116, 69,120,112,114, 40,101,110,116,114,121, 46,
3947 86, 97,108,117,101, 41, 10, 9, 9, 9, 9,101,108,115,101,
3948 105,102, 32,101,110,116,114,121, 46, 84,121,112,101, 32, 61,
3949 61, 32, 39, 75,101,121, 83,116,114,105,110,103, 39, 32,116,
3950 104,101,110, 10, 9, 9, 9, 9, 9,111,117,116, 91, 35,111,
3951 117,116, 32, 43, 32, 49, 93, 32, 61, 32,101,110,116,114,121,
3952 46, 75,101,121, 10, 9, 9, 9, 9, 9,111,117,116, 91, 35,
3953 111,117,116, 32, 43, 32, 49, 93, 32, 61, 32, 34, 32, 61, 32,
3954 34, 10, 9, 9, 9, 9, 9,111,117,116, 91, 35,111,117,116,
3955 32, 43, 32, 49, 93, 32, 61, 32,102,111,114,109, 97,116, 69,
3956 120,112,114, 40,101,110,116,114,121, 46, 86, 97,108,117,101,
3957 41, 10, 9, 9, 9, 9,101,110,100, 10, 9, 9, 9, 9,105,
3958 102, 32,105, 32,126, 61, 32, 35,101,120,112,114, 46, 69,110,
3959 116,114,121, 76,105,115,116, 32,116,104,101,110, 10, 9, 9,
3960 9, 9, 9,111,117,116, 91, 35,111,117,116, 32, 43, 32, 49,
3961 93, 32, 61, 32, 34, 44, 32, 34, 10, 9, 9, 9, 9,101,110,
3962 100, 10, 9, 9, 9,101,110,100, 10, 9, 9, 9,111,117,116,
3963 91, 35,111,117,116, 32, 43, 32, 49, 93, 32, 61, 32, 34, 32,
3964 125, 34, 10, 10, 9, 9,101,108,115,101,105,102, 32,101,120,
3965 112,114, 46, 65,115,116, 84,121,112,101, 32, 61, 61, 32, 39,
3966 80, 97,114,101,110,116,104,101,115,101,115, 39, 32,116,104,
3967 101,110, 10, 9, 9, 9,111,117,116, 91, 35,111,117,116, 32,
3968 43, 32, 49, 93, 32, 61, 32, 34, 40, 34, 10, 9, 9, 9,111,
3969 117,116, 91, 35,111,117,116, 32, 43, 32, 49, 93, 32, 61, 32,
3970 102,111,114,109, 97,116, 69,120,112,114, 40,101,120,112,114,
3971 46, 73,110,110,101,114, 41, 10, 9, 9, 9,111,117,116, 91,
3972 35,111,117,116, 32, 43, 32, 49, 93, 32, 61, 32, 34, 41, 34,
3973 10, 10, 9, 9,101,110,100, 10, 9, 9,111,117,116, 91, 35,
3974 111,117,116, 32, 43, 32, 49, 93, 32, 61, 32,115,116,114,105,
3975 110,103, 46,114,101,112, 40, 39, 41, 39, 44, 32,101,120,112,
3976 114, 46, 80, 97,114,101,110, 67,111,117,110,116, 32,111,114,
3977 32, 48, 41, 10, 9, 9,105,102, 32,101,120,112,114, 46, 84,
3978 111,107,101,110,115, 32, 97,110,100, 32,101,120,112,114, 46,
3979 84,111,107,101,110,115, 91, 49, 93, 32,116,104,101,110, 10,
3980 9, 9, 9,108,111, 99, 97,108, 32,108,105,110,101, 32, 61,
3981 32,101,120,112,114, 46, 84,111,107,101,110,115, 91, 49, 93,
3982 46, 76,105,110,101, 10, 9, 9, 9,108,111, 99, 97,108, 32,
3983 116, 97,114,103,101,116, 76,105,110,101, 32, 61, 32,108,105,
3984 110,101, 77, 97,112, 91,108,105,110,101, 93, 10, 9, 9, 9,
3985 105,102, 32,116, 97,114,103,101,116, 76,105,110,101, 32, 97,
3986 110,100, 32, 99,117,114,114,101,110,116, 76,105,110,101, 32,
3987 60, 32,116, 97,114,103,101,116, 76,105,110,101, 32,116,104,
3988 101,110, 10, 9, 9, 9, 9,116, 97, 98,108,101, 46,105,110,
3989 115,101,114,116, 40,111,117,116, 44, 32, 49, 44, 32,115,116,
3990 114,105,110,103, 46,114,101,112, 40, 39, 92,110, 39, 44, 32,
3991 116, 97,114,103,101,116, 76,105,110,101, 32, 45, 32, 99,117,
3992 114,114,101,110,116, 76,105,110,101, 41, 41, 10, 9, 9, 9,
3993 9, 99,117,114,114,101,110,116, 76,105,110,101, 32, 61, 32,
3994 116, 97,114,103,101,116, 76,105,110,101, 10, 9, 9, 9,101,
3995 110,100, 10, 9, 9,101,110,100, 10, 9, 9,114,101,116,117,
3996 114,110, 32,116, 97, 98,108,101, 46, 99,111,110, 99, 97,116,
3997 40,111,117,116, 41, 10, 9,101,110,100, 10, 10, 9,108,111,
3998 99, 97,108, 32,102,111,114,109, 97,116, 83,116, 97,116,101,
3999 109,101,110,116, 32, 61, 32,102,117,110, 99,116,105,111,110,
4000 40,115,116, 97,116,101,109,101,110,116, 41, 10, 9, 9,108,
4001 111, 99, 97,108, 32,111,117,116, 32, 61, 32,123, 34, 34,125,
4002 10, 9, 9,105,102, 32,115,116, 97,116,101,109,101,110,116,
4003 46, 65,115,116, 84,121,112,101, 32, 61, 61, 32, 39, 65,115,
4004 115,105,103,110,109,101,110,116, 83,116, 97,116,101,109,101,
4005 110,116, 39, 32,116,104,101,110, 10, 9, 9, 9,102,111,114,
4006 32,105, 32, 61, 32, 49, 44, 32, 35,115,116, 97,116,101,109,
4007 101,110,116, 46, 76,104,115, 32,100,111, 10, 9, 9, 9, 9,
4008 111,117,116, 91, 35,111,117,116, 32, 43, 32, 49, 93, 32, 61,
4009 32,102,111,114,109, 97,116, 69,120,112,114, 40,115,116, 97,
4010 116,101,109,101,110,116, 46, 76,104,115, 91,105, 93, 41, 10,
4011 9, 9, 9, 9,105,102, 32,105, 32,126, 61, 32, 35,115,116,
4012 97,116,101,109,101,110,116, 46, 76,104,115, 32,116,104,101,
4013 110, 10, 9, 9, 9, 9, 9,111,117,116, 91, 35,111,117,116,
4014 32, 43, 32, 49, 93, 32, 61, 32, 34, 44, 32, 34, 10, 9, 9,
4015 9, 9,101,110,100, 10, 9, 9, 9,101,110,100, 10, 9, 9,
4016 9,105,102, 32, 35,115,116, 97,116,101,109,101,110,116, 46,
4017 82,104,115, 32, 62, 32, 48, 32,116,104,101,110, 10, 9, 9,
4018 9, 9,111,117,116, 91, 35,111,117,116, 32, 43, 32, 49, 93,
4019 32, 61, 32, 34, 32, 61, 32, 34, 10, 9, 9, 9, 9,102,111,
4020 114, 32,105, 32, 61, 32, 49, 44, 32, 35,115,116, 97,116,101,
4021 109,101,110,116, 46, 82,104,115, 32,100,111, 10, 9, 9, 9,
4022 9, 9,111,117,116, 91, 35,111,117,116, 32, 43, 32, 49, 93,
4023 32, 61, 32,102,111,114,109, 97,116, 69,120,112,114, 40,115,
4024 116, 97,116,101,109,101,110,116, 46, 82,104,115, 91,105, 93,
4025 41, 10, 9, 9, 9, 9, 9,105,102, 32,105, 32,126, 61, 32,
4026 35,115,116, 97,116,101,109,101,110,116, 46, 82,104,115, 32,
4027 116,104,101,110, 10, 9, 9, 9, 9, 9, 9,111,117,116, 91,
4028 35,111,117,116, 32, 43, 32, 49, 93, 32, 61, 32, 34, 44, 32,
4029 34, 10, 9, 9, 9, 9, 9,101,110,100, 10, 9, 9, 9, 9,
4030 101,110,100, 10, 9, 9, 9,101,110,100, 10, 9, 9,101,108,
4031 115,101,105,102, 32,115,116, 97,116,101,109,101,110,116, 46,
4032 65,115,116, 84,121,112,101, 32, 61, 61, 32, 39, 67, 97,108,
4033 108, 83,116, 97,116,101,109,101,110,116, 39, 32,116,104,101,
4034 110, 10, 9, 9, 9,111,117,116, 91, 35,111,117,116, 32, 43,
4035 32, 49, 93, 32, 61, 32,102,111,114,109, 97,116, 69,120,112,
4036 114, 40,115,116, 97,116,101,109,101,110,116, 46, 69,120,112,
4037 114,101,115,115,105,111,110, 41, 10, 9, 9,101,108,115,101,
4038 105,102, 32,115,116, 97,116,101,109,101,110,116, 46, 65,115,
4039 116, 84,121,112,101, 32, 61, 61, 32, 39, 76,111, 99, 97,108,
4040 83,116, 97,116,101,109,101,110,116, 39, 32,116,104,101,110,
4041 10, 9, 9, 9,111,117,116, 91, 35,111,117,116, 32, 43, 32,
4042 49, 93, 32, 61, 32, 34,108,111, 99, 97,108, 32, 34, 10, 9,
4043 9, 9,102,111,114, 32,105, 32, 61, 32, 49, 44, 32, 35,115,
4044 116, 97,116,101,109,101,110,116, 46, 76,111, 99, 97,108, 76,
4045 105,115,116, 32,100,111, 10, 9, 9, 9, 9,111,117,116, 91,
4046 35,111,117,116, 32, 43, 32, 49, 93, 32, 61, 32,115,116, 97,
4047 116,101,109,101,110,116, 46, 76,111, 99, 97,108, 76,105,115,
4048 116, 91,105, 93, 46, 78, 97,109,101, 10, 9, 9, 9, 9,105,
4049 102, 32,115,116, 97,116,101,109,101,110,116, 46, 65,116,116,
4050 114, 76,105,115,116, 91,105, 93, 32,116,104,101,110, 10, 9,
4051 9, 9, 9, 9,111,117,116, 91, 35,111,117,116, 32, 43, 32,
4052 49, 93, 32, 61, 32, 34, 32, 60, 34, 10, 9, 9, 9, 9, 9,
4053 111,117,116, 91, 35,111,117,116, 32, 43, 32, 49, 93, 32, 61,
4054 32,115,116, 97,116,101,109,101,110,116, 46, 65,116,116,114,
4055 76,105,115,116, 91,105, 93, 10, 9, 9, 9, 9, 9,111,117,
4056 116, 91, 35,111,117,116, 32, 43, 32, 49, 93, 32, 61, 32, 34,
4057 62, 34, 10, 9, 9, 9, 9,101,110,100, 10, 9, 9, 9, 9,
4058 105,102, 32,105, 32,126, 61, 32, 35,115,116, 97,116,101,109,
4059 101,110,116, 46, 76,111, 99, 97,108, 76,105,115,116, 32,116,
4060 104,101,110, 10, 9, 9, 9, 9, 9,111,117,116, 91, 35,111,
4061 117,116, 32, 43, 32, 49, 93, 32, 61, 32, 34, 44, 34, 10, 9,
4062 9, 9, 9,101,110,100, 10, 9, 9, 9,101,110,100, 10, 9,
4063 9, 9,105,102, 32, 35,115,116, 97,116,101,109,101,110,116,
4064 46, 73,110,105,116, 76,105,115,116, 32, 62, 32, 48, 32,116,
4065 104,101,110, 10, 9, 9, 9, 9,111,117,116, 91, 35,111,117,
4066 116, 32, 43, 32, 49, 93, 32, 61, 32, 34, 32, 61, 32, 34, 10,
4067 9, 9, 9, 9,102,111,114, 32,105, 32, 61, 32, 49, 44, 32,
4068 35,115,116, 97,116,101,109,101,110,116, 46, 73,110,105,116,
4069 76,105,115,116, 32,100,111, 10, 9, 9, 9, 9, 9,111,117,
4070 116, 91, 35,111,117,116, 32, 43, 32, 49, 93, 32, 61, 32,102,
4071 111,114,109, 97,116, 69,120,112,114, 40,115,116, 97,116,101,
4072 109,101,110,116, 46, 73,110,105,116, 76,105,115,116, 91,105,
4073 93, 41, 10, 9, 9, 9, 9, 9,105,102, 32,105, 32,126, 61,
4074 32, 35,115,116, 97,116,101,109,101,110,116, 46, 73,110,105,
4075 116, 76,105,115,116, 32,116,104,101,110, 10, 9, 9, 9, 9,
4076 9, 9,111,117,116, 91, 35,111,117,116, 32, 43, 32, 49, 93,
4077 32, 61, 32, 34, 44, 32, 34, 10, 9, 9, 9, 9, 9,101,110,
4078 100, 10, 9, 9, 9, 9,101,110,100, 10, 9, 9, 9,101,110,
4079 100, 10, 9, 9,101,108,115,101,105,102, 32,115,116, 97,116,
4080 101,109,101,110,116, 46, 65,115,116, 84,121,112,101, 32, 61,
4081 61, 32, 39, 73,102, 83,116, 97,116,101,109,101,110,116, 39,
4082 32,116,104,101,110, 10, 9, 9, 9,111,117,116, 91, 35,111,
4083 117,116, 32, 43, 32, 49, 93, 32, 61, 32, 34,105,102, 32, 34,
4084 10, 9, 9, 9,106,111,105,110, 83,116, 97,116,101,109,101,
4085 110,116,115, 83, 97,102,101, 40,111,117,116, 44, 32,102,111,
4086 114,109, 97,116, 69,120,112,114, 40,115,116, 97,116,101,109,
4087 101,110,116, 46, 67,108, 97,117,115,101,115, 91, 49, 93, 46,
4088 67,111,110,100,105,116,105,111,110, 41, 44, 32,110,105,108,
4089 41, 10, 9, 9, 9,106,111,105,110, 83,116, 97,116,101,109,
4090 101,110,116,115, 83, 97,102,101, 40,111,117,116, 44, 32, 34,
4091 32,116,104,101,110, 34, 44, 32,110,105,108, 41, 10, 9, 9,
4092 9,106,111,105,110, 83,116, 97,116,101,109,101,110,116,115,
4093 83, 97,102,101, 40,111,117,116, 44, 32,102,111,114,109, 97,
4094 116, 83,116, 97,116,108,105,115,116, 40,115,116, 97,116,101,
4095 109,101,110,116, 46, 67,108, 97,117,115,101,115, 91, 49, 93,
4096 46, 66,111,100,121, 41, 44, 32,110,105,108, 41, 10, 9, 9,
4097 9,102,111,114, 32,105, 32, 61, 32, 50, 44, 32, 35,115,116,
4098 97,116,101,109,101,110,116, 46, 67,108, 97,117,115,101,115,
4099 32,100,111, 10, 9, 9, 9, 9,108,111, 99, 97,108, 32,115,
4100 116, 32, 61, 32,115,116, 97,116,101,109,101,110,116, 46, 67,
4101 108, 97,117,115,101,115, 91,105, 93, 10, 9, 9, 9, 9,105,
4102 102, 32,115,116, 46, 67,111,110,100,105,116,105,111,110, 32,
4103 116,104,101,110, 10, 9, 9, 9, 9, 9,106,111,105,110, 83,
4104 116, 97,116,101,109,101,110,116,115, 83, 97,102,101, 40,111,
4105 117,116, 44, 32, 34,101,108,115,101,105,102, 32, 34, 44, 32,
4106 110,105,108, 41, 10, 9, 9, 9, 9, 9,106,111,105,110, 83,
4107 116, 97,116,101,109,101,110,116,115, 83, 97,102,101, 40,111,
4108 117,116, 44, 32,102,111,114,109, 97,116, 69,120,112,114, 40,
4109 115,116, 46, 67,111,110,100,105,116,105,111,110, 41, 44, 32,
4110 110,105,108, 41, 10, 9, 9, 9, 9, 9,106,111,105,110, 83,
4111 116, 97,116,101,109,101,110,116,115, 83, 97,102,101, 40,111,
4112 117,116, 44, 32, 34, 32,116,104,101,110, 34, 44, 32,110,105,
4113 108, 41, 10, 9, 9, 9, 9,101,108,115,101, 10, 9, 9, 9,
4114 9, 9,106,111,105,110, 83,116, 97,116,101,109,101,110,116,
4115 115, 83, 97,102,101, 40,111,117,116, 44, 32, 34,101,108,115,
4116 101, 34, 44, 32,110,105,108, 41, 10, 9, 9, 9, 9,101,110,
4117 100, 10, 9, 9, 9, 9,106,111,105,110, 83,116, 97,116,101,
4118 109,101,110,116,115, 83, 97,102,101, 40,111,117,116, 44, 32,
4119 102,111,114,109, 97,116, 83,116, 97,116,108,105,115,116, 40,
4120 115,116, 46, 66,111,100,121, 41, 44, 32,110,105,108, 41, 10,
4121 9, 9, 9,101,110,100, 10, 9, 9, 9,106,111,105,110, 83,
4122 116, 97,116,101,109,101,110,116,115, 83, 97,102,101, 40,111,
4123 117,116, 44, 32, 34,101,110,100, 34, 44, 32,110,105,108, 41,
4124 10, 9, 9,101,108,115,101,105,102, 32,115,116, 97,116,101,
4125 109,101,110,116, 46, 65,115,116, 84,121,112,101, 32, 61, 61,
4126 32, 39, 87,104,105,108,101, 83,116, 97,116,101,109,101,110,
4127 116, 39, 32,116,104,101,110, 10, 9, 9, 9,111,117,116, 91,
4128 35,111,117,116, 32, 43, 32, 49, 93, 32, 61, 32, 34,119,104,
4129 105,108,101, 32, 34, 10, 9, 9, 9,106,111,105,110, 83,116,
4130 97,116,101,109,101,110,116,115, 83, 97,102,101, 40,111,117,
4131 116, 44, 32,102,111,114,109, 97,116, 69,120,112,114, 40,115,
4132 116, 97,116,101,109,101,110,116, 46, 67,111,110,100,105,116,
4133 105,111,110, 41, 44, 32,110,105,108, 41, 10, 9, 9, 9,106,
4134 111,105,110, 83,116, 97,116,101,109,101,110,116,115, 83, 97,
4135 102,101, 40,111,117,116, 44, 32, 34, 32,100,111, 34, 44, 32,
4136 110,105,108, 41, 10, 9, 9, 9,106,111,105,110, 83,116, 97,
4137 116,101,109,101,110,116,115, 83, 97,102,101, 40,111,117,116,
4138 44, 32,102,111,114,109, 97,116, 83,116, 97,116,108,105,115,
4139 116, 40,115,116, 97,116,101,109,101,110,116, 46, 66,111,100,
4140 121, 41, 44, 32,110,105,108, 41, 10, 9, 9, 9,106,111,105,
4141 110, 83,116, 97,116,101,109,101,110,116,115, 83, 97,102,101,
4142 40,111,117,116, 44, 32, 34,101,110,100, 34, 44, 32,110,105,
4143 108, 41, 10, 9, 9,101,108,115,101,105,102, 32,115,116, 97,
4144 116,101,109,101,110,116, 46, 65,115,116, 84,121,112,101, 32,
4145 61, 61, 32, 39, 68,111, 83,116, 97,116,101,109,101,110,116,
4146 39, 32,116,104,101,110, 10, 9, 9, 9,106,111,105,110, 83,
4147 116, 97,116,101,109,101,110,116,115, 83, 97,102,101, 40,111,
4148 117,116, 44, 32, 34,100,111, 34, 44, 32,110,105,108, 41, 10,
4149 9, 9, 9,106,111,105,110, 83,116, 97,116,101,109,101,110,
4150 116,115, 83, 97,102,101, 40,111,117,116, 44, 32,102,111,114,
4151 109, 97,116, 83,116, 97,116,108,105,115,116, 40,115,116, 97,
4152 116,101,109,101,110,116, 46, 66,111,100,121, 41, 44, 32,110,
4153 105,108, 41, 10, 9, 9, 9,106,111,105,110, 83,116, 97,116,
4154 101,109,101,110,116,115, 83, 97,102,101, 40,111,117,116, 44,
4155 32, 34,101,110,100, 34, 44, 32,110,105,108, 41, 10, 9, 9,
4156 101,108,115,101,105,102, 32,115,116, 97,116,101,109,101,110,
4157 116, 46, 65,115,116, 84,121,112,101, 32, 61, 61, 32, 39, 82,
4158 101,116,117,114,110, 83,116, 97,116,101,109,101,110,116, 39,
4159 32,116,104,101,110, 10, 9, 9, 9,111,117,116, 91, 35,111,
4160 117,116, 32, 43, 32, 49, 93, 32, 61, 32, 34,114,101,116,117,
4161 114,110, 32, 34, 10, 9, 9, 9,102,111,114, 32,105, 32, 61,
4162 32, 49, 44, 32, 35,115,116, 97,116,101,109,101,110,116, 46,
4163 65,114,103,117,109,101,110,116,115, 32,100,111, 10, 9, 9,
4164 9, 9,106,111,105,110, 83,116, 97,116,101,109,101,110,116,
4165 115, 83, 97,102,101, 40,111,117,116, 44, 32,102,111,114,109,
4166 97,116, 69,120,112,114, 40,115,116, 97,116,101,109,101,110,
4167 116, 46, 65,114,103,117,109,101,110,116,115, 91,105, 93, 41,
4168 44, 32,110,105,108, 41, 10, 9, 9, 9, 9,105,102, 32,105,
4169 32,126, 61, 32, 35,115,116, 97,116,101,109,101,110,116, 46,
4170 65,114,103,117,109,101,110,116,115, 32,116,104,101,110, 10,
4171 9, 9, 9, 9, 9,111,117,116, 91, 35,111,117,116, 32, 43,
4172 32, 49, 93, 32, 61, 32, 34, 44, 32, 34, 10, 9, 9, 9, 9,
4173 101,110,100, 10, 9, 9, 9,101,110,100, 10, 9, 9,101,108,
4174 115,101,105,102, 32,115,116, 97,116,101,109,101,110,116, 46,
4175 65,115,116, 84,121,112,101, 32, 61, 61, 32, 39, 66,114,101,
4176 97,107, 83,116, 97,116,101,109,101,110,116, 39, 32,116,104,
4177 101,110, 10, 9, 9, 9,111,117,116, 91, 35,111,117,116, 32,
4178 43, 32, 49, 93, 32, 61, 32, 34, 98,114,101, 97,107, 34, 10,
4179 9, 9,101,108,115,101,105,102, 32,115,116, 97,116,101,109,
4180 101,110,116, 46, 65,115,116, 84,121,112,101, 32, 61, 61, 32,
4181 39, 82,101,112,101, 97,116, 83,116, 97,116,101,109,101,110,
4182 116, 39, 32,116,104,101,110, 10, 9, 9, 9,111,117,116, 91,
4183 35,111,117,116, 32, 43, 32, 49, 93, 32, 61, 32, 34,114,101,
4184 112,101, 97,116, 34, 10, 9, 9, 9,106,111,105,110, 83,116,
4185 97,116,101,109,101,110,116,115, 83, 97,102,101, 40,111,117,
4186 116, 44, 32,102,111,114,109, 97,116, 83,116, 97,116,108,105,
4187 115,116, 40,115,116, 97,116,101,109,101,110,116, 46, 66,111,
4188 100,121, 41, 44, 32,110,105,108, 41, 10, 9, 9, 9,106,111,
4189 105,110, 83,116, 97,116,101,109,101,110,116,115, 83, 97,102,
4190 101, 40,111,117,116, 44, 32, 34,117,110,116,105,108, 32, 34,
4191 44, 32,110,105,108, 41, 10, 9, 9, 9,106,111,105,110, 83,
4192 116, 97,116,101,109,101,110,116,115, 83, 97,102,101, 40,111,
4193 117,116, 44, 32,102,111,114,109, 97,116, 69,120,112,114, 40,
4194 115,116, 97,116,101,109,101,110,116, 46, 67,111,110,100,105,
4195 116,105,111,110, 41, 44, 32,110,105,108, 41, 10, 9, 9,101,
4196 108,115,101,105,102, 32,115,116, 97,116,101,109,101,110,116,
4197 46, 65,115,116, 84,121,112,101, 32, 61, 61, 32, 39, 70,117,
4198 110, 99,116,105,111,110, 39, 32,116,104,101,110, 10, 9, 9,
4199 9,105,102, 32,115,116, 97,116,101,109,101,110,116, 46, 73,
4200 115, 76,111, 99, 97,108, 32,116,104,101,110, 10, 9, 9, 9,
4201 9,111,117,116, 91, 35,111,117,116, 32, 43, 32, 49, 93, 32,
4202 61, 32, 34,108,111, 99, 97,108, 32, 34, 10, 9, 9, 9,101,
4203 110,100, 10, 9, 9, 9,106,111,105,110, 83,116, 97,116,101,
4204 109,101,110,116,115, 83, 97,102,101, 40,111,117,116, 44, 32,
4205 34,102,117,110, 99,116,105,111,110, 32, 34, 44, 32,110,105,
4206 108, 41, 10, 9, 9, 9,105,102, 32,115,116, 97,116,101,109,
4207 101,110,116, 46, 73,115, 76,111, 99, 97,108, 32,116,104,101,
4208 110, 10, 9, 9, 9, 9,111,117,116, 91, 35,111,117,116, 32,
4209 43, 32, 49, 93, 32, 61, 32,115,116, 97,116,101,109,101,110,
4210 116, 46, 78, 97,109,101, 46, 78, 97,109,101, 10, 9, 9, 9,
4211 101,108,115,101, 10, 9, 9, 9, 9,111,117,116, 91, 35,111,
4212 117,116, 32, 43, 32, 49, 93, 32, 61, 32,102,111,114,109, 97,
4213 116, 69,120,112,114, 40,115,116, 97,116,101,109,101,110,116,
4214 46, 78, 97,109,101, 41, 10, 9, 9, 9,101,110,100, 10, 9,
4215 9, 9,111,117,116, 91, 35,111,117,116, 32, 43, 32, 49, 93,
4216 32, 61, 32, 34, 40, 34, 10, 9, 9, 9,105,102, 32, 35,115,
4217 116, 97,116,101,109,101,110,116, 46, 65,114,103,117,109,101,
4218 110,116,115, 32, 62, 32, 48, 32,116,104,101,110, 10, 9, 9,
4219 9, 9,102,111,114, 32,105, 32, 61, 32, 49, 44, 32, 35,115,
4220 116, 97,116,101,109,101,110,116, 46, 65,114,103,117,109,101,
4221 110,116,115, 32,100,111, 10, 9, 9, 9, 9, 9,111,117,116,
4222 91, 35,111,117,116, 32, 43, 32, 49, 93, 32, 61, 32,115,116,
4223 97,116,101,109,101,110,116, 46, 65,114,103,117,109,101,110,
4224 116,115, 91,105, 93, 46, 78, 97,109,101, 10, 9, 9, 9, 9,
4225 9,105,102, 32,105, 32,126, 61, 32, 35,115,116, 97,116,101,
4226 109,101,110,116, 46, 65,114,103,117,109,101,110,116,115, 32,
4227 116,104,101,110, 10, 9, 9, 9, 9, 9, 9,111,117,116, 91,
4228 35,111,117,116, 32, 43, 32, 49, 93, 32, 61, 32, 34, 44, 32,
4229 34, 10, 9, 9, 9, 9, 9,101,108,115,101,105,102, 32,115,
4230 116, 97,116,101,109,101,110,116, 46, 86, 97,114, 65,114,103,
4231 32,116,104,101,110, 10, 9, 9, 9, 9, 9, 9,111,117,116,
4232 91, 35,111,117,116, 32, 43, 32, 49, 93, 32, 61, 32, 34, 44,
4233 46, 46, 46, 34, 10, 9, 9, 9, 9, 9,101,110,100, 10, 9,
4234 9, 9, 9,101,110,100, 10, 9, 9, 9,101,108,115,101,105,
4235 102, 32,115,116, 97,116,101,109,101,110,116, 46, 86, 97,114,
4236 65,114,103, 32,116,104,101,110, 10, 9, 9, 9, 9,111,117,
4237 116, 91, 35,111,117,116, 32, 43, 32, 49, 93, 32, 61, 32, 34,
4238 46, 46, 46, 34, 10, 9, 9, 9,101,110,100, 10, 9, 9, 9,
4239 111,117,116, 91, 35,111,117,116, 32, 43, 32, 49, 93, 32, 61,
4240 32, 34, 41, 34, 10, 9, 9, 9,106,111,105,110, 83,116, 97,
4241 116,101,109,101,110,116,115, 83, 97,102,101, 40,111,117,116,
4242 44, 32,102,111,114,109, 97,116, 83,116, 97,116,108,105,115,
4243 116, 40,115,116, 97,116,101,109,101,110,116, 46, 66,111,100,
4244 121, 41, 44, 32,110,105,108, 41, 10, 9, 9, 9,106,111,105,
4245 110, 83,116, 97,116,101,109,101,110,116,115, 83, 97,102,101,
4246 40,111,117,116, 44, 32, 34,101,110,100, 34, 44, 32,110,105,
4247 108, 41, 10, 9, 9,101,108,115,101,105,102, 32,115,116, 97,
4248 116,101,109,101,110,116, 46, 65,115,116, 84,121,112,101, 32,
4249 61, 61, 32, 39, 71,101,110,101,114,105, 99, 70,111,114, 83,
4250 116, 97,116,101,109,101,110,116, 39, 32,116,104,101,110, 10,
4251 9, 9, 9,111,117,116, 91, 35,111,117,116, 32, 43, 32, 49,
4252 93, 32, 61, 32, 34,102,111,114, 32, 34, 10, 9, 9, 9,102,
4253 111,114, 32,105, 32, 61, 32, 49, 44, 32, 35,115,116, 97,116,
4254 101,109,101,110,116, 46, 86, 97,114,105, 97, 98,108,101, 76,
4255 105,115,116, 32,100,111, 10, 9, 9, 9, 9,111,117,116, 91,
4256 35,111,117,116, 32, 43, 32, 49, 93, 32, 61, 32,115,116, 97,
4257 116,101,109,101,110,116, 46, 86, 97,114,105, 97, 98,108,101,
4258 76,105,115,116, 91,105, 93, 46, 78, 97,109,101, 10, 9, 9,
4259 9, 9,105,102, 32,105, 32,126, 61, 32, 35,115,116, 97,116,
4260 101,109,101,110,116, 46, 86, 97,114,105, 97, 98,108,101, 76,
4261 105,115,116, 32,116,104,101,110, 10, 9, 9, 9, 9, 9,111,
4262 117,116, 91, 35,111,117,116, 32, 43, 32, 49, 93, 32, 61, 32,
4263 34, 44, 32, 34, 10, 9, 9, 9, 9,101,110,100, 10, 9, 9,
4264 9,101,110,100, 10, 9, 9, 9,111,117,116, 91, 35,111,117,
4265 116, 32, 43, 32, 49, 93, 32, 61, 32, 34, 32,105,110, 32, 34,
4266 10, 9, 9, 9,102,111,114, 32,105, 32, 61, 32, 49, 44, 32,
4267 35,115,116, 97,116,101,109,101,110,116, 46, 71,101,110,101,
4268 114, 97,116,111,114,115, 32,100,111, 10, 9, 9, 9, 9,106,
4269 111,105,110, 83,116, 97,116,101,109,101,110,116,115, 83, 97,
4270 102,101, 40,111,117,116, 44, 32,102,111,114,109, 97,116, 69,
4271 120,112,114, 40,115,116, 97,116,101,109,101,110,116, 46, 71,
4272 101,110,101,114, 97,116,111,114,115, 91,105, 93, 41, 44, 32,
4273 110,105,108, 41, 10, 9, 9, 9, 9,105,102, 32,105, 32,126,
4274 61, 32, 35,115,116, 97,116,101,109,101,110,116, 46, 71,101,
4275 110,101,114, 97,116,111,114,115, 32,116,104,101,110, 10, 9,
4276 9, 9, 9, 9,106,111,105,110, 83,116, 97,116,101,109,101,
4277 110,116,115, 83, 97,102,101, 40,111,117,116, 44, 32, 39, 44,
4278 32, 39, 44, 32,110,105,108, 41, 10, 9, 9, 9, 9,101,110,
4279 100, 10, 9, 9, 9,101,110,100, 10, 9, 9, 9,106,111,105,
4280 110, 83,116, 97,116,101,109,101,110,116,115, 83, 97,102,101,
4281 40,111,117,116, 44, 32, 34, 32,100,111, 34, 44, 32,110,105,
4282 108, 41, 10, 9, 9, 9,106,111,105,110, 83,116, 97,116,101,
4283 109,101,110,116,115, 83, 97,102,101, 40,111,117,116, 44, 32,
4284 102,111,114,109, 97,116, 83,116, 97,116,108,105,115,116, 40,
4285 115,116, 97,116,101,109,101,110,116, 46, 66,111,100,121, 41,
4286 44, 32,110,105,108, 41, 10, 9, 9, 9,106,111,105,110, 83,
4287 116, 97,116,101,109,101,110,116,115, 83, 97,102,101, 40,111,
4288 117,116, 44, 32, 34,101,110,100, 34, 44, 32,110,105,108, 41,
4289 10, 9, 9,101,108,115,101,105,102, 32,115,116, 97,116,101,
4290 109,101,110,116, 46, 65,115,116, 84,121,112,101, 32, 61, 61,
4291 32, 39, 78,117,109,101,114,105, 99, 70,111,114, 83,116, 97,
4292 116,101,109,101,110,116, 39, 32,116,104,101,110, 10, 9, 9,
4293 9,111,117,116, 91, 35,111,117,116, 32, 43, 32, 49, 93, 32,
4294 61, 32, 34,102,111,114, 32, 34, 10, 9, 9, 9,111,117,116,
4295 91, 35,111,117,116, 32, 43, 32, 49, 93, 32, 61, 32,115,116,
4296 97,116,101,109,101,110,116, 46, 86, 97,114,105, 97, 98,108,
4297 101, 46, 78, 97,109,101, 10, 9, 9, 9,111,117,116, 91, 35,
4298 111,117,116, 32, 43, 32, 49, 93, 32, 61, 32, 34, 32, 61, 32,
4299 34, 10, 9, 9, 9,111,117,116, 91, 35,111,117,116, 32, 43,
4300 32, 49, 93, 32, 61, 32,102,111,114,109, 97,116, 69,120,112,
4301 114, 40,115,116, 97,116,101,109,101,110,116, 46, 83,116, 97,
4302 114,116, 41, 10, 9, 9, 9,111,117,116, 91, 35,111,117,116,
4303 32, 43, 32, 49, 93, 32, 61, 32, 34, 44, 32, 34, 10, 9, 9,
4304 9,111,117,116, 91, 35,111,117,116, 32, 43, 32, 49, 93, 32,
4305 61, 32,102,111,114,109, 97,116, 69,120,112,114, 40,115,116,
4306 97,116,101,109,101,110,116, 46, 69,110,100, 41, 10, 9, 9,
4307 9,105,102, 32,115,116, 97,116,101,109,101,110,116, 46, 83,
4308 116,101,112, 32,116,104,101,110, 10, 9, 9, 9, 9,111,117,
4309 116, 91, 35,111,117,116, 32, 43, 32, 49, 93, 32, 61, 32, 34,
4310 44, 32, 34, 10, 9, 9, 9, 9,111,117,116, 91, 35,111,117,
4311 116, 32, 43, 32, 49, 93, 32, 61, 32,102,111,114,109, 97,116,
4312 69,120,112,114, 40,115,116, 97,116,101,109,101,110,116, 46,
4313 83,116,101,112, 41, 10, 9, 9, 9,101,110,100, 10, 9, 9,
4314 9,106,111,105,110, 83,116, 97,116,101,109,101,110,116,115,
4315 83, 97,102,101, 40,111,117,116, 44, 32, 34, 32,100,111, 34,
4316 44, 32,110,105,108, 41, 10, 9, 9, 9,106,111,105,110, 83,
4317 116, 97,116,101,109,101,110,116,115, 83, 97,102,101, 40,111,
4318 117,116, 44, 32,102,111,114,109, 97,116, 83,116, 97,116,108,
4319 105,115,116, 40,115,116, 97,116,101,109,101,110,116, 46, 66,
4320 111,100,121, 41, 44, 32,110,105,108, 41, 10, 9, 9, 9,106,
4321 111,105,110, 83,116, 97,116,101,109,101,110,116,115, 83, 97,
4322 102,101, 40,111,117,116, 44, 32, 34,101,110,100, 34, 44, 32,
4323 110,105,108, 41, 10, 9, 9,101,108,115,101,105,102, 32,115,
4324 116, 97,116,101,109,101,110,116, 46, 65,115,116, 84,121,112,
4325 101, 32, 61, 61, 32, 39, 76, 97, 98,101,108, 83,116, 97,116,
4326 101,109,101,110,116, 39, 32,116,104,101,110, 10, 9, 9, 9,
4327 111,117,116, 91, 35,111,117,116, 32, 43, 32, 49, 93, 32, 61,
4328 32, 34, 58, 58, 34, 10, 9, 9, 9,111,117,116, 91, 35,111,
4329 117,116, 32, 43, 32, 49, 93, 32, 61, 32,115,116, 97,116,101,
4330 109,101,110,116, 46, 76, 97, 98,101,108, 10, 9, 9, 9,111,
4331 117,116, 91, 35,111,117,116, 32, 43, 32, 49, 93, 32, 61, 32,
4332 34, 58, 58, 34, 10, 9, 9,101,108,115,101,105,102, 32,115,
4333 116, 97,116,101,109,101,110,116, 46, 65,115,116, 84,121,112,
4334 101, 32, 61, 61, 32, 39, 71,111,116,111, 83,116, 97,116,101,
4335 109,101,110,116, 39, 32,116,104,101,110, 10, 9, 9, 9,111,
4336 117,116, 91, 35,111,117,116, 32, 43, 32, 49, 93, 32, 61, 32,
4337 34,103,111,116,111, 32, 34, 10, 9, 9, 9,111,117,116, 91,
4338 35,111,117,116, 32, 43, 32, 49, 93, 32, 61, 32,115,116, 97,
4339 116,101,109,101,110,116, 46, 76, 97, 98,101,108, 10, 9, 9,
4340 101,108,115,101,105,102, 32,115,116, 97,116,101,109,101,110,
4341 116, 46, 65,115,116, 84,121,112,101, 32, 61, 61, 32, 39, 67,
4342 111,109,109,101,110,116, 39, 32,116,104,101,110, 10, 9, 9,
4343 9, 45, 45, 32, 73,103,110,111,114,101, 10, 9, 9,101,108,
4344 115,101,105,102, 32,115,116, 97,116,101,109,101,110,116, 46,
4345 65,115,116, 84,121,112,101, 32, 61, 61, 32, 39, 69,111,102,
4346 39, 32,116,104,101,110, 10, 9, 9, 9, 45, 45, 32, 73,103,
4347 110,111,114,101, 10, 9, 9,101,108,115,101, 10, 9, 9, 9,
4348 112,114,105,110,116, 40, 34, 85,110,107,110,111,119,110, 32,
4349 65, 83, 84, 32, 84,121,112,101, 58, 32, 34, 44, 32,115,116,
4350 97,116,101,109,101,110,116, 46, 65,115,116, 84,121,112,101,
4351 41, 10, 9, 9,101,110,100, 10, 9, 9,105,102, 32,115,116,
4352 97,116,101,109,101,110,116, 46, 84,111,107,101,110,115, 32,
4353 97,110,100, 32,115,116, 97,116,101,109,101,110,116, 46, 84,
4354 111,107,101,110,115, 91, 49, 93, 32,116,104,101,110, 10, 9,
4355 9, 9,108,111, 99, 97,108, 32,108,105,110,101, 32, 61, 32,
4356 115,116, 97,116,101,109,101,110,116, 46, 84,111,107,101,110,
4357 115, 91, 49, 93, 46, 76,105,110,101, 10, 9, 9, 9,108,111,
4358 99, 97,108, 32,116, 97,114,103,101,116, 76,105,110,101, 32,
4359 61, 32,108,105,110,101, 77, 97,112, 91,108,105,110,101, 93,
4360 10, 9, 9, 9,105,102, 32,116, 97,114,103,101,116, 76,105,
4361 110,101, 32, 97,110,100, 32, 99,117,114,114,101,110,116, 76,
4362 105,110,101, 32, 60, 32,116, 97,114,103,101,116, 76,105,110,
4363 101, 32,116,104,101,110, 10, 9, 9, 9, 9,116, 97, 98,108,
4364 101, 46,105,110,115,101,114,116, 40,111,117,116, 44, 32, 49,
4365 44, 32,115,116,114,105,110,103, 46,114,101,112, 40, 39, 92,
4366 110, 39, 44, 32,116, 97,114,103,101,116, 76,105,110,101, 32,
4367 45, 32, 99,117,114,114,101,110,116, 76,105,110,101, 41, 41,
4368 10, 9, 9, 9, 9, 99,117,114,114,101,110,116, 76,105,110,
4369 101, 32, 61, 32,116, 97,114,103,101,116, 76,105,110,101, 10,
4370 9, 9, 9,101,110,100, 10, 9, 9,101,110,100, 10, 9, 9,
4371 114,101,116,117,114,110, 32,116, 97, 98,108,101, 46, 99,111,
4372 110, 99, 97,116, 40,111,117,116, 41, 10, 9,101,110,100, 10,
4373 10, 9,102,111,114,109, 97,116, 83,116, 97,116,108,105,115,
4374 116, 32, 61, 32,102,117,110, 99,116,105,111,110, 40,115,116,
4375 97,116, 76,105,115,116, 41, 10, 9, 9,108,111, 99, 97,108,
4376 32,111,117,116, 32, 61, 32,123, 34, 34,125, 10, 9, 9,102,
4377 111,114, 32, 95, 44, 32,115,116, 97,116, 32,105,110, 32,112,
4378 97,105,114,115, 40,115,116, 97,116, 76,105,115,116, 46, 66,
4379 111,100,121, 41, 32,100,111, 10, 9, 9, 9,106,111,105,110,
4380 83,116, 97,116,101,109,101,110,116,115, 83, 97,102,101, 40,
4381 111,117,116, 44, 32,102,111,114,109, 97,116, 83,116, 97,116,
4382 101,109,101,110,116, 40,115,116, 97,116, 41, 44, 32, 39, 59,
4383 39, 41, 10, 9, 9,101,110,100, 10, 9, 9,114,101,116,117,
4384 114,110, 32,116, 97, 98,108,101, 46, 99,111,110, 99, 97,116,
4385 40,111,117,116, 41, 10, 9,101,110,100, 10, 10, 9,114,101,
4386 116,117,114,110, 32,102,111,114,109, 97,116, 83,116, 97,116,
4387 108,105,115,116, 40, 97,115,116, 41, 10,101,110,100, 10, 10,
4388 108,111, 99, 97,108, 32,102,117,110, 99,116,105,111,110, 32,
4389 71,101,116, 89,117,101, 76,105,110,101, 77, 97,112, 40,108,
4390 117, 97, 67,111,100,101,115, 41, 10, 9,108,111, 99, 97,108,
4391 32, 99,117,114,114,101,110,116, 32, 61, 32, 49, 10, 9,108,
4392 111, 99, 97,108, 32,108, 97,115,116, 76,105,110,101, 32, 61,
4393 32, 49, 10, 9,108,111, 99, 97,108, 32,108,105,110,101, 77,
4394 97,112, 32, 61, 32,123, 32,125, 10, 9,102,111,114, 32,108,
4395 105,110,101, 67,111,100,101, 32,105,110, 32,108,117, 97, 67,
4396 111,100,101,115, 58,103,109, 97,116, 99,104, 40, 34, 40, 91,
4397 94, 92,114, 92,110, 93, 42, 41, 92,114, 63, 92,110, 63, 34,
4398 41, 32,100,111, 10, 9, 9,108,111, 99, 97,108, 32,110,117,
4399 109, 32, 61, 32,108,105,110,101, 67,111,100,101, 58,109, 97,
4400 116, 99,104, 40, 34, 45, 45, 37,115, 42, 40, 37,100, 43, 41,
4401 37,115, 42, 36, 34, 41, 10, 9, 9,105,102, 32,110,117,109,
4402 32,116,104,101,110, 10, 9, 9, 9,108,111, 99, 97,108, 32,
4403 108,105,110,101, 32, 61, 32,116,111,110,117,109, 98,101,114,
4404 40,110,117,109, 41, 10, 9, 9, 9,105,102, 32,108,105,110,
4405 101, 32, 62, 32,108, 97,115,116, 76,105,110,101, 32,116,104,
4406 101,110, 10, 9, 9, 9, 9,108, 97,115,116, 76,105,110,101,
4407 32, 61, 32,108,105,110,101, 10, 9, 9, 9,101,110,100, 10,
4408 9, 9,101,110,100, 10, 9, 9,108,105,110,101, 77, 97,112,
4409 91, 99,117,114,114,101,110,116, 93, 32, 61, 32,108, 97,115,
4410 116, 76,105,110,101, 10, 9, 9, 99,117,114,114,101,110,116,
4411 32, 61, 32, 99,117,114,114,101,110,116, 32, 43, 32, 49, 10,
4412 9,101,110,100, 10, 9,114,101,116,117,114,110, 32,108,105,
4413 110,101, 77, 97,112, 10,101,110,100, 10, 10,114,101,116,117,
4414 114,110, 32,123, 10, 9, 70,111,114,109, 97,116, 77,105,110,
4415 105, 32, 61, 32,102,117,110, 99,116,105,111,110, 40,115,114,
4416 99, 41, 10, 9, 9,108,111, 99, 97,108, 32,115,116, 44, 32,
4417 97,115,116, 32, 61, 32, 80, 97,114,115,101, 76,117, 97, 40,
4418 115,114, 99, 41, 10, 9, 9,105,102, 32,115,116, 32,116,104,
4419 101,110, 10, 9, 9, 9,114,101,116,117,114,110, 32, 70,111,
4420 114,109, 97,116, 95, 77,105,110,105, 40, 97,115,116, 41, 10,
4421 9, 9,101,108,115,101, 10, 9, 9, 9,114,101,116,117,114,
4422 110, 32,110,105,108, 44, 32, 97,115,116, 10, 9, 9,101,110,
4423 100, 10, 9,101,110,100, 44, 10, 10, 9, 70,111,114,109, 97,
4424 116, 89,117,101, 32, 61, 32,102,117,110, 99,116,105,111,110,
4425 40,115,114, 99, 41, 10, 9, 9,108,111, 99, 97,108, 32,115,
4426 116, 44, 32, 97,115,116, 32, 61, 32, 80, 97,114,115,101, 76,
4427 117, 97, 40,115,114, 99, 41, 10, 9, 9,105,102, 32,115,116,
4428 32,116,104,101,110, 10, 9, 9, 9,108,111, 99, 97,108, 32,
4429 108,105,110,101, 77, 97,112, 32, 61, 32, 71,101,116, 89,117,
4430 101, 76,105,110,101, 77, 97,112, 40,115,114, 99, 41, 10, 9,
4431 9, 9,105,102, 32, 35,108,105,110,101, 77, 97,112, 32, 61,
4432 61, 32, 48, 32,116,104,101,110, 10, 9, 9, 9, 9,114,101,
4433 116,117,114,110, 32,115,114, 99, 10, 9, 9, 9,101,110,100,
4434 10, 9, 9, 9,114,101,116,117,114,110, 32, 70,111,114,109,
4435 97,116, 89,117,101, 40, 97,115,116, 44, 32,108,105,110,101,
4436 77, 97,112, 41, 10, 9, 9,101,108,115,101, 10, 9, 9, 9,
4437 114,101,116,117,114,110, 32,110,105,108, 44, 32, 97,115,116,
4438 10, 9, 9,101,110,100, 10, 9,101,110,100, 10,125, 10,
4439}; \ No newline at end of file
diff --git a/src/yue.cpp b/src/yue.cpp
index 2722c55..26f581e 100644
--- a/src/yue.cpp
+++ b/src/yue.cpp
@@ -131,12 +131,10 @@ void pushOptions(lua_State* L, int lineOffset) {
131#endif // YUE_NO_MACRO 131#endif // YUE_NO_MACRO
132 132
133#ifndef YUE_COMPILER_ONLY 133#ifndef YUE_COMPILER_ONLY
134static const char luaminifyCodes[] = 134#include "luaminify_lua.h"
135#include "LuaMinify.h"
136 ;
137 135
138static void pushLuaminify(lua_State* L) { 136static void pushLuaminify(lua_State* L) {
139 if (luaL_loadbuffer(L, luaminifyCodes, sizeof(luaminifyCodes) / sizeof(luaminifyCodes[0]) - 1, "=(luaminify)") != 0) { 137 if (luaL_loadbuffer(L, luaminify_lua, sizeof(luaminify_lua) / sizeof(luaminify_lua[0]), "=(luaminify)") != 0) {
140 std::string err = "failed to load luaminify module.\n"s + lua_tostring(L, -1); 138 std::string err = "failed to load luaminify module.\n"s + lua_tostring(L, -1);
141 luaL_error(L, err.c_str()); 139 luaL_error(L, err.c_str());
142 } else if (lua_pcall(L, 0, 1, 0) != 0) { 140 } else if (lua_pcall(L, 0, 1, 0) != 0) {
@@ -317,32 +315,56 @@ public:
317 315
318int main(int narg, const char** args) { 316int main(int narg, const char** args) {
319 const char* help = 317 const char* help =
320 "Usage: yue [options|files|directories] ...\n\n" 318 "Usage: yue\n"
321 " -h Print this message\n" 319 " [options] [<file/directory>] ...\n"
322#ifndef YUE_COMPILER_ONLY 320#ifndef YUE_COMPILER_ONLY
323 " -e str Execute a file or raw codes\n" 321 " yue -e <code_or_file> [args...]\n"
324 " -m Generate minified codes\n"
325 " -r Rewrite output to match original line numbers\n"
326#endif // YUE_COMPILER_ONLY 322#endif // YUE_COMPILER_ONLY
327 " -t path Specify where to place compiled files\n"
328 " -o file Write output to file\n"
329 " -s Use spaces in generated codes instead of tabs\n"
330 " -p Write output to standard out\n"
331 " -b Dump compile time (doesn't write output)\n"
332 " -g Dump global variables used in NAME LINE COLUMN\n"
333 " -l Write line numbers from source codes\n"
334 " -j Disable implicit return at end of file\n"
335 " -c Reserve comments before statement from source codes\n"
336#ifndef YUE_NO_WATCHER 323#ifndef YUE_NO_WATCHER
337 " -w path Watch changes and compile every file under directory\n" 324 " yue -w [<directory>] [options]\n"
338#endif // YUE_NO_WATCHER 325#endif // YUE_NO_WATCHER
339 " -v Print version\n" 326 " yue -\n\n"
327 "Notes:\n"
328 " - '-' / '--' must be the first and only argument.\n"
329 " - '-o/--output' can not be used with multiple input files.\n"
330#ifndef YUE_NO_WATCHER
331 " - '-w/--watch' can not be used with file input (directory only).\n"
332#endif // YUE_NO_WATCHER
333#ifndef YUE_COMPILER_ONLY
334 " - with '-e/--execute', remaining tokens are treated as script args.\n\n"
335#else
336 "\n"
337#endif // YUE_COMPILER_ONLY
338 "Options:\n"
339 " -h, --help Show this help message and exit.\n"
340#ifndef YUE_COMPILER_ONLY 340#ifndef YUE_COMPILER_ONLY
341 " -- Read from standard in, print to standard out\n" 341 " -e <str>, --execute <str> Execute a file or raw codes\n"
342 " (Must be first and only argument)\n\n" 342 " -m, --minify Generate minified codes\n"
343 " --target=version Specify the Lua version that codes will be generated to\n" 343 " -r, --rewrite Rewrite output to match original line numbers\n"
344 " (version can only be 5.1 to 5.5)\n" 344#endif // YUE_COMPILER_ONLY
345 " --path=path_str Append an extra Lua search path string to package.path\n\n" 345 " -t <output_to>, --output-to <output_to>\n"
346 " Specify where to place compiled files\n"
347 " -o <file>, --output <file> Write output to file\n"
348 " -p, --print Write output to standard out\n"
349 " -b, --benchmark Dump compile time (doesn't write output)\n"
350 " -g, --globals Dump global variables used in NAME LINE COLUMN\n"
351 " -s, --spaces Use spaces in generated codes instead of tabs\n"
352 " -l, --line-numbers Write line numbers from source codes\n"
353 " -j, --no-implicit-return Disable implicit return at end of file\n"
354 " -c, --reserve-comments Reserve comments before statement from source codes\n"
355#ifndef YUE_NO_WATCHER
356 " -w [<dir>], --watch [<dir>]\n"
357 " Watch changes and compile every file under directory\n"
358#endif // YUE_NO_WATCHER
359 " -v, --version Print version\n"
360#ifndef YUE_COMPILER_ONLY
361 " - Read from standard in, print to standard out\n"
362 " (Must be first and only argument)\n"
363 " -- Same as '-' (kept for backward compatibility)\n\n"
364 " --target <version> Specify the Lua version that codes will be generated to\n"
365 " (version can only be 5.1 to 5.5)\n"
366 " --path <path_str> Append an extra Lua search path string to package.path\n"
367 " --<key>=<value> Pass compiler option in key=value form (existing behavior)\n\n"
346 " Execute without options to enter REPL, type symbol '$'\n" 368 " Execute without options to enter REPL, type symbol '$'\n"
347 " in a single line to start/stop multi-line mode\n" 369 " in a single line to start/stop multi-line mode\n"
348#endif // YUE_COMPILER_ONLY 370#endif // YUE_COMPILER_ONLY
@@ -446,11 +468,6 @@ int main(int narg, const char** args) {
446 if (err.substr(0, modName.size()) == modName) { 468 if (err.substr(0, modName.size()) == modName) {
447 err = err.substr(modName.size()); 469 err = err.substr(modName.size());
448 } 470 }
449 auto pos = err.find(':');
450 if (pos != std::string::npos) {
451 int lineNum = std::stoi(err.substr(0, pos));
452 err = std::to_string(lineNum - 1) + err.substr(pos);
453 }
454 std::cout << Err << err << Stop; 471 std::cout << Err << err << Stop;
455 continue; 472 continue;
456 } 473 }
@@ -502,13 +519,35 @@ int main(int narg, const char** args) {
502 std::string resultFile; 519 std::string resultFile;
503 std::string workPath; 520 std::string workPath;
504 std::list<std::pair<std::string, std::string>> files; 521 std::list<std::pair<std::string, std::string>> files;
522
523 auto isOptionToken = [](std::string_view s) {
524 return !s.empty() && (s[0] == '-' || (s.size() >= 2 && s.substr(0, 2) == "--"sv));
525 };
526 auto takeValue = [&](int& i, std::string_view arg, std::string_view optName) -> std::string {
527 // supports: --opt=value, --opt value, -o value, -t value, etc.
528 if (auto eq = arg.find('='); eq != std::string_view::npos) {
529 return std::string(arg.substr(eq + 1));
530 }
531 if (i + 1 < narg) {
532 ++i;
533 return std::string(args[i]);
534 }
535 std::cout << help;
536 (void)optName;
537 return std::string();
538 };
539
505 for (int i = 1; i < narg; ++i) { 540 for (int i = 1; i < narg; ++i) {
506 std::string arg = args[i]; 541 std::string arg = args[i];
507 if (arg == "--"sv) { 542 if (arg == "-"sv || arg == "--"sv) {
508 if (i != 1) { 543 if (i != 1) {
509 std::cout << help; 544 std::cout << help;
510 return 1; 545 return 1;
511 } 546 }
547 if (narg != 2) {
548 std::cout << help;
549 return 1;
550 }
512 char ch; 551 char ch;
513 std::string codes; 552 std::string codes;
514 while ((ch = std::cin.get()) && !std::cin.eof()) { 553 while ((ch = std::cin.get()) && !std::cin.eof()) {
@@ -529,9 +568,9 @@ int main(int narg, const char** args) {
529 return 1; 568 return 1;
530 } 569 }
531#ifndef YUE_COMPILER_ONLY 570#ifndef YUE_COMPILER_ONLY
532 } else if (arg == "-e"sv) { 571 } else if (arg == "-e"sv || arg == "--execute"sv || arg.rfind("--execute="sv, 0) == 0) {
533 ++i; 572 auto evalStr = takeValue(i, arg, "execute"sv);
534 if (i < narg) { 573 if (!evalStr.empty()) {
535 lua_State* L = luaL_newstate(); 574 lua_State* L = luaL_newstate();
536 openlibs(L); 575 openlibs(L);
537 DEFER(lua_close(L)); 576 DEFER(lua_close(L));
@@ -540,7 +579,6 @@ int main(int narg, const char** args) {
540 std::cout << lua_tostring(L, -1) << '\n'; 579 std::cout << lua_tostring(L, -1) << '\n';
541 return 1; 580 return 1;
542 } 581 }
543 std::string evalStr = args[i];
544 lua_newtable(L); 582 lua_newtable(L);
545 i++; 583 i++;
546 for (int j = i, index = 1; j < narg; j++) { 584 for (int j = i, index = 1; j < narg; j++) {
@@ -623,58 +661,100 @@ int main(int narg, const char** args) {
623 } 661 }
624 return 0; 662 return 0;
625 } else { 663 } else {
626 std::cout << help;
627 return 1; 664 return 1;
628 } 665 }
629 } else if (arg == "-m"sv) { 666 } else if (arg == "-m"sv || arg == "--minify"sv) {
630 minify = true; 667 minify = true;
631 } else if (arg == "-r"sv) { 668 } else if (arg == "-r"sv || arg == "--rewrite"sv) {
632 rewrite = true; 669 rewrite = true;
633#endif // YUE_COMPILER_ONLY 670#endif // YUE_COMPILER_ONLY
634 } else if (arg == "-s"sv) { 671 } else if (arg == "-s"sv || arg == "--spaces"sv) {
635 config.useSpaceOverTab = true; 672 config.useSpaceOverTab = true;
636 } else if (arg == "-l"sv) { 673 } else if (arg == "-l"sv || arg == "--line-numbers"sv) {
637 config.reserveLineNumber = true; 674 config.reserveLineNumber = true;
638 } else if (arg == "-c"sv) { 675 } else if (arg == "-c"sv || arg == "--reserve-comments"sv) {
639 config.reserveComment = true; 676 config.reserveComment = true;
640 } else if (arg == "-j"sv) { 677 } else if (arg == "-j"sv || arg == "--no-implicit-return"sv) {
641 config.implicitReturnRoot = false; 678 config.implicitReturnRoot = false;
642 } else if (arg == "-p"sv) { 679 } else if (arg == "-p"sv || arg == "--print"sv) {
643 writeToFile = false; 680 writeToFile = false;
644 } else if (arg == "-g"sv) { 681 } else if (arg == "-g"sv || arg == "--globals"sv) {
645 writeToFile = false; 682 writeToFile = false;
646 lintGlobal = true; 683 lintGlobal = true;
647 } else if (arg == "-t"sv) { 684 } else if (arg == "-t"sv || arg == "--output-to"sv || arg.rfind("--output-to="sv, 0) == 0) {
648 ++i; 685 targetPath = takeValue(i, arg, "output-to"sv);
649 if (i < narg) { 686 if (targetPath.empty()) return 1;
650 targetPath = args[i]; 687 } else if (arg == "-b"sv || arg == "--benchmark"sv) {
651 } else {
652 std::cout << help;
653 return 1;
654 }
655 } else if (arg == "-b"sv) {
656 dumpCompileTime = true; 688 dumpCompileTime = true;
657 } else if (arg == "-h"sv) { 689 } else if (arg == "-h"sv || arg == "--help"sv) {
658 std::cout << help; 690 std::cout << help;
659 return 0; 691 return 0;
660 } else if (arg == "-v"sv) { 692 } else if (arg == "-v"sv || arg == "--version"sv) {
661 std::cout << "Yuescript version: "sv << yue::version << '\n'; 693 std::cout << "Yuescript version: "sv << yue::version << '\n';
662 return 0; 694 return 0;
663 } else if (arg == "-o"sv) { 695 } else if (arg == "-o"sv || arg == "--output"sv || arg.rfind("--output="sv, 0) == 0) {
664 ++i; 696 resultFile = takeValue(i, arg, "output"sv);
665 if (i < narg) { 697 if (resultFile.empty()) return 1;
666 resultFile = args[i]; 698 } else if (arg == "-w"sv || arg == "--watch"sv || arg.rfind("--watch="sv, 0) == 0) {
667 } else {
668 std::cout << help;
669 return 1;
670 }
671 } else if (arg == "-w"sv) {
672#ifndef YUE_NO_WATCHER 699#ifndef YUE_NO_WATCHER
673 watchFiles = true; 700 watchFiles = true;
701 // accept optional directory value: -w <dir> / --watch <dir> / --watch=<dir>
702 if (arg != "-w"sv) {
703 auto watchDir = takeValue(i, arg, "watch"sv);
704 if (watchDir.empty()) return 1;
705 arg = watchDir;
706 // fall through to directory/file handling below by re-processing as positional
707 if (fs::is_directory(arg)) {
708 workPath = arg;
709 for (auto item : fs::recursive_directory_iterator(arg)) {
710 if (!item.is_directory()) {
711 auto ext = item.path().extension().string();
712 for (char& ch : ext) ch = std::tolower(ch);
713 if (!ext.empty() && ext.substr(1) == yue::extension) {
714 files.emplace_back(item.path().string(), item.path().lexically_relative(arg).string());
715 }
716 }
717 }
718 } else if (!arg.empty()) {
719 std::cout << help;
720 return 1;
721 }
722 continue;
723 } else if (i + 1 < narg && !isOptionToken(args[i + 1])) {
724 // support -w <dir> while keeping old "-w <dir as positional>" behavior
725 auto watchDir = takeValue(i, arg, "watch"sv);
726 if (!watchDir.empty()) {
727 arg = watchDir;
728 if (fs::is_directory(arg)) {
729 workPath = arg;
730 for (auto item : fs::recursive_directory_iterator(arg)) {
731 if (!item.is_directory()) {
732 auto ext = item.path().extension().string();
733 for (char& ch : ext) ch = std::tolower(ch);
734 if (!ext.empty() && ext.substr(1) == yue::extension) {
735 files.emplace_back(item.path().string(), item.path().lexically_relative(arg).string());
736 }
737 }
738 }
739 } else {
740 std::cout << help;
741 return 1;
742 }
743 continue;
744 }
745 }
674#else 746#else
675 std::cout << "Error: -w is not supported\n"sv; 747 std::cout << "Error: -w is not supported\n"sv;
676 return 1; 748 return 1;
677#endif // YUE_NO_WATCHER 749#endif // YUE_NO_WATCHER
750 } else if (arg == "--target"sv || arg.rfind("--target="sv, 0) == 0) {
751 auto v = takeValue(i, arg, "target"sv);
752 if (v.empty()) return 1;
753 config.options["target"s] = v;
754 } else if (arg == "--path"sv || arg.rfind("--path="sv, 0) == 0) {
755 auto v = takeValue(i, arg, "path"sv);
756 if (v.empty()) return 1;
757 config.options["path"s] = v;
678 } else if (arg.size() > 2 && arg.substr(0, 2) == "--"sv && arg.substr(2, 1) != "-"sv) { 758 } else if (arg.size() > 2 && arg.substr(0, 2) == "--"sv && arg.substr(2, 1) != "-"sv) {
679 auto argStr = arg.substr(2); 759 auto argStr = arg.substr(2);
680 yue::Utils::trim(argStr); 760 yue::Utils::trim(argStr);
diff --git a/src/yuescript/yue_compiler.cpp b/src/yuescript/yue_compiler.cpp
index f9b4f18..c4fc952 100644
--- a/src/yuescript/yue_compiler.cpp
+++ b/src/yuescript/yue_compiler.cpp
@@ -78,7 +78,7 @@ static std::unordered_set<std::string> Metamethods = {
78 "close"s // Lua 5.4 78 "close"s // Lua 5.4
79}; 79};
80 80
81const std::string_view version = "0.32.1"sv; 81const std::string_view version = "0.32.3"sv;
82const std::string_view extension = "yue"sv; 82const std::string_view extension = "yue"sv;
83 83
84class CompileError : public std::logic_error { 84class CompileError : public std::logic_error {
@@ -566,27 +566,65 @@ private:
566 return defined; 566 return defined;
567 } 567 }
568 568
569 bool isLocal(const std::string& name) const { 569 bool isSolidLocal(const std::string& name) {
570 bool local = false; 570 bool local = false;
571 for (auto it = _scopes.rbegin(); it != _scopes.rend(); ++it) { 571 for (auto it = _scopes.rbegin(); it != _scopes.rend(); ++it) {
572 auto vars = it->vars.get(); 572 auto vars = it->vars.get();
573 auto vit = vars->find(name); 573 auto vit = vars->find(name);
574 if (vit != vars->end() && (vit->second == VarType::Local || vit->second == VarType::LocalConst)) { 574 if (vit != vars->end()) {
575 local = true; 575 switch (vit->second) {
576 break; 576 case VarType::Local:
577 case VarType::LocalConst:
578 local = true;
579 break;
580 default: break;
581 }
577 } 582 }
578 } 583 }
579 return local; 584 return local;
580 } 585 }
581 586
587 bool isLocal(const std::string& name) {
588 bool local = false;
589 bool defined = false;
590 for (auto it = _scopes.rbegin(); it != _scopes.rend(); ++it) {
591 auto vars = it->vars.get();
592 auto vit = vars->find(name);
593 if (vit != vars->end()) {
594 defined = true;
595 switch (vit->second) {
596 case VarType::Local:
597 case VarType::LocalConst:
598 local = true;
599 break;
600 default: break;
601 }
602 }
603 }
604 if (!defined && _importedGlobal) {
605 if (_importedGlobal->globals.find(name) == _importedGlobal->globals.end()) {
606 const auto& global = _importedGlobal->globalList.emplace_back(name);
607 _importedGlobal->globals.insert(global);
608 _importedGlobal->vars->insert_or_assign(name, VarType::LocalConst);
609 }
610 return true;
611 }
612 return local;
613 }
614
582 bool isDeclaredAsGlobal(const std::string& name) const { 615 bool isDeclaredAsGlobal(const std::string& name) const {
583 bool global = false; 616 bool global = false;
584 for (auto it = _scopes.rbegin(); it != _scopes.rend(); ++it) { 617 for (auto it = _scopes.rbegin(); it != _scopes.rend(); ++it) {
585 auto vars = it->vars.get(); 618 auto vars = it->vars.get();
586 auto vit = vars->find(name); 619 auto vit = vars->find(name);
587 if (vit != vars->end() && (vit->second == VarType::Global || vit->second == VarType::GlobalConst)) { 620 if (vit != vars->end()) {
588 global = true; 621 switch (vit->second) {
589 break; 622 case VarType::Global:
623 case VarType::GlobalConst:
624 global = true;
625 break;
626 default: break;
627 }
590 } 628 }
591 } 629 }
592 return global; 630 return global;
@@ -907,7 +945,7 @@ private:
907 } 945 }
908 946
909 void addGlobalVar(const std::string& name, ast_node* x) { 947 void addGlobalVar(const std::string& name, ast_node* x) {
910 if (isLocal(name)) throw CompileError("can not declare a local variable to be global"sv, x); 948 if (isSolidLocal(name)) throw CompileError("can not declare a local variable to be global"sv, x);
911 auto& scope = _scopes.back(); 949 auto& scope = _scopes.back();
912 scope.vars->insert_or_assign(name, VarType::Global); 950 scope.vars->insert_or_assign(name, VarType::Global);
913 } 951 }
@@ -4383,7 +4421,14 @@ private:
4383 upVarsAssignedOrCaptured = true; 4421 upVarsAssignedOrCaptured = true;
4384 break; 4422 break;
4385 } else if (std::find(args.begin(), args.end(), global.name) == args.end()) { 4423 } else if (std::find(args.begin(), args.end(), global.name) == args.end()) {
4386 args.push_back(global.name); 4424 if (_importedGlobal && _importedGlobal->vars == _scopes.front().vars.get()) {
4425 markGlobalImported(global.name);
4426 if (_importedGlobal->globals.find(global.name) == _importedGlobal->globals.end()) {
4427 args.push_back(global.name);
4428 }
4429 } else {
4430 args.push_back(global.name);
4431 }
4387 } 4432 }
4388 if (noGlobalVarPassing && !isLocal(global.name)) { 4433 if (noGlobalVarPassing && !isLocal(global.name)) {
4389 return std::nullopt; 4434 return std::nullopt;
diff --git a/src/yuescript/yue_parser.cpp b/src/yuescript/yue_parser.cpp
index f564f6a..ad76517 100644
--- a/src/yuescript/yue_parser.cpp
+++ b/src/yuescript/yue_parser.cpp
@@ -1342,40 +1342,78 @@ std::string ParseInfo::errorMessage(std::string_view msg, int errLine, int errCo
1342 return buf.str(); 1342 return buf.str();
1343 } 1343 }
1344 const int ASCII = 255; 1344 const int ASCII = 255;
1345 int length = errLine; 1345 const int contextLines = 2;
1346 auto begin = codes->begin(); 1346
1347 auto end = codes->end(); 1347 std::vector<std::pair<input::iterator, input::iterator>> lines;
1348 int count = 0; 1348 auto lineStart = codes->begin();
1349
1349 for (auto it = codes->begin(); it != codes->end(); ++it) { 1350 for (auto it = codes->begin(); it != codes->end(); ++it) {
1350 if (*it == '\n') { 1351 if (*it == '\n') {
1351 if (count + 1 == length) { 1352 lines.emplace_back(lineStart, it);
1352 end = it; 1353 lineStart = it + 1;
1353 break; 1354 }
1355 }
1356
1357 if (lineStart != codes->end()) {
1358 lines.emplace_back(lineStart, codes->end());
1359 }
1360
1361 int totalLines = static_cast<int>(lines.size());
1362 int startLine = std::max(1, errLine - contextLines);
1363 int endLine = std::min(totalLines, errLine + contextLines);
1364
1365 int maxLineNum = endLine + lineOffset;
1366 int lineNumWidth = 1;
1367 int temp = maxLineNum;
1368 while (temp >= 10) {
1369 temp /= 10;
1370 lineNumWidth++;
1371 }
1372
1373 std::ostringstream buf;
1374 buf << errLine + lineOffset << ": " << msg << '\n';
1375
1376 int errorDisplayCol = 0;
1377 if (errLine >= 1 && errLine <= totalLines) {
1378 auto& errorLineRange = lines[errLine - 1];
1379
1380 auto it = errorLineRange.first;
1381 int displayCol = 0;
1382 for (int i = 0; i < errCol && it != errorLineRange.second; ++i) {
1383 if (*it == '\t') {
1384 displayCol += 2;
1385 } else if (*it > ASCII) {
1386 displayCol += 2;
1354 } else { 1387 } else {
1355 begin = it + 1; 1388 displayCol++;
1356 } 1389 }
1357 count++; 1390 ++it;
1358 } 1391 }
1392 errorDisplayCol = displayCol;
1359 } 1393 }
1360 int oldCol = errCol; 1394
1361 int col = std::max(0, oldCol - 1); 1395 for (int lineNum = startLine; lineNum <= endLine; ++lineNum) {
1362 auto it = begin; 1396 int displayLineNum = lineNum + lineOffset;
1363 for (int i = 0; i < oldCol && it != end; ++i) { 1397 if (displayLineNum <= 0) continue;
1364 if (*it > ASCII) { 1398 std::string lineNumStr = std::to_string(displayLineNum);
1365 ++col; 1399
1400 int padding = lineNumWidth - static_cast<int>(lineNumStr.size());
1401 buf << std::string(padding, ' ') << lineNumStr << " | ";
1402
1403 if (lineNum >= 1 && lineNum <= totalLines) {
1404 auto& lineRange = lines[lineNum - 1];
1405 std::string line = utf8_encode({lineRange.first, lineRange.second});
1406 Utils::replace(line, "\t"sv, " "sv);
1407 buf << line;
1408 }
1409 buf << '\n';
1410
1411 if (lineNum == errLine) {
1412 buf << std::string(lineNumWidth, ' ') << " ";
1413 buf << std::string(errorDisplayCol - 1, ' ') << "^"sv << '\n';
1366 } 1414 }
1367 ++it;
1368 }
1369 auto line = utf8_encode({begin, end});
1370 while (col < static_cast<int>(line.size())
1371 && (line[col] == ' ' || line[col] == '\t')) {
1372 col++;
1373 } 1415 }
1374 Utils::replace(line, "\t"sv, " "sv); 1416
1375 std::ostringstream buf;
1376 buf << errLine + lineOffset << ": "sv << msg << '\n'
1377 << line << '\n'
1378 << std::string(col, ' ') << "^"sv;
1379 return buf.str(); 1417 return buf.str();
1380} 1418}
1381 1419