%NOTES
%Possibly loop the spongebob graphic
put "Welcome to Spongebob's Fry Off Game"
put "Help Spongebob customize a special krabby patty to feed a hungry customers"
put "Type 'y' to start the game, and 'n' to exit"
get start
loop
exit when start = "y"
end loop
cls
put "You have 10 seconds to memorize the following requirements. "
put "Use your memory to help you make the order."
put "Points will be given based on how many requirements you met."
put "Getting a certain amount of points will allow you to move on."
put "If a requirement is not in a specific section, feel free to have fun with adding"
put "and customizing the order."
put ""
put "Press 'y' to start reviewing your requirements, and 'n' to exit"
get start
cls
var background : int
put "Gary wants a krabby patty with the following toppings:"
put "-White buns"
put "-Shredded lettuce"
put "-Cheese"
put "-Ketchup"
put "-Plankton"
put "Feel free to add any extra ingredients!"
background := Pic.New (0,0,maxx, maxy)
for x : 0 .. 400 by 2
%stops at 400
Pic.Draw (background, 0, 0, picCopy)
drawfillbox (300+x, 110, 363, 115, 70)
drawfilloval (300+x, 170, 50, 60, 88)
%horiz, vertical, width, height, colour
drawfilloval (310+x, 115, 58, 5, 77)
drawfilloval (307+x, 112, 63, 2, 70)
drawfilloval (348+x, 120, 20, 5, 77)
drawfillbox (345+x, 190, 350+x, 119, 77)
drawfillbox (358+x, 190, 363+x, 119, 77)
drawfilloval (365+x, 193, 11, 11, 70)
drawfilloval (345+x, 193, 11, 11, 70)
drawfilloval (345+x, 193, 6, 6, 12)
drawfilloval (365+x, 193, 6, 6, 12)
drawfilloval (365+x, 193, 3, 3, 16)
drawfilloval (345+x, 193, 3, 3, 16)
drawfilloval (368+x, 195, 1, 1, 31)
drawfilloval (348+x, 195, 1, 1, 31)
drawfilloval (329+x, 175, 4, 6, 57)
drawfilloval (320+x, 195, 5, 6, 57)
drawfilloval (280+x, 195, 5, 6, 57)
drawfilloval (270+x, 175, 4, 6, 57)
drawfilloval (300+x, 210, 9, 6, 57)
delay (20)
end for
cls
for decreasing count : 3 .. 1
put count
delay (1000)
end for
put "Begin!"
delay (1000)
cls
%ADD STOVE AND SURROUNDING
%SPONGEBOB
%hori coor, vert coor, width right ending coor, height top ending coor, color
%horiz start, vertical, width end, height colour
%body
drawbox (400, 100, 500, 200, 2)
drawfillbox (400, 100, 510, 210, 14)
drawfillbox (400, 115, 510, 110, 31)
drawfillbox (400, 90, 510, 110, 137)
drawfillbox (410, 95, 425, 100, 16)
drawfillbox (450, 95, 435, 100, 16)
drawfillbox (476, 95, 460, 100, 16)
drawfillbox (500, 95, 485, 100, 16)
%horiz, height cord, width, vert
%eyes
drawfilloval (428, 170, 15, 15, 31)
drawfilloval (480, 170, 15, 15, 31)
%horiz, vertical, height, width, colour
%pupils
drawfilloval (480, 170, 10, 10, 54)
drawfilloval (428, 170, 10, 10, 54)
drawfilloval (428, 170, 5, 5, 16)
drawfilloval (480, 170, 5, 5, 16)
drawfilloval (477, 173, 3, 3, 31)
drawfilloval (432, 173, 3, 3, 31)
%legs
drawfillbox (420, 89, 430, 85, 31)
drawfillbox (480, 89, 490, 85, 31)
drawfillbox (482, 75, 488, 84, 14)
drawfillbox (422, 75, 428, 84, 14)
%socks
drawfillbox (422, 74, 428, 50, 31)
drawfillbox (482, 74, 488, 50, 31)
%stripes
drawfillbox (482, 68, 488, 67, 12)
drawfillbox (422, 68, 428, 67, 12)
drawfillbox (422, 64, 428, 63, 55)
drawfillbox (482, 64, 488, 63, 55)
%shoes
drawfilloval (492, 50, 13, 5, 16)
drawfilloval (420, 50, 13, 5, 16)
%mouth
drawfillarc (453, 136, 25, 15, 190, 0, 135)
%horizon, vertical, width, height, degree, slant, colour
drawfillarc (460, 121, 12, 5, 400, 180, 63)
drawfillbox (447, 132, 453, 136, 31)
drawfillbox (455, 132, 461, 136, 31)
%horiz, height cord, width, vert
%spongeholes
drawfilloval (411, 193, 7, 7, 116)
%horiz, vertical, height, width, colour
drawfilloval (500, 192, 6, 6, 116)
drawfilloval (503, 176, 4, 4, 116)
drawfilloval (413, 146, 5, 5, 116)
drawfilloval (410, 125, 7, 7, 116)
drawfilloval (498, 145, 7, 7, 116)
drawfilloval (493, 125, 5, 5, 116)
%table
drawfillbox (300, 120, 610, 100, 19)
drawfillbox (305, 40, 330, 120, 19)
drawfillbox (605, 40, 580, 120, 19)
%horiz start, vert start, width end, height end
%-------------------------------------------------------------------------------
%BURGER BUNS
put "Do you want the buns to be wholewheat or white?"
put "Enter 'a' for white buns, and 'b' for wholewheat buns"
put "a. White buns"
put "b. Wholewheat buns"
put "I chose " ..
var buns : string
get buns
var count : int := 1
cls
if buns = "a" then
count := count + 1
elsif buns = "b" then
count := count + 0
end if
cls
put "Point count: ", count
%SPONGEBOB
%hori coor, vert coor, width right ending coor, height top ending coor, color
%horiz start, vertical, width end, height colour
%body
drawbox (400, 100, 500, 200, 2)
drawfillbox (400, 100, 510, 210, 14)
drawfillbox (400, 115, 510, 110, 31)
drawfillbox (400, 90, 510, 110, 137)
drawfillbox (410, 95, 425, 100, 16)
drawfillbox (450, 95, 435, 100, 16)
drawfillbox (476, 95, 460, 100, 16)
drawfillbox (500, 95, 485, 100, 16)
%horiz, height cord, width, vert
%eyes
drawfilloval (428, 170, 15, 15, 31)
drawfilloval (480, 170, 15, 15, 31)
%horiz, vertical, height, width, colour
%pupils
drawfilloval (480, 170, 10, 10, 54)
drawfilloval (428, 170, 10, 10, 54)
drawfilloval (428, 170, 5, 5, 16)
drawfilloval (480, 170, 5, 5, 16)
drawfilloval (477, 173, 3, 3, 31)
drawfilloval (432, 173, 3, 3, 31)
%legs
drawfillbox (420, 89, 430, 85, 31)
drawfillbox (480, 89, 490, 85, 31)
drawfillbox (482, 75, 488, 84, 14)
drawfillbox (422, 75, 428, 84, 14)
%socks
drawfillbox (422, 74, 428, 50, 31)
drawfillbox (482, 74, 488, 50, 31)
%stripes
drawfillbox (482, 68, 488, 67, 12)
drawfillbox (422, 68, 428, 67, 12)
drawfillbox (422, 64, 428, 63, 55)
drawfillbox (482, 64, 488, 63, 55)
%shoes
drawfilloval (492, 50, 13, 5, 16)
drawfilloval (420, 50, 13, 5, 16)
%mouth
drawfillarc (453, 136, 25, 15, 190, 0, 135)
%horizon, vertical, width, height, degree, slant, colour
drawfillarc (460, 121, 12, 5, 400, 180, 63)
drawfillbox (447, 132, 453, 136, 31)
drawfillbox (455, 132, 461, 136, 31)
%horiz, height cord, width, vert
%spongeholes
drawfilloval (411, 193, 7, 7, 116)
%horiz, vertical, height, width, colour
drawfilloval (500, 192, 6, 6, 116)
drawfilloval (503, 176, 4, 4, 116)
drawfilloval (413, 146, 5, 5, 116)
drawfilloval (410, 125, 7, 7, 116)
drawfilloval (498, 145, 7, 7, 116)
drawfilloval (493, 125, 5, 5, 116)
%table
drawfillbox (300, 120, 610, 100, 19)
drawfillbox (305, 40, 330, 120, 19)
drawfillbox (605, 40, 580, 120, 19)
%horiz start, vert start, width end, height end
case buns of
label "a" :
put ""
drawfillarc (550, 130, 25, 15, 180, 360, 66)
%horizon, vertical, width, height, degree, slant, colour
label "b" :
put ""
drawfillarc (550, 130, 25, 15, 180, 360, 114) %EDIT
end case
%PATTY
var patty : string
put "How long do you want to fry the patty?"
put "a. 75 minutes"
put "b. 15 minutes"
put "c. 1 minute"
get patty
count := count + 1
if patty = "a" then
count := count + 0
elsif buns = "b" then
count := count + 0
elsif buns = "c" then
count := count + 0
end if
cls
%SPONGEBOB
%hori coor, vert coor, width right ending coor, height top ending coor, color
drawfillbox (400, 100, 510, 210, 14)
%horiz start, vertical, width end, height colour
%body
drawbox (400, 100, 500, 200, 2)
drawfillbox (400, 100, 510, 210, 14)
drawfillbox (400, 115, 510, 110, 31)
drawfillbox (400, 90, 510, 110, 137)
drawfillbox (410, 95, 425, 100, 16)
drawfillbox (450, 95, 435, 100, 16)
drawfillbox (476, 95, 460, 100, 16)
drawfillbox (500, 95, 485, 100, 16)
%horiz, height cord, width, vert
%eyes
drawfilloval (428, 170, 15, 15, 31)
drawfilloval (480, 170, 15, 15, 31)
%horiz, vertical, height, width, colour
%pupils
drawfilloval (480, 170, 10, 10, 54)
drawfilloval (428, 170, 10, 10, 54)
drawfilloval (428, 170, 5, 5, 16)
drawfilloval (480, 170, 5, 5, 16)
drawfilloval (477, 173, 3, 3, 31)
drawfilloval (432, 173, 3, 3, 31)
%legs
drawfillbox (420, 89, 430, 85, 31)
drawfillbox (480, 89, 490, 85, 31)
drawfillbox (482, 75, 488, 84, 14)
drawfillbox (422, 75, 428, 84, 14)
%socks
drawfillbox (422, 74, 428, 50, 31)
drawfillbox (482, 74, 488, 50, 31)
%stripes
drawfillbox (482, 68, 488, 67, 12)
drawfillbox (422, 68, 428, 67, 12)
drawfillbox (422, 64, 428, 63, 55)
drawfillbox (482, 64, 488, 63, 55)
%shoes
drawfilloval (492, 50, 13, 5, 16)
drawfilloval (420, 50, 13, 5, 16)
%mouth
drawfillarc (453, 136, 25, 15, 190, 0, 135)
%horizon, vertical, width, height, degree, slant, colour
drawfillarc (460, 121, 12, 5, 400, 180, 63)
drawfillbox (447, 132, 453, 136, 31)
drawfillbox (455, 132, 461, 136, 31)
%horiz, height cord, width, vert
%spongeholes
drawfilloval (411, 193, 7, 7, 116)
%horiz, vertical, height, width, colour
drawfilloval (500, 192, 6, 6, 116)
drawfilloval (503, 176, 4, 4, 116)
drawfilloval (413, 146, 5, 5, 116)
drawfilloval (410, 125, 7, 7, 116)
drawfilloval (498, 145, 7, 7, 116)
drawfilloval (493, 125, 5, 5, 116)
%table
drawfillbox (300, 120, 610, 100, 19)
drawfillbox (305, 40, 330, 120, 19)
drawfillbox (605, 40, 580, 120, 19)
%horiz start, vert start, width end, height end
if buns = "a" then
drawfillarc (550, 130, 25, 15, 180, 360, 66)
elsif buns = "b" then
drawfillarc (550, 130, 25, 15, 180, 360, 114)
end if
case patty of
label "a" :
put ""
drawfilloval (550, 129, 30, 5, 16)
label "b" :
put ""
drawfilloval (550, 129, 30, 5, 113)
label "c" :
put ""
drawfilloval (550, 129, 30, 5, 63)
end case
put "Point count: ", count
%LETTUCE
put "How would you like your lettuce?"
put "a. Shredded"
put "b. In big leaves"
put "c. No lettuce"
var lettuce : string
get lettuce
count := count + 1
if buns = "a" then
count := count + 1
elsif buns = "b" then
count := count + 0
end if
cls
%SPONGEBOB
%hori coor, vert coor, width right ending coor, height top ending coor, color
%horiz start, vertical, width end, height colour
%body
drawbox (400, 100, 500, 200, 2)
drawfillbox (400, 100, 510, 210, 14)
drawfillbox (400, 115, 510, 110, 31)
drawfillbox (400, 90, 510, 110, 137)
drawfillbox (410, 95, 425, 100, 16)
drawfillbox (450, 95, 435, 100, 16)
drawfillbox (476, 95, 460, 100, 16)
drawfillbox (500, 95, 485, 100, 16)
%horiz, height cord, width, vert
%eyes
drawfilloval (428, 170, 15, 15, 31)
drawfilloval (480, 170, 15, 15, 31)
%horiz, vertical, height, width, colour
%pupils
drawfilloval (480, 170, 10, 10, 54)
drawfilloval (428, 170, 10, 10, 54)
drawfilloval (428, 170, 5, 5, 16)
drawfilloval (480, 170, 5, 5, 16)
drawfilloval (477, 173, 3, 3, 31)
drawfilloval (432, 173, 3, 3, 31)
%legs
drawfillbox (420, 89, 430, 85, 31)
drawfillbox (480, 89, 490, 85, 31)
drawfillbox (482, 75, 488, 84, 14)
drawfillbox (422, 75, 428, 84, 14)
%socks
drawfillbox (422, 74, 428, 50, 31)
drawfillbox (482, 74, 488, 50, 31)
%stripes
drawfillbox (482, 68, 488, 67, 12)
drawfillbox (422, 68, 428, 67, 12)
drawfillbox (422, 64, 428, 63, 55)
drawfillbox (482, 64, 488, 63, 55)
%shoes
drawfilloval (492, 50, 13, 5, 16)
drawfilloval (420, 50, 13, 5, 16)
%mouth
drawfillarc (453, 136, 25, 15, 190, 0, 135)
%horizon, vertical, width, height, degree, slant, colour
drawfillarc (460, 121, 12, 5, 400, 180, 63)
drawfillbox (447, 132, 453, 136, 31)
drawfillbox (455, 132, 461, 136, 31)
%horiz, height cord, width, vert
%spongeholes
drawfilloval (411, 193, 7, 7, 116)
%horiz, vertical, height, width, colour
drawfilloval (500, 192, 6, 6, 116)
drawfilloval (503, 176, 4, 4, 116)
drawfilloval (413, 146, 5, 5, 116)
drawfilloval (410, 125, 7, 7, 116)
drawfilloval (498, 145, 7, 7, 116)
drawfilloval (493, 125, 5, 5, 116)
%table
drawfillbox (300, 120, 610, 100, 19)
drawfillbox (305, 40, 330, 120, 19)
drawfillbox (605, 40, 580, 120, 19)
%horiz start, vert start, width end, height end
put "Point count :", count
if buns = "a" then
drawfillarc (550, 130, 25, 15, 180, 360, 66)
elsif buns = "b" then
drawfillarc (550, 130, 25, 15, 180, 360, 114)
end if
if patty = "a" then
drawfilloval (550, 129, 30, 5, 16)
elsif patty = "b" then
drawfilloval (550, 129, 30, 5, 113)
elsif patty = "c" then
drawfilloval (550, 129, 30, 5, 63)
end if
case lettuce of
label "a" :
put ""
drawfillbox (520, 138, 530, 133, 45)
drawfillbox (530, 138, 540, 133, 71)
drawfillbox (540, 138, 550, 133, 48)
drawfillbox (550, 138, 560, 133, 120)
drawfillbox (560, 138, 570, 133, 73)
drawfillbox (570, 138, 580, 133, 118)
%EDIT
label "b" :
put ""
drawfillbox (520, 138, 580, 133, 119)
label "c" :
put ""
%EDIT
end case
%VEGETABLES
put "Choose a vegetable from the selection below"
put "a. Tomatos"
put "b. Pickles"
put "c. Peppers"
var vegetable : string
get vegetable
count := count + 1
if buns = "a" then
count := count + 0
elsif buns = "b" then
count := count + 0
end if
cls
%SPONGEBOB
%hori coor, vert coor, width right ending coor, height top ending coor, color
%horiz start, vertical, width end, height colour
%body
drawbox (400, 100, 500, 200, 2)
drawfillbox (400, 100, 510, 210, 14)
drawfillbox (400, 115, 510, 110, 31)
drawfillbox (400, 90, 510, 110, 137)
drawfillbox (410, 95, 425, 100, 16)
drawfillbox (450, 95, 435, 100, 16)
drawfillbox (476, 95, 460, 100, 16)
drawfillbox (500, 95, 485, 100, 16)
%horiz, height cord, width, vert
%eyes
drawfilloval (428, 170, 15, 15, 31)
drawfilloval (480, 170, 15, 15, 31)
%horiz, vertical, height, width, colour
%pupils
drawfilloval (480, 170, 10, 10, 54)
drawfilloval (428, 170, 10, 10, 54)
drawfilloval (428, 170, 5, 5, 16)
drawfilloval (480, 170, 5, 5, 16)
drawfilloval (477, 173, 3, 3, 31)
drawfilloval (432, 173, 3, 3, 31)
%legs
drawfillbox (420, 89, 430, 85, 31)
drawfillbox (480, 89, 490, 85, 31)
drawfillbox (482, 75, 488, 84, 14)
drawfillbox (422, 75, 428, 84, 14)
%socks
drawfillbox (422, 74, 428, 50, 31)
drawfillbox (482, 74, 488, 50, 31)
%stripes
drawfillbox (482, 68, 488, 67, 12)
drawfillbox (422, 68, 428, 67, 12)
drawfillbox (422, 64, 428, 63, 55)
drawfillbox (482, 64, 488, 63, 55)
%shoes
drawfilloval (492, 50, 13, 5, 16)
drawfilloval (420, 50, 13, 5, 16)
%mouth
drawfillarc (453, 136, 25, 15, 190, 0, 135)
%horizon, vertical, width, height, degree, slant, colour
drawfillarc (460, 121, 12, 5, 400, 180, 63)
drawfillbox (447, 132, 453, 136, 31)
drawfillbox (455, 132, 461, 136, 31)
%horiz, height cord, width, vert
%spongeholes
drawfilloval (411, 193, 7, 7, 116)
%horiz, vertical, height, width, colour
drawfilloval (500, 192, 6, 6, 116)
drawfilloval (503, 176, 4, 4, 116)
drawfilloval (413, 146, 5, 5, 116)
drawfilloval (410, 125, 7, 7, 116)
drawfilloval (498, 145, 7, 7, 116)
drawfilloval (493, 125, 5, 5, 116)
%table
drawfillbox (300, 120, 610, 100, 19)
drawfillbox (305, 40, 330, 120, 19)
drawfillbox (605, 40, 580, 120, 19)
%horiz start, vert start, width end, height end
put "Point count: ", count
if buns = "a" then
drawfillarc (550, 130, 25, 15, 180, 360, 66)
elsif buns = "b" then
drawfillarc (550, 130, 25, 15, 180, 360, 114)
end if
if patty = "a" then
drawfilloval (550, 129, 30, 5, 16)
elsif patty = "b" then
drawfilloval (550, 129, 30, 5, 113)
elsif patty = "c" then
drawfilloval (550, 129, 30, 5, 63)
end if
if lettuce = "a" then
drawfillbox (520, 138, 530, 133, 45)
drawfillbox (530, 138, 540, 133, 71)
drawfillbox (540, 138, 550, 133, 48)
drawfillbox (550, 138, 560, 133, 120)
drawfillbox (560, 138, 570, 133, 73)
drawfillbox (570, 138, 580, 133, 118)
elsif lettuce = "b" then
drawfillbox (520, 138, 580, 133, 119)
elsif
lettuce = "c" then
put ""
end if
case vegetable of
label "a" :
put ""
drawfilloval (550, 142, 30, 4, 40)
drawfilloval (550, 143, 20, 2, 64)
label "b" :
put ""
drawfilloval (530, 140, 10, 2, 193)
drawfilloval (545, 140, 10, 2, 117)
drawfilloval (560, 140, 10, 2, 191)
drawfilloval (575, 140, 10, 2, 118)
label "c" :
put ""
drawfilloval (530, 140, 10, 2, 44)
drawfilloval (545, 140, 10, 2, 42)
drawfilloval (560, 140, 10, 2, 43)
drawfilloval (575, 140, 10, 2, 40)
end case
%CHEESE
put "Would you like to put cheese on the krabby patty?"
put "a. Yes"
put "b. No"
var cheese : string
get cheese
count := count + 1
if buns = "a" then
count := count + 1
elsif buns = "b" then
count := count + 0
end if
cls
%SPONGEBOB
%hori coor, vert coor, width right ending coor, height top ending coor, color
%horiz start, vertical, width end, height colour
%body
drawbox (400, 100, 500, 200, 2)
drawfillbox (400, 100, 510, 210, 14)
drawfillbox (400, 115, 510, 110, 31)
drawfillbox (400, 90, 510, 110, 137)
drawfillbox (410, 95, 425, 100, 16)
drawfillbox (450, 95, 435, 100, 16)
drawfillbox (476, 95, 460, 100, 16)
drawfillbox (500, 95, 485, 100, 16)
%horiz, height cord, width, vert
%eyes
drawfilloval (428, 170, 15, 15, 31)
drawfilloval (480, 170, 15, 15, 31)
%horiz, vertical, height, width, colour
%pupils
drawfilloval (480, 170, 10, 10, 54)
drawfilloval (428, 170, 10, 10, 54)
drawfilloval (428, 170, 5, 5, 16)
drawfilloval (480, 170, 5, 5, 16)
drawfilloval (477, 173, 3, 3, 31)
drawfilloval (432, 173, 3, 3, 31)
%legs
drawfillbox (420, 89, 430, 85, 31)
drawfillbox (480, 89, 490, 85, 31)
drawfillbox (482, 75, 488, 84, 14)
drawfillbox (422, 75, 428, 84, 14)
%socks
drawfillbox (422, 74, 428, 50, 31)
drawfillbox (482, 74, 488, 50, 31)
%stripes
drawfillbox (482, 68, 488, 67, 12)
drawfillbox (422, 68, 428, 67, 12)
drawfillbox (422, 64, 428, 63, 55)
drawfillbox (482, 64, 488, 63, 55)
%shoes
drawfilloval (492, 50, 13, 5, 16)
drawfilloval (420, 50, 13, 5, 16)
%mouth
drawfillarc (453, 136, 25, 15, 190, 0, 135)
%horizon, vertical, width, height, degree, slant, colour
drawfillarc (460, 121, 12, 5, 400, 180, 63)
drawfillbox (447, 132, 453, 136, 31)
drawfillbox (455, 132, 461, 136, 31)
%horiz, height cord, width, vert
%spongeholes
drawfilloval (411, 193, 7, 7, 116)
%horiz, vertical, height, width, colour
drawfilloval (500, 192, 6, 6, 116)
drawfilloval (503, 176, 4, 4, 116)
drawfilloval (413, 146, 5, 5, 116)
drawfilloval (410, 125, 7, 7, 116)
drawfilloval (498, 145, 7, 7, 116)
drawfilloval (493, 125, 5, 5, 116)
%table
drawfillbox (300, 120, 610, 100, 19)
drawfillbox (305, 40, 330, 120, 19)
drawfillbox (605, 40, 580, 120, 19)
%horiz start, vert start, width end, height end
put "Point count :", count
if buns = "a" then
drawfillarc (550, 130, 25, 15, 180, 360, 66)
elsif buns = "b" then
drawfillarc (550, 130, 25, 15, 180, 360, 114)
end if
if patty = "a" then
drawfilloval (550, 129, 30, 5, 16)
elsif patty = "b" then
drawfilloval (550, 129, 30, 5, 113)
elsif patty = "c" then
drawfilloval (550, 129, 30, 5, 63)
end if
if lettuce = "a" then
drawfillbox (520, 138, 530, 133, 45)
drawfillbox (530, 138, 540, 133, 71)
drawfillbox (540, 138, 550, 133, 48)
drawfillbox (550, 138, 560, 133, 120)
drawfillbox (560, 138, 570, 133, 73)
drawfillbox (570, 138, 580, 133, 118)
elsif lettuce = "b" then
drawfillbox (520, 138, 580, 133, 119)
elsif
lettuce = "c" then
put ""
end if
if vegetable = "a" then
drawfilloval (550, 142, 30, 4, 40)
drawfilloval (550, 143, 20, 2, 64)
elsif vegetable = "b" then
drawfilloval (530, 140, 10, 2, 193)
drawfilloval (545, 140, 10, 2, 117)
drawfilloval (560, 140, 10, 2, 191)
drawfilloval (575, 140, 10, 2, 118)
elsif vegetable = "c" then
drawfilloval (530, 140, 10, 2, 44)
drawfilloval (545, 140, 10, 2, 42)
drawfilloval (560, 140, 10, 2, 43)
drawfilloval (575, 140, 10, 2, 40)
end if
case cheese of
label "a" :
put ""
drawfillbox (520, 145, 580, 143, 67)
label "b" :
put ""
%EDIT
end case
%CONDIMENT
put "Choose a condiment or sauce from the selection below"
put "a. Ketchup"
put "b. Mustard"
put "c. Mayonaise"
put "d. None"
var condiment : string
get condiment
count := count + 1
if buns = "a" then
count := count + 1
elsif buns = "b" then
count := count + 0
end if
cls
%SPONGEBOB
%hori coor, vert coor, width right ending coor, height top ending coor, color
%horiz start, vertical, width end, height colour
%body
drawbox (400, 100, 500, 200, 2)
drawfillbox (400, 100, 510, 210, 14)
drawfillbox (400, 115, 510, 110, 31)
drawfillbox (400, 90, 510, 110, 137)
drawfillbox (410, 95, 425, 100, 16)
drawfillbox (450, 95, 435, 100, 16)
drawfillbox (476, 95, 460, 100, 16)
drawfillbox (500, 95, 485, 100, 16)
%horiz, height cord, width, vert
%eyes
drawfilloval (428, 170, 15, 15, 31)
drawfilloval (480, 170, 15, 15, 31)
%horiz, vertical, height, width, colour
%pupils
drawfilloval (480, 170, 10, 10, 54)
drawfilloval (428, 170, 10, 10, 54)
drawfilloval (428, 170, 5, 5, 16)
drawfilloval (480, 170, 5, 5, 16)
drawfilloval (477, 173, 3, 3, 31)
drawfilloval (432, 173, 3, 3, 31)
%legs
drawfillbox (420, 89, 430, 85, 31)
drawfillbox (480, 89, 490, 85, 31)
drawfillbox (482, 75, 488, 84, 14)
drawfillbox (422, 75, 428, 84, 14)
%socks
drawfillbox (422, 74, 428, 50, 31)
drawfillbox (482, 74, 488, 50, 31)
%stripes
drawfillbox (482, 68, 488, 67, 12)
drawfillbox (422, 68, 428, 67, 12)
drawfillbox (422, 64, 428, 63, 55)
drawfillbox (482, 64, 488, 63, 55)
%shoes
drawfilloval (492, 50, 13, 5, 16)
drawfilloval (420, 50, 13, 5, 16)
%mouth
drawfillarc (453, 136, 25, 15, 190, 0, 135)
%horizon, vertical, width, height, degree, slant, colour
drawfillarc (460, 121, 12, 5, 400, 180, 63)
drawfillbox (447, 132, 453, 136, 31)
drawfillbox (455, 132, 461, 136, 31)
%horiz, height cord, width, vert
%spongeholes
drawfilloval (411, 193, 7, 7, 116)
%horiz, vertical, height, width, colour
drawfilloval (500, 192, 6, 6, 116)
drawfilloval (503, 176, 4, 4, 116)
drawfilloval (413, 146, 5, 5, 116)
drawfilloval (410, 125, 7, 7, 116)
drawfilloval (498, 145, 7, 7, 116)
drawfilloval (493, 125, 5, 5, 116)
%table
drawfillbox (300, 120, 610, 100, 19)
drawfillbox (305, 40, 330, 120, 19)
drawfillbox (605, 40, 580, 120, 19)
%horiz start, vert start, width end, height end
put "Point count :", count
if buns = "a" then
drawfillarc (550, 130, 25, 15, 180, 360, 66)
elsif buns = "b" then
drawfillarc (550, 130, 25, 15, 180, 360, 114)
end if
if patty = "a" then
drawfilloval (550, 129, 30, 5, 16)
elsif patty = "b" then
drawfilloval (550, 129, 30, 5, 113)
elsif patty = "c" then
drawfilloval (550, 129, 30, 5, 63)
end if
if lettuce = "a" then
drawfillbox (520, 138, 530, 133, 45)
drawfillbox (530, 138, 540, 133, 71)
drawfillbox (540, 138, 550, 133, 48)
drawfillbox (550, 138, 560, 133, 120)
drawfillbox (560, 138, 570, 133, 73)
drawfillbox (570, 138, 580, 133, 118)
elsif lettuce = "b" then
drawfillbox (520, 138, 580, 133, 119)
elsif
lettuce = "c" then
put ""
end if
if vegetable = "a" then
drawfilloval (550, 142, 30, 4, 40)
drawfilloval (550, 143, 20, 2, 64)
elsif vegetable = "b" then
drawfilloval (530, 140, 10, 2, 193)
drawfilloval (545, 140, 10, 2, 117)
drawfilloval (560, 140, 10, 2, 191)
drawfilloval (575, 140, 10, 2, 118)
elsif vegetable = "c" then
drawfilloval (530, 140, 10, 2, 44)
drawfilloval (545, 140, 10, 2, 42)
drawfilloval (560, 140, 10, 2, 43)
drawfilloval (575, 140, 10, 2, 40)
end if
if cheese = "a" then
drawfillbox (520, 145, 580, 143, 67)
elsif cheese = "b" then
put ""
end if
case condiment of
label "a" :
put ""
drawfilloval (551, 147, 35, 2, 40)
label "b" :
put ""
drawfilloval (551, 147, 35, 2, 14)
label "c" :
put ""
drawfilloval (551, 147, 35, 2, 31)
label "d" :
put ""
%EDIT
end case
%SECRET FORMULA
put "Choose a krabby patty secret formula ingredient"
put "a. Special secret sauce"
put "b. Plankton"
put "c. Love"
put "d. Jellyfish jelly"
var formula : string
get formula
count := count + 1
if buns = "a" then
count := count + 0
elsif buns = "b" then
count := count + 1
end if
cls
if buns = "a" then
drawfillarc (550, 130, 25, 15, 180, 360, 66)
elsif buns = "b" then
drawfillarc (550, 130, 25, 15, 180, 360, 114)
end if
if patty = "a" then
drawfilloval (550, 129, 30, 5, 16)
elsif patty = "b" then
drawfilloval (550, 129, 30, 5, 113)
elsif patty = "c" then
drawfilloval (550, 129, 30, 5, 63)
end if
if lettuce = "a" then
drawfillbox (520, 138, 530, 133, 45)
drawfillbox (530, 138, 540, 133, 71)
drawfillbox (540, 138, 550, 133, 48)
drawfillbox (550, 138, 560, 133, 120)
drawfillbox (560, 138, 570, 133, 73)
drawfillbox (570, 138, 580, 133, 118)
elsif lettuce = "b" then
drawfillbox (520, 138, 580, 133, 119)
elsif
lettuce = "c" then
put ""
end if
if vegetable = "a" then
drawfilloval (550, 142, 30, 4, 40)
drawfilloval (550, 143, 20, 2, 64)
elsif vegetable = "b" then
drawfilloval (530, 140, 10, 2, 193)
drawfilloval (545, 140, 10, 2, 117)
drawfilloval (560, 140, 10, 2, 191)
drawfilloval (575, 140, 10, 2, 118)
elsif vegetable = "c" then
drawfilloval (530, 140, 10, 2, 44)
drawfilloval (545, 140, 10, 2, 42)
drawfilloval (560, 140, 10, 2, 43)
drawfilloval (575, 140, 10, 2, 40)
end if
if cheese = "a" then
drawfillbox (520, 145, 580, 143, 67)
elsif cheese = "b" then
put ""
end if
if condiment = "a" then
drawfilloval (551, 147, 35, 2, 40)
elsif condiment = "b" then
drawfilloval (551, 147, 35, 2, 14)
elsif condiment = "c" then
drawfilloval (551, 147, 35, 2, 31)
elsif condiment = "d" then
put ""
end if
%SPONGEBOB
%hori coor, vert coor, width right ending coor, height top ending coor, color
%horiz start, vertical, width end, height colour
%body
drawbox (400, 100, 500, 200, 2)
drawfillbox (400, 100, 510, 210, 14)
drawfillbox (400, 115, 510, 110, 31)
drawfillbox (400, 90, 510, 110, 137)
drawfillbox (410, 95, 425, 100, 16)
drawfillbox (450, 95, 435, 100, 16)
drawfillbox (476, 95, 460, 100, 16)
drawfillbox (500, 95, 485, 100, 16)
%horiz, height cord, width, vert
%eyes
drawfilloval (428, 170, 15, 15, 31)
drawfilloval (480, 170, 15, 15, 31)
%horiz, vertical, height, width, colour
%pupils
drawfilloval (480, 170, 10, 10, 54)
drawfilloval (428, 170, 10, 10, 54)
drawfilloval (428, 170, 5, 5, 16)
drawfilloval (480, 170, 5, 5, 16)
drawfilloval (477, 173, 3, 3, 31)
drawfilloval (432, 173, 3, 3, 31)
%legs
drawfillbox (420, 89, 430, 85, 31)
drawfillbox (480, 89, 490, 85, 31)
drawfillbox (482, 75, 488, 84, 14)
drawfillbox (422, 75, 428, 84, 14)
%socks
drawfillbox (422, 74, 428, 50, 31)
drawfillbox (482, 74, 488, 50, 31)
%stripes
drawfillbox (482, 68, 488, 67, 12)
drawfillbox (422, 68, 428, 67, 12)
drawfillbox (422, 64, 428, 63, 55)
drawfillbox (482, 64, 488, 63, 55)
%shoes
drawfilloval (492, 50, 13, 5, 16)
drawfilloval (420, 50, 13, 5, 16)
%mouth
drawfillarc (453, 136, 25, 15, 190, 0, 135)
%horizon, vertical, width, height, degree, slant, colour
drawfillarc (460, 121, 12, 5, 400, 180, 63)
drawfillbox (447, 132, 453, 136, 31)
drawfillbox (455, 132, 461, 136, 31)
%horiz, height cord, width, vert
%spongeholes
drawfilloval (411, 193, 7, 7, 116)
%horiz, vertical, height, width, colour
drawfilloval (500, 192, 6, 6, 116)
drawfilloval (503, 176, 4, 4, 116)
drawfilloval (413, 146, 5, 5, 116)
drawfilloval (410, 125, 7, 7, 116)
drawfilloval (498, 145, 7, 7, 116)
drawfilloval (493, 125, 5, 5, 116)
%table
drawfillbox (300, 120, 610, 100, 19)
drawfillbox (305, 40, 330, 120, 19)
drawfillbox (605, 40, 580, 120, 19)
%horiz start, vert start, width end, height end
put "Point count :", count
case formula of
label "a" :
put ""
drawfilloval (551, 153, 35, 3, 94)
label "b" :
put ""
drawfilloval (551, 155, 35, 7, 123)
drawfilloval (538, 155, 7, 5, 68)
drawfilloval (538, 155, 5, 3, 12)
drawfilloval (538, 155, 2, 1, 16)
drawfilloval (536, 157, 1, 1, 31)
drawfillbox (555, 153, 556, 157, 16)
drawfilloval (585, 157, 7, 1, 123)
drawfilloval (585, 151, 7, 1, 123)
drawfillarc (508, 152, 13, 1, 30, 180, 193)
drawfillarc (508, 157, 13, 1, 30, 180, 193)
label "c" :
drawfillbox (56, 200, 240, 400, 60) %EDIT(animation)
label "d" :
drawfilloval (551, 151, 35, 3, 57)
drawfilloval (551, 154, 35, 1, 53)
end case
put "yay ur done"
if buns = "a" then
drawfillarc (550, 130, 25, 15, 180, 360, 66)
drawfillarc (550, 156, 25, 15, 360, 180, 66)
elsif buns = "b" then
drawfillarc (550, 130, 25, 15, 180, 360, 114)
drawfillarc (550, 156, 25, 15, 360, 180, 114)
end if
if patty = "a" then
drawfilloval (550, 129, 30, 5, 16)
elsif patty = "b" then
drawfilloval (550, 129, 30, 5, 113)
elsif patty = "c" then
drawfilloval (550, 129, 30, 5, 63)
end if
if lettuce = "a" then
drawfillbox (520, 138, 530, 133, 45)
drawfillbox (530, 138, 540, 133, 71)
drawfillbox (540, 138, 550, 133, 48)
drawfillbox (550, 138, 560, 133, 120)
drawfillbox (560, 138, 570, 133, 73)
drawfillbox (570, 138, 580, 133, 118)
elsif lettuce = "b" then
drawfillbox (520, 138, 580, 133, 119)
elsif
lettuce = "c" then
put ""
end if
if vegetable = "a" then
drawfilloval (550, 142, 30, 4, 40)
drawfilloval (550, 143, 20, 2, 64)
elsif vegetable = "b" then
drawfilloval (530, 140, 10, 2, 193)
drawfilloval (545, 140, 10, 2, 117)
drawfilloval (560, 140, 10, 2, 191)
drawfilloval (575, 140, 10, 2, 118)
elsif vegetable = "c" then
drawfilloval (530, 140, 10, 2, 44)
drawfilloval (545, 140, 10, 2, 42)
drawfilloval (560, 140, 10, 2, 43)
drawfilloval (575, 140, 10, 2, 40)
end if
if cheese = "a" then
drawfillbox (520, 145, 580, 143, 67)
elsif cheese = "b" then
put ""
end if
if condiment = "a" then
drawfilloval (551, 147, 35, 2, 40)
elsif condiment = "b" then
drawfilloval (551, 147, 35, 2, 14)
elsif condiment = "c" then
drawfilloval (551, 147, 35, 2, 31)
elsif condiment = "d" then
put ""
end if
if formula = "a" then
drawfilloval (551, 153, 35, 3, 94)
elsif formula = "b" then
drawfilloval (551, 155, 35, 7, 123)
drawfilloval (538, 155, 7, 5, 68)
drawfilloval (538, 155, 5, 3, 12)
drawfilloval (538, 155, 2, 1, 16)
drawfilloval (536, 157, 1, 1, 31)
drawfillbox (555, 153, 556, 157, 16)
drawfilloval (585, 157, 7, 1, 123)
drawfilloval (585, 151, 7, 1, 123)
drawfillarc (508, 152, 13, 1, 30, 180, 193)
drawfillarc (508, 157, 13, 1, 30, 180, 193)
elsif formula = "c" then
drawfillbox (56, 200, 240, 400, 60) %EDIT(animation)
elsif formula = "d" then
drawfilloval (551, 151, 35, 3, 57)
drawfilloval (551, 154, 35, 1, 53)
end if
%SPONGEBOB
%hori coor, vert coor, width right ending coor, height top ending coor, color
%horiz start, vertical, width end, height colour
%body
drawbox (400, 100, 500, 200, 2)
drawfillbox (400, 100, 510, 210, 14)
drawfillbox (400, 115, 510, 110, 31)
drawfillbox (400, 90, 510, 110, 137)
drawfillbox (410, 95, 425, 100, 16)
drawfillbox (450, 95, 435, 100, 16)
drawfillbox (476, 95, 460, 100, 16)
drawfillbox (500, 95, 485, 100, 16)
%horiz, height cord, width, vert
%eyes
drawfilloval (428, 170, 15, 15, 31)
drawfilloval (480, 170, 15, 15, 31)
%horiz, vertical, height, width, colour
%pupils
drawfilloval (480, 170, 10, 10, 54)
drawfilloval (428, 170, 10, 10, 54)
drawfilloval (428, 170, 5, 5, 16)
drawfilloval (480, 170, 5, 5, 16)
drawfilloval (477, 173, 3, 3, 31)
drawfilloval (432, 173, 3, 3, 31)
%legs
drawfillbox (420, 89, 430, 85, 31)
drawfillbox (480, 89, 490, 85, 31)
drawfillbox (482, 75, 488, 84, 14)
drawfillbox (422, 75, 428, 84, 14)
%socks
drawfillbox (422, 74, 428, 50, 31)
drawfillbox (482, 74, 488, 50, 31)
%stripes
drawfillbox (482, 68, 488, 67, 12)
drawfillbox (422, 68, 428, 67, 12)
drawfillbox (422, 64, 428, 63, 55)
drawfillbox (482, 64, 488, 63, 55)
%shoes
drawfilloval (492, 50, 13, 5, 16)
drawfilloval (420, 50, 13, 5, 16)
%mouth
drawfillarc (453, 136, 25, 15, 190, 0, 135)
%horizon, vertical, width, height, degree, slant, colour
drawfillarc (460, 121, 12, 5, 400, 180, 63)
drawfillbox (447, 132, 453, 136, 31)
drawfillbox (455, 132, 461, 136, 31)
%horiz, height cord, width, vert
%spongeholes
drawfilloval (411, 193, 7, 7, 116)
%horiz, vertical, height, width, colour
drawfilloval (500, 192, 6, 6, 116)
drawfilloval (503, 176, 4, 4, 116)
drawfilloval (413, 146, 5, 5, 116)
drawfilloval (410, 125, 7, 7, 116)
drawfilloval (498, 145, 7, 7, 116)
drawfilloval (493, 125, 5, 5, 116)
%table
drawfillbox (300, 120, 610, 100, 19)
drawfillbox (305, 40, 330, 120, 19)
drawfillbox (605, 40, 580, 120, 19)
%horiz start, vert start, width end, height end
%-------------------------------------------------------------------------------
%idea, change setting, and take business elsewhere when moving up
put "We have another customer, would you like to make its order?"
%ANIMATION WITH SPEECH BUBBLE
put "Type 'y' to get started on the side dish, or 'n' to stop"
get start
loop
exit when start = "y"
end loop
cls
%SPONGEBOB
%hori coor, vert coor, width right ending coor, height top ending coor, color
%horiz start, vertical, width end, height colour
%body
drawbox (400, 100, 500, 200, 2)
drawfillbox (400, 100, 510, 210, 14)
drawfillbox (400, 115, 510, 110, 31)
drawfillbox (400, 90, 510, 110, 137)
drawfillbox (410, 95, 425, 100, 16)
drawfillbox (450, 95, 435, 100, 16)
drawfillbox (476, 95, 460, 100, 16)
drawfillbox (500, 95, 485, 100, 16)
%horiz, height cord, width, vert
%eyes
drawfilloval (428, 170, 15, 15, 31)
drawfilloval (480, 170, 15, 15, 31)
%horiz, vertical, height, width, colour
%pupils
drawfilloval (480, 170, 10, 10, 54)
drawfilloval (428, 170, 10, 10, 54)
drawfilloval (428, 170, 5, 5, 16)
drawfilloval (480, 170, 5, 5, 16)
drawfilloval (477, 173, 3, 3, 31)
drawfilloval (432, 173, 3, 3, 31)
%legs
drawfillbox (420, 89, 430, 85, 31)
drawfillbox (480, 89, 490, 85, 31)
drawfillbox (482, 75, 488, 84, 14)
drawfillbox (422, 75, 428, 84, 14)
%socks
drawfillbox (422, 74, 428, 50, 31)
drawfillbox (482, 74, 488, 50, 31)
%stripes
drawfillbox (482, 68, 488, 67, 12)
drawfillbox (422, 68, 428, 67, 12)
drawfillbox (422, 64, 428, 63, 55)
drawfillbox (482, 64, 488, 63, 55)
%shoes
drawfilloval (492, 50, 13, 5, 16)
drawfilloval (420, 50, 13, 5, 16)
%mouth
drawfillarc (453, 136, 25, 15, 190, 0, 135)
%horizon, vertical, width, height, degree, slant, colour
drawfillarc (460, 121, 12, 5, 400, 180, 63)
drawfillbox (447, 132, 453, 136, 31)
drawfillbox (455, 132, 461, 136, 31)
%horiz, height cord, width, vert
%spongeholes
drawfilloval (411, 193, 7, 7, 116)
%horiz, vertical, height, width, colour
drawfilloval (500, 192, 6, 6, 116)
drawfilloval (503, 176, 4, 4, 116)
drawfilloval (413, 146, 5, 5, 116)
drawfilloval (410, 125, 7, 7, 116)
drawfilloval (498, 145, 7, 7, 116)
drawfilloval (493, 125, 5, 5, 116)
%table
drawfillbox (300, 120, 610, 100, 19)
drawfillbox (305, 40, 330, 120, 19)
drawfillbox (605, 40, 580, 120, 19)
%horiz start, vert start, width end, height end
JU5PVEVTCiVQb3NzaWJseSBsb29wIHRoZSBzcG9uZ2Vib2IgZ3JhcGhpYwp2YXIgc3RhcnQgOiBzdHJpbmcKcHV0ICJXZWxjb21lIHRvIFNwb25nZWJvYidzIEZyeSBPZmYgR2FtZSIKcHV0ICJIZWxwIFNwb25nZWJvYiBjdXN0b21pemUgYSBzcGVjaWFsIGtyYWJieSBwYXR0eSB0byBmZWVkIGEgaHVuZ3J5IGN1c3RvbWVycyIKcHV0ICJUeXBlICd5JyB0byBzdGFydCB0aGUgZ2FtZSwgYW5kICduJyB0byBleGl0IgpnZXQgc3RhcnQKbG9vcAogICAgZXhpdCB3aGVuIHN0YXJ0ID0gInkiCmVuZCBsb29wCmNscwoKcHV0ICJZb3UgaGF2ZSAxMCBzZWNvbmRzIHRvIG1lbW9yaXplIHRoZSBmb2xsb3dpbmcgcmVxdWlyZW1lbnRzLiAiCnB1dCAiVXNlIHlvdXIgbWVtb3J5IHRvIGhlbHAgeW91IG1ha2UgdGhlIG9yZGVyLiIKcHV0ICJQb2ludHMgd2lsbCBiZSBnaXZlbiBiYXNlZCBvbiBob3cgbWFueSByZXF1aXJlbWVudHMgeW91IG1ldC4iCnB1dCAiR2V0dGluZyBhIGNlcnRhaW4gYW1vdW50IG9mIHBvaW50cyB3aWxsIGFsbG93IHlvdSB0byBtb3ZlIG9uLiIgCnB1dCAiSWYgYSByZXF1aXJlbWVudCBpcyBub3QgaW4gYSBzcGVjaWZpYyBzZWN0aW9uLCBmZWVsIGZyZWUgdG8gaGF2ZSBmdW4gd2l0aCBhZGRpbmciCnB1dCAiYW5kIGN1c3RvbWl6aW5nIHRoZSBvcmRlci4iCnB1dCAiIgpwdXQgIlByZXNzICd5JyB0byBzdGFydCByZXZpZXdpbmcgeW91ciByZXF1aXJlbWVudHMsIGFuZCAnbicgdG8gZXhpdCIKZ2V0IHN0YXJ0CmNscwoKdmFyIGJhY2tncm91bmQgOiBpbnQKcHV0ICJHYXJ5IHdhbnRzIGEga3JhYmJ5IHBhdHR5IHdpdGggdGhlIGZvbGxvd2luZyB0b3BwaW5nczoiCnB1dCAiLVdoaXRlIGJ1bnMiCnB1dCAiLVNocmVkZGVkIGxldHR1Y2UiCnB1dCAiLUNoZWVzZSIKcHV0ICItS2V0Y2h1cCIKcHV0ICItUGxhbmt0b24iCnB1dCAiRmVlbCBmcmVlIHRvIGFkZCBhbnkgZXh0cmEgaW5ncmVkaWVudHMhIgpiYWNrZ3JvdW5kIDo9IFBpYy5OZXcgKDAsMCxtYXh4LCBtYXh5KSAKZm9yIHggOiAwIC4uIDQwMCBieSAyCiVzdG9wcyBhdCA0MDAKIFBpYy5EcmF3IChiYWNrZ3JvdW5kLCAwLCAwLCBwaWNDb3B5KSAKCmRyYXdmaWxsYm94ICgzMDAreCwgMTEwLCAzNjMsIDExNSwgNzApCgpkcmF3ZmlsbG92YWwgKDMwMCt4LCAxNzAsIDUwLCA2MCwgODgpCiVob3JpeiwgdmVydGljYWwsIHdpZHRoLCBoZWlnaHQsIGNvbG91cgpkcmF3ZmlsbG92YWwgKDMxMCt4LCAxMTUsIDU4LCA1LCA3NykKZHJhd2ZpbGxvdmFsICgzMDcreCwgMTEyLCA2MywgMiwgNzApCmRyYXdmaWxsb3ZhbCAoMzQ4K3gsIDEyMCwgMjAsIDUsIDc3KQpkcmF3ZmlsbGJveCAoMzQ1K3gsIDE5MCwgMzUwK3gsIDExOSwgNzcpCmRyYXdmaWxsYm94ICgzNTgreCwgMTkwLCAzNjMreCwgMTE5LCA3NykKCgoKZHJhd2ZpbGxvdmFsICgzNjUreCwgMTkzLCAxMSwgMTEsIDcwKQpkcmF3ZmlsbG92YWwgKDM0NSt4LCAxOTMsIDExLCAxMSwgNzApCmRyYXdmaWxsb3ZhbCAoMzQ1K3gsIDE5MywgNiwgNiwgMTIpCmRyYXdmaWxsb3ZhbCAoMzY1K3gsIDE5MywgNiwgNiwgMTIpCmRyYXdmaWxsb3ZhbCAoMzY1K3gsIDE5MywgMywgMywgMTYpCmRyYXdmaWxsb3ZhbCAoMzQ1K3gsIDE5MywgMywgMywgMTYpCmRyYXdmaWxsb3ZhbCAoMzY4K3gsIDE5NSwgMSwgMSwgMzEpCmRyYXdmaWxsb3ZhbCAoMzQ4K3gsIDE5NSwgMSwgMSwgMzEpCgpkcmF3ZmlsbG92YWwgKDMyOSt4LCAxNzUsIDQsIDYsIDU3KQpkcmF3ZmlsbG92YWwgKDMyMCt4LCAxOTUsIDUsIDYsIDU3KQpkcmF3ZmlsbG92YWwgKDI4MCt4LCAxOTUsIDUsIDYsIDU3KQpkcmF3ZmlsbG92YWwgKDI3MCt4LCAxNzUsIDQsIDYsIDU3KQpkcmF3ZmlsbG92YWwgKDMwMCt4LCAyMTAsIDksIDYsIDU3KQpkZWxheSAoMjApCgplbmQgZm9yCmNscwpmb3IgZGVjcmVhc2luZyBjb3VudCA6IDMgLi4gMQogICAgcHV0IGNvdW50CiAgICBkZWxheSAoMTAwMCkgCmVuZCBmb3IKcHV0ICJCZWdpbiEiCiBkZWxheSAoMTAwMCkgCmNscwoKJUFERCBTVE9WRSBBTkQgU1VSUk9VTkRJTkcKCgolU1BPTkdFQk9CCiVob3JpIGNvb3IsIHZlcnQgY29vciwgd2lkdGggcmlnaHQgZW5kaW5nIGNvb3IsIGhlaWdodCB0b3AgZW5kaW5nIGNvb3IsIGNvbG9yCgolaG9yaXogc3RhcnQsIHZlcnRpY2FsLCB3aWR0aCBlbmQsIGhlaWdodCBjb2xvdXIKJWJvZHkKZHJhd2JveCAoNDAwLCAxMDAsIDUwMCwgMjAwLCAyKQpkcmF3ZmlsbGJveCAoNDAwLCAxMDAsIDUxMCwgMjEwLCAxNCkKZHJhd2ZpbGxib3ggKDQwMCwgMTE1LCA1MTAsIDExMCwgMzEpCmRyYXdmaWxsYm94ICg0MDAsIDkwLCA1MTAsIDExMCwgMTM3KQpkcmF3ZmlsbGJveCAoNDEwLCA5NSwgNDI1LCAxMDAsIDE2KQpkcmF3ZmlsbGJveCAoNDUwLCA5NSwgNDM1LCAxMDAsIDE2KQpkcmF3ZmlsbGJveCAoNDc2LCA5NSwgNDYwLCAxMDAsIDE2KQpkcmF3ZmlsbGJveCAoNTAwLCA5NSwgNDg1LCAxMDAsIDE2KQolaG9yaXosIGhlaWdodCBjb3JkLCB3aWR0aCwgdmVydAoKJWV5ZXMKZHJhd2ZpbGxvdmFsICg0MjgsIDE3MCwgMTUsIDE1LCAzMSkKZHJhd2ZpbGxvdmFsICg0ODAsIDE3MCwgMTUsIDE1LCAzMSkKJWhvcml6LCB2ZXJ0aWNhbCwgaGVpZ2h0LCB3aWR0aCwgY29sb3VyCiVwdXBpbHMKZHJhd2ZpbGxvdmFsICg0ODAsIDE3MCwgMTAsIDEwLCA1NCkKZHJhd2ZpbGxvdmFsICg0MjgsIDE3MCwgMTAsIDEwLCA1NCkKZHJhd2ZpbGxvdmFsICg0MjgsIDE3MCwgNSwgNSwgMTYpCmRyYXdmaWxsb3ZhbCAoNDgwLCAxNzAsIDUsIDUsIDE2KQpkcmF3ZmlsbG92YWwgKDQ3NywgMTczLCAzLCAzLCAzMSkKZHJhd2ZpbGxvdmFsICg0MzIsIDE3MywgMywgMywgMzEpCgolbGVncwpkcmF3ZmlsbGJveCAoNDIwLCA4OSwgNDMwLCA4NSwgMzEpCmRyYXdmaWxsYm94ICg0ODAsIDg5LCA0OTAsIDg1LCAzMSkKZHJhd2ZpbGxib3ggKDQ4MiwgNzUsIDQ4OCwgODQsIDE0KQpkcmF3ZmlsbGJveCAoNDIyLCA3NSwgNDI4LCA4NCwgMTQpCgolc29ja3MKZHJhd2ZpbGxib3ggKDQyMiwgNzQsIDQyOCwgNTAsIDMxKQpkcmF3ZmlsbGJveCAoNDgyLCA3NCwgNDg4LCA1MCwgMzEpCiVzdHJpcGVzCmRyYXdmaWxsYm94ICg0ODIsIDY4LCA0ODgsIDY3LCAxMikKZHJhd2ZpbGxib3ggKDQyMiwgNjgsIDQyOCwgNjcsIDEyKQpkcmF3ZmlsbGJveCAoNDIyLCA2NCwgNDI4LCA2MywgNTUpCmRyYXdmaWxsYm94ICg0ODIsIDY0LCA0ODgsIDYzLCA1NSkKCiVzaG9lcwpkcmF3ZmlsbG92YWwgKDQ5MiwgNTAsIDEzLCA1LCAxNikKZHJhd2ZpbGxvdmFsICg0MjAsIDUwLCAxMywgNSwgMTYpCgolbW91dGgKZHJhd2ZpbGxhcmMgKDQ1MywgMTM2LCAyNSwgMTUsIDE5MCwgMCwgMTM1KQolaG9yaXpvbiwgdmVydGljYWwsIHdpZHRoLCBoZWlnaHQsIGRlZ3JlZSwgc2xhbnQsIGNvbG91cgpkcmF3ZmlsbGFyYyAoNDYwLCAxMjEsIDEyLCA1LCA0MDAsIDE4MCwgNjMpCgpkcmF3ZmlsbGJveCAoNDQ3LCAxMzIsIDQ1MywgMTM2LCAzMSkKZHJhd2ZpbGxib3ggKDQ1NSwgMTMyLCA0NjEsIDEzNiwgMzEpCiVob3JpeiwgaGVpZ2h0IGNvcmQsIHdpZHRoLCB2ZXJ0Cgolc3BvbmdlaG9sZXMKZHJhd2ZpbGxvdmFsICg0MTEsIDE5MywgNywgNywgMTE2KQolaG9yaXosIHZlcnRpY2FsLCBoZWlnaHQsIHdpZHRoLCBjb2xvdXIKZHJhd2ZpbGxvdmFsICg1MDAsIDE5MiwgNiwgNiwgMTE2KQpkcmF3ZmlsbG92YWwgKDUwMywgMTc2LCA0LCA0LCAxMTYpCmRyYXdmaWxsb3ZhbCAoNDEzLCAxNDYsIDUsIDUsIDExNikKZHJhd2ZpbGxvdmFsICg0MTAsIDEyNSwgNywgNywgMTE2KQpkcmF3ZmlsbG92YWwgKDQ5OCwgMTQ1LCA3LCA3LCAxMTYpCmRyYXdmaWxsb3ZhbCAoNDkzLCAxMjUsIDUsIDUsIDExNikKJXRhYmxlCmRyYXdmaWxsYm94ICgzMDAsIDEyMCwgNjEwLCAxMDAsIDE5KQpkcmF3ZmlsbGJveCAoMzA1LCA0MCwgMzMwLCAxMjAsIDE5KQpkcmF3ZmlsbGJveCAoNjA1LCA0MCwgNTgwLCAxMjAsIDE5KQolaG9yaXogc3RhcnQsIHZlcnQgc3RhcnQsIHdpZHRoIGVuZCwgaGVpZ2h0IGVuZAoKCiUtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiVCVVJHRVIgQlVOUwpwdXQgIkRvIHlvdSB3YW50IHRoZSBidW5zIHRvIGJlIHdob2xld2hlYXQgb3Igd2hpdGU/IgpwdXQgIkVudGVyICdhJyBmb3Igd2hpdGUgYnVucywgYW5kICdiJyBmb3Igd2hvbGV3aGVhdCBidW5zIgpwdXQgImEuIFdoaXRlIGJ1bnMiCnB1dCAiYi4gV2hvbGV3aGVhdCBidW5zIgpwdXQgIkkgY2hvc2UgIiAuLgp2YXIgYnVucyA6IHN0cmluZwpnZXQgYnVucwp2YXIgY291bnQgOiBpbnQgOj0gMQpjbHMKaWYgYnVucyA9ICJhIiB0aGVuCmNvdW50IDo9IGNvdW50ICsgMQplbHNpZiBidW5zID0gImIiIHRoZW4KY291bnQgOj0gY291bnQgKyAwCmVuZCBpZgpjbHMKcHV0ICJQb2ludCBjb3VudDogIiwgY291bnQKJVNQT05HRUJPQgolaG9yaSBjb29yLCB2ZXJ0IGNvb3IsIHdpZHRoIHJpZ2h0IGVuZGluZyBjb29yLCBoZWlnaHQgdG9wIGVuZGluZyBjb29yLCBjb2xvcgoKJWhvcml6IHN0YXJ0LCB2ZXJ0aWNhbCwgd2lkdGggZW5kLCBoZWlnaHQgY29sb3VyCiVib2R5CmRyYXdib3ggKDQwMCwgMTAwLCA1MDAsIDIwMCwgMikKZHJhd2ZpbGxib3ggKDQwMCwgMTAwLCA1MTAsIDIxMCwgMTQpCmRyYXdmaWxsYm94ICg0MDAsIDExNSwgNTEwLCAxMTAsIDMxKQpkcmF3ZmlsbGJveCAoNDAwLCA5MCwgNTEwLCAxMTAsIDEzNykKZHJhd2ZpbGxib3ggKDQxMCwgOTUsIDQyNSwgMTAwLCAxNikKZHJhd2ZpbGxib3ggKDQ1MCwgOTUsIDQzNSwgMTAwLCAxNikKZHJhd2ZpbGxib3ggKDQ3NiwgOTUsIDQ2MCwgMTAwLCAxNikKZHJhd2ZpbGxib3ggKDUwMCwgOTUsIDQ4NSwgMTAwLCAxNikKJWhvcml6LCBoZWlnaHQgY29yZCwgd2lkdGgsIHZlcnQKCiVleWVzCmRyYXdmaWxsb3ZhbCAoNDI4LCAxNzAsIDE1LCAxNSwgMzEpCmRyYXdmaWxsb3ZhbCAoNDgwLCAxNzAsIDE1LCAxNSwgMzEpCiVob3JpeiwgdmVydGljYWwsIGhlaWdodCwgd2lkdGgsIGNvbG91cgolcHVwaWxzCmRyYXdmaWxsb3ZhbCAoNDgwLCAxNzAsIDEwLCAxMCwgNTQpCmRyYXdmaWxsb3ZhbCAoNDI4LCAxNzAsIDEwLCAxMCwgNTQpCmRyYXdmaWxsb3ZhbCAoNDI4LCAxNzAsIDUsIDUsIDE2KQpkcmF3ZmlsbG92YWwgKDQ4MCwgMTcwLCA1LCA1LCAxNikKZHJhd2ZpbGxvdmFsICg0NzcsIDE3MywgMywgMywgMzEpCmRyYXdmaWxsb3ZhbCAoNDMyLCAxNzMsIDMsIDMsIDMxKQoKJWxlZ3MKZHJhd2ZpbGxib3ggKDQyMCwgODksIDQzMCwgODUsIDMxKQpkcmF3ZmlsbGJveCAoNDgwLCA4OSwgNDkwLCA4NSwgMzEpCmRyYXdmaWxsYm94ICg0ODIsIDc1LCA0ODgsIDg0LCAxNCkKZHJhd2ZpbGxib3ggKDQyMiwgNzUsIDQyOCwgODQsIDE0KQoKJXNvY2tzCmRyYXdmaWxsYm94ICg0MjIsIDc0LCA0MjgsIDUwLCAzMSkKZHJhd2ZpbGxib3ggKDQ4MiwgNzQsIDQ4OCwgNTAsIDMxKQolc3RyaXBlcwpkcmF3ZmlsbGJveCAoNDgyLCA2OCwgNDg4LCA2NywgMTIpCmRyYXdmaWxsYm94ICg0MjIsIDY4LCA0MjgsIDY3LCAxMikKZHJhd2ZpbGxib3ggKDQyMiwgNjQsIDQyOCwgNjMsIDU1KQpkcmF3ZmlsbGJveCAoNDgyLCA2NCwgNDg4LCA2MywgNTUpCgolc2hvZXMKZHJhd2ZpbGxvdmFsICg0OTIsIDUwLCAxMywgNSwgMTYpCmRyYXdmaWxsb3ZhbCAoNDIwLCA1MCwgMTMsIDUsIDE2KQoKJW1vdXRoCmRyYXdmaWxsYXJjICg0NTMsIDEzNiwgMjUsIDE1LCAxOTAsIDAsIDEzNSkKJWhvcml6b24sIHZlcnRpY2FsLCB3aWR0aCwgaGVpZ2h0LCBkZWdyZWUsIHNsYW50LCBjb2xvdXIKZHJhd2ZpbGxhcmMgKDQ2MCwgMTIxLCAxMiwgNSwgNDAwLCAxODAsIDYzKQoKZHJhd2ZpbGxib3ggKDQ0NywgMTMyLCA0NTMsIDEzNiwgMzEpCmRyYXdmaWxsYm94ICg0NTUsIDEzMiwgNDYxLCAxMzYsIDMxKQolaG9yaXosIGhlaWdodCBjb3JkLCB3aWR0aCwgdmVydAoKJXNwb25nZWhvbGVzCmRyYXdmaWxsb3ZhbCAoNDExLCAxOTMsIDcsIDcsIDExNikKJWhvcml6LCB2ZXJ0aWNhbCwgaGVpZ2h0LCB3aWR0aCwgY29sb3VyCmRyYXdmaWxsb3ZhbCAoNTAwLCAxOTIsIDYsIDYsIDExNikKZHJhd2ZpbGxvdmFsICg1MDMsIDE3NiwgNCwgNCwgMTE2KQpkcmF3ZmlsbG92YWwgKDQxMywgMTQ2LCA1LCA1LCAxMTYpCmRyYXdmaWxsb3ZhbCAoNDEwLCAxMjUsIDcsIDcsIDExNikKZHJhd2ZpbGxvdmFsICg0OTgsIDE0NSwgNywgNywgMTE2KQpkcmF3ZmlsbG92YWwgKDQ5MywgMTI1LCA1LCA1LCAxMTYpCiV0YWJsZQpkcmF3ZmlsbGJveCAoMzAwLCAxMjAsIDYxMCwgMTAwLCAxOSkKZHJhd2ZpbGxib3ggKDMwNSwgNDAsIDMzMCwgMTIwLCAxOSkKZHJhd2ZpbGxib3ggKDYwNSwgNDAsIDU4MCwgMTIwLCAxOSkKJWhvcml6IHN0YXJ0LCB2ZXJ0IHN0YXJ0LCB3aWR0aCBlbmQsIGhlaWdodCBlbmQKCmNhc2UgYnVucyBvZgogICAgbGFiZWwgImEiIDoKCiAgICAgICAgcHV0ICIiCiAgICAgICAgZHJhd2ZpbGxhcmMgKDU1MCwgMTMwLCAyNSwgMTUsIDE4MCwgMzYwLCA2NikKICAgICAgICAlaG9yaXpvbiwgdmVydGljYWwsIHdpZHRoLCBoZWlnaHQsIGRlZ3JlZSwgc2xhbnQsIGNvbG91cgoKCiAgICBsYWJlbCAiYiIgOgogICAgICAgIHB1dCAiIgogICAgICAgIGRyYXdmaWxsYXJjICg1NTAsIDEzMCwgMjUsIDE1LCAxODAsIDM2MCwgMTE0KSAlRURJVAoKZW5kIGNhc2UKCiVQQVRUWQoKdmFyIHBhdHR5IDogc3RyaW5nCgpwdXQgIkhvdyBsb25nIGRvIHlvdSB3YW50IHRvIGZyeSB0aGUgcGF0dHk/IgpwdXQgImEuIDc1IG1pbnV0ZXMiCnB1dCAiYi4gMTUgbWludXRlcyIKcHV0ICJjLiAxIG1pbnV0ZSIKZ2V0IHBhdHR5CmNvdW50IDo9IGNvdW50ICsgMQppZiBwYXR0eSA9ICJhIiB0aGVuCmNvdW50IDo9IGNvdW50ICsgMAplbHNpZiBidW5zID0gImIiIHRoZW4KY291bnQgOj0gY291bnQgKyAwCmVsc2lmIGJ1bnMgPSAiYyIgdGhlbgpjb3VudCA6PSBjb3VudCArIDAKZW5kIGlmCmNscwolU1BPTkdFQk9CCiVob3JpIGNvb3IsIHZlcnQgY29vciwgd2lkdGggcmlnaHQgZW5kaW5nIGNvb3IsIGhlaWdodCB0b3AgZW5kaW5nIGNvb3IsIGNvbG9yCmRyYXdmaWxsYm94ICg0MDAsIDEwMCwgNTEwLCAyMTAsIDE0KQolaG9yaXogc3RhcnQsIHZlcnRpY2FsLCB3aWR0aCBlbmQsIGhlaWdodCBjb2xvdXIKJWJvZHkKZHJhd2JveCAoNDAwLCAxMDAsIDUwMCwgMjAwLCAyKQpkcmF3ZmlsbGJveCAoNDAwLCAxMDAsIDUxMCwgMjEwLCAxNCkKZHJhd2ZpbGxib3ggKDQwMCwgMTE1LCA1MTAsIDExMCwgMzEpCmRyYXdmaWxsYm94ICg0MDAsIDkwLCA1MTAsIDExMCwgMTM3KQpkcmF3ZmlsbGJveCAoNDEwLCA5NSwgNDI1LCAxMDAsIDE2KQpkcmF3ZmlsbGJveCAoNDUwLCA5NSwgNDM1LCAxMDAsIDE2KQpkcmF3ZmlsbGJveCAoNDc2LCA5NSwgNDYwLCAxMDAsIDE2KQpkcmF3ZmlsbGJveCAoNTAwLCA5NSwgNDg1LCAxMDAsIDE2KQolaG9yaXosIGhlaWdodCBjb3JkLCB3aWR0aCwgdmVydAoKJWV5ZXMKZHJhd2ZpbGxvdmFsICg0MjgsIDE3MCwgMTUsIDE1LCAzMSkKZHJhd2ZpbGxvdmFsICg0ODAsIDE3MCwgMTUsIDE1LCAzMSkKJWhvcml6LCB2ZXJ0aWNhbCwgaGVpZ2h0LCB3aWR0aCwgY29sb3VyCiVwdXBpbHMKZHJhd2ZpbGxvdmFsICg0ODAsIDE3MCwgMTAsIDEwLCA1NCkKZHJhd2ZpbGxvdmFsICg0MjgsIDE3MCwgMTAsIDEwLCA1NCkKZHJhd2ZpbGxvdmFsICg0MjgsIDE3MCwgNSwgNSwgMTYpCmRyYXdmaWxsb3ZhbCAoNDgwLCAxNzAsIDUsIDUsIDE2KQpkcmF3ZmlsbG92YWwgKDQ3NywgMTczLCAzLCAzLCAzMSkKZHJhd2ZpbGxvdmFsICg0MzIsIDE3MywgMywgMywgMzEpCgolbGVncwpkcmF3ZmlsbGJveCAoNDIwLCA4OSwgNDMwLCA4NSwgMzEpCmRyYXdmaWxsYm94ICg0ODAsIDg5LCA0OTAsIDg1LCAzMSkKZHJhd2ZpbGxib3ggKDQ4MiwgNzUsIDQ4OCwgODQsIDE0KQpkcmF3ZmlsbGJveCAoNDIyLCA3NSwgNDI4LCA4NCwgMTQpCgolc29ja3MKZHJhd2ZpbGxib3ggKDQyMiwgNzQsIDQyOCwgNTAsIDMxKQpkcmF3ZmlsbGJveCAoNDgyLCA3NCwgNDg4LCA1MCwgMzEpCiVzdHJpcGVzCmRyYXdmaWxsYm94ICg0ODIsIDY4LCA0ODgsIDY3LCAxMikKZHJhd2ZpbGxib3ggKDQyMiwgNjgsIDQyOCwgNjcsIDEyKQpkcmF3ZmlsbGJveCAoNDIyLCA2NCwgNDI4LCA2MywgNTUpCmRyYXdmaWxsYm94ICg0ODIsIDY0LCA0ODgsIDYzLCA1NSkKCiVzaG9lcwpkcmF3ZmlsbG92YWwgKDQ5MiwgNTAsIDEzLCA1LCAxNikKZHJhd2ZpbGxvdmFsICg0MjAsIDUwLCAxMywgNSwgMTYpCgolbW91dGgKZHJhd2ZpbGxhcmMgKDQ1MywgMTM2LCAyNSwgMTUsIDE5MCwgMCwgMTM1KQolaG9yaXpvbiwgdmVydGljYWwsIHdpZHRoLCBoZWlnaHQsIGRlZ3JlZSwgc2xhbnQsIGNvbG91cgpkcmF3ZmlsbGFyYyAoNDYwLCAxMjEsIDEyLCA1LCA0MDAsIDE4MCwgNjMpCgpkcmF3ZmlsbGJveCAoNDQ3LCAxMzIsIDQ1MywgMTM2LCAzMSkKZHJhd2ZpbGxib3ggKDQ1NSwgMTMyLCA0NjEsIDEzNiwgMzEpCiVob3JpeiwgaGVpZ2h0IGNvcmQsIHdpZHRoLCB2ZXJ0Cgolc3BvbmdlaG9sZXMKZHJhd2ZpbGxvdmFsICg0MTEsIDE5MywgNywgNywgMTE2KQolaG9yaXosIHZlcnRpY2FsLCBoZWlnaHQsIHdpZHRoLCBjb2xvdXIKZHJhd2ZpbGxvdmFsICg1MDAsIDE5MiwgNiwgNiwgMTE2KQpkcmF3ZmlsbG92YWwgKDUwMywgMTc2LCA0LCA0LCAxMTYpCmRyYXdmaWxsb3ZhbCAoNDEzLCAxNDYsIDUsIDUsIDExNikKZHJhd2ZpbGxvdmFsICg0MTAsIDEyNSwgNywgNywgMTE2KQpkcmF3ZmlsbG92YWwgKDQ5OCwgMTQ1LCA3LCA3LCAxMTYpCmRyYXdmaWxsb3ZhbCAoNDkzLCAxMjUsIDUsIDUsIDExNikKJXRhYmxlCmRyYXdmaWxsYm94ICgzMDAsIDEyMCwgNjEwLCAxMDAsIDE5KQpkcmF3ZmlsbGJveCAoMzA1LCA0MCwgMzMwLCAxMjAsIDE5KQpkcmF3ZmlsbGJveCAoNjA1LCA0MCwgNTgwLCAxMjAsIDE5KQolaG9yaXogc3RhcnQsIHZlcnQgc3RhcnQsIHdpZHRoIGVuZCwgaGVpZ2h0IGVuZAoKaWYgYnVucyA9ICJhIiB0aGVuCiAgICBkcmF3ZmlsbGFyYyAoNTUwLCAxMzAsIDI1LCAxNSwgMTgwLCAzNjAsIDY2KQplbHNpZiBidW5zID0gImIiIHRoZW4KICAgIGRyYXdmaWxsYXJjICg1NTAsIDEzMCwgMjUsIDE1LCAxODAsIDM2MCwgMTE0KQplbmQgaWYKCmNhc2UgcGF0dHkgb2YKICAgIGxhYmVsICJhIiA6CiAgICAgICAgcHV0ICIiCiAgICAgICAgZHJhd2ZpbGxvdmFsICg1NTAsIDEyOSwgMzAsIDUsIDE2KQoKICAgIGxhYmVsICJiIiA6CiAgICAgICAgcHV0ICIiCiAgICAgICAgZHJhd2ZpbGxvdmFsICg1NTAsIDEyOSwgMzAsIDUsIDExMykKCiAgICBsYWJlbCAiYyIgOgogICAgICAgIHB1dCAiIgogICAgICAgIGRyYXdmaWxsb3ZhbCAoNTUwLCAxMjksIDMwLCA1LCA2MykKCmVuZCBjYXNlCnB1dCAiUG9pbnQgY291bnQ6ICIsIGNvdW50CiVMRVRUVUNFCgpwdXQgIkhvdyB3b3VsZCB5b3UgbGlrZSB5b3VyIGxldHR1Y2U/IgpwdXQgImEuIFNocmVkZGVkIgpwdXQgImIuIEluIGJpZyBsZWF2ZXMiCnB1dCAiYy4gTm8gbGV0dHVjZSIKCnZhciBsZXR0dWNlIDogc3RyaW5nCmdldCBsZXR0dWNlCmNvdW50IDo9IGNvdW50ICsgMQppZiBidW5zID0gImEiIHRoZW4KY291bnQgOj0gY291bnQgKyAxCmVsc2lmIGJ1bnMgPSAiYiIgdGhlbgpjb3VudCA6PSBjb3VudCArIDAKZW5kIGlmCmNscwoKJVNQT05HRUJPQgolaG9yaSBjb29yLCB2ZXJ0IGNvb3IsIHdpZHRoIHJpZ2h0IGVuZGluZyBjb29yLCBoZWlnaHQgdG9wIGVuZGluZyBjb29yLCBjb2xvcgoKJWhvcml6IHN0YXJ0LCB2ZXJ0aWNhbCwgd2lkdGggZW5kLCBoZWlnaHQgY29sb3VyCiVib2R5CmRyYXdib3ggKDQwMCwgMTAwLCA1MDAsIDIwMCwgMikKZHJhd2ZpbGxib3ggKDQwMCwgMTAwLCA1MTAsIDIxMCwgMTQpCmRyYXdmaWxsYm94ICg0MDAsIDExNSwgNTEwLCAxMTAsIDMxKQpkcmF3ZmlsbGJveCAoNDAwLCA5MCwgNTEwLCAxMTAsIDEzNykKZHJhd2ZpbGxib3ggKDQxMCwgOTUsIDQyNSwgMTAwLCAxNikKZHJhd2ZpbGxib3ggKDQ1MCwgOTUsIDQzNSwgMTAwLCAxNikKZHJhd2ZpbGxib3ggKDQ3NiwgOTUsIDQ2MCwgMTAwLCAxNikKZHJhd2ZpbGxib3ggKDUwMCwgOTUsIDQ4NSwgMTAwLCAxNikKJWhvcml6LCBoZWlnaHQgY29yZCwgd2lkdGgsIHZlcnQKCiVleWVzCmRyYXdmaWxsb3ZhbCAoNDI4LCAxNzAsIDE1LCAxNSwgMzEpCmRyYXdmaWxsb3ZhbCAoNDgwLCAxNzAsIDE1LCAxNSwgMzEpCiVob3JpeiwgdmVydGljYWwsIGhlaWdodCwgd2lkdGgsIGNvbG91cgolcHVwaWxzCmRyYXdmaWxsb3ZhbCAoNDgwLCAxNzAsIDEwLCAxMCwgNTQpCmRyYXdmaWxsb3ZhbCAoNDI4LCAxNzAsIDEwLCAxMCwgNTQpCmRyYXdmaWxsb3ZhbCAoNDI4LCAxNzAsIDUsIDUsIDE2KQpkcmF3ZmlsbG92YWwgKDQ4MCwgMTcwLCA1LCA1LCAxNikKZHJhd2ZpbGxvdmFsICg0NzcsIDE3MywgMywgMywgMzEpCmRyYXdmaWxsb3ZhbCAoNDMyLCAxNzMsIDMsIDMsIDMxKQoKJWxlZ3MKZHJhd2ZpbGxib3ggKDQyMCwgODksIDQzMCwgODUsIDMxKQpkcmF3ZmlsbGJveCAoNDgwLCA4OSwgNDkwLCA4NSwgMzEpCmRyYXdmaWxsYm94ICg0ODIsIDc1LCA0ODgsIDg0LCAxNCkKZHJhd2ZpbGxib3ggKDQyMiwgNzUsIDQyOCwgODQsIDE0KQoKJXNvY2tzCmRyYXdmaWxsYm94ICg0MjIsIDc0LCA0MjgsIDUwLCAzMSkKZHJhd2ZpbGxib3ggKDQ4MiwgNzQsIDQ4OCwgNTAsIDMxKQolc3RyaXBlcwpkcmF3ZmlsbGJveCAoNDgyLCA2OCwgNDg4LCA2NywgMTIpCmRyYXdmaWxsYm94ICg0MjIsIDY4LCA0MjgsIDY3LCAxMikKZHJhd2ZpbGxib3ggKDQyMiwgNjQsIDQyOCwgNjMsIDU1KQpkcmF3ZmlsbGJveCAoNDgyLCA2NCwgNDg4LCA2MywgNTUpCgolc2hvZXMKZHJhd2ZpbGxvdmFsICg0OTIsIDUwLCAxMywgNSwgMTYpCmRyYXdmaWxsb3ZhbCAoNDIwLCA1MCwgMTMsIDUsIDE2KQoKJW1vdXRoCmRyYXdmaWxsYXJjICg0NTMsIDEzNiwgMjUsIDE1LCAxOTAsIDAsIDEzNSkKJWhvcml6b24sIHZlcnRpY2FsLCB3aWR0aCwgaGVpZ2h0LCBkZWdyZWUsIHNsYW50LCBjb2xvdXIKZHJhd2ZpbGxhcmMgKDQ2MCwgMTIxLCAxMiwgNSwgNDAwLCAxODAsIDYzKQoKZHJhd2ZpbGxib3ggKDQ0NywgMTMyLCA0NTMsIDEzNiwgMzEpCmRyYXdmaWxsYm94ICg0NTUsIDEzMiwgNDYxLCAxMzYsIDMxKQolaG9yaXosIGhlaWdodCBjb3JkLCB3aWR0aCwgdmVydAoKJXNwb25nZWhvbGVzCmRyYXdmaWxsb3ZhbCAoNDExLCAxOTMsIDcsIDcsIDExNikKJWhvcml6LCB2ZXJ0aWNhbCwgaGVpZ2h0LCB3aWR0aCwgY29sb3VyCmRyYXdmaWxsb3ZhbCAoNTAwLCAxOTIsIDYsIDYsIDExNikKZHJhd2ZpbGxvdmFsICg1MDMsIDE3NiwgNCwgNCwgMTE2KQpkcmF3ZmlsbG92YWwgKDQxMywgMTQ2LCA1LCA1LCAxMTYpCmRyYXdmaWxsb3ZhbCAoNDEwLCAxMjUsIDcsIDcsIDExNikKZHJhd2ZpbGxvdmFsICg0OTgsIDE0NSwgNywgNywgMTE2KQpkcmF3ZmlsbG92YWwgKDQ5MywgMTI1LCA1LCA1LCAxMTYpCiV0YWJsZQpkcmF3ZmlsbGJveCAoMzAwLCAxMjAsIDYxMCwgMTAwLCAxOSkKZHJhd2ZpbGxib3ggKDMwNSwgNDAsIDMzMCwgMTIwLCAxOSkKZHJhd2ZpbGxib3ggKDYwNSwgNDAsIDU4MCwgMTIwLCAxOSkKJWhvcml6IHN0YXJ0LCB2ZXJ0IHN0YXJ0LCB3aWR0aCBlbmQsIGhlaWdodCBlbmQKcHV0ICJQb2ludCBjb3VudCA6IiwgY291bnQKaWYgYnVucyA9ICJhIiB0aGVuCiAgICBkcmF3ZmlsbGFyYyAoNTUwLCAxMzAsIDI1LCAxNSwgMTgwLCAzNjAsIDY2KQplbHNpZiBidW5zID0gImIiIHRoZW4KICAgIGRyYXdmaWxsYXJjICg1NTAsIDEzMCwgMjUsIDE1LCAxODAsIDM2MCwgMTE0KQplbmQgaWYKaWYgcGF0dHkgPSAiYSIgdGhlbgogICAgZHJhd2ZpbGxvdmFsICg1NTAsIDEyOSwgMzAsIDUsIDE2KQoKZWxzaWYgcGF0dHkgPSAiYiIgdGhlbgogICAgZHJhd2ZpbGxvdmFsICg1NTAsIDEyOSwgMzAsIDUsIDExMykKCmVsc2lmIHBhdHR5ID0gImMiIHRoZW4KICAgIGRyYXdmaWxsb3ZhbCAoNTUwLCAxMjksIDMwLCA1LCA2MykKZW5kIGlmCgpjYXNlIGxldHR1Y2Ugb2YKICAgIGxhYmVsICJhIiA6CiAgICAgICAgcHV0ICIiCgogICAgICAgIGRyYXdmaWxsYm94ICg1MjAsIDEzOCwgNTMwLCAxMzMsIDQ1KQogICAgICAgIGRyYXdmaWxsYm94ICg1MzAsIDEzOCwgNTQwLCAxMzMsIDcxKQogICAgICAgIGRyYXdmaWxsYm94ICg1NDAsIDEzOCwgNTUwLCAxMzMsIDQ4KQogICAgICAgIGRyYXdmaWxsYm94ICg1NTAsIDEzOCwgNTYwLCAxMzMsIDEyMCkKICAgICAgICBkcmF3ZmlsbGJveCAoNTYwLCAxMzgsIDU3MCwgMTMzLCA3MykKICAgICAgICBkcmF3ZmlsbGJveCAoNTcwLCAxMzgsIDU4MCwgMTMzLCAxMTgpCiAgICAgICAgJUVESVQKCiAgICBsYWJlbCAiYiIgOgogICAgICAgIHB1dCAiIgogICAgICAgIGRyYXdmaWxsYm94ICg1MjAsIDEzOCwgNTgwLCAxMzMsIDExOSkKICAgIGxhYmVsICJjIiA6CiAgICAgICAgcHV0ICIiCiAgICAgICAgJUVESVQKZW5kIGNhc2UKCgolVkVHRVRBQkxFUwpwdXQgIkNob29zZSBhIHZlZ2V0YWJsZSBmcm9tIHRoZSBzZWxlY3Rpb24gYmVsb3ciCnB1dCAiYS4gVG9tYXRvcyIKcHV0ICJiLiBQaWNrbGVzIgpwdXQgImMuIFBlcHBlcnMiCnZhciB2ZWdldGFibGUgOiBzdHJpbmcKZ2V0IHZlZ2V0YWJsZQpjb3VudCA6PSBjb3VudCArIDEKaWYgYnVucyA9ICJhIiB0aGVuCmNvdW50IDo9IGNvdW50ICsgMAplbHNpZiBidW5zID0gImIiIHRoZW4KY291bnQgOj0gY291bnQgKyAwCmVuZCBpZgpjbHMKCiVTUE9OR0VCT0IKJWhvcmkgY29vciwgdmVydCBjb29yLCB3aWR0aCByaWdodCBlbmRpbmcgY29vciwgaGVpZ2h0IHRvcCBlbmRpbmcgY29vciwgY29sb3IKCiVob3JpeiBzdGFydCwgdmVydGljYWwsIHdpZHRoIGVuZCwgaGVpZ2h0IGNvbG91cgolYm9keQpkcmF3Ym94ICg0MDAsIDEwMCwgNTAwLCAyMDAsIDIpCmRyYXdmaWxsYm94ICg0MDAsIDEwMCwgNTEwLCAyMTAsIDE0KQpkcmF3ZmlsbGJveCAoNDAwLCAxMTUsIDUxMCwgMTEwLCAzMSkKZHJhd2ZpbGxib3ggKDQwMCwgOTAsIDUxMCwgMTEwLCAxMzcpCmRyYXdmaWxsYm94ICg0MTAsIDk1LCA0MjUsIDEwMCwgMTYpCmRyYXdmaWxsYm94ICg0NTAsIDk1LCA0MzUsIDEwMCwgMTYpCmRyYXdmaWxsYm94ICg0NzYsIDk1LCA0NjAsIDEwMCwgMTYpCmRyYXdmaWxsYm94ICg1MDAsIDk1LCA0ODUsIDEwMCwgMTYpCiVob3JpeiwgaGVpZ2h0IGNvcmQsIHdpZHRoLCB2ZXJ0CgolZXllcwpkcmF3ZmlsbG92YWwgKDQyOCwgMTcwLCAxNSwgMTUsIDMxKQpkcmF3ZmlsbG92YWwgKDQ4MCwgMTcwLCAxNSwgMTUsIDMxKQolaG9yaXosIHZlcnRpY2FsLCBoZWlnaHQsIHdpZHRoLCBjb2xvdXIKJXB1cGlscwpkcmF3ZmlsbG92YWwgKDQ4MCwgMTcwLCAxMCwgMTAsIDU0KQpkcmF3ZmlsbG92YWwgKDQyOCwgMTcwLCAxMCwgMTAsIDU0KQpkcmF3ZmlsbG92YWwgKDQyOCwgMTcwLCA1LCA1LCAxNikKZHJhd2ZpbGxvdmFsICg0ODAsIDE3MCwgNSwgNSwgMTYpCmRyYXdmaWxsb3ZhbCAoNDc3LCAxNzMsIDMsIDMsIDMxKQpkcmF3ZmlsbG92YWwgKDQzMiwgMTczLCAzLCAzLCAzMSkKCiVsZWdzCmRyYXdmaWxsYm94ICg0MjAsIDg5LCA0MzAsIDg1LCAzMSkKZHJhd2ZpbGxib3ggKDQ4MCwgODksIDQ5MCwgODUsIDMxKQpkcmF3ZmlsbGJveCAoNDgyLCA3NSwgNDg4LCA4NCwgMTQpCmRyYXdmaWxsYm94ICg0MjIsIDc1LCA0MjgsIDg0LCAxNCkKCiVzb2NrcwpkcmF3ZmlsbGJveCAoNDIyLCA3NCwgNDI4LCA1MCwgMzEpCmRyYXdmaWxsYm94ICg0ODIsIDc0LCA0ODgsIDUwLCAzMSkKJXN0cmlwZXMKZHJhd2ZpbGxib3ggKDQ4MiwgNjgsIDQ4OCwgNjcsIDEyKQpkcmF3ZmlsbGJveCAoNDIyLCA2OCwgNDI4LCA2NywgMTIpCmRyYXdmaWxsYm94ICg0MjIsIDY0LCA0MjgsIDYzLCA1NSkKZHJhd2ZpbGxib3ggKDQ4MiwgNjQsIDQ4OCwgNjMsIDU1KQoKJXNob2VzCmRyYXdmaWxsb3ZhbCAoNDkyLCA1MCwgMTMsIDUsIDE2KQpkcmF3ZmlsbG92YWwgKDQyMCwgNTAsIDEzLCA1LCAxNikKCiVtb3V0aApkcmF3ZmlsbGFyYyAoNDUzLCAxMzYsIDI1LCAxNSwgMTkwLCAwLCAxMzUpCiVob3Jpem9uLCB2ZXJ0aWNhbCwgd2lkdGgsIGhlaWdodCwgZGVncmVlLCBzbGFudCwgY29sb3VyCmRyYXdmaWxsYXJjICg0NjAsIDEyMSwgMTIsIDUsIDQwMCwgMTgwLCA2MykKCmRyYXdmaWxsYm94ICg0NDcsIDEzMiwgNDUzLCAxMzYsIDMxKQpkcmF3ZmlsbGJveCAoNDU1LCAxMzIsIDQ2MSwgMTM2LCAzMSkKJWhvcml6LCBoZWlnaHQgY29yZCwgd2lkdGgsIHZlcnQKCiVzcG9uZ2Vob2xlcwpkcmF3ZmlsbG92YWwgKDQxMSwgMTkzLCA3LCA3LCAxMTYpCiVob3JpeiwgdmVydGljYWwsIGhlaWdodCwgd2lkdGgsIGNvbG91cgpkcmF3ZmlsbG92YWwgKDUwMCwgMTkyLCA2LCA2LCAxMTYpCmRyYXdmaWxsb3ZhbCAoNTAzLCAxNzYsIDQsIDQsIDExNikKZHJhd2ZpbGxvdmFsICg0MTMsIDE0NiwgNSwgNSwgMTE2KQpkcmF3ZmlsbG92YWwgKDQxMCwgMTI1LCA3LCA3LCAxMTYpCmRyYXdmaWxsb3ZhbCAoNDk4LCAxNDUsIDcsIDcsIDExNikKZHJhd2ZpbGxvdmFsICg0OTMsIDEyNSwgNSwgNSwgMTE2KQoldGFibGUKZHJhd2ZpbGxib3ggKDMwMCwgMTIwLCA2MTAsIDEwMCwgMTkpCmRyYXdmaWxsYm94ICgzMDUsIDQwLCAzMzAsIDEyMCwgMTkpCmRyYXdmaWxsYm94ICg2MDUsIDQwLCA1ODAsIDEyMCwgMTkpCiVob3JpeiBzdGFydCwgdmVydCBzdGFydCwgd2lkdGggZW5kLCBoZWlnaHQgZW5kCnB1dCAiUG9pbnQgY291bnQ6ICIsIGNvdW50CmlmIGJ1bnMgPSAiYSIgdGhlbgogICAgZHJhd2ZpbGxhcmMgKDU1MCwgMTMwLCAyNSwgMTUsIDE4MCwgMzYwLCA2NikKZWxzaWYgYnVucyA9ICJiIiB0aGVuCiAgICBkcmF3ZmlsbGFyYyAoNTUwLCAxMzAsIDI1LCAxNSwgMTgwLCAzNjAsIDExNCkKZW5kIGlmCmlmIHBhdHR5ID0gImEiIHRoZW4KICAgIGRyYXdmaWxsb3ZhbCAoNTUwLCAxMjksIDMwLCA1LCAxNikKCmVsc2lmIHBhdHR5ID0gImIiIHRoZW4KICAgIGRyYXdmaWxsb3ZhbCAoNTUwLCAxMjksIDMwLCA1LCAxMTMpCgplbHNpZiBwYXR0eSA9ICJjIiB0aGVuCiAgICBkcmF3ZmlsbG92YWwgKDU1MCwgMTI5LCAzMCwgNSwgNjMpCmVuZCBpZgppZiBsZXR0dWNlID0gImEiIHRoZW4KICAgIGRyYXdmaWxsYm94ICg1MjAsIDEzOCwgNTMwLCAxMzMsIDQ1KQogICAgZHJhd2ZpbGxib3ggKDUzMCwgMTM4LCA1NDAsIDEzMywgNzEpCiAgICBkcmF3ZmlsbGJveCAoNTQwLCAxMzgsIDU1MCwgMTMzLCA0OCkKICAgIGRyYXdmaWxsYm94ICg1NTAsIDEzOCwgNTYwLCAxMzMsIDEyMCkKICAgIGRyYXdmaWxsYm94ICg1NjAsIDEzOCwgNTcwLCAxMzMsIDczKQogICAgZHJhd2ZpbGxib3ggKDU3MCwgMTM4LCA1ODAsIDEzMywgMTE4KQoKZWxzaWYgbGV0dHVjZSA9ICJiIiB0aGVuCiAgICBkcmF3ZmlsbGJveCAoNTIwLCAxMzgsIDU4MCwgMTMzLCAxMTkpCgplbHNpZgogICAgIGxldHR1Y2UgPSAiYyIgdGhlbgogICAgICAgIHB1dCAiIgogICAgZW5kIGlmCgogICAgY2FzZSB2ZWdldGFibGUgb2YKICAgICAgICBsYWJlbCAiYSIgOgogICAgICAgICAgICBwdXQgIiIKICAgICAgICAgICAgZHJhd2ZpbGxvdmFsICg1NTAsIDE0MiwgMzAsIDQsIDQwKQogICAgICAgICAgICBkcmF3ZmlsbG92YWwgKDU1MCwgMTQzLCAyMCwgMiwgNjQpCgogICAgICAgIGxhYmVsICJiIiA6CiAgICAgICAgICAgIHB1dCAiIgogICAgICAgICAgICBkcmF3ZmlsbG92YWwgKDUzMCwgMTQwLCAxMCwgMiwgMTkzKQogICAgICAgICAgICBkcmF3ZmlsbG92YWwgKDU0NSwgMTQwLCAxMCwgMiwgMTE3KQogICAgICAgICAgICBkcmF3ZmlsbG92YWwgKDU2MCwgMTQwLCAxMCwgMiwgMTkxKQogICAgICAgICAgICBkcmF3ZmlsbG92YWwgKDU3NSwgMTQwLCAxMCwgMiwgMTE4KQoKICAgICAgICBsYWJlbCAiYyIgOgogICAgICAgICAgICBwdXQgIiIKICAgICAgICAgICAgZHJhd2ZpbGxvdmFsICg1MzAsIDE0MCwgMTAsIDIsIDQ0KQogICAgICAgICAgICBkcmF3ZmlsbG92YWwgKDU0NSwgMTQwLCAxMCwgMiwgNDIpCiAgICAgICAgICAgIGRyYXdmaWxsb3ZhbCAoNTYwLCAxNDAsIDEwLCAyLCA0MykKICAgICAgICAgICAgZHJhd2ZpbGxvdmFsICg1NzUsIDE0MCwgMTAsIDIsIDQwKQogICAgZW5kIGNhc2UKCiAgICAlQ0hFRVNFCiAgICBwdXQgIldvdWxkIHlvdSBsaWtlIHRvIHB1dCBjaGVlc2Ugb24gdGhlIGtyYWJieSBwYXR0eT8iCiAgICBwdXQgImEuIFllcyIKICAgIHB1dCAiYi4gTm8iCiAgICB2YXIgY2hlZXNlIDogc3RyaW5nCiAgICBnZXQgY2hlZXNlCiAgICBjb3VudCA6PSBjb3VudCArIDEKICAgIGlmIGJ1bnMgPSAiYSIgdGhlbgogICAgY291bnQgOj0gY291bnQgKyAxCiAgICBlbHNpZiBidW5zID0gImIiIHRoZW4KICAgIGNvdW50IDo9IGNvdW50ICsgMAogICAgZW5kIGlmCiAgICBjbHMKCiAgICAlU1BPTkdFQk9CCiAgICAlaG9yaSBjb29yLCB2ZXJ0IGNvb3IsIHdpZHRoIHJpZ2h0IGVuZGluZyBjb29yLCBoZWlnaHQgdG9wIGVuZGluZyBjb29yLCBjb2xvcgoKICAgICVob3JpeiBzdGFydCwgdmVydGljYWwsIHdpZHRoIGVuZCwgaGVpZ2h0IGNvbG91cgogICAgJWJvZHkKICAgIGRyYXdib3ggKDQwMCwgMTAwLCA1MDAsIDIwMCwgMikKICAgIGRyYXdmaWxsYm94ICg0MDAsIDEwMCwgNTEwLCAyMTAsIDE0KQogICAgZHJhd2ZpbGxib3ggKDQwMCwgMTE1LCA1MTAsIDExMCwgMzEpCiAgICBkcmF3ZmlsbGJveCAoNDAwLCA5MCwgNTEwLCAxMTAsIDEzNykKICAgIGRyYXdmaWxsYm94ICg0MTAsIDk1LCA0MjUsIDEwMCwgMTYpCiAgICBkcmF3ZmlsbGJveCAoNDUwLCA5NSwgNDM1LCAxMDAsIDE2KQogICAgZHJhd2ZpbGxib3ggKDQ3NiwgOTUsIDQ2MCwgMTAwLCAxNikKICAgIGRyYXdmaWxsYm94ICg1MDAsIDk1LCA0ODUsIDEwMCwgMTYpCiAgICAlaG9yaXosIGhlaWdodCBjb3JkLCB3aWR0aCwgdmVydAoKICAgICVleWVzCiAgICBkcmF3ZmlsbG92YWwgKDQyOCwgMTcwLCAxNSwgMTUsIDMxKQogICAgZHJhd2ZpbGxvdmFsICg0ODAsIDE3MCwgMTUsIDE1LCAzMSkKICAgICVob3JpeiwgdmVydGljYWwsIGhlaWdodCwgd2lkdGgsIGNvbG91cgogICAgJXB1cGlscwogICAgZHJhd2ZpbGxvdmFsICg0ODAsIDE3MCwgMTAsIDEwLCA1NCkKICAgIGRyYXdmaWxsb3ZhbCAoNDI4LCAxNzAsIDEwLCAxMCwgNTQpCiAgICBkcmF3ZmlsbG92YWwgKDQyOCwgMTcwLCA1LCA1LCAxNikKICAgIGRyYXdmaWxsb3ZhbCAoNDgwLCAxNzAsIDUsIDUsIDE2KQogICAgZHJhd2ZpbGxvdmFsICg0NzcsIDE3MywgMywgMywgMzEpCiAgICBkcmF3ZmlsbG92YWwgKDQzMiwgMTczLCAzLCAzLCAzMSkKCiAgICAlbGVncwogICAgZHJhd2ZpbGxib3ggKDQyMCwgODksIDQzMCwgODUsIDMxKQogICAgZHJhd2ZpbGxib3ggKDQ4MCwgODksIDQ5MCwgODUsIDMxKQogICAgZHJhd2ZpbGxib3ggKDQ4MiwgNzUsIDQ4OCwgODQsIDE0KQogICAgZHJhd2ZpbGxib3ggKDQyMiwgNzUsIDQyOCwgODQsIDE0KQoKICAgICVzb2NrcwogICAgZHJhd2ZpbGxib3ggKDQyMiwgNzQsIDQyOCwgNTAsIDMxKQogICAgZHJhd2ZpbGxib3ggKDQ4MiwgNzQsIDQ4OCwgNTAsIDMxKQogICAgJXN0cmlwZXMKICAgIGRyYXdmaWxsYm94ICg0ODIsIDY4LCA0ODgsIDY3LCAxMikKICAgIGRyYXdmaWxsYm94ICg0MjIsIDY4LCA0MjgsIDY3LCAxMikKICAgIGRyYXdmaWxsYm94ICg0MjIsIDY0LCA0MjgsIDYzLCA1NSkKICAgIGRyYXdmaWxsYm94ICg0ODIsIDY0LCA0ODgsIDYzLCA1NSkKCiAgICAlc2hvZXMKICAgIGRyYXdmaWxsb3ZhbCAoNDkyLCA1MCwgMTMsIDUsIDE2KQogICAgZHJhd2ZpbGxvdmFsICg0MjAsIDUwLCAxMywgNSwgMTYpCgogICAgJW1vdXRoCiAgICBkcmF3ZmlsbGFyYyAoNDUzLCAxMzYsIDI1LCAxNSwgMTkwLCAwLCAxMzUpCiAgICAlaG9yaXpvbiwgdmVydGljYWwsIHdpZHRoLCBoZWlnaHQsIGRlZ3JlZSwgc2xhbnQsIGNvbG91cgogICAgZHJhd2ZpbGxhcmMgKDQ2MCwgMTIxLCAxMiwgNSwgNDAwLCAxODAsIDYzKQoKICAgIGRyYXdmaWxsYm94ICg0NDcsIDEzMiwgNDUzLCAxMzYsIDMxKQogICAgZHJhd2ZpbGxib3ggKDQ1NSwgMTMyLCA0NjEsIDEzNiwgMzEpCiAgICAlaG9yaXosIGhlaWdodCBjb3JkLCB3aWR0aCwgdmVydAoKICAgICVzcG9uZ2Vob2xlcwogICAgZHJhd2ZpbGxvdmFsICg0MTEsIDE5MywgNywgNywgMTE2KQogICAgJWhvcml6LCB2ZXJ0aWNhbCwgaGVpZ2h0LCB3aWR0aCwgY29sb3VyCiAgICBkcmF3ZmlsbG92YWwgKDUwMCwgMTkyLCA2LCA2LCAxMTYpCiAgICBkcmF3ZmlsbG92YWwgKDUwMywgMTc2LCA0LCA0LCAxMTYpCiAgICBkcmF3ZmlsbG92YWwgKDQxMywgMTQ2LCA1LCA1LCAxMTYpCiAgICBkcmF3ZmlsbG92YWwgKDQxMCwgMTI1LCA3LCA3LCAxMTYpCiAgICBkcmF3ZmlsbG92YWwgKDQ5OCwgMTQ1LCA3LCA3LCAxMTYpCiAgICBkcmF3ZmlsbG92YWwgKDQ5MywgMTI1LCA1LCA1LCAxMTYpCiAgICAldGFibGUKICAgIGRyYXdmaWxsYm94ICgzMDAsIDEyMCwgNjEwLCAxMDAsIDE5KQogICAgZHJhd2ZpbGxib3ggKDMwNSwgNDAsIDMzMCwgMTIwLCAxOSkKICAgIGRyYXdmaWxsYm94ICg2MDUsIDQwLCA1ODAsIDEyMCwgMTkpCiAgICAlaG9yaXogc3RhcnQsIHZlcnQgc3RhcnQsIHdpZHRoIGVuZCwgaGVpZ2h0IGVuZApwdXQgIlBvaW50IGNvdW50IDoiLCBjb3VudAogICAgaWYgYnVucyA9ICJhIiB0aGVuCiAgICBkcmF3ZmlsbGFyYyAoNTUwLCAxMzAsIDI1LCAxNSwgMTgwLCAzNjAsIDY2KQplbHNpZiBidW5zID0gImIiIHRoZW4KICAgIGRyYXdmaWxsYXJjICg1NTAsIDEzMCwgMjUsIDE1LCAxODAsIDM2MCwgMTE0KQplbmQgaWYKaWYgcGF0dHkgPSAiYSIgdGhlbgogICAgZHJhd2ZpbGxvdmFsICg1NTAsIDEyOSwgMzAsIDUsIDE2KQoKZWxzaWYgcGF0dHkgPSAiYiIgdGhlbgogICAgZHJhd2ZpbGxvdmFsICg1NTAsIDEyOSwgMzAsIDUsIDExMykKCmVsc2lmIHBhdHR5ID0gImMiIHRoZW4KICAgIGRyYXdmaWxsb3ZhbCAoNTUwLCAxMjksIDMwLCA1LCA2MykKZW5kIGlmCmlmIGxldHR1Y2UgPSAiYSIgdGhlbgogICAgZHJhd2ZpbGxib3ggKDUyMCwgMTM4LCA1MzAsIDEzMywgNDUpCiAgICBkcmF3ZmlsbGJveCAoNTMwLCAxMzgsIDU0MCwgMTMzLCA3MSkKICAgIGRyYXdmaWxsYm94ICg1NDAsIDEzOCwgNTUwLCAxMzMsIDQ4KQogICAgZHJhd2ZpbGxib3ggKDU1MCwgMTM4LCA1NjAsIDEzMywgMTIwKQogICAgZHJhd2ZpbGxib3ggKDU2MCwgMTM4LCA1NzAsIDEzMywgNzMpCiAgICBkcmF3ZmlsbGJveCAoNTcwLCAxMzgsIDU4MCwgMTMzLCAxMTgpCgplbHNpZiBsZXR0dWNlID0gImIiIHRoZW4KICAgIGRyYXdmaWxsYm94ICg1MjAsIDEzOCwgNTgwLCAxMzMsIDExOSkKCmVsc2lmCiAgICAgbGV0dHVjZSA9ICJjIiB0aGVuCiAgICAgICAgcHV0ICIiCiAgICBlbmQgaWYKICAgIGlmIHZlZ2V0YWJsZSA9ICJhIiB0aGVuCiAgICAgICAgZHJhd2ZpbGxvdmFsICg1NTAsIDE0MiwgMzAsIDQsIDQwKQogICAgICAgIGRyYXdmaWxsb3ZhbCAoNTUwLCAxNDMsIDIwLCAyLCA2NCkKICAgIGVsc2lmIHZlZ2V0YWJsZSA9ICJiIiB0aGVuCiAgICAgICAgZHJhd2ZpbGxvdmFsICg1MzAsIDE0MCwgMTAsIDIsIDE5MykKICAgICAgICBkcmF3ZmlsbG92YWwgKDU0NSwgMTQwLCAxMCwgMiwgMTE3KQogICAgICAgIGRyYXdmaWxsb3ZhbCAoNTYwLCAxNDAsIDEwLCAyLCAxOTEpCiAgICAgICAgZHJhd2ZpbGxvdmFsICg1NzUsIDE0MCwgMTAsIDIsIDExOCkKICAgIGVsc2lmIHZlZ2V0YWJsZSA9ICJjIiB0aGVuCiAgICAgICAgZHJhd2ZpbGxvdmFsICg1MzAsIDE0MCwgMTAsIDIsIDQ0KQogICAgICAgIGRyYXdmaWxsb3ZhbCAoNTQ1LCAxNDAsIDEwLCAyLCA0MikKICAgICAgICBkcmF3ZmlsbG92YWwgKDU2MCwgMTQwLCAxMCwgMiwgNDMpCiAgICAgICAgZHJhd2ZpbGxvdmFsICg1NzUsIDE0MCwgMTAsIDIsIDQwKQogICAgZW5kIGlmCgogICAgY2FzZSBjaGVlc2Ugb2YKICAgICAgICBsYWJlbCAiYSIgOgogICAgICAgICAgICBwdXQgIiIKICAgICAgICAgICAgZHJhd2ZpbGxib3ggKDUyMCwgMTQ1LCA1ODAsIDE0MywgNjcpCgogICAgICAgIGxhYmVsICJiIiA6CiAgICAgICAgICAgIHB1dCAiIgogICAgICAgICAgICAlRURJVAogICAgZW5kIGNhc2UKCiAgICAlQ09ORElNRU5UCiAgICBwdXQgIkNob29zZSBhIGNvbmRpbWVudCBvciBzYXVjZSBmcm9tIHRoZSBzZWxlY3Rpb24gYmVsb3ciCiAgICBwdXQgImEuIEtldGNodXAiCiAgICBwdXQgImIuIE11c3RhcmQiCiAgICBwdXQgImMuIE1heW9uYWlzZSIKICAgIHB1dCAiZC4gTm9uZSIKICAgIHZhciBjb25kaW1lbnQgOiBzdHJpbmcKICAgIGdldCBjb25kaW1lbnQKICAgY291bnQgOj0gY291bnQgKyAxCmlmIGJ1bnMgPSAiYSIgdGhlbgpjb3VudCA6PSBjb3VudCArIDEKZWxzaWYgYnVucyA9ICJiIiB0aGVuCmNvdW50IDo9IGNvdW50ICsgMAplbmQgaWYKICAgIGNscwoKICAgICVTUE9OR0VCT0IKICAgICVob3JpIGNvb3IsIHZlcnQgY29vciwgd2lkdGggcmlnaHQgZW5kaW5nIGNvb3IsIGhlaWdodCB0b3AgZW5kaW5nIGNvb3IsIGNvbG9yCgogICAgJWhvcml6IHN0YXJ0LCB2ZXJ0aWNhbCwgd2lkdGggZW5kLCBoZWlnaHQgY29sb3VyCiAgICAlYm9keQogICAgZHJhd2JveCAoNDAwLCAxMDAsIDUwMCwgMjAwLCAyKQogICAgZHJhd2ZpbGxib3ggKDQwMCwgMTAwLCA1MTAsIDIxMCwgMTQpCiAgICBkcmF3ZmlsbGJveCAoNDAwLCAxMTUsIDUxMCwgMTEwLCAzMSkKICAgIGRyYXdmaWxsYm94ICg0MDAsIDkwLCA1MTAsIDExMCwgMTM3KQogICAgZHJhd2ZpbGxib3ggKDQxMCwgOTUsIDQyNSwgMTAwLCAxNikKICAgIGRyYXdmaWxsYm94ICg0NTAsIDk1LCA0MzUsIDEwMCwgMTYpCiAgICBkcmF3ZmlsbGJveCAoNDc2LCA5NSwgNDYwLCAxMDAsIDE2KQogICAgZHJhd2ZpbGxib3ggKDUwMCwgOTUsIDQ4NSwgMTAwLCAxNikKICAgICVob3JpeiwgaGVpZ2h0IGNvcmQsIHdpZHRoLCB2ZXJ0CgogICAgJWV5ZXMKICAgIGRyYXdmaWxsb3ZhbCAoNDI4LCAxNzAsIDE1LCAxNSwgMzEpCiAgICBkcmF3ZmlsbG92YWwgKDQ4MCwgMTcwLCAxNSwgMTUsIDMxKQogICAgJWhvcml6LCB2ZXJ0aWNhbCwgaGVpZ2h0LCB3aWR0aCwgY29sb3VyCiAgICAlcHVwaWxzCiAgICBkcmF3ZmlsbG92YWwgKDQ4MCwgMTcwLCAxMCwgMTAsIDU0KQogICAgZHJhd2ZpbGxvdmFsICg0MjgsIDE3MCwgMTAsIDEwLCA1NCkKICAgIGRyYXdmaWxsb3ZhbCAoNDI4LCAxNzAsIDUsIDUsIDE2KQogICAgZHJhd2ZpbGxvdmFsICg0ODAsIDE3MCwgNSwgNSwgMTYpCiAgICBkcmF3ZmlsbG92YWwgKDQ3NywgMTczLCAzLCAzLCAzMSkKICAgIGRyYXdmaWxsb3ZhbCAoNDMyLCAxNzMsIDMsIDMsIDMxKQoKICAgICVsZWdzCiAgICBkcmF3ZmlsbGJveCAoNDIwLCA4OSwgNDMwLCA4NSwgMzEpCiAgICBkcmF3ZmlsbGJveCAoNDgwLCA4OSwgNDkwLCA4NSwgMzEpCiAgICBkcmF3ZmlsbGJveCAoNDgyLCA3NSwgNDg4LCA4NCwgMTQpCiAgICBkcmF3ZmlsbGJveCAoNDIyLCA3NSwgNDI4LCA4NCwgMTQpCgogICAgJXNvY2tzCiAgICBkcmF3ZmlsbGJveCAoNDIyLCA3NCwgNDI4LCA1MCwgMzEpCiAgICBkcmF3ZmlsbGJveCAoNDgyLCA3NCwgNDg4LCA1MCwgMzEpCiAgICAlc3RyaXBlcwogICAgZHJhd2ZpbGxib3ggKDQ4MiwgNjgsIDQ4OCwgNjcsIDEyKQogICAgZHJhd2ZpbGxib3ggKDQyMiwgNjgsIDQyOCwgNjcsIDEyKQogICAgZHJhd2ZpbGxib3ggKDQyMiwgNjQsIDQyOCwgNjMsIDU1KQogICAgZHJhd2ZpbGxib3ggKDQ4MiwgNjQsIDQ4OCwgNjMsIDU1KQoKICAgICVzaG9lcwogICAgZHJhd2ZpbGxvdmFsICg0OTIsIDUwLCAxMywgNSwgMTYpCiAgICBkcmF3ZmlsbG92YWwgKDQyMCwgNTAsIDEzLCA1LCAxNikKCiAgICAlbW91dGgKICAgIGRyYXdmaWxsYXJjICg0NTMsIDEzNiwgMjUsIDE1LCAxOTAsIDAsIDEzNSkKICAgICVob3Jpem9uLCB2ZXJ0aWNhbCwgd2lkdGgsIGhlaWdodCwgZGVncmVlLCBzbGFudCwgY29sb3VyCiAgICBkcmF3ZmlsbGFyYyAoNDYwLCAxMjEsIDEyLCA1LCA0MDAsIDE4MCwgNjMpCgogICAgZHJhd2ZpbGxib3ggKDQ0NywgMTMyLCA0NTMsIDEzNiwgMzEpCiAgICBkcmF3ZmlsbGJveCAoNDU1LCAxMzIsIDQ2MSwgMTM2LCAzMSkKICAgICVob3JpeiwgaGVpZ2h0IGNvcmQsIHdpZHRoLCB2ZXJ0CgogICAgJXNwb25nZWhvbGVzCiAgICBkcmF3ZmlsbG92YWwgKDQxMSwgMTkzLCA3LCA3LCAxMTYpCiAgICAlaG9yaXosIHZlcnRpY2FsLCBoZWlnaHQsIHdpZHRoLCBjb2xvdXIKICAgIGRyYXdmaWxsb3ZhbCAoNTAwLCAxOTIsIDYsIDYsIDExNikKICAgIGRyYXdmaWxsb3ZhbCAoNTAzLCAxNzYsIDQsIDQsIDExNikKICAgIGRyYXdmaWxsb3ZhbCAoNDEzLCAxNDYsIDUsIDUsIDExNikKICAgIGRyYXdmaWxsb3ZhbCAoNDEwLCAxMjUsIDcsIDcsIDExNikKICAgIGRyYXdmaWxsb3ZhbCAoNDk4LCAxNDUsIDcsIDcsIDExNikKICAgIGRyYXdmaWxsb3ZhbCAoNDkzLCAxMjUsIDUsIDUsIDExNikKICAgICV0YWJsZQogICAgZHJhd2ZpbGxib3ggKDMwMCwgMTIwLCA2MTAsIDEwMCwgMTkpCiAgICBkcmF3ZmlsbGJveCAoMzA1LCA0MCwgMzMwLCAxMjAsIDE5KQogICAgZHJhd2ZpbGxib3ggKDYwNSwgNDAsIDU4MCwgMTIwLCAxOSkKICAgICVob3JpeiBzdGFydCwgdmVydCBzdGFydCwgd2lkdGggZW5kLCBoZWlnaHQgZW5kCnB1dCAiUG9pbnQgY291bnQgOiIsIGNvdW50CiAgIGlmIGJ1bnMgPSAiYSIgdGhlbgogICAgZHJhd2ZpbGxhcmMgKDU1MCwgMTMwLCAyNSwgMTUsIDE4MCwgMzYwLCA2NikKZWxzaWYgYnVucyA9ICJiIiB0aGVuCiAgICBkcmF3ZmlsbGFyYyAoNTUwLCAxMzAsIDI1LCAxNSwgMTgwLCAzNjAsIDExNCkKZW5kIGlmCmlmIHBhdHR5ID0gImEiIHRoZW4KICAgIGRyYXdmaWxsb3ZhbCAoNTUwLCAxMjksIDMwLCA1LCAxNikKCmVsc2lmIHBhdHR5ID0gImIiIHRoZW4KICAgIGRyYXdmaWxsb3ZhbCAoNTUwLCAxMjksIDMwLCA1LCAxMTMpCgplbHNpZiBwYXR0eSA9ICJjIiB0aGVuCiAgICBkcmF3ZmlsbG92YWwgKDU1MCwgMTI5LCAzMCwgNSwgNjMpCmVuZCBpZgppZiBsZXR0dWNlID0gImEiIHRoZW4KICAgIGRyYXdmaWxsYm94ICg1MjAsIDEzOCwgNTMwLCAxMzMsIDQ1KQogICAgZHJhd2ZpbGxib3ggKDUzMCwgMTM4LCA1NDAsIDEzMywgNzEpCiAgICBkcmF3ZmlsbGJveCAoNTQwLCAxMzgsIDU1MCwgMTMzLCA0OCkKICAgIGRyYXdmaWxsYm94ICg1NTAsIDEzOCwgNTYwLCAxMzMsIDEyMCkKICAgIGRyYXdmaWxsYm94ICg1NjAsIDEzOCwgNTcwLCAxMzMsIDczKQogICAgZHJhd2ZpbGxib3ggKDU3MCwgMTM4LCA1ODAsIDEzMywgMTE4KQoKZWxzaWYgbGV0dHVjZSA9ICJiIiB0aGVuCiAgICBkcmF3ZmlsbGJveCAoNTIwLCAxMzgsIDU4MCwgMTMzLCAxMTkpCgplbHNpZgogICAgIGxldHR1Y2UgPSAiYyIgdGhlbgogICAgICAgIHB1dCAiIgogICAgZW5kIGlmCiAgICBpZiB2ZWdldGFibGUgPSAiYSIgdGhlbgogICAgICAgIGRyYXdmaWxsb3ZhbCAoNTUwLCAxNDIsIDMwLCA0LCA0MCkKICAgICAgICBkcmF3ZmlsbG92YWwgKDU1MCwgMTQzLCAyMCwgMiwgNjQpCiAgICBlbHNpZiB2ZWdldGFibGUgPSAiYiIgdGhlbgogICAgICAgIGRyYXdmaWxsb3ZhbCAoNTMwLCAxNDAsIDEwLCAyLCAxOTMpCiAgICAgICAgZHJhd2ZpbGxvdmFsICg1NDUsIDE0MCwgMTAsIDIsIDExNykKICAgICAgICBkcmF3ZmlsbG92YWwgKDU2MCwgMTQwLCAxMCwgMiwgMTkxKQogICAgICAgIGRyYXdmaWxsb3ZhbCAoNTc1LCAxNDAsIDEwLCAyLCAxMTgpCiAgICBlbHNpZiB2ZWdldGFibGUgPSAiYyIgdGhlbgogICAgICAgIGRyYXdmaWxsb3ZhbCAoNTMwLCAxNDAsIDEwLCAyLCA0NCkKICAgICAgICBkcmF3ZmlsbG92YWwgKDU0NSwgMTQwLCAxMCwgMiwgNDIpCiAgICAgICAgZHJhd2ZpbGxvdmFsICg1NjAsIDE0MCwgMTAsIDIsIDQzKQogICAgICAgIGRyYXdmaWxsb3ZhbCAoNTc1LCAxNDAsIDEwLCAyLCA0MCkKICAgIGVuZCBpZgogICAgaWYgY2hlZXNlID0gImEiIHRoZW4KICAgICAgICBkcmF3ZmlsbGJveCAoNTIwLCAxNDUsIDU4MCwgMTQzLCA2NykKICAgIGVsc2lmIGNoZWVzZSA9ICJiIiB0aGVuCiAgICAgICAgcHV0ICIiCiAgICBlbmQgaWYKICAgIGNhc2UgY29uZGltZW50IG9mCiAgICAgICAgbGFiZWwgImEiIDoKICAgICAgICAgICAgcHV0ICIiCiAgICAgICAgICAgIGRyYXdmaWxsb3ZhbCAoNTUxLCAxNDcsIDM1LCAyLCA0MCkKCiAgICAgICAgbGFiZWwgImIiIDoKICAgICAgICAgICAgcHV0ICIiCiAgICAgICAgICAgIGRyYXdmaWxsb3ZhbCAoNTUxLCAxNDcsIDM1LCAyLCAxNCkKICAgICAgICBsYWJlbCAiYyIgOgogICAgICAgICAgICBwdXQgIiIKICAgICAgICAgICAgZHJhd2ZpbGxvdmFsICg1NTEsIDE0NywgMzUsIDIsIDMxKQogICAgICAgIGxhYmVsICJkIiA6CiAgICAgICAgICAgIHB1dCAiIgogICAgICAgICAgICAlRURJVAogICAgZW5kIGNhc2UKCgogICAgJVNFQ1JFVCBGT1JNVUxBCgogICAgcHV0ICJDaG9vc2UgYSBrcmFiYnkgcGF0dHkgc2VjcmV0IGZvcm11bGEgaW5ncmVkaWVudCIKICAgIHB1dCAiYS4gU3BlY2lhbCBzZWNyZXQgc2F1Y2UiCiAgICBwdXQgImIuIFBsYW5rdG9uIgogICAgcHV0ICJjLiBMb3ZlIgogICAgcHV0ICJkLiBKZWxseWZpc2ggamVsbHkiCiAgICB2YXIgZm9ybXVsYSA6IHN0cmluZwogICAgZ2V0IGZvcm11bGEKICAgY291bnQgOj0gY291bnQgKyAxCmlmIGJ1bnMgPSAiYSIgdGhlbgpjb3VudCA6PSBjb3VudCArIDAKZWxzaWYgYnVucyA9ICJiIiB0aGVuCmNvdW50IDo9IGNvdW50ICsgMQplbmQgaWYKICAgIGNscwoKICAgICAgaWYgYnVucyA9ICJhIiB0aGVuCiAgICBkcmF3ZmlsbGFyYyAoNTUwLCAxMzAsIDI1LCAxNSwgMTgwLCAzNjAsIDY2KQplbHNpZiBidW5zID0gImIiIHRoZW4KICAgIGRyYXdmaWxsYXJjICg1NTAsIDEzMCwgMjUsIDE1LCAxODAsIDM2MCwgMTE0KQplbmQgaWYKaWYgcGF0dHkgPSAiYSIgdGhlbgogICAgZHJhd2ZpbGxvdmFsICg1NTAsIDEyOSwgMzAsIDUsIDE2KQoKZWxzaWYgcGF0dHkgPSAiYiIgdGhlbgogICAgZHJhd2ZpbGxvdmFsICg1NTAsIDEyOSwgMzAsIDUsIDExMykKCmVsc2lmIHBhdHR5ID0gImMiIHRoZW4KICAgIGRyYXdmaWxsb3ZhbCAoNTUwLCAxMjksIDMwLCA1LCA2MykKZW5kIGlmCmlmIGxldHR1Y2UgPSAiYSIgdGhlbgogICAgZHJhd2ZpbGxib3ggKDUyMCwgMTM4LCA1MzAsIDEzMywgNDUpCiAgICBkcmF3ZmlsbGJveCAoNTMwLCAxMzgsIDU0MCwgMTMzLCA3MSkKICAgIGRyYXdmaWxsYm94ICg1NDAsIDEzOCwgNTUwLCAxMzMsIDQ4KQogICAgZHJhd2ZpbGxib3ggKDU1MCwgMTM4LCA1NjAsIDEzMywgMTIwKQogICAgZHJhd2ZpbGxib3ggKDU2MCwgMTM4LCA1NzAsIDEzMywgNzMpCiAgICBkcmF3ZmlsbGJveCAoNTcwLCAxMzgsIDU4MCwgMTMzLCAxMTgpCgplbHNpZiBsZXR0dWNlID0gImIiIHRoZW4KICAgIGRyYXdmaWxsYm94ICg1MjAsIDEzOCwgNTgwLCAxMzMsIDExOSkKCmVsc2lmCiAgICAgbGV0dHVjZSA9ICJjIiB0aGVuCiAgICAgICAgcHV0ICIiCiAgICBlbmQgaWYKICAgIGlmIHZlZ2V0YWJsZSA9ICJhIiB0aGVuCiAgICAgICAgZHJhd2ZpbGxvdmFsICg1NTAsIDE0MiwgMzAsIDQsIDQwKQogICAgICAgIGRyYXdmaWxsb3ZhbCAoNTUwLCAxNDMsIDIwLCAyLCA2NCkKICAgIGVsc2lmIHZlZ2V0YWJsZSA9ICJiIiB0aGVuCiAgICAgICAgZHJhd2ZpbGxvdmFsICg1MzAsIDE0MCwgMTAsIDIsIDE5MykKICAgICAgICBkcmF3ZmlsbG92YWwgKDU0NSwgMTQwLCAxMCwgMiwgMTE3KQogICAgICAgIGRyYXdmaWxsb3ZhbCAoNTYwLCAxNDAsIDEwLCAyLCAxOTEpCiAgICAgICAgZHJhd2ZpbGxvdmFsICg1NzUsIDE0MCwgMTAsIDIsIDExOCkKICAgIGVsc2lmIHZlZ2V0YWJsZSA9ICJjIiB0aGVuCiAgICAgICAgZHJhd2ZpbGxvdmFsICg1MzAsIDE0MCwgMTAsIDIsIDQ0KQogICAgICAgIGRyYXdmaWxsb3ZhbCAoNTQ1LCAxNDAsIDEwLCAyLCA0MikKICAgICAgICBkcmF3ZmlsbG92YWwgKDU2MCwgMTQwLCAxMCwgMiwgNDMpCiAgICAgICAgZHJhd2ZpbGxvdmFsICg1NzUsIDE0MCwgMTAsIDIsIDQwKQogICAgZW5kIGlmCiAgICBpZiBjaGVlc2UgPSAiYSIgdGhlbgogICAgICAgIGRyYXdmaWxsYm94ICg1MjAsIDE0NSwgNTgwLCAxNDMsIDY3KQogICAgZWxzaWYgY2hlZXNlID0gImIiIHRoZW4KICAgICAgICBwdXQgIiIKICAgIGVuZCBpZgogICAgaWYgY29uZGltZW50ID0gImEiIHRoZW4KICAgICAgICBkcmF3ZmlsbG92YWwgKDU1MSwgMTQ3LCAzNSwgMiwgNDApCiAgICBlbHNpZiBjb25kaW1lbnQgPSAiYiIgIHRoZW4KICAgICAgICBkcmF3ZmlsbG92YWwgKDU1MSwgMTQ3LCAzNSwgMiwgMTQpCiAgICBlbHNpZiBjb25kaW1lbnQgPSAiYyIgdGhlbgogICAgICAgIGRyYXdmaWxsb3ZhbCAoNTUxLCAxNDcsIDM1LCAyLCAzMSkKICAgIGVsc2lmIGNvbmRpbWVudCA9ICJkIiB0aGVuCiAgICAgICAgcHV0ICIiCiAgICBlbmQgaWYKCiAgICAlU1BPTkdFQk9CCiAgICAlaG9yaSBjb29yLCB2ZXJ0IGNvb3IsIHdpZHRoIHJpZ2h0IGVuZGluZyBjb29yLCBoZWlnaHQgdG9wIGVuZGluZyBjb29yLCBjb2xvcgoKICAgICVob3JpeiBzdGFydCwgdmVydGljYWwsIHdpZHRoIGVuZCwgaGVpZ2h0IGNvbG91cgogICAgJWJvZHkKICAgIGRyYXdib3ggKDQwMCwgMTAwLCA1MDAsIDIwMCwgMikKICAgIGRyYXdmaWxsYm94ICg0MDAsIDEwMCwgNTEwLCAyMTAsIDE0KQogICAgZHJhd2ZpbGxib3ggKDQwMCwgMTE1LCA1MTAsIDExMCwgMzEpCiAgICBkcmF3ZmlsbGJveCAoNDAwLCA5MCwgNTEwLCAxMTAsIDEzNykKICAgIGRyYXdmaWxsYm94ICg0MTAsIDk1LCA0MjUsIDEwMCwgMTYpCiAgICBkcmF3ZmlsbGJveCAoNDUwLCA5NSwgNDM1LCAxMDAsIDE2KQogICAgZHJhd2ZpbGxib3ggKDQ3NiwgOTUsIDQ2MCwgMTAwLCAxNikKICAgIGRyYXdmaWxsYm94ICg1MDAsIDk1LCA0ODUsIDEwMCwgMTYpCiAgICAlaG9yaXosIGhlaWdodCBjb3JkLCB3aWR0aCwgdmVydAoKICAgICVleWVzCiAgICBkcmF3ZmlsbG92YWwgKDQyOCwgMTcwLCAxNSwgMTUsIDMxKQogICAgZHJhd2ZpbGxvdmFsICg0ODAsIDE3MCwgMTUsIDE1LCAzMSkKICAgICVob3JpeiwgdmVydGljYWwsIGhlaWdodCwgd2lkdGgsIGNvbG91cgogICAgJXB1cGlscwogICAgZHJhd2ZpbGxvdmFsICg0ODAsIDE3MCwgMTAsIDEwLCA1NCkKICAgIGRyYXdmaWxsb3ZhbCAoNDI4LCAxNzAsIDEwLCAxMCwgNTQpCiAgICBkcmF3ZmlsbG92YWwgKDQyOCwgMTcwLCA1LCA1LCAxNikKICAgIGRyYXdmaWxsb3ZhbCAoNDgwLCAxNzAsIDUsIDUsIDE2KQogICAgZHJhd2ZpbGxvdmFsICg0NzcsIDE3MywgMywgMywgMzEpCiAgICBkcmF3ZmlsbG92YWwgKDQzMiwgMTczLCAzLCAzLCAzMSkKCiAgICAlbGVncwogICAgZHJhd2ZpbGxib3ggKDQyMCwgODksIDQzMCwgODUsIDMxKQogICAgZHJhd2ZpbGxib3ggKDQ4MCwgODksIDQ5MCwgODUsIDMxKQogICAgZHJhd2ZpbGxib3ggKDQ4MiwgNzUsIDQ4OCwgODQsIDE0KQogICAgZHJhd2ZpbGxib3ggKDQyMiwgNzUsIDQyOCwgODQsIDE0KQoKICAgICVzb2NrcwogICAgZHJhd2ZpbGxib3ggKDQyMiwgNzQsIDQyOCwgNTAsIDMxKQogICAgZHJhd2ZpbGxib3ggKDQ4MiwgNzQsIDQ4OCwgNTAsIDMxKQogICAgJXN0cmlwZXMKICAgIGRyYXdmaWxsYm94ICg0ODIsIDY4LCA0ODgsIDY3LCAxMikKICAgIGRyYXdmaWxsYm94ICg0MjIsIDY4LCA0MjgsIDY3LCAxMikKICAgIGRyYXdmaWxsYm94ICg0MjIsIDY0LCA0MjgsIDYzLCA1NSkKICAgIGRyYXdmaWxsYm94ICg0ODIsIDY0LCA0ODgsIDYzLCA1NSkKCiAgICAlc2hvZXMKICAgIGRyYXdmaWxsb3ZhbCAoNDkyLCA1MCwgMTMsIDUsIDE2KQogICAgZHJhd2ZpbGxvdmFsICg0MjAsIDUwLCAxMywgNSwgMTYpCgogICAgJW1vdXRoCiAgICBkcmF3ZmlsbGFyYyAoNDUzLCAxMzYsIDI1LCAxNSwgMTkwLCAwLCAxMzUpCiAgICAlaG9yaXpvbiwgdmVydGljYWwsIHdpZHRoLCBoZWlnaHQsIGRlZ3JlZSwgc2xhbnQsIGNvbG91cgogICAgZHJhd2ZpbGxhcmMgKDQ2MCwgMTIxLCAxMiwgNSwgNDAwLCAxODAsIDYzKQoKICAgIGRyYXdmaWxsYm94ICg0NDcsIDEzMiwgNDUzLCAxMzYsIDMxKQogICAgZHJhd2ZpbGxib3ggKDQ1NSwgMTMyLCA0NjEsIDEzNiwgMzEpCiAgICAlaG9yaXosIGhlaWdodCBjb3JkLCB3aWR0aCwgdmVydAoKICAgICVzcG9uZ2Vob2xlcwogICAgZHJhd2ZpbGxvdmFsICg0MTEsIDE5MywgNywgNywgMTE2KQogICAgJWhvcml6LCB2ZXJ0aWNhbCwgaGVpZ2h0LCB3aWR0aCwgY29sb3VyCiAgICBkcmF3ZmlsbG92YWwgKDUwMCwgMTkyLCA2LCA2LCAxMTYpCiAgICBkcmF3ZmlsbG92YWwgKDUwMywgMTc2LCA0LCA0LCAxMTYpCiAgICBkcmF3ZmlsbG92YWwgKDQxMywgMTQ2LCA1LCA1LCAxMTYpCiAgICBkcmF3ZmlsbG92YWwgKDQxMCwgMTI1LCA3LCA3LCAxMTYpCiAgICBkcmF3ZmlsbG92YWwgKDQ5OCwgMTQ1LCA3LCA3LCAxMTYpCiAgICBkcmF3ZmlsbG92YWwgKDQ5MywgMTI1LCA1LCA1LCAxMTYpCiAgICAldGFibGUKICAgIGRyYXdmaWxsYm94ICgzMDAsIDEyMCwgNjEwLCAxMDAsIDE5KQogICAgZHJhd2ZpbGxib3ggKDMwNSwgNDAsIDMzMCwgMTIwLCAxOSkKICAgIGRyYXdmaWxsYm94ICg2MDUsIDQwLCA1ODAsIDEyMCwgMTkpCiAgICAlaG9yaXogc3RhcnQsIHZlcnQgc3RhcnQsIHdpZHRoIGVuZCwgaGVpZ2h0IGVuZAoKcHV0ICJQb2ludCBjb3VudCA6IiwgY291bnQKICAgIGNhc2UgZm9ybXVsYSBvZgogICAgICAgIGxhYmVsICJhIiA6CiAgICAgICAgICAgIHB1dCAiIgogICAgICAgICAgICBkcmF3ZmlsbG92YWwgKDU1MSwgMTUzLCAzNSwgMywgOTQpCgogICAgICAgIGxhYmVsICJiIiA6CiAgICAgICAgICAgIHB1dCAiIgogICAgICAgICAgICBkcmF3ZmlsbG92YWwgKDU1MSwgMTU1LCAzNSwgNywgMTIzKQogICAgICAgICAgICBkcmF3ZmlsbG92YWwgKDUzOCwgMTU1LCA3LCA1LCA2OCkKICAgICAgICAgICAgZHJhd2ZpbGxvdmFsICg1MzgsIDE1NSwgNSwgMywgMTIpCiAgICAgICAgICAgIGRyYXdmaWxsb3ZhbCAoNTM4LCAxNTUsIDIsIDEsIDE2KQogICAgICAgICAgICBkcmF3ZmlsbG92YWwgKDUzNiwgMTU3LCAxLCAxLCAzMSkKICAgICAgICAgICAgZHJhd2ZpbGxib3ggKDU1NSwgMTUzLCA1NTYsIDE1NywgMTYpCiAgICAgICAgICAgIGRyYXdmaWxsb3ZhbCAoNTg1LCAxNTcsIDcsIDEsIDEyMykKICAgICAgICAgICAgZHJhd2ZpbGxvdmFsICg1ODUsIDE1MSwgNywgMSwgMTIzKQogICAgICAgICAgICBkcmF3ZmlsbGFyYyAoNTA4LCAxNTIsIDEzLCAxLCAzMCwgMTgwLCAxOTMpCiAgICAgICAgICAgIGRyYXdmaWxsYXJjICg1MDgsIDE1NywgMTMsIDEsIDMwLCAxODAsIDE5MykKCiAgICAgICAgbGFiZWwgImMiIDoKICAgICAgICAgICAgZHJhd2ZpbGxib3ggKDU2LCAyMDAsIDI0MCwgNDAwLCA2MCkgJUVESVQoYW5pbWF0aW9uKQogICAgICAgIGxhYmVsICJkIiA6CiAgICAgICAgICAgIGRyYXdmaWxsb3ZhbCAoNTUxLCAxNTEsIDM1LCAzLCA1NykKICAgICAgICAgICAgZHJhd2ZpbGxvdmFsICg1NTEsIDE1NCwgMzUsIDEsIDUzKQoKICAgIGVuZCBjYXNlCiAgICAKcHV0ICJ5YXkgdXIgZG9uZSIKICBpZiBidW5zID0gImEiIHRoZW4KICAgIGRyYXdmaWxsYXJjICg1NTAsIDEzMCwgMjUsIDE1LCAxODAsIDM2MCwgNjYpCiAgICAgZHJhd2ZpbGxhcmMgKDU1MCwgMTU2LCAyNSwgMTUsIDM2MCwgMTgwLCA2NikKZWxzaWYgYnVucyA9ICJiIiB0aGVuCiAgICBkcmF3ZmlsbGFyYyAoNTUwLCAxMzAsIDI1LCAxNSwgMTgwLCAzNjAsIDExNCkKICAgICBkcmF3ZmlsbGFyYyAoNTUwLCAxNTYsIDI1LCAxNSwgMzYwLCAxODAsIDExNCkKZW5kIGlmCmlmIHBhdHR5ID0gImEiIHRoZW4KICAgIGRyYXdmaWxsb3ZhbCAoNTUwLCAxMjksIDMwLCA1LCAxNikKCmVsc2lmIHBhdHR5ID0gImIiIHRoZW4KICAgIGRyYXdmaWxsb3ZhbCAoNTUwLCAxMjksIDMwLCA1LCAxMTMpCgplbHNpZiBwYXR0eSA9ICJjIiB0aGVuCiAgICBkcmF3ZmlsbG92YWwgKDU1MCwgMTI5LCAzMCwgNSwgNjMpCmVuZCBpZgppZiBsZXR0dWNlID0gImEiIHRoZW4KICAgIGRyYXdmaWxsYm94ICg1MjAsIDEzOCwgNTMwLCAxMzMsIDQ1KQogICAgZHJhd2ZpbGxib3ggKDUzMCwgMTM4LCA1NDAsIDEzMywgNzEpCiAgICBkcmF3ZmlsbGJveCAoNTQwLCAxMzgsIDU1MCwgMTMzLCA0OCkKICAgIGRyYXdmaWxsYm94ICg1NTAsIDEzOCwgNTYwLCAxMzMsIDEyMCkKICAgIGRyYXdmaWxsYm94ICg1NjAsIDEzOCwgNTcwLCAxMzMsIDczKQogICAgZHJhd2ZpbGxib3ggKDU3MCwgMTM4LCA1ODAsIDEzMywgMTE4KQoKZWxzaWYgbGV0dHVjZSA9ICJiIiB0aGVuCiAgICBkcmF3ZmlsbGJveCAoNTIwLCAxMzgsIDU4MCwgMTMzLCAxMTkpCgplbHNpZgogICAgIGxldHR1Y2UgPSAiYyIgdGhlbgogICAgICAgIHB1dCAiIgogICAgZW5kIGlmCiAgICBpZiB2ZWdldGFibGUgPSAiYSIgdGhlbgogICAgICAgIGRyYXdmaWxsb3ZhbCAoNTUwLCAxNDIsIDMwLCA0LCA0MCkKICAgICAgICBkcmF3ZmlsbG92YWwgKDU1MCwgMTQzLCAyMCwgMiwgNjQpCiAgICBlbHNpZiB2ZWdldGFibGUgPSAiYiIgdGhlbgogICAgICAgIGRyYXdmaWxsb3ZhbCAoNTMwLCAxNDAsIDEwLCAyLCAxOTMpCiAgICAgICAgZHJhd2ZpbGxvdmFsICg1NDUsIDE0MCwgMTAsIDIsIDExNykKICAgICAgICBkcmF3ZmlsbG92YWwgKDU2MCwgMTQwLCAxMCwgMiwgMTkxKQogICAgICAgIGRyYXdmaWxsb3ZhbCAoNTc1LCAxNDAsIDEwLCAyLCAxMTgpCiAgICBlbHNpZiB2ZWdldGFibGUgPSAiYyIgdGhlbgogICAgICAgIGRyYXdmaWxsb3ZhbCAoNTMwLCAxNDAsIDEwLCAyLCA0NCkKICAgICAgICBkcmF3ZmlsbG92YWwgKDU0NSwgMTQwLCAxMCwgMiwgNDIpCiAgICAgICAgZHJhd2ZpbGxvdmFsICg1NjAsIDE0MCwgMTAsIDIsIDQzKQogICAgICAgIGRyYXdmaWxsb3ZhbCAoNTc1LCAxNDAsIDEwLCAyLCA0MCkKICAgIGVuZCBpZgogICAgaWYgY2hlZXNlID0gImEiIHRoZW4KICAgICAgICBkcmF3ZmlsbGJveCAoNTIwLCAxNDUsIDU4MCwgMTQzLCA2NykKICAgIGVsc2lmIGNoZWVzZSA9ICJiIiB0aGVuCiAgICAgICAgcHV0ICIiCiAgICBlbmQgaWYKICAgIGlmIGNvbmRpbWVudCA9ICJhIiB0aGVuCiAgICAgICAgZHJhd2ZpbGxvdmFsICg1NTEsIDE0NywgMzUsIDIsIDQwKQogICAgZWxzaWYgY29uZGltZW50ID0gImIiICB0aGVuCiAgICAgICAgZHJhd2ZpbGxvdmFsICg1NTEsIDE0NywgMzUsIDIsIDE0KQogICAgZWxzaWYgY29uZGltZW50ID0gImMiIHRoZW4KICAgICAgICBkcmF3ZmlsbG92YWwgKDU1MSwgMTQ3LCAzNSwgMiwgMzEpCiAgICBlbHNpZiBjb25kaW1lbnQgPSAiZCIgdGhlbgogIAogICAgICAgIHB1dCAiIgogICAgICAgIGVuZCBpZgogICAgaWYgZm9ybXVsYSA9ICJhIiB0aGVuCiAgICAgICAgZHJhd2ZpbGxvdmFsICg1NTEsIDE1MywgMzUsIDMsIDk0KQoKICAgIGVsc2lmIGZvcm11bGEgPSAiYiIgdGhlbgogICAgICAgIGRyYXdmaWxsb3ZhbCAoNTUxLCAxNTUsIDM1LCA3LCAxMjMpCiAgICAgICAgZHJhd2ZpbGxvdmFsICg1MzgsIDE1NSwgNywgNSwgNjgpCiAgICAgICAgZHJhd2ZpbGxvdmFsICg1MzgsIDE1NSwgNSwgMywgMTIpCiAgICAgICAgZHJhd2ZpbGxvdmFsICg1MzgsIDE1NSwgMiwgMSwgMTYpCiAgICAgICAgZHJhd2ZpbGxvdmFsICg1MzYsIDE1NywgMSwgMSwgMzEpCiAgICAgICAgZHJhd2ZpbGxib3ggKDU1NSwgMTUzLCA1NTYsIDE1NywgMTYpCiAgICAgICAgZHJhd2ZpbGxvdmFsICg1ODUsIDE1NywgNywgMSwgMTIzKQogICAgICAgIGRyYXdmaWxsb3ZhbCAoNTg1LCAxNTEsIDcsIDEsIDEyMykKICAgICAgICBkcmF3ZmlsbGFyYyAoNTA4LCAxNTIsIDEzLCAxLCAzMCwgMTgwLCAxOTMpCiAgICAgICAgZHJhd2ZpbGxhcmMgKDUwOCwgMTU3LCAxMywgMSwgMzAsIDE4MCwgMTkzKQogICAgZWxzaWYgZm9ybXVsYSA9ICJjIiB0aGVuCiAgICAgICAgZHJhd2ZpbGxib3ggKDU2LCAyMDAsIDI0MCwgNDAwLCA2MCkgJUVESVQoYW5pbWF0aW9uKQogICAgZWxzaWYgZm9ybXVsYSA9ICJkIiB0aGVuCiAgICAgICAgZHJhd2ZpbGxvdmFsICg1NTEsIDE1MSwgMzUsIDMsIDU3KQogICAgICAgIGRyYXdmaWxsb3ZhbCAoNTUxLCAxNTQsIDM1LCAxLCA1MykKICAgIGVuZCBpZgogICAgCiAgICAgICVTUE9OR0VCT0IKICAgICVob3JpIGNvb3IsIHZlcnQgY29vciwgd2lkdGggcmlnaHQgZW5kaW5nIGNvb3IsIGhlaWdodCB0b3AgZW5kaW5nIGNvb3IsIGNvbG9yCgogICAgJWhvcml6IHN0YXJ0LCB2ZXJ0aWNhbCwgd2lkdGggZW5kLCBoZWlnaHQgY29sb3VyCiAgICAlYm9keQogICAgZHJhd2JveCAoNDAwLCAxMDAsIDUwMCwgMjAwLCAyKQogICAgZHJhd2ZpbGxib3ggKDQwMCwgMTAwLCA1MTAsIDIxMCwgMTQpCiAgICBkcmF3ZmlsbGJveCAoNDAwLCAxMTUsIDUxMCwgMTEwLCAzMSkKICAgIGRyYXdmaWxsYm94ICg0MDAsIDkwLCA1MTAsIDExMCwgMTM3KQogICAgZHJhd2ZpbGxib3ggKDQxMCwgOTUsIDQyNSwgMTAwLCAxNikKICAgIGRyYXdmaWxsYm94ICg0NTAsIDk1LCA0MzUsIDEwMCwgMTYpCiAgICBkcmF3ZmlsbGJveCAoNDc2LCA5NSwgNDYwLCAxMDAsIDE2KQogICAgZHJhd2ZpbGxib3ggKDUwMCwgOTUsIDQ4NSwgMTAwLCAxNikKICAgICVob3JpeiwgaGVpZ2h0IGNvcmQsIHdpZHRoLCB2ZXJ0CgogICAgJWV5ZXMKICAgIGRyYXdmaWxsb3ZhbCAoNDI4LCAxNzAsIDE1LCAxNSwgMzEpCiAgICBkcmF3ZmlsbG92YWwgKDQ4MCwgMTcwLCAxNSwgMTUsIDMxKQogICAgJWhvcml6LCB2ZXJ0aWNhbCwgaGVpZ2h0LCB3aWR0aCwgY29sb3VyCiAgICAlcHVwaWxzCiAgICBkcmF3ZmlsbG92YWwgKDQ4MCwgMTcwLCAxMCwgMTAsIDU0KQogICAgZHJhd2ZpbGxvdmFsICg0MjgsIDE3MCwgMTAsIDEwLCA1NCkKICAgIGRyYXdmaWxsb3ZhbCAoNDI4LCAxNzAsIDUsIDUsIDE2KQogICAgZHJhd2ZpbGxvdmFsICg0ODAsIDE3MCwgNSwgNSwgMTYpCiAgICBkcmF3ZmlsbG92YWwgKDQ3NywgMTczLCAzLCAzLCAzMSkKICAgIGRyYXdmaWxsb3ZhbCAoNDMyLCAxNzMsIDMsIDMsIDMxKQoKICAgICVsZWdzCiAgICBkcmF3ZmlsbGJveCAoNDIwLCA4OSwgNDMwLCA4NSwgMzEpCiAgICBkcmF3ZmlsbGJveCAoNDgwLCA4OSwgNDkwLCA4NSwgMzEpCiAgICBkcmF3ZmlsbGJveCAoNDgyLCA3NSwgNDg4LCA4NCwgMTQpCiAgICBkcmF3ZmlsbGJveCAoNDIyLCA3NSwgNDI4LCA4NCwgMTQpCgogICAgJXNvY2tzCiAgICBkcmF3ZmlsbGJveCAoNDIyLCA3NCwgNDI4LCA1MCwgMzEpCiAgICBkcmF3ZmlsbGJveCAoNDgyLCA3NCwgNDg4LCA1MCwgMzEpCiAgICAlc3RyaXBlcwogICAgZHJhd2ZpbGxib3ggKDQ4MiwgNjgsIDQ4OCwgNjcsIDEyKQogICAgZHJhd2ZpbGxib3ggKDQyMiwgNjgsIDQyOCwgNjcsIDEyKQogICAgZHJhd2ZpbGxib3ggKDQyMiwgNjQsIDQyOCwgNjMsIDU1KQogICAgZHJhd2ZpbGxib3ggKDQ4MiwgNjQsIDQ4OCwgNjMsIDU1KQoKICAgICVzaG9lcwogICAgZHJhd2ZpbGxvdmFsICg0OTIsIDUwLCAxMywgNSwgMTYpCiAgICBkcmF3ZmlsbG92YWwgKDQyMCwgNTAsIDEzLCA1LCAxNikKCiAgICAlbW91dGgKICAgIGRyYXdmaWxsYXJjICg0NTMsIDEzNiwgMjUsIDE1LCAxOTAsIDAsIDEzNSkKICAgICVob3Jpem9uLCB2ZXJ0aWNhbCwgd2lkdGgsIGhlaWdodCwgZGVncmVlLCBzbGFudCwgY29sb3VyCiAgICBkcmF3ZmlsbGFyYyAoNDYwLCAxMjEsIDEyLCA1LCA0MDAsIDE4MCwgNjMpCgogICAgZHJhd2ZpbGxib3ggKDQ0NywgMTMyLCA0NTMsIDEzNiwgMzEpCiAgICBkcmF3ZmlsbGJveCAoNDU1LCAxMzIsIDQ2MSwgMTM2LCAzMSkKICAgICVob3JpeiwgaGVpZ2h0IGNvcmQsIHdpZHRoLCB2ZXJ0CgogICAgJXNwb25nZWhvbGVzCiAgICBkcmF3ZmlsbG92YWwgKDQxMSwgMTkzLCA3LCA3LCAxMTYpCiAgICAlaG9yaXosIHZlcnRpY2FsLCBoZWlnaHQsIHdpZHRoLCBjb2xvdXIKICAgIGRyYXdmaWxsb3ZhbCAoNTAwLCAxOTIsIDYsIDYsIDExNikKICAgIGRyYXdmaWxsb3ZhbCAoNTAzLCAxNzYsIDQsIDQsIDExNikKICAgIGRyYXdmaWxsb3ZhbCAoNDEzLCAxNDYsIDUsIDUsIDExNikKICAgIGRyYXdmaWxsb3ZhbCAoNDEwLCAxMjUsIDcsIDcsIDExNikKICAgIGRyYXdmaWxsb3ZhbCAoNDk4LCAxNDUsIDcsIDcsIDExNikKICAgIGRyYXdmaWxsb3ZhbCAoNDkzLCAxMjUsIDUsIDUsIDExNikKICAgICV0YWJsZQogICAgZHJhd2ZpbGxib3ggKDMwMCwgMTIwLCA2MTAsIDEwMCwgMTkpCiAgICBkcmF3ZmlsbGJveCAoMzA1LCA0MCwgMzMwLCAxMjAsIDE5KQogICAgZHJhd2ZpbGxib3ggKDYwNSwgNDAsIDU4MCwgMTIwLCAxOSkKICAgICVob3JpeiBzdGFydCwgdmVydCBzdGFydCwgd2lkdGggZW5kLCBoZWlnaHQgZW5kCiAgICAKICAgCiAgICAlLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICAgJWlkZWEsIGNoYW5nZSBzZXR0aW5nLCBhbmQgdGFrZSBidXNpbmVzcyBlbHNld2hlcmUgd2hlbiBtb3ZpbmcgdXAKICAgIHB1dCAiV2UgaGF2ZSBhbm90aGVyIGN1c3RvbWVyLCB3b3VsZCB5b3UgbGlrZSB0byBtYWtlIGl0cyBvcmRlcj8iCiAgICAlQU5JTUFUSU9OIFdJVEggU1BFRUNIIEJVQkJMRQogICAgcHV0ICJUeXBlICd5JyB0byBnZXQgc3RhcnRlZCBvbiB0aGUgc2lkZSBkaXNoLCBvciAnbicgdG8gc3RvcCIKICAgIGdldCBzdGFydAogICAgbG9vcAogICAgICAgIGV4aXQgd2hlbiBzdGFydCA9ICJ5IgogICAgZW5kIGxvb3AKICAgIGNscwogICAgJVNQT05HRUJPQgogICAgJWhvcmkgY29vciwgdmVydCBjb29yLCB3aWR0aCByaWdodCBlbmRpbmcgY29vciwgaGVpZ2h0IHRvcCBlbmRpbmcgY29vciwgY29sb3IKCiAgICAlaG9yaXogc3RhcnQsIHZlcnRpY2FsLCB3aWR0aCBlbmQsIGhlaWdodCBjb2xvdXIKICAgICVib2R5CiAgICBkcmF3Ym94ICg0MDAsIDEwMCwgNTAwLCAyMDAsIDIpCiAgICBkcmF3ZmlsbGJveCAoNDAwLCAxMDAsIDUxMCwgMjEwLCAxNCkKICAgIGRyYXdmaWxsYm94ICg0MDAsIDExNSwgNTEwLCAxMTAsIDMxKQogICAgZHJhd2ZpbGxib3ggKDQwMCwgOTAsIDUxMCwgMTEwLCAxMzcpCiAgICBkcmF3ZmlsbGJveCAoNDEwLCA5NSwgNDI1LCAxMDAsIDE2KQogICAgZHJhd2ZpbGxib3ggKDQ1MCwgOTUsIDQzNSwgMTAwLCAxNikKICAgIGRyYXdmaWxsYm94ICg0NzYsIDk1LCA0NjAsIDEwMCwgMTYpCiAgICBkcmF3ZmlsbGJveCAoNTAwLCA5NSwgNDg1LCAxMDAsIDE2KQogICAgJWhvcml6LCBoZWlnaHQgY29yZCwgd2lkdGgsIHZlcnQKCiAgICAlZXllcwogICAgZHJhd2ZpbGxvdmFsICg0MjgsIDE3MCwgMTUsIDE1LCAzMSkKICAgIGRyYXdmaWxsb3ZhbCAoNDgwLCAxNzAsIDE1LCAxNSwgMzEpCiAgICAlaG9yaXosIHZlcnRpY2FsLCBoZWlnaHQsIHdpZHRoLCBjb2xvdXIKICAgICVwdXBpbHMKICAgIGRyYXdmaWxsb3ZhbCAoNDgwLCAxNzAsIDEwLCAxMCwgNTQpCiAgICBkcmF3ZmlsbG92YWwgKDQyOCwgMTcwLCAxMCwgMTAsIDU0KQogICAgZHJhd2ZpbGxvdmFsICg0MjgsIDE3MCwgNSwgNSwgMTYpCiAgICBkcmF3ZmlsbG92YWwgKDQ4MCwgMTcwLCA1LCA1LCAxNikKICAgIGRyYXdmaWxsb3ZhbCAoNDc3LCAxNzMsIDMsIDMsIDMxKQogICAgZHJhd2ZpbGxvdmFsICg0MzIsIDE3MywgMywgMywgMzEpCgogICAgJWxlZ3MKICAgIGRyYXdmaWxsYm94ICg0MjAsIDg5LCA0MzAsIDg1LCAzMSkKICAgIGRyYXdmaWxsYm94ICg0ODAsIDg5LCA0OTAsIDg1LCAzMSkKICAgIGRyYXdmaWxsYm94ICg0ODIsIDc1LCA0ODgsIDg0LCAxNCkKICAgIGRyYXdmaWxsYm94ICg0MjIsIDc1LCA0MjgsIDg0LCAxNCkKCiAgICAlc29ja3MKICAgIGRyYXdmaWxsYm94ICg0MjIsIDc0LCA0MjgsIDUwLCAzMSkKICAgIGRyYXdmaWxsYm94ICg0ODIsIDc0LCA0ODgsIDUwLCAzMSkKICAgICVzdHJpcGVzCiAgICBkcmF3ZmlsbGJveCAoNDgyLCA2OCwgNDg4LCA2NywgMTIpCiAgICBkcmF3ZmlsbGJveCAoNDIyLCA2OCwgNDI4LCA2NywgMTIpCiAgICBkcmF3ZmlsbGJveCAoNDIyLCA2NCwgNDI4LCA2MywgNTUpCiAgICBkcmF3ZmlsbGJveCAoNDgyLCA2NCwgNDg4LCA2MywgNTUpCgogICAgJXNob2VzCiAgICBkcmF3ZmlsbG92YWwgKDQ5MiwgNTAsIDEzLCA1LCAxNikKICAgIGRyYXdmaWxsb3ZhbCAoNDIwLCA1MCwgMTMsIDUsIDE2KQoKICAgICVtb3V0aAogICAgZHJhd2ZpbGxhcmMgKDQ1MywgMTM2LCAyNSwgMTUsIDE5MCwgMCwgMTM1KQogICAgJWhvcml6b24sIHZlcnRpY2FsLCB3aWR0aCwgaGVpZ2h0LCBkZWdyZWUsIHNsYW50LCBjb2xvdXIKICAgIGRyYXdmaWxsYXJjICg0NjAsIDEyMSwgMTIsIDUsIDQwMCwgMTgwLCA2MykKCiAgICBkcmF3ZmlsbGJveCAoNDQ3LCAxMzIsIDQ1MywgMTM2LCAzMSkKICAgIGRyYXdmaWxsYm94ICg0NTUsIDEzMiwgNDYxLCAxMzYsIDMxKQogICAgJWhvcml6LCBoZWlnaHQgY29yZCwgd2lkdGgsIHZlcnQKCiAgICAlc3BvbmdlaG9sZXMKICAgIGRyYXdmaWxsb3ZhbCAoNDExLCAxOTMsIDcsIDcsIDExNikKICAgICVob3JpeiwgdmVydGljYWwsIGhlaWdodCwgd2lkdGgsIGNvbG91cgogICAgZHJhd2ZpbGxvdmFsICg1MDAsIDE5MiwgNiwgNiwgMTE2KQogICAgZHJhd2ZpbGxvdmFsICg1MDMsIDE3NiwgNCwgNCwgMTE2KQogICAgZHJhd2ZpbGxvdmFsICg0MTMsIDE0NiwgNSwgNSwgMTE2KQogICAgZHJhd2ZpbGxvdmFsICg0MTAsIDEyNSwgNywgNywgMTE2KQogICAgZHJhd2ZpbGxvdmFsICg0OTgsIDE0NSwgNywgNywgMTE2KQogICAgZHJhd2ZpbGxvdmFsICg0OTMsIDEyNSwgNSwgNSwgMTE2KQogICAgJXRhYmxlCiAgICBkcmF3ZmlsbGJveCAoMzAwLCAxMjAsIDYxMCwgMTAwLCAxOSkKICAgIGRyYXdmaWxsYm94ICgzMDUsIDQwLCAzMzAsIDEyMCwgMTkpCiAgICBkcmF3ZmlsbGJveCAoNjA1LCA0MCwgNTgwLCAxMjAsIDE5KQogICAgJWhvcml6IHN0YXJ0LCB2ZXJ0IHN0YXJ0LCB3aWR0aCBlbmQsIGhlaWdodCBlbmQK