diff options
-rw-r--r-- | bin/anim.png | bin | 44218 -> 0 bytes | |||
-rw-r--r-- | bin/anim2.png | bin | 648800 -> 0 bytes | |||
-rw-r--r-- | bin/dust/s_dust_A_0.png | bin | 82 -> 0 bytes | |||
-rw-r--r-- | bin/dust/s_dust_A_1.png | bin | 93 -> 0 bytes | |||
-rw-r--r-- | bin/dust/s_dust_A_10.png | bin | 84 -> 0 bytes | |||
-rw-r--r-- | bin/dust/s_dust_A_2.png | bin | 94 -> 0 bytes | |||
-rw-r--r-- | bin/dust/s_dust_A_3.png | bin | 95 -> 0 bytes | |||
-rw-r--r-- | bin/dust/s_dust_A_4.png | bin | 76 -> 0 bytes | |||
-rw-r--r-- | bin/dust/s_dust_A_5.png | bin | 88 -> 0 bytes | |||
-rw-r--r-- | bin/dust/s_dust_A_6.png | bin | 87 -> 0 bytes | |||
-rw-r--r-- | bin/dust/s_dust_A_7.png | bin | 84 -> 0 bytes | |||
-rw-r--r-- | bin/dust/s_dust_A_8.png | bin | 86 -> 0 bytes | |||
-rw-r--r-- | bin/dust/s_dust_A_9.png | bin | 83 -> 0 bytes | |||
-rw-r--r-- | bin/ok.txt | 1 | ||||
-rw-r--r-- | bin/ok_txt_file.h | 4 | ||||
-rw-r--r-- | bin/particle.png | bin | 1821 -> 0 bytes | |||
-rw-r--r-- | bin/physics.lua | 777 | ||||
-rw-r--r-- | bin/physics.lua.h | 1229 | ||||
-rw-r--r-- | bin/splash.png | bin | 392 -> 0 bytes | |||
-rw-r--r-- | bin/texture.png | bin | 1050 -> 0 bytes |
20 files changed, 0 insertions, 2011 deletions
diff --git a/bin/anim.png b/bin/anim.png Binary files differdeleted file mode 100644 index ef0bc81..0000000 --- a/bin/anim.png +++ /dev/null diff --git a/bin/anim2.png b/bin/anim2.png Binary files differdeleted file mode 100644 index 63c1f63..0000000 --- a/bin/anim2.png +++ /dev/null diff --git a/bin/dust/s_dust_A_0.png b/bin/dust/s_dust_A_0.png Binary files differdeleted file mode 100644 index 79efc70..0000000 --- a/bin/dust/s_dust_A_0.png +++ /dev/null diff --git a/bin/dust/s_dust_A_1.png b/bin/dust/s_dust_A_1.png Binary files differdeleted file mode 100644 index acc2100..0000000 --- a/bin/dust/s_dust_A_1.png +++ /dev/null diff --git a/bin/dust/s_dust_A_10.png b/bin/dust/s_dust_A_10.png Binary files differdeleted file mode 100644 index e422644..0000000 --- a/bin/dust/s_dust_A_10.png +++ /dev/null diff --git a/bin/dust/s_dust_A_2.png b/bin/dust/s_dust_A_2.png Binary files differdeleted file mode 100644 index 1ef2056..0000000 --- a/bin/dust/s_dust_A_2.png +++ /dev/null diff --git a/bin/dust/s_dust_A_3.png b/bin/dust/s_dust_A_3.png Binary files differdeleted file mode 100644 index ca2260a..0000000 --- a/bin/dust/s_dust_A_3.png +++ /dev/null diff --git a/bin/dust/s_dust_A_4.png b/bin/dust/s_dust_A_4.png Binary files differdeleted file mode 100644 index 1f67b79..0000000 --- a/bin/dust/s_dust_A_4.png +++ /dev/null diff --git a/bin/dust/s_dust_A_5.png b/bin/dust/s_dust_A_5.png Binary files differdeleted file mode 100644 index 3969a04..0000000 --- a/bin/dust/s_dust_A_5.png +++ /dev/null diff --git a/bin/dust/s_dust_A_6.png b/bin/dust/s_dust_A_6.png Binary files differdeleted file mode 100644 index d2d6df0..0000000 --- a/bin/dust/s_dust_A_6.png +++ /dev/null diff --git a/bin/dust/s_dust_A_7.png b/bin/dust/s_dust_A_7.png Binary files differdeleted file mode 100644 index 02ba310..0000000 --- a/bin/dust/s_dust_A_7.png +++ /dev/null diff --git a/bin/dust/s_dust_A_8.png b/bin/dust/s_dust_A_8.png Binary files differdeleted file mode 100644 index 700052c..0000000 --- a/bin/dust/s_dust_A_8.png +++ /dev/null diff --git a/bin/dust/s_dust_A_9.png b/bin/dust/s_dust_A_9.png Binary files differdeleted file mode 100644 index 8de4fcf..0000000 --- a/bin/dust/s_dust_A_9.png +++ /dev/null diff --git a/bin/ok.txt b/bin/ok.txt deleted file mode 100644 index 56a6051..0000000 --- a/bin/ok.txt +++ /dev/null @@ -1 +0,0 @@ -1
\ No newline at end of file diff --git a/bin/ok_txt_file.h b/bin/ok_txt_file.h deleted file mode 100644 index 31cfc74..0000000 --- a/bin/ok_txt_file.h +++ /dev/null @@ -1,4 +0,0 @@ -static unsigned char ok_txt[] = { -49 -}; - diff --git a/bin/particle.png b/bin/particle.png Binary files differdeleted file mode 100644 index 632fcc1..0000000 --- a/bin/particle.png +++ /dev/null diff --git a/bin/physics.lua b/bin/physics.lua deleted file mode 100644 index 424d60f..0000000 --- a/bin/physics.lua +++ /dev/null @@ -1,777 +0,0 @@ -jin.physics = jin.physics or {} - -local bump = { - _VERSION = 'bump v3.1.7', - _URL = 'https://github.com/kikito/bump.lua', - _DESCRIPTION = 'A collision detection library for Lua', - _LICENSE = [[ - MIT LICENSE - - Copyright (c) 2014 Enrique Garca Cota - - Permission 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: - - The above copyright notice and this permission notice shall be included - in all copies or substantial portions of the Software. - - THE 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. - ]] -} - ------------------------------------------- --- Auxiliary functions ------------------------------------------- -local DELTA = 1e-10 -- floating-point margin of error - -local abs, floor, ceil, min, max = math.abs, math.floor, math.ceil, math.min, math.max - -local function sign(x) - if x > 0 then return 1 end - if x == 0 then return 0 end - return -1 -end - -local function nearest(x, a, b) - if abs(a - x) < abs(b - x) then return a else return b end -end - -local function assertType(desiredType, value, name) - if type(value) ~= desiredType then - error(name .. ' must be a ' .. desiredType .. ', but was ' .. tostring(value) .. '(a ' .. type(value) .. ')') - end -end - -local function assertIsPositiveNumber(value, name) - if type(value) ~= 'number' or value <= 0 then - error(name .. ' must be a positive integer, but was ' .. tostring(value) .. '(' .. type(value) .. ')') - end -end - -local function assertIsRect(x,y,w,h) - assertType('number', x, 'x') - assertType('number', y, 'y') - assertIsPositiveNumber(w, 'w') - assertIsPositiveNumber(h, 'h') -end - -local defaultFilter = function() - return 'slide' -end - ------------------------------------------- --- Rectangle functions ------------------------------------------- - -local function rect_getNearestCorner(x,y,w,h, px, py) - return nearest(px, x, x+w), nearest(py, y, y+h) -end - --- This is a generalized implementation of the liang-barsky algorithm, which also returns --- the normals of the sides where the segment intersects. --- Returns nil if the segment never touches the rect --- Notice that normals are only guaranteed to be accurate when initially ti1, ti2 == -math.huge, math.huge -local function rect_getSegmentIntersectionIndices(x,y,w,h, x1,y1,x2,y2, ti1,ti2) - ti1, ti2 = ti1 or 0, ti2 or 1 - local dx, dy = x2-x1, y2-y1 - local nx, ny - local nx1, ny1, nx2, ny2 = 0,0,0,0 - local p, q, r - - for side = 1,4 do - if side == 1 then nx,ny,p,q = -1, 0, -dx, x1 - x -- left - elseif side == 2 then nx,ny,p,q = 1, 0, dx, x + w - x1 -- right - elseif side == 3 then nx,ny,p,q = 0, -1, -dy, y1 - y -- top - else nx,ny,p,q = 0, 1, dy, y + h - y1 -- bottom - end - - if p == 0 then - if q <= 0 then return nil end - else - r = q / p - if p < 0 then - if r > ti2 then return nil - elseif r > ti1 then ti1,nx1,ny1 = r,nx,ny - end - else -- p > 0 - if r < ti1 then return nil - elseif r < ti2 then ti2,nx2,ny2 = r,nx,ny - end - end - end - end - - return ti1,ti2, nx1,ny1, nx2,ny2 -end - --- Calculates the minkowsky difference between 2 rects, which is another rect -local function rect_getDiff(x1,y1,w1,h1, x2,y2,w2,h2) - return x2 - x1 - w1, - y2 - y1 - h1, - w1 + w2, - h1 + h2 -end - -local function rect_containsPoint(x,y,w,h, px,py) - return px - x > DELTA and py - y > DELTA and - x + w - px > DELTA and y + h - py > DELTA -end - -local function rect_isIntersecting(x1,y1,w1,h1, x2,y2,w2,h2) - return x1 < x2+w2 and x2 < x1+w1 and - y1 < y2+h2 and y2 < y1+h1 -end - -local function rect_getSquareDistance(x1,y1,w1,h1, x2,y2,w2,h2) - local dx = x1 - x2 + (w1 - w2)/2 - local dy = y1 - y2 + (h1 - h2)/2 - return dx*dx + dy*dy -end - -local function rect_detectCollision(x1,y1,w1,h1, x2,y2,w2,h2, goalX, goalY) - goalX = goalX or x1 - goalY = goalY or y1 - - local dx, dy = goalX - x1, goalY - y1 - local x,y,w,h = rect_getDiff(x1,y1,w1,h1, x2,y2,w2,h2) - - local overlaps, ti, nx, ny - - if rect_containsPoint(x,y,w,h, 0,0) then -- item was intersecting other - local px, py = rect_getNearestCorner(x,y,w,h, 0, 0) - local wi, hi = min(w1, abs(px)), min(h1, abs(py)) -- area of intersection - ti = -wi * hi -- ti is the negative area of intersection - overlaps = true - else - local ti1,ti2,nx1,ny1 = rect_getSegmentIntersectionIndices(x,y,w,h, 0,0,dx,dy, -math.huge, math.huge) - - -- item tunnels into other - if ti1 - and ti1 < 1 - and (abs(ti1 - ti2) >= DELTA) -- special case for rect going through another rect's corner - and (0 < ti1 + DELTA - or 0 == ti1 and ti2 > 0) - then - ti, nx, ny = ti1, nx1, ny1 - overlaps = false - end - end - - if not ti then return end - - local tx, ty - - if overlaps then - if dx == 0 and dy == 0 then - -- intersecting and not moving - use minimum displacement vector - local px, py = rect_getNearestCorner(x,y,w,h, 0,0) - if abs(px) < abs(py) then py = 0 else px = 0 end - nx, ny = sign(px), sign(py) - tx, ty = x1 + px, y1 + py - else - -- intersecting and moving - move in the opposite direction - local ti1, _ - ti1,_,nx,ny = rect_getSegmentIntersectionIndices(x,y,w,h, 0,0,dx,dy, -math.huge, 1) - if not ti1 then return end - tx, ty = x1 + dx * ti1, y1 + dy * ti1 - end - else -- tunnel - tx, ty = x1 + dx * ti, y1 + dy * ti - end - - return { - overlaps = overlaps, - ti = ti, - move = {x = dx, y = dy}, - normal = {x = nx, y = ny}, - touch = {x = tx, y = ty}, - itemRect = {x = x1, y = y1, w = w1, h = h1}, - otherRect = {x = x2, y = y2, w = w2, h = h2} - } -end - ------------------------------------------- --- Grid functions ------------------------------------------- - -local function grid_toWorld(cellSize, cx, cy) - return (cx - 1)*cellSize, (cy-1)*cellSize -end - -local function grid_toCell(cellSize, x, y) - return floor(x / cellSize) + 1, floor(y / cellSize) + 1 -end - --- grid_traverse* functions are based on "A Fast Voxel Traversal Algorithm for Ray Tracing", --- by John Amanides and Andrew Woo - http://www.cse.yorku.ca/~amana/research/grid.pdf --- It has been modified to include both cells when the ray "touches a grid corner", --- and with a different exit condition - -local function grid_traverse_initStep(cellSize, ct, t1, t2) - local v = t2 - t1 - if v > 0 then - return 1, cellSize / v, ((ct + v) * cellSize - t1) / v - elseif v < 0 then - return -1, -cellSize / v, ((ct + v - 1) * cellSize - t1) / v - else - return 0, math.huge, math.huge - end -end - -local function grid_traverse(cellSize, x1,y1,x2,y2, f) - local cx1,cy1 = grid_toCell(cellSize, x1,y1) - local cx2,cy2 = grid_toCell(cellSize, x2,y2) - local stepX, dx, tx = grid_traverse_initStep(cellSize, cx1, x1, x2) - local stepY, dy, ty = grid_traverse_initStep(cellSize, cy1, y1, y2) - local cx,cy = cx1,cy1 - - f(cx, cy) - - -- The default implementation had an infinite loop problem when - -- approaching the last cell in some occassions. We finish iterating - -- when we are *next* to the last cell - while abs(cx - cx2) + abs(cy - cy2) > 1 do - if tx < ty then - tx, cx = tx + dx, cx + stepX - f(cx, cy) - else - -- Addition: include both cells when going through corners - if tx == ty then f(cx + stepX, cy) end - ty, cy = ty + dy, cy + stepY - f(cx, cy) - end - end - - -- If we have not arrived to the last cell, use it - if cx ~= cx2 or cy ~= cy2 then f(cx2, cy2) end - -end - -local function grid_toCellRect(cellSize, x,y,w,h) - local cx,cy = grid_toCell(cellSize, x, y) - local cr,cb = ceil((x+w) / cellSize), ceil((y+h) / cellSize) - return cx, cy, cr - cx + 1, cb - cy + 1 -end - ------------------------------------------- --- Responses ------------------------------------------- - -local touch = function(world, col, x,y,w,h, goalX, goalY, filter) - return col.touch.x, col.touch.y, {}, 0 -end - -local cross = function(world, col, x,y,w,h, goalX, goalY, filter) - local cols, len = world:project(col.item, x,y,w,h, goalX, goalY, filter) - return goalX, goalY, cols, len -end - -local slide = function(world, col, x,y,w,h, goalX, goalY, filter) - goalX = goalX or x - goalY = goalY or y - - local tch, move = col.touch, col.move - if move.x ~= 0 or move.y ~= 0 then - if col.normal.x ~= 0 then - goalX = tch.x - else - goalY = tch.y - end - end - - col.slide = {x = goalX, y = goalY} - - x,y = tch.x, tch.y - local cols, len = world:project(col.item, x,y,w,h, goalX, goalY, filter) - return goalX, goalY, cols, len -end - -local bounce = function(world, col, x,y,w,h, goalX, goalY, filter) - goalX = goalX or x - goalY = goalY or y - - local tch, move = col.touch, col.move - local tx, ty = tch.x, tch.y - - local bx, by = tx, ty - - if move.x ~= 0 or move.y ~= 0 then - local bnx, bny = goalX - tx, goalY - ty - if col.normal.x == 0 then bny = -bny else bnx = -bnx end - bx, by = tx + bnx, ty + bny - end - - col.bounce = {x = bx, y = by} - x,y = tch.x, tch.y - goalX, goalY = bx, by - - local cols, len = world:project(col.item, x,y,w,h, goalX, goalY, filter) - return goalX, goalY, cols, len -end - ------------------------------------------- --- World ------------------------------------------- - -local World = {} -local World_mt = {__index = World} - --- Private functions and methods - -local function sortByWeight(a,b) return a.weight < b.weight end - -local function sortByTiAndDistance(a,b) - if a.ti == b.ti then - local ir, ar, br = a.itemRect, a.otherRect, b.otherRect - local ad = rect_getSquareDistance(ir.x,ir.y,ir.w,ir.h, ar.x,ar.y,ar.w,ar.h) - local bd = rect_getSquareDistance(ir.x,ir.y,ir.w,ir.h, br.x,br.y,br.w,br.h) - return ad < bd - end - return a.ti < b.ti -end - -local function addItemToCell(self, item, cx, cy) - self.rows[cy] = self.rows[cy] or setmetatable({}, {__mode = 'v'}) - local row = self.rows[cy] - row[cx] = row[cx] or {itemCount = 0, x = cx, y = cy, items = setmetatable({}, {__mode = 'k'})} - local cell = row[cx] - self.nonEmptyCells[cell] = true - if not cell.items[item] then - cell.items[item] = true - cell.itemCount = cell.itemCount + 1 - end -end - -local function removeItemFromCell(self, item, cx, cy) - local row = self.rows[cy] - if not row or not row[cx] or not row[cx].items[item] then return false end - - local cell = row[cx] - cell.items[item] = nil - cell.itemCount = cell.itemCount - 1 - if cell.itemCount == 0 then - self.nonEmptyCells[cell] = nil - end - return true -end - -local function getDictItemsInCellRect(self, cl,ct,cw,ch) - local items_dict = {} - for cy=ct,ct+ch-1 do - local row = self.rows[cy] - if row then - for cx=cl,cl+cw-1 do - local cell = row[cx] - if cell and cell.itemCount > 0 then -- no cell.itemCount > 1 because tunneling - for item,_ in pairs(cell.items) do - items_dict[item] = true - end - end - end - end - end - - return items_dict -end - -local function getCellsTouchedBySegment(self, x1,y1,x2,y2) - - local cells, cellsLen, visited = {}, 0, {} - - grid_traverse(self.cellSize, x1,y1,x2,y2, function(cx, cy) - local row = self.rows[cy] - if not row then return end - local cell = row[cx] - if not cell or visited[cell] then return end - - visited[cell] = true - cellsLen = cellsLen + 1 - cells[cellsLen] = cell - end) - - return cells, cellsLen -end - -local function getInfoAboutItemsTouchedBySegment(self, x1,y1, x2,y2, filter) - local cells, len = getCellsTouchedBySegment(self, x1,y1,x2,y2) - local cell, rect, l,t,w,h, ti1,ti2, tii0,tii1 - local visited, itemInfo, itemInfoLen = {},{},0 - for i=1,len do - cell = cells[i] - for item in pairs(cell.items) do - if not visited[item] then - visited[item] = true - if (not filter or filter(item)) then - rect = self.rects[item] - l,t,w,h = rect.x,rect.y,rect.w,rect.h - - ti1,ti2 = rect_getSegmentIntersectionIndices(l,t,w,h, x1,y1, x2,y2, 0, 1) - if ti1 and ((0 < ti1 and ti1 < 1) or (0 < ti2 and ti2 < 1)) then - -- the sorting is according to the t of an infinite line, not the segment - tii0,tii1 = rect_getSegmentIntersectionIndices(l,t,w,h, x1,y1, x2,y2, -math.huge, math.huge) - itemInfoLen = itemInfoLen + 1 - itemInfo[itemInfoLen] = {item = item, ti1 = ti1, ti2 = ti2, weight = min(tii0,tii1)} - end - end - end - end - end - table.sort(itemInfo, sortByWeight) - return itemInfo, itemInfoLen -end - -local function getResponseByName(self, name) - local response = self.responses[name] - if not response then - error(('Unknown collision type: %s (%s)'):format(name, type(name))) - end - return response -end - - --- Misc Public Methods - -function World:addResponse(name, response) - self.responses[name] = response -end - -function World:project(item, x,y,w,h, goalX, goalY, filter) - assertIsRect(x,y,w,h) - - goalX = goalX or x - goalY = goalY or y - filter = filter or defaultFilter - - local collisions, len = {}, 0 - - local visited = {} - if item ~= nil then visited[item] = true end - - -- This could probably be done with less cells using a polygon raster over the cells instead of a - -- bounding rect of the whole movement. Conditional to building a queryPolygon method - local tl, tt = min(goalX, x), min(goalY, y) - local tr, tb = max(goalX + w, x+w), max(goalY + h, y+h) - local tw, th = tr-tl, tb-tt - - local cl,ct,cw,ch = grid_toCellRect(self.cellSize, tl,tt,tw,th) - - local dictItemsInCellRect = getDictItemsInCellRect(self, cl,ct,cw,ch) - - for other,_ in pairs(dictItemsInCellRect) do - if not visited[other] then - visited[other] = true - - local responseName = filter(item, other) - if responseName then - local ox,oy,ow,oh = self:getRect(other) - local col = rect_detectCollision(x,y,w,h, ox,oy,ow,oh, goalX, goalY) - - if col then - col.other = other - col.item = item - col.type = responseName - - len = len + 1 - collisions[len] = col - end - end - end - end - - table.sort(collisions, sortByTiAndDistance) - - return collisions, len -end - -function World:countCells() - local count = 0 - for _,row in pairs(self.rows) do - for _,_ in pairs(row) do - count = count + 1 - end - end - return count -end - -function World:hasItem(item) - return not not self.rects[item] -end - -function World:getItems() - local items, len = {}, 0 - for item,_ in pairs(self.rects) do - len = len + 1 - items[len] = item - end - return items, len -end - -function World:countItems() - local len = 0 - for _ in pairs(self.rects) do len = len + 1 end - return len -end - -function World:getRect(item) - local rect = self.rects[item] - if not rect then - error('Item ' .. tostring(item) .. ' must be added to the world before getting its rect. Use world:add(item, x,y,w,h) to add it first.') - end - return rect.x, rect.y, rect.w, rect.h -end - -function World:toWorld(cx, cy) - return grid_toWorld(self.cellSize, cx, cy) -end - -function World:toCell(x,y) - return grid_toCell(self.cellSize, x, y) -end - - ---- Query methods - -function World:queryRect(x,y,w,h, filter) - - assertIsRect(x,y,w,h) - - local cl,ct,cw,ch = grid_toCellRect(self.cellSize, x,y,w,h) - local dictItemsInCellRect = getDictItemsInCellRect(self, cl,ct,cw,ch) - - local items, len = {}, 0 - - local rect - for item,_ in pairs(dictItemsInCellRect) do - rect = self.rects[item] - if (not filter or filter(item)) - and rect_isIntersecting(x,y,w,h, rect.x, rect.y, rect.w, rect.h) - then - len = len + 1 - items[len] = item - end - end - - return items, len -end - -function World:queryPoint(x,y, filter) - local cx,cy = self:toCell(x,y) - local dictItemsInCellRect = getDictItemsInCellRect(self, cx,cy,1,1) - - local items, len = {}, 0 - - local rect - for item,_ in pairs(dictItemsInCellRect) do - rect = self.rects[item] - if (not filter or filter(item)) - and rect_containsPoint(rect.x, rect.y, rect.w, rect.h, x, y) - then - len = len + 1 - items[len] = item - end - end - - return items, len -end - -function World:querySegment(x1, y1, x2, y2, filter) - local itemInfo, len = getInfoAboutItemsTouchedBySegment(self, x1, y1, x2, y2, filter) - local items = {} - for i=1, len do - items[i] = itemInfo[i].item - end - return items, len -end - -function World:querySegmentWithCoords(x1, y1, x2, y2, filter) - local itemInfo, len = getInfoAboutItemsTouchedBySegment(self, x1, y1, x2, y2, filter) - local dx, dy = x2-x1, y2-y1 - local info, ti1, ti2 - for i=1, len do - info = itemInfo[i] - ti1 = info.ti1 - ti2 = info.ti2 - - info.weight = nil - info.x1 = x1 + dx * ti1 - info.y1 = y1 + dy * ti1 - info.x2 = x1 + dx * ti2 - info.y2 = y1 + dy * ti2 - end - return itemInfo, len -end - - ---- Main methods - -function World:add(item, x,y,w,h) - local rect = self.rects[item] - if rect then - error('Item ' .. tostring(item) .. ' added to the world twice.') - end - assertIsRect(x,y,w,h) - - self.rects[item] = {x=x,y=y,w=w,h=h} - - local cl,ct,cw,ch = grid_toCellRect(self.cellSize, x,y,w,h) - for cy = ct, ct+ch-1 do - for cx = cl, cl+cw-1 do - addItemToCell(self, item, cx, cy) - end - end - - return item -end - -function World:remove(item) - local x,y,w,h = self:getRect(item) - - self.rects[item] = nil - local cl,ct,cw,ch = grid_toCellRect(self.cellSize, x,y,w,h) - for cy = ct, ct+ch-1 do - for cx = cl, cl+cw-1 do - removeItemFromCell(self, item, cx, cy) - end - end -end - -function World:update(item, x2,y2,w2,h2) - local x1,y1,w1,h1 = self:getRect(item) - w2,h2 = w2 or w1, h2 or h1 - assertIsRect(x2,y2,w2,h2) - - if x1 ~= x2 or y1 ~= y2 or w1 ~= w2 or h1 ~= h2 then - - local cellSize = self.cellSize - local cl1,ct1,cw1,ch1 = grid_toCellRect(cellSize, x1,y1,w1,h1) - local cl2,ct2,cw2,ch2 = grid_toCellRect(cellSize, x2,y2,w2,h2) - - if cl1 ~= cl2 or ct1 ~= ct2 or cw1 ~= cw2 or ch1 ~= ch2 then - - local cr1, cb1 = cl1+cw1-1, ct1+ch1-1 - local cr2, cb2 = cl2+cw2-1, ct2+ch2-1 - local cyOut - - for cy = ct1, cb1 do - cyOut = cy < ct2 or cy > cb2 - for cx = cl1, cr1 do - if cyOut or cx < cl2 or cx > cr2 then - removeItemFromCell(self, item, cx, cy) - end - end - end - - for cy = ct2, cb2 do - cyOut = cy < ct1 or cy > cb1 - for cx = cl2, cr2 do - if cyOut or cx < cl1 or cx > cr1 then - addItemToCell(self, item, cx, cy) - end - end - end - - end - - local rect = self.rects[item] - rect.x, rect.y, rect.w, rect.h = x2,y2,w2,h2 - - end -end - -function World:move(item, goalX, goalY, filter) - local actualX, actualY, cols, len = self:check(item, goalX, goalY, filter) - - self:update(item, actualX, actualY) - - return actualX, actualY, cols, len -end - -function World:check(item, goalX, goalY, filter) - filter = filter or defaultFilter - - local visited = {[item] = true} - local visitedFilter = function(itm, other) - if visited[other] then return false end - return filter(itm, other) - end - - local cols, len = {}, 0 - - local x,y,w,h = self:getRect(item) - - local projected_cols, projected_len = self:project(item, x,y,w,h, goalX,goalY, visitedFilter) - - while projected_len > 0 do - local col = projected_cols[1] - len = len + 1 - cols[len] = col - - visited[col.other] = true - - local response = getResponseByName(self, col.type) - - goalX, goalY, projected_cols, projected_len = response( - self, - col, - x, y, w, h, - goalX, goalY, - visitedFilter - ) - end - - return goalX, goalY, cols, len -end - - --- Public library functions - -bump.newWorld = function(cellSize) - cellSize = cellSize or 64 - assertIsPositiveNumber(cellSize, 'cellSize') - local world = setmetatable({ - cellSize = cellSize, - rects = {}, - rows = {}, - nonEmptyCells = {}, - responses = {} - }, World_mt) - - world:addResponse('touch', touch) - world:addResponse('cross', cross) - world:addResponse('slide', slide) - world:addResponse('bounce', bounce) - - return world -end - -bump.rect = { - getNearestCorner = rect_getNearestCorner, - getSegmentIntersectionIndices = rect_getSegmentIntersectionIndices, - getDiff = rect_getDiff, - containsPoint = rect_containsPoint, - isIntersecting = rect_isIntersecting, - getSquareDistance = rect_getSquareDistance, - detectCollision = rect_detectCollision -} - -bump.responses = { - touch = touch, - cross = cross, - slide = slide, - bounce = bounce -} - --- Export to Jin. - -jin.physics = bump diff --git a/bin/physics.lua.h b/bin/physics.lua.h deleted file mode 100644 index d0fe7ce..0000000 --- a/bin/physics.lua.h +++ /dev/null @@ -1,1229 +0,0 @@ -/*Auto generated, don't modify by hand.*/ -static char physics_lua[] = { -106,105,110,46,112,104,121,115,105,99,115,32,61,32,106,105,110,46,112,104, -121,115,105,99,115,32,111,114,32,123,125,13,10,13,10,108,111,99,97,108, -32,98,117,109,112,32,61,32,123,13,10,32,32,32,32,95,86,69,82,83, -73,79,78,32,32,32,32,32,32,32,32,32,61,32,39,98,117,109,112,32, -118,51,46,49,46,55,39,44,13,10,32,32,32,32,95,85,82,76,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,61,32,39,104,116, -116,112,115,58,47,47,103,105,116,104,117,98,46,99,111,109,47,107,105,107, -105,116,111,47,98,117,109,112,46,108,117,97,39,44,13,10,32,32,32,32, -95,68,69,83,67,82,73,80,84,73,79,78,32,61,32,39,65,32,99,111, -108,108,105,115,105,111,110,32,100,101,116,101,99,116,105,111,110,32,108,105, -98,114,97,114,121,32,102,111,114,32,76,117,97,39,44,13,10,32,32,32, -32,95,76,73,67,69,78,83,69,32,32,32,32,32,32,32,32,32,61,32, -91,91,13,10,32,32,32,32,32,32,32,32,77,73,84,32,76,73,67,69, -78,83,69,13,10,13,10,32,32,32,32,32,32,32,32,67,111,112,121,114, -105,103,104,116,32,40,99,41,32,50,48,49,52,32,69,110,114,105,113,117, -101,32,71,97,114,99,(,*,97,32,67,111,116,97,13,10,13,10,32,32, -32,32,32,32,32,32,80,101,114,109,105,115,115,105,111,110,32,105,115,32, -104,101,114,101,98,121,32,103,114,97,110,116,101,100,44,32,102,114,101,101, -32,111,102,32,99,104,97,114,103,101,44,32,116,111,32,97,110,121,32,112, -101,114,115,111,110,32,111,98,116,97,105,110,105,110,103,32,97,13,10,32, -32,32,32,32,32,32,32,99,111,112,121,32,111,102,32,116,104,105,115,32, -115,111,102,116,119,97,114,101,32,97,110,100,32,97,115,115,111,99,105,97, -116,101,100,32,100,111,99,117,109,101,110,116,97,116,105,111,110,32,102,105, -108,101,115,32,40,116,104,101,13,10,32,32,32,32,32,32,32,32,34,83, -111,102,116,119,97,114,101,34,41,44,32,116,111,32,100,101,97,108,32,105, -110,32,116,104,101,32,83,111,102,116,119,97,114,101,32,119,105,116,104,111, -117,116,32,114,101,115,116,114,105,99,116,105,111,110,44,32,105,110,99,108, -117,100,105,110,103,13,10,32,32,32,32,32,32,32,32,119,105,116,104,111, -117,116,32,108,105,109,105,116,97,116,105,111,110,32,116,104,101,32,114,105, -103,104,116,115,32,116,111,32,117,115,101,44,32,99,111,112,121,44,32,109, -111,100,105,102,121,44,32,109,101,114,103,101,44,32,112,117,98,108,105,115, -104,44,13,10,32,32,32,32,32,32,32,32,100,105,115,116,114,105,98,117, -116,101,44,32,115,117,98,108,105,99,101,110,115,101,44,32,97,110,100,47, -111,114,32,115,101,108,108,32,99,111,112,105,101,115,32,111,102,32,116,104, -101,32,83,111,102,116,119,97,114,101,44,32,97,110,100,32,116,111,13,10, -32,32,32,32,32,32,32,32,112,101,114,109,105,116,32,112,101,114,115,111, -110,115,32,116,111,32,119,104,111,109,32,116,104,101,32,83,111,102,116,119, -97,114,101,32,105,115,32,102,117,114,110,105,115,104,101,100,32,116,111,32, -100,111,32,115,111,44,32,115,117,98,106,101,99,116,32,116,111,13,10,32, -32,32,32,32,32,32,32,116,104,101,32,102,111,108,108,111,119,105,110,103, -32,99,111,110,100,105,116,105,111,110,115,58,13,10,13,10,32,32,32,32, -32,32,32,32,84,104,101,32,97,98,111,118,101,32,99,111,112,121,114,105, -103,104,116,32,110,111,116,105,99,101,32,97,110,100,32,116,104,105,115,32, -112,101,114,109,105,115,115,105,111,110,32,110,111,116,105,99,101,32,115,104, -97,108,108,32,98,101,32,105,110,99,108,117,100,101,100,13,10,32,32,32, -32,32,32,32,32,105,110,32,97,108,108,32,99,111,112,105,101,115,32,111, -114,32,115,117,98,115,116,97,110,116,105,97,108,32,112,111,114,116,105,111, -110,115,32,111,102,32,116,104,101,32,83,111,102,116,119,97,114,101,46,13, -10,13,10,32,32,32,32,32,32,32,32,84,72,69,32,83,79,70,84,87, -65,82,69,32,73,83,32,80,82,79,86,73,68,69,68,32,34,65,83,32, -73,83,34,44,32,87,73,84,72,79,85,84,32,87,65,82,82,65,78,84, -89,32,79,70,32,65,78,89,32,75,73,78,68,44,32,69,88,80,82,69, -83,83,13,10,32,32,32,32,32,32,32,32,79,82,32,73,77,80,76,73, -69,68,44,32,73,78,67,76,85,68,73,78,71,32,66,85,84,32,78,79, -84,32,76,73,77,73,84,69,68,32,84,79,32,84,72,69,32,87,65,82, -82,65,78,84,73,69,83,32,79,70,13,10,32,32,32,32,32,32,32,32, -77,69,82,67,72,65,78,84,65,66,73,76,73,84,89,44,32,70,73,84, -78,69,83,83,32,70,79,82,32,65,32,80,65,82,84,73,67,85,76,65, -82,32,80,85,82,80,79,83,69,32,65,78,68,32,78,79,78,73,78,70, -82,73,78,71,69,77,69,78,84,46,13,10,32,32,32,32,32,32,32,32, -73,78,32,78,79,32,69,86,69,78,84,32,83,72,65,76,76,32,84,72, -69,32,65,85,84,72,79,82,83,32,79,82,32,67,79,80,89,82,73,71, -72,84,32,72,79,76,68,69,82,83,32,66,69,32,76,73,65,66,76,69, -32,70,79,82,32,65,78,89,13,10,32,32,32,32,32,32,32,32,67,76, -65,73,77,44,32,68,65,77,65,71,69,83,32,79,82,32,79,84,72,69, -82,32,76,73,65,66,73,76,73,84,89,44,32,87,72,69,84,72,69,82, -32,73,78,32,65,78,32,65,67,84,73,79,78,32,79,70,32,67,79,78, -84,82,65,67,84,44,13,10,32,32,32,32,32,32,32,32,84,79,82,84, -32,79,82,32,79,84,72,69,82,87,73,83,69,44,32,65,82,73,83,73, -78,71,32,70,82,79,77,44,32,79,85,84,32,79,70,32,79,82,32,73, -78,32,67,79,78,78,69,67,84,73,79,78,32,87,73,84,72,32,84,72, -69,13,10,32,32,32,32,32,32,32,32,83,79,70,84,87,65,82,69,32, -79,82,32,84,72,69,32,85,83,69,32,79,82,32,79,84,72,69,82,32, -68,69,65,76,73,78,71,83,32,73,78,32,84,72,69,32,83,79,70,84, -87,65,82,69,46,13,10,32,32,32,32,93,93,13,10,125,13,10,13,10, -45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45, -45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45, -45,45,13,10,45,45,32,65,117,120,105,108,105,97,114,121,32,102,117,110, -99,116,105,111,110,115,13,10,45,45,45,45,45,45,45,45,45,45,45,45, -45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45, -45,45,45,45,45,45,45,45,45,45,13,10,108,111,99,97,108,32,68,69, -76,84,65,32,61,32,49,101,45,49,48,32,45,45,32,102,108,111,97,116, -105,110,103,45,112,111,105,110,116,32,109,97,114,103,105,110,32,111,102,32, -101,114,114,111,114,13,10,13,10,108,111,99,97,108,32,97,98,115,44,32, -102,108,111,111,114,44,32,99,101,105,108,44,32,109,105,110,44,32,109,97, -120,32,61,32,109,97,116,104,46,97,98,115,44,32,109,97,116,104,46,102, -108,111,111,114,44,32,109,97,116,104,46,99,101,105,108,44,32,109,97,116, -104,46,109,105,110,44,32,109,97,116,104,46,109,97,120,13,10,13,10,108, -111,99,97,108,32,102,117,110,99,116,105,111,110,32,115,105,103,110,40,120, -41,13,10,32,32,32,32,105,102,32,120,32,62,32,48,32,116,104,101,110, -32,114,101,116,117,114,110,32,49,32,101,110,100,13,10,32,32,32,32,105, -102,32,120,32,61,61,32,48,32,116,104,101,110,32,114,101,116,117,114,110, -32,48,32,101,110,100,13,10,32,32,32,32,114,101,116,117,114,110,32,45, -49,13,10,101,110,100,13,10,13,10,108,111,99,97,108,32,102,117,110,99, -116,105,111,110,32,110,101,97,114,101,115,116,40,120,44,32,97,44,32,98, -41,13,10,32,32,32,32,105,102,32,97,98,115,40,97,32,45,32,120,41, -32,60,32,97,98,115,40,98,32,45,32,120,41,32,116,104,101,110,32,114, -101,116,117,114,110,32,97,32,101,108,115,101,32,114,101,116,117,114,110,32, -98,32,101,110,100,13,10,101,110,100,13,10,13,10,108,111,99,97,108,32, -102,117,110,99,116,105,111,110,32,97,115,115,101,114,116,84,121,112,101,40, -100,101,115,105,114,101,100,84,121,112,101,44,32,118,97,108,117,101,44,32, -110,97,109,101,41,13,10,32,32,32,32,105,102,32,116,121,112,101,40,118, -97,108,117,101,41,32,126,61,32,100,101,115,105,114,101,100,84,121,112,101, -32,116,104,101,110,13,10,32,32,32,32,32,32,32,32,101,114,114,111,114, -40,110,97,109,101,32,46,46,32,39,32,109,117,115,116,32,98,101,32,97, -32,39,32,46,46,32,100,101,115,105,114,101,100,84,121,112,101,32,46,46, -32,39,44,32,98,117,116,32,119,97,115,32,39,32,46,46,32,116,111,115, -116,114,105,110,103,40,118,97,108,117,101,41,32,46,46,32,39,40,97,32, -39,32,46,46,32,116,121,112,101,40,118,97,108,117,101,41,32,46,46,32, -39,41,39,41,13,10,32,32,32,32,101,110,100,13,10,101,110,100,13,10, -13,10,108,111,99,97,108,32,102,117,110,99,116,105,111,110,32,97,115,115, -101,114,116,73,115,80,111,115,105,116,105,118,101,78,117,109,98,101,114,40, -118,97,108,117,101,44,32,110,97,109,101,41,13,10,32,32,32,32,105,102, -32,116,121,112,101,40,118,97,108,117,101,41,32,126,61,32,39,110,117,109, -98,101,114,39,32,111,114,32,118,97,108,117,101,32,60,61,32,48,32,116, -104,101,110,13,10,32,32,32,32,32,32,32,32,101,114,114,111,114,40,110, -97,109,101,32,46,46,32,39,32,109,117,115,116,32,98,101,32,97,32,112, -111,115,105,116,105,118,101,32,105,110,116,101,103,101,114,44,32,98,117,116, -32,119,97,115,32,39,32,46,46,32,116,111,115,116,114,105,110,103,40,118, -97,108,117,101,41,32,46,46,32,39,40,39,32,46,46,32,116,121,112,101, -40,118,97,108,117,101,41,32,46,46,32,39,41,39,41,13,10,32,32,32, -32,101,110,100,13,10,101,110,100,13,10,13,10,108,111,99,97,108,32,102, -117,110,99,116,105,111,110,32,97,115,115,101,114,116,73,115,82,101,99,116, -40,120,44,121,44,119,44,104,41,13,10,32,32,32,32,97,115,115,101,114, -116,84,121,112,101,40,39,110,117,109,98,101,114,39,44,32,120,44,32,39, -120,39,41,13,10,32,32,32,32,97,115,115,101,114,116,84,121,112,101,40, -39,110,117,109,98,101,114,39,44,32,121,44,32,39,121,39,41,13,10,32, -32,32,32,97,115,115,101,114,116,73,115,80,111,115,105,116,105,118,101,78, -117,109,98,101,114,40,119,44,32,39,119,39,41,13,10,32,32,32,32,97, -115,115,101,114,116,73,115,80,111,115,105,116,105,118,101,78,117,109,98,101, -114,40,104,44,32,39,104,39,41,13,10,101,110,100,13,10,13,10,108,111, -99,97,108,32,100,101,102,97,117,108,116,70,105,108,116,101,114,32,61,32, -102,117,110,99,116,105,111,110,40,41,13,10,32,32,32,32,114,101,116,117, -114,110,32,39,115,108,105,100,101,39,13,10,101,110,100,13,10,13,10,45, -45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45, -45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45, -45,13,10,45,45,32,82,101,99,116,97,110,103,108,101,32,102,117,110,99, -116,105,111,110,115,13,10,45,45,45,45,45,45,45,45,45,45,45,45,45, -45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45, -45,45,45,45,45,45,45,45,45,13,10,13,10,108,111,99,97,108,32,102, -117,110,99,116,105,111,110,32,114,101,99,116,95,103,101,116,78,101,97,114, -101,115,116,67,111,114,110,101,114,40,120,44,121,44,119,44,104,44,32,112, -120,44,32,112,121,41,13,10,32,32,32,32,114,101,116,117,114,110,32,110, -101,97,114,101,115,116,40,112,120,44,32,120,44,32,120,43,119,41,44,32, -110,101,97,114,101,115,116,40,112,121,44,32,121,44,32,121,43,104,41,13, -10,101,110,100,13,10,13,10,45,45,32,84,104,105,115,32,105,115,32,97, -32,103,101,110,101,114,97,108,105,122,101,100,32,105,109,112,108,101,109,101, -110,116,97,116,105,111,110,32,111,102,32,116,104,101,32,108,105,97,110,103, -45,98,97,114,115,107,121,32,97,108,103,111,114,105,116,104,109,44,32,119, -104,105,99,104,32,97,108,115,111,32,114,101,116,117,114,110,115,13,10,45, -45,32,116,104,101,32,110,111,114,109,97,108,115,32,111,102,32,116,104,101, -32,115,105,100,101,115,32,119,104,101,114,101,32,116,104,101,32,115,101,103, -109,101,110,116,32,105,110,116,101,114,115,101,99,116,115,46,13,10,45,45, -32,82,101,116,117,114,110,115,32,110,105,108,32,105,102,32,116,104,101,32, -115,101,103,109,101,110,116,32,110,101,118,101,114,32,116,111,117,99,104,101, -115,32,116,104,101,32,114,101,99,116,13,10,45,45,32,78,111,116,105,99, -101,32,116,104,97,116,32,110,111,114,109,97,108,115,32,97,114,101,32,111, -110,108,121,32,103,117,97,114,97,110,116,101,101,100,32,116,111,32,98,101, -32,97,99,99,117,114,97,116,101,32,119,104,101,110,32,105,110,105,116,105, -97,108,108,121,32,116,105,49,44,32,116,105,50,32,61,61,32,45,109,97, -116,104,46,104,117,103,101,44,32,109,97,116,104,46,104,117,103,101,13,10, -108,111,99,97,108,32,102,117,110,99,116,105,111,110,32,114,101,99,116,95, -103,101,116,83,101,103,109,101,110,116,73,110,116,101,114,115,101,99,116,105, -111,110,73,110,100,105,99,101,115,40,120,44,121,44,119,44,104,44,32,120, -49,44,121,49,44,120,50,44,121,50,44,32,116,105,49,44,116,105,50,41, -13,10,32,32,32,32,116,105,49,44,32,116,105,50,32,61,32,116,105,49, -32,111,114,32,48,44,32,116,105,50,32,111,114,32,49,13,10,32,32,32, -32,108,111,99,97,108,32,100,120,44,32,100,121,32,61,32,120,50,45,120, -49,44,32,121,50,45,121,49,13,10,32,32,32,32,108,111,99,97,108,32, -110,120,44,32,110,121,13,10,32,32,32,32,108,111,99,97,108,32,110,120, -49,44,32,110,121,49,44,32,110,120,50,44,32,110,121,50,32,61,32,48, -44,48,44,48,44,48,13,10,32,32,32,32,108,111,99,97,108,32,112,44, -32,113,44,32,114,13,10,13,10,32,32,32,32,102,111,114,32,115,105,100, -101,32,61,32,49,44,52,32,100,111,13,10,32,32,32,32,32,32,32,32, -105,102,32,32,32,32,32,32,32,32,32,115,105,100,101,32,61,61,32,49, -32,116,104,101,110,32,110,120,44,110,121,44,112,44,113,32,61,32,45,49, -44,32,32,32,32,48,44,32,45,100,120,44,32,120,49,32,45,32,120,32, -32,32,32,32,32,32,32,32,45,45,32,108,101,102,116,13,10,32,32,32, -32,32,32,32,32,101,108,115,101,105,102,32,115,105,100,101,32,61,61,32, -50,32,116,104,101,110,32,110,120,44,110,121,44,112,44,113,32,61,32,32, -32,32,49,44,32,32,32,32,48,44,32,32,32,32,100,120,44,32,120,32, -43,32,119,32,45,32,120,49,32,45,45,32,114,105,103,104,116,13,10,32, -32,32,32,32,32,32,32,101,108,115,101,105,102,32,115,105,100,101,32,61, -61,32,51,32,116,104,101,110,32,110,120,44,110,121,44,112,44,113,32,61, -32,32,32,32,48,44,32,45,49,44,32,45,100,121,44,32,121,49,32,45, -32,121,32,32,32,32,32,32,32,32,32,45,45,32,116,111,112,13,10,32, -32,32,32,32,32,32,32,101,108,115,101,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,110,120,44,110,121,44,112,44,113,32,61,32,32, -32,32,48,44,32,32,32,32,49,44,32,32,32,32,100,121,44,32,121,32, -43,32,104,32,45,32,121,49,32,45,45,32,98,111,116,116,111,109,13,10, -32,32,32,32,32,32,32,32,101,110,100,13,10,13,10,32,32,32,32,32, -32,32,32,105,102,32,112,32,61,61,32,48,32,116,104,101,110,13,10,32, -32,32,32,32,32,32,32,32,32,32,32,105,102,32,113,32,60,61,32,48, -32,116,104,101,110,32,114,101,116,117,114,110,32,110,105,108,32,101,110,100, -13,10,32,32,32,32,32,32,32,32,101,108,115,101,13,10,32,32,32,32, -32,32,32,32,32,32,32,32,114,32,61,32,113,32,47,32,112,13,10,32, -32,32,32,32,32,32,32,32,32,32,32,105,102,32,112,32,60,32,48,32, -116,104,101,110,13,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,105,102,32,32,32,32,32,32,32,32,32,114,32,62,32,116,105,50, -32,116,104,101,110,32,114,101,116,117,114,110,32,110,105,108,13,10,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,101,108,115,101,105,102, -32,114,32,62,32,116,105,49,32,116,104,101,110,32,116,105,49,44,110,120, -49,44,110,121,49,32,61,32,114,44,110,120,44,110,121,13,10,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,101,110,100,13,10,32,32, -32,32,32,32,32,32,32,32,32,32,101,108,115,101,32,45,45,32,112,32, -62,32,48,13,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,105,102,32,32,32,32,32,32,32,32,32,114,32,60,32,116,105,49,32, -116,104,101,110,32,114,101,116,117,114,110,32,110,105,108,13,10,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,101,108,115,101,105,102,32, -114,32,60,32,116,105,50,32,116,104,101,110,32,116,105,50,44,110,120,50, -44,110,121,50,32,61,32,114,44,110,120,44,110,121,13,10,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,101,110,100,13,10,32,32,32, -32,32,32,32,32,32,32,32,32,101,110,100,13,10,32,32,32,32,32,32, -32,32,101,110,100,13,10,32,32,32,32,101,110,100,13,10,13,10,32,32, -32,32,114,101,116,117,114,110,32,116,105,49,44,116,105,50,44,32,110,120, -49,44,110,121,49,44,32,110,120,50,44,110,121,50,13,10,101,110,100,13, -10,13,10,45,45,32,67,97,108,99,117,108,97,116,101,115,32,116,104,101, -32,109,105,110,107,111,119,115,107,121,32,100,105,102,102,101,114,101,110,99, -101,32,98,101,116,119,101,101,110,32,50,32,114,101,99,116,115,44,32,119, -104,105,99,104,32,105,115,32,97,110,111,116,104,101,114,32,114,101,99,116, -13,10,108,111,99,97,108,32,102,117,110,99,116,105,111,110,32,114,101,99, -116,95,103,101,116,68,105,102,102,40,120,49,44,121,49,44,119,49,44,104, -49,44,32,120,50,44,121,50,44,119,50,44,104,50,41,13,10,32,32,32, -32,114,101,116,117,114,110,32,120,50,32,45,32,120,49,32,45,32,119,49, -44,13,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -121,50,32,45,32,121,49,32,45,32,104,49,44,13,10,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,119,49,32,43,32,119,50,44, -13,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,104, -49,32,43,32,104,50,13,10,101,110,100,13,10,13,10,108,111,99,97,108, -32,102,117,110,99,116,105,111,110,32,114,101,99,116,95,99,111,110,116,97, -105,110,115,80,111,105,110,116,40,120,44,121,44,119,44,104,44,32,112,120, -44,112,121,41,13,10,32,32,32,32,114,101,116,117,114,110,32,112,120,32, -45,32,120,32,62,32,68,69,76,84,65,32,32,32,32,32,32,32,32,32, -32,32,32,97,110,100,32,112,121,32,45,32,121,32,62,32,68,69,76,84, -65,32,97,110,100,13,10,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,120,32,43,32,119,32,45,32,112,120,32,62,32,68,69,76, -84,65,32,32,32,32,97,110,100,32,121,32,43,32,104,32,45,32,112,121, -32,62,32,68,69,76,84,65,13,10,101,110,100,13,10,13,10,108,111,99, -97,108,32,102,117,110,99,116,105,111,110,32,114,101,99,116,95,105,115,73, -110,116,101,114,115,101,99,116,105,110,103,40,120,49,44,121,49,44,119,49, -44,104,49,44,32,120,50,44,121,50,44,119,50,44,104,50,41,13,10,32, -32,32,32,114,101,116,117,114,110,32,120,49,32,60,32,120,50,43,119,50, -32,97,110,100,32,120,50,32,60,32,120,49,43,119,49,32,97,110,100,13, -10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,121,49, -32,60,32,121,50,43,104,50,32,97,110,100,32,121,50,32,60,32,121,49, -43,104,49,13,10,101,110,100,13,10,13,10,108,111,99,97,108,32,102,117, -110,99,116,105,111,110,32,114,101,99,116,95,103,101,116,83,113,117,97,114, -101,68,105,115,116,97,110,99,101,40,120,49,44,121,49,44,119,49,44,104, -49,44,32,120,50,44,121,50,44,119,50,44,104,50,41,13,10,32,32,32, -32,108,111,99,97,108,32,100,120,32,61,32,120,49,32,45,32,120,50,32, -43,32,40,119,49,32,45,32,119,50,41,47,50,13,10,32,32,32,32,108, -111,99,97,108,32,100,121,32,61,32,121,49,32,45,32,121,50,32,43,32, -40,104,49,32,45,32,104,50,41,47,50,13,10,32,32,32,32,114,101,116, -117,114,110,32,100,120,42,100,120,32,43,32,100,121,42,100,121,13,10,101, -110,100,13,10,13,10,108,111,99,97,108,32,102,117,110,99,116,105,111,110, -32,114,101,99,116,95,100,101,116,101,99,116,67,111,108,108,105,115,105,111, -110,40,120,49,44,121,49,44,119,49,44,104,49,44,32,120,50,44,121,50, -44,119,50,44,104,50,44,32,103,111,97,108,88,44,32,103,111,97,108,89, -41,13,10,32,32,32,32,103,111,97,108,88,32,61,32,103,111,97,108,88, -32,111,114,32,120,49,13,10,32,32,32,32,103,111,97,108,89,32,61,32, -103,111,97,108,89,32,111,114,32,121,49,13,10,13,10,32,32,32,32,108, -111,99,97,108,32,100,120,44,32,100,121,32,32,32,32,32,32,32,32,32, -32,32,32,61,32,103,111,97,108,88,32,45,32,120,49,44,32,103,111,97, -108,89,32,45,32,121,49,13,10,32,32,32,32,108,111,99,97,108,32,120, -44,121,44,119,44,104,32,32,32,32,32,32,32,32,32,61,32,114,101,99, -116,95,103,101,116,68,105,102,102,40,120,49,44,121,49,44,119,49,44,104, -49,44,32,120,50,44,121,50,44,119,50,44,104,50,41,13,10,13,10,32, -32,32,32,108,111,99,97,108,32,111,118,101,114,108,97,112,115,44,32,116, -105,44,32,110,120,44,32,110,121,13,10,13,10,32,32,32,32,105,102,32, -114,101,99,116,95,99,111,110,116,97,105,110,115,80,111,105,110,116,40,120, -44,121,44,119,44,104,44,32,48,44,48,41,32,116,104,101,110,32,45,45, -32,105,116,101,109,32,119,97,115,32,105,110,116,101,114,115,101,99,116,105, -110,103,32,111,116,104,101,114,13,10,32,32,32,32,32,32,32,32,108,111, -99,97,108,32,112,120,44,32,112,121,32,32,32,32,32,32,32,32,61,32, -114,101,99,116,95,103,101,116,78,101,97,114,101,115,116,67,111,114,110,101, -114,40,120,44,121,44,119,44,104,44,32,48,44,32,48,41,13,10,32,32, -32,32,32,32,32,32,108,111,99,97,108,32,119,105,44,32,104,105,32,32, -32,32,32,32,32,32,61,32,109,105,110,40,119,49,44,32,97,98,115,40, -112,120,41,41,44,32,109,105,110,40,104,49,44,32,97,98,115,40,112,121, -41,41,32,45,45,32,97,114,101,97,32,111,102,32,105,110,116,101,114,115, -101,99,116,105,111,110,13,10,32,32,32,32,32,32,32,32,116,105,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,61,32,45,119,105,32,42,32,104,105,32,45,45,32, -116,105,32,105,115,32,116,104,101,32,110,101,103,97,116,105,118,101,32,97, -114,101,97,32,111,102,32,105,110,116,101,114,115,101,99,116,105,111,110,13, -10,32,32,32,32,32,32,32,32,111,118,101,114,108,97,112,115,32,61,32, -116,114,117,101,13,10,32,32,32,32,101,108,115,101,13,10,32,32,32,32, -32,32,32,32,108,111,99,97,108,32,116,105,49,44,116,105,50,44,110,120, -49,44,110,121,49,32,61,32,114,101,99,116,95,103,101,116,83,101,103,109, -101,110,116,73,110,116,101,114,115,101,99,116,105,111,110,73,110,100,105,99, -101,115,40,120,44,121,44,119,44,104,44,32,48,44,48,44,100,120,44,100, -121,44,32,45,109,97,116,104,46,104,117,103,101,44,32,109,97,116,104,46, -104,117,103,101,41,13,10,13,10,32,32,32,32,32,32,32,32,45,45,32, -105,116,101,109,32,116,117,110,110,101,108,115,32,105,110,116,111,32,111,116, -104,101,114,13,10,32,32,32,32,32,32,32,32,105,102,32,116,105,49,13, -10,32,32,32,32,32,32,32,32,97,110,100,32,116,105,49,32,60,32,49, -13,10,32,32,32,32,32,32,32,32,97,110,100,32,40,97,98,115,40,116, -105,49,32,45,32,116,105,50,41,32,62,61,32,68,69,76,84,65,41,32, -45,45,32,115,112,101,99,105,97,108,32,99,97,115,101,32,102,111,114,32, -114,101,99,116,32,103,111,105,110,103,32,116,104,114,111,117,103,104,32,97, -110,111,116,104,101,114,32,114,101,99,116,39,115,32,99,111,114,110,101,114, -13,10,32,32,32,32,32,32,32,32,97,110,100,32,40,48,32,60,32,116, -105,49,32,43,32,68,69,76,84,65,13,10,32,32,32,32,32,32,32,32, -32,32,32,32,111,114,32,48,32,61,61,32,116,105,49,32,97,110,100,32, -116,105,50,32,62,32,48,41,13,10,32,32,32,32,32,32,32,32,116,104, -101,110,13,10,32,32,32,32,32,32,32,32,32,32,32,32,116,105,44,32, -110,120,44,32,110,121,32,61,32,116,105,49,44,32,110,120,49,44,32,110, -121,49,13,10,32,32,32,32,32,32,32,32,32,32,32,32,111,118,101,114, -108,97,112,115,32,32,32,32,32,61,32,102,97,108,115,101,13,10,32,32, -32,32,32,32,32,32,101,110,100,13,10,32,32,32,32,101,110,100,13,10, -13,10,32,32,32,32,105,102,32,110,111,116,32,116,105,32,116,104,101,110, -32,114,101,116,117,114,110,32,101,110,100,13,10,13,10,32,32,32,32,108, -111,99,97,108,32,116,120,44,32,116,121,13,10,13,10,32,32,32,32,105, -102,32,111,118,101,114,108,97,112,115,32,116,104,101,110,13,10,32,32,32, -32,32,32,32,32,105,102,32,100,120,32,61,61,32,48,32,97,110,100,32, -100,121,32,61,61,32,48,32,116,104,101,110,13,10,32,32,32,32,32,32, -32,32,32,32,32,32,45,45,32,105,110,116,101,114,115,101,99,116,105,110, -103,32,97,110,100,32,110,111,116,32,109,111,118,105,110,103,32,45,32,117, -115,101,32,109,105,110,105,109,117,109,32,100,105,115,112,108,97,99,101,109, -101,110,116,32,118,101,99,116,111,114,13,10,32,32,32,32,32,32,32,32, -32,32,32,32,108,111,99,97,108,32,112,120,44,32,112,121,32,61,32,114, -101,99,116,95,103,101,116,78,101,97,114,101,115,116,67,111,114,110,101,114, -40,120,44,121,44,119,44,104,44,32,48,44,48,41,13,10,32,32,32,32, -32,32,32,32,32,32,32,32,105,102,32,97,98,115,40,112,120,41,32,60, -32,97,98,115,40,112,121,41,32,116,104,101,110,32,112,121,32,61,32,48, -32,101,108,115,101,32,112,120,32,61,32,48,32,101,110,100,13,10,32,32, -32,32,32,32,32,32,32,32,32,32,110,120,44,32,110,121,32,61,32,115, -105,103,110,40,112,120,41,44,32,115,105,103,110,40,112,121,41,13,10,32, -32,32,32,32,32,32,32,32,32,32,32,116,120,44,32,116,121,32,61,32, -120,49,32,43,32,112,120,44,32,121,49,32,43,32,112,121,13,10,32,32, -32,32,32,32,32,32,101,108,115,101,13,10,32,32,32,32,32,32,32,32, -32,32,32,32,45,45,32,105,110,116,101,114,115,101,99,116,105,110,103,32, -97,110,100,32,109,111,118,105,110,103,32,45,32,109,111,118,101,32,105,110, -32,116,104,101,32,111,112,112,111,115,105,116,101,32,100,105,114,101,99,116, -105,111,110,13,10,32,32,32,32,32,32,32,32,32,32,32,32,108,111,99, -97,108,32,116,105,49,44,32,95,13,10,32,32,32,32,32,32,32,32,32, -32,32,32,116,105,49,44,95,44,110,120,44,110,121,32,61,32,114,101,99, -116,95,103,101,116,83,101,103,109,101,110,116,73,110,116,101,114,115,101,99, -116,105,111,110,73,110,100,105,99,101,115,40,120,44,121,44,119,44,104,44, -32,48,44,48,44,100,120,44,100,121,44,32,45,109,97,116,104,46,104,117, -103,101,44,32,49,41,13,10,32,32,32,32,32,32,32,32,32,32,32,32, -105,102,32,110,111,116,32,116,105,49,32,116,104,101,110,32,114,101,116,117, -114,110,32,101,110,100,13,10,32,32,32,32,32,32,32,32,32,32,32,32, -116,120,44,32,116,121,32,61,32,120,49,32,43,32,100,120,32,42,32,116, -105,49,44,32,121,49,32,43,32,100,121,32,42,32,116,105,49,13,10,32, -32,32,32,32,32,32,32,101,110,100,13,10,32,32,32,32,101,108,115,101, -32,45,45,32,116,117,110,110,101,108,13,10,32,32,32,32,32,32,32,32, -116,120,44,32,116,121,32,61,32,120,49,32,43,32,100,120,32,42,32,116, -105,44,32,121,49,32,43,32,100,121,32,42,32,116,105,13,10,32,32,32, -32,101,110,100,13,10,13,10,32,32,32,32,114,101,116,117,114,110,32,123, -13,10,32,32,32,32,32,32,32,32,111,118,101,114,108,97,112,115,32,32, -32,32,61,32,111,118,101,114,108,97,112,115,44,13,10,32,32,32,32,32, -32,32,32,116,105,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,61,32,116,105,44,13,10,32,32,32,32,32,32,32,32,109,111,118,101, -32,32,32,32,32,32,32,32,32,32,32,32,61,32,123,120,32,61,32,100, -120,44,32,121,32,61,32,100,121,125,44,13,10,32,32,32,32,32,32,32, -32,110,111,114,109,97,108,32,32,32,32,32,32,32,32,61,32,123,120,32, -61,32,110,120,44,32,121,32,61,32,110,121,125,44,13,10,32,32,32,32, -32,32,32,32,116,111,117,99,104,32,32,32,32,32,32,32,32,32,61,32, -123,120,32,61,32,116,120,44,32,121,32,61,32,116,121,125,44,13,10,32, -32,32,32,32,32,32,32,105,116,101,109,82,101,99,116,32,32,32,32,61, -32,123,120,32,61,32,120,49,44,32,121,32,61,32,121,49,44,32,119,32, -61,32,119,49,44,32,104,32,61,32,104,49,125,44,13,10,32,32,32,32, -32,32,32,32,111,116,104,101,114,82,101,99,116,32,61,32,123,120,32,61, -32,120,50,44,32,121,32,61,32,121,50,44,32,119,32,61,32,119,50,44, -32,104,32,61,32,104,50,125,13,10,32,32,32,32,125,13,10,101,110,100, -13,10,13,10,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45, -45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45, -45,45,45,45,45,45,13,10,45,45,32,71,114,105,100,32,102,117,110,99, -116,105,111,110,115,13,10,45,45,45,45,45,45,45,45,45,45,45,45,45, -45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45, -45,45,45,45,45,45,45,45,45,13,10,13,10,108,111,99,97,108,32,102, -117,110,99,116,105,111,110,32,103,114,105,100,95,116,111,87,111,114,108,100, -40,99,101,108,108,83,105,122,101,44,32,99,120,44,32,99,121,41,13,10, -32,32,32,32,114,101,116,117,114,110,32,40,99,120,32,45,32,49,41,42, -99,101,108,108,83,105,122,101,44,32,40,99,121,45,49,41,42,99,101,108, -108,83,105,122,101,13,10,101,110,100,13,10,13,10,108,111,99,97,108,32, -102,117,110,99,116,105,111,110,32,103,114,105,100,95,116,111,67,101,108,108, -40,99,101,108,108,83,105,122,101,44,32,120,44,32,121,41,13,10,32,32, -32,32,114,101,116,117,114,110,32,102,108,111,111,114,40,120,32,47,32,99, -101,108,108,83,105,122,101,41,32,43,32,49,44,32,102,108,111,111,114,40, -121,32,47,32,99,101,108,108,83,105,122,101,41,32,43,32,49,13,10,101, -110,100,13,10,13,10,45,45,32,103,114,105,100,95,116,114,97,118,101,114, -115,101,42,32,102,117,110,99,116,105,111,110,115,32,97,114,101,32,98,97, -115,101,100,32,111,110,32,34,65,32,70,97,115,116,32,86,111,120,101,108, -32,84,114,97,118,101,114,115,97,108,32,65,108,103,111,114,105,116,104,109, -32,102,111,114,32,82,97,121,32,84,114,97,99,105,110,103,34,44,13,10, -45,45,32,98,121,32,74,111,104,110,32,65,109,97,110,105,100,101,115,32, -97,110,100,32,65,110,100,114,101,119,32,87,111,111,32,45,32,104,116,116, -112,58,47,47,119,119,119,46,99,115,101,46,121,111,114,107,117,46,99,97, -47,126,97,109,97,110,97,47,114,101,115,101,97,114,99,104,47,103,114,105, -100,46,112,100,102,13,10,45,45,32,73,116,32,104,97,115,32,98,101,101, -110,32,109,111,100,105,102,105,101,100,32,116,111,32,105,110,99,108,117,100, -101,32,98,111,116,104,32,99,101,108,108,115,32,119,104,101,110,32,116,104, -101,32,114,97,121,32,34,116,111,117,99,104,101,115,32,97,32,103,114,105, -100,32,99,111,114,110,101,114,34,44,13,10,45,45,32,97,110,100,32,119, -105,116,104,32,97,32,100,105,102,102,101,114,101,110,116,32,101,120,105,116, -32,99,111,110,100,105,116,105,111,110,13,10,13,10,108,111,99,97,108,32, -102,117,110,99,116,105,111,110,32,103,114,105,100,95,116,114,97,118,101,114, -115,101,95,105,110,105,116,83,116,101,112,40,99,101,108,108,83,105,122,101, -44,32,99,116,44,32,116,49,44,32,116,50,41,13,10,32,32,32,32,108, -111,99,97,108,32,118,32,61,32,116,50,32,45,32,116,49,13,10,32,32, -32,32,105,102,32,32,32,32,32,32,32,32,32,118,32,62,32,48,32,116, -104,101,110,13,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32, -32,32,32,49,44,32,32,32,32,99,101,108,108,83,105,122,101,32,47,32, -118,44,32,40,40,99,116,32,43,32,118,41,32,42,32,99,101,108,108,83, -105,122,101,32,45,32,116,49,41,32,47,32,118,13,10,32,32,32,32,101, -108,115,101,105,102,32,118,32,60,32,48,32,116,104,101,110,13,10,32,32, -32,32,32,32,32,32,114,101,116,117,114,110,32,45,49,44,32,45,99,101, -108,108,83,105,122,101,32,47,32,118,44,32,40,40,99,116,32,43,32,118, -32,45,32,49,41,32,42,32,99,101,108,108,83,105,122,101,32,45,32,116, -49,41,32,47,32,118,13,10,32,32,32,32,101,108,115,101,13,10,32,32, -32,32,32,32,32,32,114,101,116,117,114,110,32,48,44,32,109,97,116,104, -46,104,117,103,101,44,32,109,97,116,104,46,104,117,103,101,13,10,32,32, -32,32,101,110,100,13,10,101,110,100,13,10,13,10,108,111,99,97,108,32, -102,117,110,99,116,105,111,110,32,103,114,105,100,95,116,114,97,118,101,114, -115,101,40,99,101,108,108,83,105,122,101,44,32,120,49,44,121,49,44,120, -50,44,121,50,44,32,102,41,13,10,32,32,32,32,108,111,99,97,108,32, -99,120,49,44,99,121,49,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,61,32,103,114,105,100,95,116,111,67,101,108,108,40,99,101,108, -108,83,105,122,101,44,32,120,49,44,121,49,41,13,10,32,32,32,32,108, -111,99,97,108,32,99,120,50,44,99,121,50,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,61,32,103,114,105,100,95,116,111,67,101,108, -108,40,99,101,108,108,83,105,122,101,44,32,120,50,44,121,50,41,13,10, -32,32,32,32,108,111,99,97,108,32,115,116,101,112,88,44,32,100,120,44, -32,116,120,32,32,32,32,61,32,103,114,105,100,95,116,114,97,118,101,114, -115,101,95,105,110,105,116,83,116,101,112,40,99,101,108,108,83,105,122,101, -44,32,99,120,49,44,32,120,49,44,32,120,50,41,13,10,32,32,32,32, -108,111,99,97,108,32,115,116,101,112,89,44,32,100,121,44,32,116,121,32, -32,32,32,61,32,103,114,105,100,95,116,114,97,118,101,114,115,101,95,105, -110,105,116,83,116,101,112,40,99,101,108,108,83,105,122,101,44,32,99,121, -49,44,32,121,49,44,32,121,50,41,13,10,32,32,32,32,108,111,99,97, -108,32,99,120,44,99,121,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,61,32,99,120,49,44,99,121,49,13,10,13,10, -32,32,32,32,102,40,99,120,44,32,99,121,41,13,10,13,10,32,32,32, -32,45,45,32,84,104,101,32,100,101,102,97,117,108,116,32,105,109,112,108, -101,109,101,110,116,97,116,105,111,110,32,104,97,100,32,97,110,32,105,110, -102,105,110,105,116,101,32,108,111,111,112,32,112,114,111,98,108,101,109,32, -119,104,101,110,13,10,32,32,32,32,45,45,32,97,112,112,114,111,97,99, -104,105,110,103,32,116,104,101,32,108,97,115,116,32,99,101,108,108,32,105, -110,32,115,111,109,101,32,111,99,99,97,115,115,105,111,110,115,46,32,87, -101,32,102,105,110,105,115,104,32,105,116,101,114,97,116,105,110,103,13,10, -32,32,32,32,45,45,32,119,104,101,110,32,119,101,32,97,114,101,32,42, -110,101,120,116,42,32,116,111,32,116,104,101,32,108,97,115,116,32,99,101, -108,108,13,10,32,32,32,32,119,104,105,108,101,32,97,98,115,40,99,120, -32,45,32,99,120,50,41,32,43,32,97,98,115,40,99,121,32,45,32,99, -121,50,41,32,62,32,49,32,100,111,13,10,32,32,32,32,32,32,32,32, -105,102,32,116,120,32,60,32,116,121,32,116,104,101,110,13,10,32,32,32, -32,32,32,32,32,32,32,32,32,116,120,44,32,99,120,32,61,32,116,120, -32,43,32,100,120,44,32,99,120,32,43,32,115,116,101,112,88,13,10,32, -32,32,32,32,32,32,32,32,32,32,32,102,40,99,120,44,32,99,121,41, -13,10,32,32,32,32,32,32,32,32,101,108,115,101,13,10,32,32,32,32, -32,32,32,32,32,32,32,32,45,45,32,65,100,100,105,116,105,111,110,58, -32,105,110,99,108,117,100,101,32,98,111,116,104,32,99,101,108,108,115,32, -119,104,101,110,32,103,111,105,110,103,32,116,104,114,111,117,103,104,32,99, -111,114,110,101,114,115,13,10,32,32,32,32,32,32,32,32,32,32,32,32, -105,102,32,116,120,32,61,61,32,116,121,32,116,104,101,110,32,102,40,99, -120,32,43,32,115,116,101,112,88,44,32,99,121,41,32,101,110,100,13,10, -32,32,32,32,32,32,32,32,32,32,32,32,116,121,44,32,99,121,32,61, -32,116,121,32,43,32,100,121,44,32,99,121,32,43,32,115,116,101,112,89, -13,10,32,32,32,32,32,32,32,32,32,32,32,32,102,40,99,120,44,32, -99,121,41,13,10,32,32,32,32,32,32,32,32,101,110,100,13,10,32,32, -32,32,101,110,100,13,10,13,10,32,32,32,32,45,45,32,73,102,32,119, -101,32,104,97,118,101,32,110,111,116,32,97,114,114,105,118,101,100,32,116, -111,32,116,104,101,32,108,97,115,116,32,99,101,108,108,44,32,117,115,101, -32,105,116,13,10,32,32,32,32,105,102,32,99,120,32,126,61,32,99,120, -50,32,111,114,32,99,121,32,126,61,32,99,121,50,32,116,104,101,110,32, -102,40,99,120,50,44,32,99,121,50,41,32,101,110,100,13,10,13,10,101, -110,100,13,10,13,10,108,111,99,97,108,32,102,117,110,99,116,105,111,110, -32,103,114,105,100,95,116,111,67,101,108,108,82,101,99,116,40,99,101,108, -108,83,105,122,101,44,32,120,44,121,44,119,44,104,41,13,10,32,32,32, -32,108,111,99,97,108,32,99,120,44,99,121,32,61,32,103,114,105,100,95, -116,111,67,101,108,108,40,99,101,108,108,83,105,122,101,44,32,120,44,32, -121,41,13,10,32,32,32,32,108,111,99,97,108,32,99,114,44,99,98,32, -61,32,99,101,105,108,40,40,120,43,119,41,32,47,32,99,101,108,108,83, -105,122,101,41,44,32,99,101,105,108,40,40,121,43,104,41,32,47,32,99, -101,108,108,83,105,122,101,41,13,10,32,32,32,32,114,101,116,117,114,110, -32,99,120,44,32,99,121,44,32,99,114,32,45,32,99,120,32,43,32,49, -44,32,99,98,32,45,32,99,121,32,43,32,49,13,10,101,110,100,13,10, -13,10,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45, -45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45, -45,45,45,45,13,10,45,45,32,82,101,115,112,111,110,115,101,115,13,10, -45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45, -45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45, -45,45,13,10,13,10,108,111,99,97,108,32,116,111,117,99,104,32,61,32, -102,117,110,99,116,105,111,110,40,119,111,114,108,100,44,32,99,111,108,44, -32,120,44,121,44,119,44,104,44,32,103,111,97,108,88,44,32,103,111,97, -108,89,44,32,102,105,108,116,101,114,41,13,10,32,32,32,32,114,101,116, -117,114,110,32,99,111,108,46,116,111,117,99,104,46,120,44,32,99,111,108, -46,116,111,117,99,104,46,121,44,32,123,125,44,32,48,13,10,101,110,100, -13,10,13,10,108,111,99,97,108,32,99,114,111,115,115,32,61,32,102,117, -110,99,116,105,111,110,40,119,111,114,108,100,44,32,99,111,108,44,32,120, -44,121,44,119,44,104,44,32,103,111,97,108,88,44,32,103,111,97,108,89, -44,32,102,105,108,116,101,114,41,13,10,32,32,32,32,108,111,99,97,108, -32,99,111,108,115,44,32,108,101,110,32,61,32,119,111,114,108,100,58,112, -114,111,106,101,99,116,40,99,111,108,46,105,116,101,109,44,32,120,44,121, -44,119,44,104,44,32,103,111,97,108,88,44,32,103,111,97,108,89,44,32, -102,105,108,116,101,114,41,13,10,32,32,32,32,114,101,116,117,114,110,32, -103,111,97,108,88,44,32,103,111,97,108,89,44,32,99,111,108,115,44,32, -108,101,110,13,10,101,110,100,13,10,13,10,108,111,99,97,108,32,115,108, -105,100,101,32,61,32,102,117,110,99,116,105,111,110,40,119,111,114,108,100, -44,32,99,111,108,44,32,120,44,121,44,119,44,104,44,32,103,111,97,108, -88,44,32,103,111,97,108,89,44,32,102,105,108,116,101,114,41,13,10,32, -32,32,32,103,111,97,108,88,32,61,32,103,111,97,108,88,32,111,114,32, -120,13,10,32,32,32,32,103,111,97,108,89,32,61,32,103,111,97,108,89, -32,111,114,32,121,13,10,13,10,32,32,32,32,108,111,99,97,108,32,116, -99,104,44,32,109,111,118,101,32,32,32,32,61,32,99,111,108,46,116,111, -117,99,104,44,32,99,111,108,46,109,111,118,101,13,10,32,32,32,32,105, -102,32,109,111,118,101,46,120,32,126,61,32,48,32,111,114,32,109,111,118, -101,46,121,32,126,61,32,48,32,116,104,101,110,13,10,32,32,32,32,32, -32,32,32,105,102,32,99,111,108,46,110,111,114,109,97,108,46,120,32,126, -61,32,48,32,116,104,101,110,13,10,32,32,32,32,32,32,32,32,32,32, -32,32,103,111,97,108,88,32,61,32,116,99,104,46,120,13,10,32,32,32, -32,32,32,32,32,101,108,115,101,13,10,32,32,32,32,32,32,32,32,32, -32,32,32,103,111,97,108,89,32,61,32,116,99,104,46,121,13,10,32,32, -32,32,32,32,32,32,101,110,100,13,10,32,32,32,32,101,110,100,13,10, -13,10,32,32,32,32,99,111,108,46,115,108,105,100,101,32,61,32,123,120, -32,61,32,103,111,97,108,88,44,32,121,32,61,32,103,111,97,108,89,125, -13,10,13,10,32,32,32,32,120,44,121,32,61,32,116,99,104,46,120,44, -32,116,99,104,46,121,13,10,32,32,32,32,108,111,99,97,108,32,99,111, -108,115,44,32,108,101,110,32,32,32,32,61,32,119,111,114,108,100,58,112, -114,111,106,101,99,116,40,99,111,108,46,105,116,101,109,44,32,120,44,121, -44,119,44,104,44,32,103,111,97,108,88,44,32,103,111,97,108,89,44,32, -102,105,108,116,101,114,41,13,10,32,32,32,32,114,101,116,117,114,110,32, -103,111,97,108,88,44,32,103,111,97,108,89,44,32,99,111,108,115,44,32, -108,101,110,13,10,101,110,100,13,10,13,10,108,111,99,97,108,32,98,111, -117,110,99,101,32,61,32,102,117,110,99,116,105,111,110,40,119,111,114,108, -100,44,32,99,111,108,44,32,120,44,121,44,119,44,104,44,32,103,111,97, -108,88,44,32,103,111,97,108,89,44,32,102,105,108,116,101,114,41,13,10, -32,32,32,32,103,111,97,108,88,32,61,32,103,111,97,108,88,32,111,114, -32,120,13,10,32,32,32,32,103,111,97,108,89,32,61,32,103,111,97,108, -89,32,111,114,32,121,13,10,13,10,32,32,32,32,108,111,99,97,108,32, -116,99,104,44,32,109,111,118,101,32,61,32,99,111,108,46,116,111,117,99, -104,44,32,99,111,108,46,109,111,118,101,13,10,32,32,32,32,108,111,99, -97,108,32,116,120,44,32,116,121,32,61,32,116,99,104,46,120,44,32,116, -99,104,46,121,13,10,13,10,32,32,32,32,108,111,99,97,108,32,98,120, -44,32,98,121,32,61,32,116,120,44,32,116,121,13,10,13,10,32,32,32, -32,105,102,32,109,111,118,101,46,120,32,126,61,32,48,32,111,114,32,109, -111,118,101,46,121,32,126,61,32,48,32,116,104,101,110,13,10,32,32,32, -32,32,32,32,32,108,111,99,97,108,32,98,110,120,44,32,98,110,121,32, -61,32,103,111,97,108,88,32,45,32,116,120,44,32,103,111,97,108,89,32, -45,32,116,121,13,10,32,32,32,32,32,32,32,32,105,102,32,99,111,108, -46,110,111,114,109,97,108,46,120,32,61,61,32,48,32,116,104,101,110,32, -98,110,121,32,61,32,45,98,110,121,32,101,108,115,101,32,98,110,120,32, -61,32,45,98,110,120,32,101,110,100,13,10,32,32,32,32,32,32,32,32, -98,120,44,32,98,121,32,61,32,116,120,32,43,32,98,110,120,44,32,116, -121,32,43,32,98,110,121,13,10,32,32,32,32,101,110,100,13,10,13,10, -32,32,32,32,99,111,108,46,98,111,117,110,99,101,32,32,32,32,32,61, -32,123,120,32,61,32,98,120,44,32,32,32,32,121,32,61,32,98,121,125, -13,10,32,32,32,32,120,44,121,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,61,32,116,99,104,46,120,44,32,116,99, -104,46,121,13,10,32,32,32,32,103,111,97,108,88,44,32,103,111,97,108, -89,32,61,32,98,120,44,32,98,121,13,10,13,10,32,32,32,32,108,111, -99,97,108,32,99,111,108,115,44,32,108,101,110,32,32,32,32,32,32,32, -32,61,32,119,111,114,108,100,58,112,114,111,106,101,99,116,40,99,111,108, -46,105,116,101,109,44,32,120,44,121,44,119,44,104,44,32,103,111,97,108, -88,44,32,103,111,97,108,89,44,32,102,105,108,116,101,114,41,13,10,32, -32,32,32,114,101,116,117,114,110,32,103,111,97,108,88,44,32,103,111,97, -108,89,44,32,99,111,108,115,44,32,108,101,110,13,10,101,110,100,13,10, -13,10,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45, -45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45, -45,45,45,45,13,10,45,45,32,87,111,114,108,100,13,10,45,45,45,45, -45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45, -45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,13,10, -13,10,108,111,99,97,108,32,87,111,114,108,100,32,61,32,123,125,13,10, -108,111,99,97,108,32,87,111,114,108,100,95,109,116,32,61,32,123,95,95, -105,110,100,101,120,32,61,32,87,111,114,108,100,125,13,10,13,10,45,45, -32,80,114,105,118,97,116,101,32,102,117,110,99,116,105,111,110,115,32,97, -110,100,32,109,101,116,104,111,100,115,13,10,13,10,108,111,99,97,108,32, -102,117,110,99,116,105,111,110,32,115,111,114,116,66,121,87,101,105,103,104, -116,40,97,44,98,41,32,114,101,116,117,114,110,32,97,46,119,101,105,103, -104,116,32,60,32,98,46,119,101,105,103,104,116,32,101,110,100,13,10,13, -10,108,111,99,97,108,32,102,117,110,99,116,105,111,110,32,115,111,114,116, -66,121,84,105,65,110,100,68,105,115,116,97,110,99,101,40,97,44,98,41, -13,10,32,32,32,32,105,102,32,97,46,116,105,32,61,61,32,98,46,116, -105,32,116,104,101,110,13,10,32,32,32,32,32,32,32,32,108,111,99,97, -108,32,105,114,44,32,97,114,44,32,98,114,32,61,32,97,46,105,116,101, -109,82,101,99,116,44,32,97,46,111,116,104,101,114,82,101,99,116,44,32, -98,46,111,116,104,101,114,82,101,99,116,13,10,32,32,32,32,32,32,32, -32,108,111,99,97,108,32,97,100,32,61,32,114,101,99,116,95,103,101,116, -83,113,117,97,114,101,68,105,115,116,97,110,99,101,40,105,114,46,120,44, -105,114,46,121,44,105,114,46,119,44,105,114,46,104,44,32,97,114,46,120, -44,97,114,46,121,44,97,114,46,119,44,97,114,46,104,41,13,10,32,32, -32,32,32,32,32,32,108,111,99,97,108,32,98,100,32,61,32,114,101,99, -116,95,103,101,116,83,113,117,97,114,101,68,105,115,116,97,110,99,101,40, -105,114,46,120,44,105,114,46,121,44,105,114,46,119,44,105,114,46,104,44, -32,98,114,46,120,44,98,114,46,121,44,98,114,46,119,44,98,114,46,104, -41,13,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,97,100, -32,60,32,98,100,13,10,32,32,32,32,101,110,100,13,10,32,32,32,32, -114,101,116,117,114,110,32,97,46,116,105,32,60,32,98,46,116,105,13,10, -101,110,100,13,10,13,10,108,111,99,97,108,32,102,117,110,99,116,105,111, -110,32,97,100,100,73,116,101,109,84,111,67,101,108,108,40,115,101,108,102, -44,32,105,116,101,109,44,32,99,120,44,32,99,121,41,13,10,32,32,32, -32,115,101,108,102,46,114,111,119,115,91,99,121,93,32,61,32,115,101,108, -102,46,114,111,119,115,91,99,121,93,32,111,114,32,115,101,116,109,101,116, -97,116,97,98,108,101,40,123,125,44,32,123,95,95,109,111,100,101,32,61, -32,39,118,39,125,41,13,10,32,32,32,32,108,111,99,97,108,32,114,111, -119,32,61,32,115,101,108,102,46,114,111,119,115,91,99,121,93,13,10,32, -32,32,32,114,111,119,91,99,120,93,32,61,32,114,111,119,91,99,120,93, -32,111,114,32,123,105,116,101,109,67,111,117,110,116,32,61,32,48,44,32, -120,32,61,32,99,120,44,32,121,32,61,32,99,121,44,32,105,116,101,109, -115,32,61,32,115,101,116,109,101,116,97,116,97,98,108,101,40,123,125,44, -32,123,95,95,109,111,100,101,32,61,32,39,107,39,125,41,125,13,10,32, -32,32,32,108,111,99,97,108,32,99,101,108,108,32,61,32,114,111,119,91, -99,120,93,13,10,32,32,32,32,115,101,108,102,46,110,111,110,69,109,112, -116,121,67,101,108,108,115,91,99,101,108,108,93,32,61,32,116,114,117,101, -13,10,32,32,32,32,105,102,32,110,111,116,32,99,101,108,108,46,105,116, -101,109,115,91,105,116,101,109,93,32,116,104,101,110,13,10,32,32,32,32, -32,32,32,32,99,101,108,108,46,105,116,101,109,115,91,105,116,101,109,93, -32,61,32,116,114,117,101,13,10,32,32,32,32,32,32,32,32,99,101,108, -108,46,105,116,101,109,67,111,117,110,116,32,61,32,99,101,108,108,46,105, -116,101,109,67,111,117,110,116,32,43,32,49,13,10,32,32,32,32,101,110, -100,13,10,101,110,100,13,10,13,10,108,111,99,97,108,32,102,117,110,99, -116,105,111,110,32,114,101,109,111,118,101,73,116,101,109,70,114,111,109,67, -101,108,108,40,115,101,108,102,44,32,105,116,101,109,44,32,99,120,44,32, -99,121,41,13,10,32,32,32,32,108,111,99,97,108,32,114,111,119,32,61, -32,115,101,108,102,46,114,111,119,115,91,99,121,93,13,10,32,32,32,32, -105,102,32,110,111,116,32,114,111,119,32,111,114,32,110,111,116,32,114,111, -119,91,99,120,93,32,111,114,32,110,111,116,32,114,111,119,91,99,120,93, -46,105,116,101,109,115,91,105,116,101,109,93,32,116,104,101,110,32,114,101, -116,117,114,110,32,102,97,108,115,101,32,101,110,100,13,10,13,10,32,32, -32,32,108,111,99,97,108,32,99,101,108,108,32,61,32,114,111,119,91,99, -120,93,13,10,32,32,32,32,99,101,108,108,46,105,116,101,109,115,91,105, -116,101,109,93,32,61,32,110,105,108,13,10,32,32,32,32,99,101,108,108, -46,105,116,101,109,67,111,117,110,116,32,61,32,99,101,108,108,46,105,116, -101,109,67,111,117,110,116,32,45,32,49,13,10,32,32,32,32,105,102,32, -99,101,108,108,46,105,116,101,109,67,111,117,110,116,32,61,61,32,48,32, -116,104,101,110,13,10,32,32,32,32,32,32,32,32,115,101,108,102,46,110, -111,110,69,109,112,116,121,67,101,108,108,115,91,99,101,108,108,93,32,61, -32,110,105,108,13,10,32,32,32,32,101,110,100,13,10,32,32,32,32,114, -101,116,117,114,110,32,116,114,117,101,13,10,101,110,100,13,10,13,10,108, -111,99,97,108,32,102,117,110,99,116,105,111,110,32,103,101,116,68,105,99, -116,73,116,101,109,115,73,110,67,101,108,108,82,101,99,116,40,115,101,108, -102,44,32,99,108,44,99,116,44,99,119,44,99,104,41,13,10,32,32,32, -32,108,111,99,97,108,32,105,116,101,109,115,95,100,105,99,116,32,61,32, -123,125,13,10,32,32,32,32,102,111,114,32,99,121,61,99,116,44,99,116, -43,99,104,45,49,32,100,111,13,10,32,32,32,32,32,32,32,32,108,111, -99,97,108,32,114,111,119,32,61,32,115,101,108,102,46,114,111,119,115,91, -99,121,93,13,10,32,32,32,32,32,32,32,32,105,102,32,114,111,119,32, -116,104,101,110,13,10,32,32,32,32,32,32,32,32,32,32,32,32,102,111, -114,32,99,120,61,99,108,44,99,108,43,99,119,45,49,32,100,111,13,10, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,108,111,99,97, -108,32,99,101,108,108,32,61,32,114,111,119,91,99,120,93,13,10,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,105,102,32,99,101,108, -108,32,97,110,100,32,99,101,108,108,46,105,116,101,109,67,111,117,110,116, -32,62,32,48,32,116,104,101,110,32,45,45,32,110,111,32,99,101,108,108, -46,105,116,101,109,67,111,117,110,116,32,62,32,49,32,98,101,99,97,117, -115,101,32,116,117,110,110,101,108,105,110,103,13,10,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,102,111,114,32,105,116, -101,109,44,95,32,105,110,32,112,97,105,114,115,40,99,101,108,108,46,105, -116,101,109,115,41,32,100,111,13,10,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,105,116,101,109,115,95, -100,105,99,116,91,105,116,101,109,93,32,61,32,116,114,117,101,13,10,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,101, -110,100,13,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -101,110,100,13,10,32,32,32,32,32,32,32,32,32,32,32,32,101,110,100, -13,10,32,32,32,32,32,32,32,32,101,110,100,13,10,32,32,32,32,101, -110,100,13,10,13,10,32,32,32,32,114,101,116,117,114,110,32,105,116,101, -109,115,95,100,105,99,116,13,10,101,110,100,13,10,13,10,108,111,99,97, -108,32,102,117,110,99,116,105,111,110,32,103,101,116,67,101,108,108,115,84, -111,117,99,104,101,100,66,121,83,101,103,109,101,110,116,40,115,101,108,102, -44,32,120,49,44,121,49,44,120,50,44,121,50,41,13,10,13,10,32,32, -32,32,108,111,99,97,108,32,99,101,108,108,115,44,32,99,101,108,108,115, -76,101,110,44,32,118,105,115,105,116,101,100,32,61,32,123,125,44,32,48, -44,32,123,125,13,10,13,10,32,32,32,32,103,114,105,100,95,116,114,97, -118,101,114,115,101,40,115,101,108,102,46,99,101,108,108,83,105,122,101,44, -32,120,49,44,121,49,44,120,50,44,121,50,44,32,102,117,110,99,116,105, -111,110,40,99,120,44,32,99,121,41,13,10,32,32,32,32,32,32,32,32, -108,111,99,97,108,32,114,111,119,32,32,32,32,61,32,115,101,108,102,46, -114,111,119,115,91,99,121,93,13,10,32,32,32,32,32,32,32,32,105,102, -32,110,111,116,32,114,111,119,32,116,104,101,110,32,114,101,116,117,114,110, -32,101,110,100,13,10,32,32,32,32,32,32,32,32,108,111,99,97,108,32, -99,101,108,108,32,61,32,114,111,119,91,99,120,93,13,10,32,32,32,32, -32,32,32,32,105,102,32,110,111,116,32,99,101,108,108,32,111,114,32,118, -105,115,105,116,101,100,91,99,101,108,108,93,32,116,104,101,110,32,114,101, -116,117,114,110,32,101,110,100,13,10,13,10,32,32,32,32,32,32,32,32, -118,105,115,105,116,101,100,91,99,101,108,108,93,32,61,32,116,114,117,101, -13,10,32,32,32,32,32,32,32,32,99,101,108,108,115,76,101,110,32,61, -32,99,101,108,108,115,76,101,110,32,43,32,49,13,10,32,32,32,32,32, -32,32,32,99,101,108,108,115,91,99,101,108,108,115,76,101,110,93,32,61, -32,99,101,108,108,13,10,32,32,32,32,101,110,100,41,13,10,13,10,32, -32,32,32,114,101,116,117,114,110,32,99,101,108,108,115,44,32,99,101,108, -108,115,76,101,110,13,10,101,110,100,13,10,13,10,108,111,99,97,108,32, -102,117,110,99,116,105,111,110,32,103,101,116,73,110,102,111,65,98,111,117, -116,73,116,101,109,115,84,111,117,99,104,101,100,66,121,83,101,103,109,101, -110,116,40,115,101,108,102,44,32,120,49,44,121,49,44,32,120,50,44,121, -50,44,32,102,105,108,116,101,114,41,13,10,32,32,32,32,108,111,99,97, -108,32,99,101,108,108,115,44,32,108,101,110,32,61,32,103,101,116,67,101, -108,108,115,84,111,117,99,104,101,100,66,121,83,101,103,109,101,110,116,40, -115,101,108,102,44,32,120,49,44,121,49,44,120,50,44,121,50,41,13,10, -32,32,32,32,108,111,99,97,108,32,99,101,108,108,44,32,114,101,99,116, -44,32,108,44,116,44,119,44,104,44,32,116,105,49,44,116,105,50,44,32, -116,105,105,48,44,116,105,105,49,13,10,32,32,32,32,108,111,99,97,108, -32,118,105,115,105,116,101,100,44,32,105,116,101,109,73,110,102,111,44,32, -105,116,101,109,73,110,102,111,76,101,110,32,61,32,123,125,44,123,125,44, -48,13,10,32,32,32,32,102,111,114,32,105,61,49,44,108,101,110,32,100, -111,13,10,32,32,32,32,32,32,32,32,99,101,108,108,32,61,32,99,101, -108,108,115,91,105,93,13,10,32,32,32,32,32,32,32,32,102,111,114,32, -105,116,101,109,32,105,110,32,112,97,105,114,115,40,99,101,108,108,46,105, -116,101,109,115,41,32,100,111,13,10,32,32,32,32,32,32,32,32,32,32, -32,32,105,102,32,110,111,116,32,118,105,115,105,116,101,100,91,105,116,101, -109,93,32,116,104,101,110,13,10,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,118,105,115,105,116,101,100,91,105,116,101,109,93,32,32, -32,32,61,32,116,114,117,101,13,10,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,105,102,32,40,110,111,116,32,102,105,108,116,101,114, -32,111,114,32,102,105,108,116,101,114,40,105,116,101,109,41,41,32,116,104, -101,110,13,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,114,101,99,116,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,61,32,115,101,108,102,46,114,101,99,116, -115,91,105,116,101,109,93,13,10,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,108,44,116,44,119,44,104,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,61,32,114,101,99,116,46,120, -44,114,101,99,116,46,121,44,114,101,99,116,46,119,44,114,101,99,116,46, -104,13,10,13,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,116,105,49,44,116,105,50,32,61,32,114,101,99,116,95, -103,101,116,83,101,103,109,101,110,116,73,110,116,101,114,115,101,99,116,105, -111,110,73,110,100,105,99,101,115,40,108,44,116,44,119,44,104,44,32,120, -49,44,121,49,44,32,120,50,44,121,50,44,32,48,44,32,49,41,13,10, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -105,102,32,116,105,49,32,97,110,100,32,40,40,48,32,60,32,116,105,49, -32,97,110,100,32,116,105,49,32,60,32,49,41,32,111,114,32,40,48,32, -60,32,116,105,50,32,97,110,100,32,116,105,50,32,60,32,49,41,41,32, -116,104,101,110,13,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,45,45,32,116,104,101,32,115,111,114, -116,105,110,103,32,105,115,32,97,99,99,111,114,100,105,110,103,32,116,111, -32,116,104,101,32,116,32,111,102,32,97,110,32,105,110,102,105,110,105,116, -101,32,108,105,110,101,44,32,110,111,116,32,116,104,101,32,115,101,103,109, -101,110,116,13,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,116,105,105,48,44,116,105,105,49,32,32, -32,32,32,32,32,32,61,32,114,101,99,116,95,103,101,116,83,101,103,109, -101,110,116,73,110,116,101,114,115,101,99,116,105,111,110,73,110,100,105,99, -101,115,40,108,44,116,44,119,44,104,44,32,120,49,44,121,49,44,32,120, -50,44,121,50,44,32,45,109,97,116,104,46,104,117,103,101,44,32,109,97, -116,104,46,104,117,103,101,41,13,10,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,105,116,101,109,73,110, -102,111,76,101,110,32,32,32,32,61,32,105,116,101,109,73,110,102,111,76, -101,110,32,43,32,49,13,10,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,105,116,101,109,73,110,102,111, -91,105,116,101,109,73,110,102,111,76,101,110,93,32,61,32,123,105,116,101, -109,32,61,32,105,116,101,109,44,32,116,105,49,32,61,32,116,105,49,44, -32,116,105,50,32,61,32,116,105,50,44,32,119,101,105,103,104,116,32,61, -32,109,105,110,40,116,105,105,48,44,116,105,105,49,41,125,13,10,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,101,110, -100,13,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,101, -110,100,13,10,32,32,32,32,32,32,32,32,32,32,32,32,101,110,100,13, -10,32,32,32,32,32,32,32,32,101,110,100,13,10,32,32,32,32,101,110, -100,13,10,32,32,32,32,116,97,98,108,101,46,115,111,114,116,40,105,116, -101,109,73,110,102,111,44,32,115,111,114,116,66,121,87,101,105,103,104,116, -41,13,10,32,32,32,32,114,101,116,117,114,110,32,105,116,101,109,73,110, -102,111,44,32,105,116,101,109,73,110,102,111,76,101,110,13,10,101,110,100, -13,10,13,10,108,111,99,97,108,32,102,117,110,99,116,105,111,110,32,103, -101,116,82,101,115,112,111,110,115,101,66,121,78,97,109,101,40,115,101,108, -102,44,32,110,97,109,101,41,13,10,32,32,32,32,108,111,99,97,108,32, -114,101,115,112,111,110,115,101,32,61,32,115,101,108,102,46,114,101,115,112, -111,110,115,101,115,91,110,97,109,101,93,13,10,32,32,32,32,105,102,32, -110,111,116,32,114,101,115,112,111,110,115,101,32,116,104,101,110,13,10,32, -32,32,32,32,32,32,32,101,114,114,111,114,40,40,39,85,110,107,110,111, -119,110,32,99,111,108,108,105,115,105,111,110,32,116,121,112,101,58,32,37, -115,32,40,37,115,41,39,41,58,102,111,114,109,97,116,40,110,97,109,101, -44,32,116,121,112,101,40,110,97,109,101,41,41,41,13,10,32,32,32,32, -101,110,100,13,10,32,32,32,32,114,101,116,117,114,110,32,114,101,115,112, -111,110,115,101,13,10,101,110,100,13,10,13,10,13,10,45,45,32,77,105, -115,99,32,80,117,98,108,105,99,32,77,101,116,104,111,100,115,13,10,13, -10,102,117,110,99,116,105,111,110,32,87,111,114,108,100,58,97,100,100,82, -101,115,112,111,110,115,101,40,110,97,109,101,44,32,114,101,115,112,111,110, -115,101,41,13,10,32,32,32,32,115,101,108,102,46,114,101,115,112,111,110, -115,101,115,91,110,97,109,101,93,32,61,32,114,101,115,112,111,110,115,101, -13,10,101,110,100,13,10,13,10,102,117,110,99,116,105,111,110,32,87,111, -114,108,100,58,112,114,111,106,101,99,116,40,105,116,101,109,44,32,120,44, -121,44,119,44,104,44,32,103,111,97,108,88,44,32,103,111,97,108,89,44, -32,102,105,108,116,101,114,41,13,10,32,32,32,32,97,115,115,101,114,116, -73,115,82,101,99,116,40,120,44,121,44,119,44,104,41,13,10,13,10,32, -32,32,32,103,111,97,108,88,32,61,32,103,111,97,108,88,32,111,114,32, -120,13,10,32,32,32,32,103,111,97,108,89,32,61,32,103,111,97,108,89, -32,111,114,32,121,13,10,32,32,32,32,102,105,108,116,101,114,32,32,32, -32,61,32,102,105,108,116,101,114,32,32,32,32,111,114,32,100,101,102,97, -117,108,116,70,105,108,116,101,114,13,10,13,10,32,32,32,32,108,111,99, -97,108,32,99,111,108,108,105,115,105,111,110,115,44,32,108,101,110,32,61, -32,123,125,44,32,48,13,10,13,10,32,32,32,32,108,111,99,97,108,32, -118,105,115,105,116,101,100,32,61,32,123,125,13,10,32,32,32,32,105,102, -32,105,116,101,109,32,126,61,32,110,105,108,32,116,104,101,110,32,118,105, -115,105,116,101,100,91,105,116,101,109,93,32,61,32,116,114,117,101,32,101, -110,100,13,10,13,10,32,32,32,32,45,45,32,84,104,105,115,32,99,111, -117,108,100,32,112,114,111,98,97,98,108,121,32,98,101,32,100,111,110,101, -32,119,105,116,104,32,108,101,115,115,32,99,101,108,108,115,32,117,115,105, -110,103,32,97,32,112,111,108,121,103,111,110,32,114,97,115,116,101,114,32, -111,118,101,114,32,116,104,101,32,99,101,108,108,115,32,105,110,115,116,101, -97,100,32,111,102,32,97,13,10,32,32,32,32,45,45,32,98,111,117,110, -100,105,110,103,32,114,101,99,116,32,111,102,32,116,104,101,32,119,104,111, -108,101,32,109,111,118,101,109,101,110,116,46,32,67,111,110,100,105,116,105, -111,110,97,108,32,116,111,32,98,117,105,108,100,105,110,103,32,97,32,113, -117,101,114,121,80,111,108,121,103,111,110,32,109,101,116,104,111,100,13,10, -32,32,32,32,108,111,99,97,108,32,116,108,44,32,116,116,32,61,32,109, -105,110,40,103,111,97,108,88,44,32,120,41,44,32,32,32,32,32,32,32, -32,32,32,32,32,32,109,105,110,40,103,111,97,108,89,44,32,121,41,13, -10,32,32,32,32,108,111,99,97,108,32,116,114,44,32,116,98,32,61,32, -109,97,120,40,103,111,97,108,88,32,43,32,119,44,32,120,43,119,41,44, -32,109,97,120,40,103,111,97,108,89,32,43,32,104,44,32,121,43,104,41, -13,10,32,32,32,32,108,111,99,97,108,32,116,119,44,32,116,104,32,61, -32,116,114,45,116,108,44,32,116,98,45,116,116,13,10,13,10,32,32,32, -32,108,111,99,97,108,32,99,108,44,99,116,44,99,119,44,99,104,32,61, -32,103,114,105,100,95,116,111,67,101,108,108,82,101,99,116,40,115,101,108, -102,46,99,101,108,108,83,105,122,101,44,32,116,108,44,116,116,44,116,119, -44,116,104,41,13,10,13,10,32,32,32,32,108,111,99,97,108,32,100,105, -99,116,73,116,101,109,115,73,110,67,101,108,108,82,101,99,116,32,61,32, -103,101,116,68,105,99,116,73,116,101,109,115,73,110,67,101,108,108,82,101, -99,116,40,115,101,108,102,44,32,99,108,44,99,116,44,99,119,44,99,104, -41,13,10,13,10,32,32,32,32,102,111,114,32,111,116,104,101,114,44,95, -32,105,110,32,112,97,105,114,115,40,100,105,99,116,73,116,101,109,115,73, -110,67,101,108,108,82,101,99,116,41,32,100,111,13,10,32,32,32,32,32, -32,32,32,105,102,32,110,111,116,32,118,105,115,105,116,101,100,91,111,116, -104,101,114,93,32,116,104,101,110,13,10,32,32,32,32,32,32,32,32,32, -32,32,32,118,105,115,105,116,101,100,91,111,116,104,101,114,93,32,61,32, -116,114,117,101,13,10,13,10,32,32,32,32,32,32,32,32,32,32,32,32, -108,111,99,97,108,32,114,101,115,112,111,110,115,101,78,97,109,101,32,61, -32,102,105,108,116,101,114,40,105,116,101,109,44,32,111,116,104,101,114,41, -13,10,32,32,32,32,32,32,32,32,32,32,32,32,105,102,32,114,101,115, -112,111,110,115,101,78,97,109,101,32,116,104,101,110,13,10,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,108,111,99,97,108,32,111,120, -44,111,121,44,111,119,44,111,104,32,32,32,32,32,61,32,115,101,108,102, -58,103,101,116,82,101,99,116,40,111,116,104,101,114,41,13,10,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,108,111,99,97,108,32,99, -111,108,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,61,32,114,101,99,116,95,100,101,116,101,99,116,67,111,108,108, -105,115,105,111,110,40,120,44,121,44,119,44,104,44,32,111,120,44,111,121, -44,111,119,44,111,104,44,32,103,111,97,108,88,44,32,103,111,97,108,89, -41,13,10,13,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,105,102,32,99,111,108,32,116,104,101,110,13,10,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,99,111,108,46,111,116, -104,101,114,32,32,32,32,32,32,32,32,61,32,111,116,104,101,114,13,10, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -99,111,108,46,105,116,101,109,32,32,32,32,32,32,32,32,32,61,32,105, -116,101,109,13,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,99,111,108,46,116,121,112,101,32,32,32,32,32,32,32, -32,32,61,32,114,101,115,112,111,110,115,101,78,97,109,101,13,10,13,10, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -108,101,110,32,61,32,108,101,110,32,43,32,49,13,10,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,99,111,108,108,105, -115,105,111,110,115,91,108,101,110,93,32,61,32,99,111,108,13,10,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,101,110,100,13,10,32, -32,32,32,32,32,32,32,32,32,32,32,101,110,100,13,10,32,32,32,32, -32,32,32,32,101,110,100,13,10,32,32,32,32,101,110,100,13,10,13,10, -32,32,32,32,116,97,98,108,101,46,115,111,114,116,40,99,111,108,108,105, -115,105,111,110,115,44,32,115,111,114,116,66,121,84,105,65,110,100,68,105, -115,116,97,110,99,101,41,13,10,13,10,32,32,32,32,114,101,116,117,114, -110,32,99,111,108,108,105,115,105,111,110,115,44,32,108,101,110,13,10,101, -110,100,13,10,13,10,102,117,110,99,116,105,111,110,32,87,111,114,108,100, -58,99,111,117,110,116,67,101,108,108,115,40,41,13,10,32,32,32,32,108, -111,99,97,108,32,99,111,117,110,116,32,61,32,48,13,10,32,32,32,32, -102,111,114,32,95,44,114,111,119,32,105,110,32,112,97,105,114,115,40,115, -101,108,102,46,114,111,119,115,41,32,100,111,13,10,32,32,32,32,32,32, -32,32,102,111,114,32,95,44,95,32,105,110,32,112,97,105,114,115,40,114, -111,119,41,32,100,111,13,10,32,32,32,32,32,32,32,32,32,32,32,32, -99,111,117,110,116,32,61,32,99,111,117,110,116,32,43,32,49,13,10,32, -32,32,32,32,32,32,32,101,110,100,13,10,32,32,32,32,101,110,100,13, -10,32,32,32,32,114,101,116,117,114,110,32,99,111,117,110,116,13,10,101, -110,100,13,10,13,10,102,117,110,99,116,105,111,110,32,87,111,114,108,100, -58,104,97,115,73,116,101,109,40,105,116,101,109,41,13,10,32,32,32,32, -114,101,116,117,114,110,32,110,111,116,32,110,111,116,32,115,101,108,102,46, -114,101,99,116,115,91,105,116,101,109,93,13,10,101,110,100,13,10,13,10, -102,117,110,99,116,105,111,110,32,87,111,114,108,100,58,103,101,116,73,116, -101,109,115,40,41,13,10,32,32,32,32,108,111,99,97,108,32,105,116,101, -109,115,44,32,108,101,110,32,61,32,123,125,44,32,48,13,10,32,32,32, -32,102,111,114,32,105,116,101,109,44,95,32,105,110,32,112,97,105,114,115, -40,115,101,108,102,46,114,101,99,116,115,41,32,100,111,13,10,32,32,32, -32,32,32,32,32,108,101,110,32,61,32,108,101,110,32,43,32,49,13,10, -32,32,32,32,32,32,32,32,105,116,101,109,115,91,108,101,110,93,32,61, -32,105,116,101,109,13,10,32,32,32,32,101,110,100,13,10,32,32,32,32, -114,101,116,117,114,110,32,105,116,101,109,115,44,32,108,101,110,13,10,101, -110,100,13,10,13,10,102,117,110,99,116,105,111,110,32,87,111,114,108,100, -58,99,111,117,110,116,73,116,101,109,115,40,41,13,10,32,32,32,32,108, -111,99,97,108,32,108,101,110,32,61,32,48,13,10,32,32,32,32,102,111, -114,32,95,32,105,110,32,112,97,105,114,115,40,115,101,108,102,46,114,101, -99,116,115,41,32,100,111,32,108,101,110,32,61,32,108,101,110,32,43,32, -49,32,101,110,100,13,10,32,32,32,32,114,101,116,117,114,110,32,108,101, -110,13,10,101,110,100,13,10,13,10,102,117,110,99,116,105,111,110,32,87, -111,114,108,100,58,103,101,116,82,101,99,116,40,105,116,101,109,41,13,10, -32,32,32,32,108,111,99,97,108,32,114,101,99,116,32,61,32,115,101,108, -102,46,114,101,99,116,115,91,105,116,101,109,93,13,10,32,32,32,32,105, -102,32,110,111,116,32,114,101,99,116,32,116,104,101,110,13,10,32,32,32, -32,32,32,32,32,101,114,114,111,114,40,39,73,116,101,109,32,39,32,46, -46,32,116,111,115,116,114,105,110,103,40,105,116,101,109,41,32,46,46,32, -39,32,109,117,115,116,32,98,101,32,97,100,100,101,100,32,116,111,32,116, -104,101,32,119,111,114,108,100,32,98,101,102,111,114,101,32,103,101,116,116, -105,110,103,32,105,116,115,32,114,101,99,116,46,32,85,115,101,32,119,111, -114,108,100,58,97,100,100,40,105,116,101,109,44,32,120,44,121,44,119,44, -104,41,32,116,111,32,97,100,100,32,105,116,32,102,105,114,115,116,46,39, -41,13,10,32,32,32,32,101,110,100,13,10,32,32,32,32,114,101,116,117, -114,110,32,114,101,99,116,46,120,44,32,114,101,99,116,46,121,44,32,114, -101,99,116,46,119,44,32,114,101,99,116,46,104,13,10,101,110,100,13,10, -13,10,102,117,110,99,116,105,111,110,32,87,111,114,108,100,58,116,111,87, -111,114,108,100,40,99,120,44,32,99,121,41,13,10,32,32,32,32,114,101, -116,117,114,110,32,103,114,105,100,95,116,111,87,111,114,108,100,40,115,101, -108,102,46,99,101,108,108,83,105,122,101,44,32,99,120,44,32,99,121,41, -13,10,101,110,100,13,10,13,10,102,117,110,99,116,105,111,110,32,87,111, -114,108,100,58,116,111,67,101,108,108,40,120,44,121,41,13,10,32,32,32, -32,114,101,116,117,114,110,32,103,114,105,100,95,116,111,67,101,108,108,40, -115,101,108,102,46,99,101,108,108,83,105,122,101,44,32,120,44,32,121,41, -13,10,101,110,100,13,10,13,10,13,10,45,45,45,32,81,117,101,114,121, -32,109,101,116,104,111,100,115,13,10,13,10,102,117,110,99,116,105,111,110, -32,87,111,114,108,100,58,113,117,101,114,121,82,101,99,116,40,120,44,121, -44,119,44,104,44,32,102,105,108,116,101,114,41,13,10,13,10,32,32,32, -32,97,115,115,101,114,116,73,115,82,101,99,116,40,120,44,121,44,119,44, -104,41,13,10,13,10,32,32,32,32,108,111,99,97,108,32,99,108,44,99, -116,44,99,119,44,99,104,32,61,32,103,114,105,100,95,116,111,67,101,108, -108,82,101,99,116,40,115,101,108,102,46,99,101,108,108,83,105,122,101,44, -32,120,44,121,44,119,44,104,41,13,10,32,32,32,32,108,111,99,97,108, -32,100,105,99,116,73,116,101,109,115,73,110,67,101,108,108,82,101,99,116, -32,61,32,103,101,116,68,105,99,116,73,116,101,109,115,73,110,67,101,108, -108,82,101,99,116,40,115,101,108,102,44,32,99,108,44,99,116,44,99,119, -44,99,104,41,13,10,13,10,32,32,32,32,108,111,99,97,108,32,105,116, -101,109,115,44,32,108,101,110,32,61,32,123,125,44,32,48,13,10,13,10, -32,32,32,32,108,111,99,97,108,32,114,101,99,116,13,10,32,32,32,32, -102,111,114,32,105,116,101,109,44,95,32,105,110,32,112,97,105,114,115,40, -100,105,99,116,73,116,101,109,115,73,110,67,101,108,108,82,101,99,116,41, -32,100,111,13,10,32,32,32,32,32,32,32,32,114,101,99,116,32,61,32, -115,101,108,102,46,114,101,99,116,115,91,105,116,101,109,93,13,10,32,32, -32,32,32,32,32,32,105,102,32,40,110,111,116,32,102,105,108,116,101,114, -32,111,114,32,102,105,108,116,101,114,40,105,116,101,109,41,41,13,10,32, -32,32,32,32,32,32,32,97,110,100,32,114,101,99,116,95,105,115,73,110, -116,101,114,115,101,99,116,105,110,103,40,120,44,121,44,119,44,104,44,32, -114,101,99,116,46,120,44,32,114,101,99,116,46,121,44,32,114,101,99,116, -46,119,44,32,114,101,99,116,46,104,41,13,10,32,32,32,32,32,32,32, -32,116,104,101,110,13,10,32,32,32,32,32,32,32,32,32,32,32,32,108, -101,110,32,61,32,108,101,110,32,43,32,49,13,10,32,32,32,32,32,32, -32,32,32,32,32,32,105,116,101,109,115,91,108,101,110,93,32,61,32,105, -116,101,109,13,10,32,32,32,32,32,32,32,32,101,110,100,13,10,32,32, -32,32,101,110,100,13,10,13,10,32,32,32,32,114,101,116,117,114,110,32, -105,116,101,109,115,44,32,108,101,110,13,10,101,110,100,13,10,13,10,102, -117,110,99,116,105,111,110,32,87,111,114,108,100,58,113,117,101,114,121,80, -111,105,110,116,40,120,44,121,44,32,102,105,108,116,101,114,41,13,10,32, -32,32,32,108,111,99,97,108,32,99,120,44,99,121,32,61,32,115,101,108, -102,58,116,111,67,101,108,108,40,120,44,121,41,13,10,32,32,32,32,108, -111,99,97,108,32,100,105,99,116,73,116,101,109,115,73,110,67,101,108,108, -82,101,99,116,32,61,32,103,101,116,68,105,99,116,73,116,101,109,115,73, -110,67,101,108,108,82,101,99,116,40,115,101,108,102,44,32,99,120,44,99, -121,44,49,44,49,41,13,10,13,10,32,32,32,32,108,111,99,97,108,32, -105,116,101,109,115,44,32,108,101,110,32,61,32,123,125,44,32,48,13,10, -13,10,32,32,32,32,108,111,99,97,108,32,114,101,99,116,13,10,32,32, -32,32,102,111,114,32,105,116,101,109,44,95,32,105,110,32,112,97,105,114, -115,40,100,105,99,116,73,116,101,109,115,73,110,67,101,108,108,82,101,99, -116,41,32,100,111,13,10,32,32,32,32,32,32,32,32,114,101,99,116,32, -61,32,115,101,108,102,46,114,101,99,116,115,91,105,116,101,109,93,13,10, -32,32,32,32,32,32,32,32,105,102,32,40,110,111,116,32,102,105,108,116, -101,114,32,111,114,32,102,105,108,116,101,114,40,105,116,101,109,41,41,13, -10,32,32,32,32,32,32,32,32,97,110,100,32,114,101,99,116,95,99,111, -110,116,97,105,110,115,80,111,105,110,116,40,114,101,99,116,46,120,44,32, -114,101,99,116,46,121,44,32,114,101,99,116,46,119,44,32,114,101,99,116, -46,104,44,32,120,44,32,121,41,13,10,32,32,32,32,32,32,32,32,116, -104,101,110,13,10,32,32,32,32,32,32,32,32,32,32,32,32,108,101,110, -32,61,32,108,101,110,32,43,32,49,13,10,32,32,32,32,32,32,32,32, -32,32,32,32,105,116,101,109,115,91,108,101,110,93,32,61,32,105,116,101, -109,13,10,32,32,32,32,32,32,32,32,101,110,100,13,10,32,32,32,32, -101,110,100,13,10,13,10,32,32,32,32,114,101,116,117,114,110,32,105,116, -101,109,115,44,32,108,101,110,13,10,101,110,100,13,10,13,10,102,117,110, -99,116,105,111,110,32,87,111,114,108,100,58,113,117,101,114,121,83,101,103, -109,101,110,116,40,120,49,44,32,121,49,44,32,120,50,44,32,121,50,44, -32,102,105,108,116,101,114,41,13,10,32,32,32,32,108,111,99,97,108,32, -105,116,101,109,73,110,102,111,44,32,108,101,110,32,61,32,103,101,116,73, -110,102,111,65,98,111,117,116,73,116,101,109,115,84,111,117,99,104,101,100, -66,121,83,101,103,109,101,110,116,40,115,101,108,102,44,32,120,49,44,32, -121,49,44,32,120,50,44,32,121,50,44,32,102,105,108,116,101,114,41,13, -10,32,32,32,32,108,111,99,97,108,32,105,116,101,109,115,32,61,32,123, -125,13,10,32,32,32,32,102,111,114,32,105,61,49,44,32,108,101,110,32, -100,111,13,10,32,32,32,32,32,32,32,32,105,116,101,109,115,91,105,93, -32,61,32,105,116,101,109,73,110,102,111,91,105,93,46,105,116,101,109,13, -10,32,32,32,32,101,110,100,13,10,32,32,32,32,114,101,116,117,114,110, -32,105,116,101,109,115,44,32,108,101,110,13,10,101,110,100,13,10,13,10, -102,117,110,99,116,105,111,110,32,87,111,114,108,100,58,113,117,101,114,121, -83,101,103,109,101,110,116,87,105,116,104,67,111,111,114,100,115,40,120,49, -44,32,121,49,44,32,120,50,44,32,121,50,44,32,102,105,108,116,101,114, -41,13,10,32,32,32,32,108,111,99,97,108,32,105,116,101,109,73,110,102, -111,44,32,108,101,110,32,61,32,103,101,116,73,110,102,111,65,98,111,117, -116,73,116,101,109,115,84,111,117,99,104,101,100,66,121,83,101,103,109,101, -110,116,40,115,101,108,102,44,32,120,49,44,32,121,49,44,32,120,50,44, -32,121,50,44,32,102,105,108,116,101,114,41,13,10,32,32,32,32,108,111, -99,97,108,32,100,120,44,32,100,121,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,61,32,120,50,45,120,49,44,32,121,50,45,121,49, -13,10,32,32,32,32,108,111,99,97,108,32,105,110,102,111,44,32,116,105, -49,44,32,116,105,50,13,10,32,32,32,32,102,111,114,32,105,61,49,44, -32,108,101,110,32,100,111,13,10,32,32,32,32,32,32,32,32,105,110,102, -111,32,32,32,32,61,32,105,116,101,109,73,110,102,111,91,105,93,13,10, -32,32,32,32,32,32,32,32,116,105,49,32,32,32,32,32,61,32,105,110, -102,111,46,116,105,49,13,10,32,32,32,32,32,32,32,32,116,105,50,32, -32,32,32,32,61,32,105,110,102,111,46,116,105,50,13,10,13,10,32,32, -32,32,32,32,32,32,105,110,102,111,46,119,101,105,103,104,116,32,32,32, -32,61,32,110,105,108,13,10,32,32,32,32,32,32,32,32,105,110,102,111, -46,120,49,32,32,32,32,32,32,32,32,32,32,32,32,61,32,120,49,32, -43,32,100,120,32,42,32,116,105,49,13,10,32,32,32,32,32,32,32,32, -105,110,102,111,46,121,49,32,32,32,32,32,32,32,32,32,32,32,32,61, -32,121,49,32,43,32,100,121,32,42,32,116,105,49,13,10,32,32,32,32, -32,32,32,32,105,110,102,111,46,120,50,32,32,32,32,32,32,32,32,32, -32,32,32,61,32,120,49,32,43,32,100,120,32,42,32,116,105,50,13,10, -32,32,32,32,32,32,32,32,105,110,102,111,46,121,50,32,32,32,32,32, -32,32,32,32,32,32,32,61,32,121,49,32,43,32,100,121,32,42,32,116, -105,50,13,10,32,32,32,32,101,110,100,13,10,32,32,32,32,114,101,116, -117,114,110,32,105,116,101,109,73,110,102,111,44,32,108,101,110,13,10,101, -110,100,13,10,13,10,13,10,45,45,45,32,77,97,105,110,32,109,101,116, -104,111,100,115,13,10,13,10,102,117,110,99,116,105,111,110,32,87,111,114, -108,100,58,97,100,100,40,105,116,101,109,44,32,120,44,121,44,119,44,104, -41,13,10,32,32,32,32,108,111,99,97,108,32,114,101,99,116,32,61,32, -115,101,108,102,46,114,101,99,116,115,91,105,116,101,109,93,13,10,32,32, -32,32,105,102,32,114,101,99,116,32,116,104,101,110,13,10,32,32,32,32, -32,32,32,32,101,114,114,111,114,40,39,73,116,101,109,32,39,32,46,46, -32,116,111,115,116,114,105,110,103,40,105,116,101,109,41,32,46,46,32,39, -32,97,100,100,101,100,32,116,111,32,116,104,101,32,119,111,114,108,100,32, -116,119,105,99,101,46,39,41,13,10,32,32,32,32,101,110,100,13,10,32, -32,32,32,97,115,115,101,114,116,73,115,82,101,99,116,40,120,44,121,44, -119,44,104,41,13,10,13,10,32,32,32,32,115,101,108,102,46,114,101,99, -116,115,91,105,116,101,109,93,32,61,32,123,120,61,120,44,121,61,121,44, -119,61,119,44,104,61,104,125,13,10,13,10,32,32,32,32,108,111,99,97, -108,32,99,108,44,99,116,44,99,119,44,99,104,32,61,32,103,114,105,100, -95,116,111,67,101,108,108,82,101,99,116,40,115,101,108,102,46,99,101,108, -108,83,105,122,101,44,32,120,44,121,44,119,44,104,41,13,10,32,32,32, -32,102,111,114,32,99,121,32,61,32,99,116,44,32,99,116,43,99,104,45, -49,32,100,111,13,10,32,32,32,32,32,32,32,32,102,111,114,32,99,120, -32,61,32,99,108,44,32,99,108,43,99,119,45,49,32,100,111,13,10,32, -32,32,32,32,32,32,32,32,32,32,32,97,100,100,73,116,101,109,84,111, -67,101,108,108,40,115,101,108,102,44,32,105,116,101,109,44,32,99,120,44, -32,99,121,41,13,10,32,32,32,32,32,32,32,32,101,110,100,13,10,32, -32,32,32,101,110,100,13,10,13,10,32,32,32,32,114,101,116,117,114,110, -32,105,116,101,109,13,10,101,110,100,13,10,13,10,102,117,110,99,116,105, -111,110,32,87,111,114,108,100,58,114,101,109,111,118,101,40,105,116,101,109, -41,13,10,32,32,32,32,108,111,99,97,108,32,120,44,121,44,119,44,104, -32,61,32,115,101,108,102,58,103,101,116,82,101,99,116,40,105,116,101,109, -41,13,10,13,10,32,32,32,32,115,101,108,102,46,114,101,99,116,115,91, -105,116,101,109,93,32,61,32,110,105,108,13,10,32,32,32,32,108,111,99, -97,108,32,99,108,44,99,116,44,99,119,44,99,104,32,61,32,103,114,105, -100,95,116,111,67,101,108,108,82,101,99,116,40,115,101,108,102,46,99,101, -108,108,83,105,122,101,44,32,120,44,121,44,119,44,104,41,13,10,32,32, -32,32,102,111,114,32,99,121,32,61,32,99,116,44,32,99,116,43,99,104, -45,49,32,100,111,13,10,32,32,32,32,32,32,32,32,102,111,114,32,99, -120,32,61,32,99,108,44,32,99,108,43,99,119,45,49,32,100,111,13,10, -32,32,32,32,32,32,32,32,32,32,32,32,114,101,109,111,118,101,73,116, -101,109,70,114,111,109,67,101,108,108,40,115,101,108,102,44,32,105,116,101, -109,44,32,99,120,44,32,99,121,41,13,10,32,32,32,32,32,32,32,32, -101,110,100,13,10,32,32,32,32,101,110,100,13,10,101,110,100,13,10,13, -10,102,117,110,99,116,105,111,110,32,87,111,114,108,100,58,117,112,100,97, -116,101,40,105,116,101,109,44,32,120,50,44,121,50,44,119,50,44,104,50, -41,13,10,32,32,32,32,108,111,99,97,108,32,120,49,44,121,49,44,119, -49,44,104,49,32,61,32,115,101,108,102,58,103,101,116,82,101,99,116,40, -105,116,101,109,41,13,10,32,32,32,32,119,50,44,104,50,32,61,32,119, -50,32,111,114,32,119,49,44,32,104,50,32,111,114,32,104,49,13,10,32, -32,32,32,97,115,115,101,114,116,73,115,82,101,99,116,40,120,50,44,121, -50,44,119,50,44,104,50,41,13,10,13,10,32,32,32,32,105,102,32,120, -49,32,126,61,32,120,50,32,111,114,32,121,49,32,126,61,32,121,50,32, -111,114,32,119,49,32,126,61,32,119,50,32,111,114,32,104,49,32,126,61, -32,104,50,32,116,104,101,110,13,10,13,10,32,32,32,32,32,32,32,32, -108,111,99,97,108,32,99,101,108,108,83,105,122,101,32,61,32,115,101,108, -102,46,99,101,108,108,83,105,122,101,13,10,32,32,32,32,32,32,32,32, -108,111,99,97,108,32,99,108,49,44,99,116,49,44,99,119,49,44,99,104, -49,32,61,32,103,114,105,100,95,116,111,67,101,108,108,82,101,99,116,40, -99,101,108,108,83,105,122,101,44,32,120,49,44,121,49,44,119,49,44,104, -49,41,13,10,32,32,32,32,32,32,32,32,108,111,99,97,108,32,99,108, -50,44,99,116,50,44,99,119,50,44,99,104,50,32,61,32,103,114,105,100, -95,116,111,67,101,108,108,82,101,99,116,40,99,101,108,108,83,105,122,101, -44,32,120,50,44,121,50,44,119,50,44,104,50,41,13,10,13,10,32,32, -32,32,32,32,32,32,105,102,32,99,108,49,32,126,61,32,99,108,50,32, -111,114,32,99,116,49,32,126,61,32,99,116,50,32,111,114,32,99,119,49, -32,126,61,32,99,119,50,32,111,114,32,99,104,49,32,126,61,32,99,104, -50,32,116,104,101,110,13,10,13,10,32,32,32,32,32,32,32,32,32,32, -32,32,108,111,99,97,108,32,99,114,49,44,32,99,98,49,32,61,32,99, -108,49,43,99,119,49,45,49,44,32,99,116,49,43,99,104,49,45,49,13, -10,32,32,32,32,32,32,32,32,32,32,32,32,108,111,99,97,108,32,99, -114,50,44,32,99,98,50,32,61,32,99,108,50,43,99,119,50,45,49,44, -32,99,116,50,43,99,104,50,45,49,13,10,32,32,32,32,32,32,32,32, -32,32,32,32,108,111,99,97,108,32,99,121,79,117,116,13,10,13,10,32, -32,32,32,32,32,32,32,32,32,32,32,102,111,114,32,99,121,32,61,32, -99,116,49,44,32,99,98,49,32,100,111,13,10,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,99,121,79,117,116,32,61,32,99,121,32, -60,32,99,116,50,32,111,114,32,99,121,32,62,32,99,98,50,13,10,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,102,111,114,32,99, -120,32,61,32,99,108,49,44,32,99,114,49,32,100,111,13,10,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,105,102,32, -99,121,79,117,116,32,111,114,32,99,120,32,60,32,99,108,50,32,111,114, -32,99,120,32,62,32,99,114,50,32,116,104,101,110,13,10,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -114,101,109,111,118,101,73,116,101,109,70,114,111,109,67,101,108,108,40,115, -101,108,102,44,32,105,116,101,109,44,32,99,120,44,32,99,121,41,13,10, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -101,110,100,13,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,101,110,100,13,10,32,32,32,32,32,32,32,32,32,32,32,32,101,110, -100,13,10,13,10,32,32,32,32,32,32,32,32,32,32,32,32,102,111,114, -32,99,121,32,61,32,99,116,50,44,32,99,98,50,32,100,111,13,10,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,99,121,79,117,116, -32,61,32,99,121,32,60,32,99,116,49,32,111,114,32,99,121,32,62,32, -99,98,49,13,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,102,111,114,32,99,120,32,61,32,99,108,50,44,32,99,114,50,32,100, -111,13,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,105,102,32,99,121,79,117,116,32,111,114,32,99,120,32,60,32, -99,108,49,32,111,114,32,99,120,32,62,32,99,114,49,32,116,104,101,110, -13,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,97,100,100,73,116,101,109,84,111,67,101,108,108,40, -115,101,108,102,44,32,105,116,101,109,44,32,99,120,44,32,99,121,41,13, -10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,101,110,100,13,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,101,110,100,13,10,32,32,32,32,32,32,32,32,32,32,32,32,101, -110,100,13,10,13,10,32,32,32,32,32,32,32,32,101,110,100,13,10,13, -10,32,32,32,32,32,32,32,32,108,111,99,97,108,32,114,101,99,116,32, -61,32,115,101,108,102,46,114,101,99,116,115,91,105,116,101,109,93,13,10, -32,32,32,32,32,32,32,32,114,101,99,116,46,120,44,32,114,101,99,116, -46,121,44,32,114,101,99,116,46,119,44,32,114,101,99,116,46,104,32,61, -32,120,50,44,121,50,44,119,50,44,104,50,13,10,13,10,32,32,32,32, -101,110,100,13,10,101,110,100,13,10,13,10,102,117,110,99,116,105,111,110, -32,87,111,114,108,100,58,109,111,118,101,40,105,116,101,109,44,32,103,111, -97,108,88,44,32,103,111,97,108,89,44,32,102,105,108,116,101,114,41,13, -10,32,32,32,32,108,111,99,97,108,32,97,99,116,117,97,108,88,44,32, -97,99,116,117,97,108,89,44,32,99,111,108,115,44,32,108,101,110,32,61, -32,115,101,108,102,58,99,104,101,99,107,40,105,116,101,109,44,32,103,111, -97,108,88,44,32,103,111,97,108,89,44,32,102,105,108,116,101,114,41,13, -10,13,10,32,32,32,32,115,101,108,102,58,117,112,100,97,116,101,40,105, -116,101,109,44,32,97,99,116,117,97,108,88,44,32,97,99,116,117,97,108, -89,41,13,10,13,10,32,32,32,32,114,101,116,117,114,110,32,97,99,116, -117,97,108,88,44,32,97,99,116,117,97,108,89,44,32,99,111,108,115,44, -32,108,101,110,13,10,101,110,100,13,10,13,10,102,117,110,99,116,105,111, -110,32,87,111,114,108,100,58,99,104,101,99,107,40,105,116,101,109,44,32, -103,111,97,108,88,44,32,103,111,97,108,89,44,32,102,105,108,116,101,114, -41,13,10,32,32,32,32,102,105,108,116,101,114,32,61,32,102,105,108,116, -101,114,32,111,114,32,100,101,102,97,117,108,116,70,105,108,116,101,114,13, -10,13,10,32,32,32,32,108,111,99,97,108,32,118,105,115,105,116,101,100, -32,61,32,123,91,105,116,101,109,93,32,61,32,116,114,117,101,125,13,10, -32,32,32,32,108,111,99,97,108,32,118,105,115,105,116,101,100,70,105,108, -116,101,114,32,61,32,102,117,110,99,116,105,111,110,40,105,116,109,44,32, -111,116,104,101,114,41,13,10,32,32,32,32,32,32,32,32,105,102,32,118, -105,115,105,116,101,100,91,111,116,104,101,114,93,32,116,104,101,110,32,114, -101,116,117,114,110,32,102,97,108,115,101,32,101,110,100,13,10,32,32,32, -32,32,32,32,32,114,101,116,117,114,110,32,102,105,108,116,101,114,40,105, -116,109,44,32,111,116,104,101,114,41,13,10,32,32,32,32,101,110,100,13, -10,13,10,32,32,32,32,108,111,99,97,108,32,99,111,108,115,44,32,108, -101,110,32,61,32,123,125,44,32,48,13,10,13,10,32,32,32,32,108,111, -99,97,108,32,120,44,121,44,119,44,104,32,61,32,115,101,108,102,58,103, -101,116,82,101,99,116,40,105,116,101,109,41,13,10,13,10,32,32,32,32, -108,111,99,97,108,32,112,114,111,106,101,99,116,101,100,95,99,111,108,115, -44,32,112,114,111,106,101,99,116,101,100,95,108,101,110,32,61,32,115,101, -108,102,58,112,114,111,106,101,99,116,40,105,116,101,109,44,32,120,44,121, -44,119,44,104,44,32,103,111,97,108,88,44,103,111,97,108,89,44,32,118, -105,115,105,116,101,100,70,105,108,116,101,114,41,13,10,13,10,32,32,32, -32,119,104,105,108,101,32,112,114,111,106,101,99,116,101,100,95,108,101,110, -32,62,32,48,32,100,111,13,10,32,32,32,32,32,32,32,32,108,111,99, -97,108,32,99,111,108,32,61,32,112,114,111,106,101,99,116,101,100,95,99, -111,108,115,91,49,93,13,10,32,32,32,32,32,32,32,32,108,101,110,32, -32,32,32,32,32,32,32,32,32,32,32,32,61,32,108,101,110,32,43,32, -49,13,10,32,32,32,32,32,32,32,32,99,111,108,115,91,108,101,110,93, -32,61,32,99,111,108,13,10,13,10,32,32,32,32,32,32,32,32,118,105, -115,105,116,101,100,91,99,111,108,46,111,116,104,101,114,93,32,61,32,116, -114,117,101,13,10,13,10,32,32,32,32,32,32,32,32,108,111,99,97,108, -32,114,101,115,112,111,110,115,101,32,61,32,103,101,116,82,101,115,112,111, -110,115,101,66,121,78,97,109,101,40,115,101,108,102,44,32,99,111,108,46, -116,121,112,101,41,13,10,13,10,32,32,32,32,32,32,32,32,103,111,97, -108,88,44,32,103,111,97,108,89,44,32,112,114,111,106,101,99,116,101,100, -95,99,111,108,115,44,32,112,114,111,106,101,99,116,101,100,95,108,101,110, -32,61,32,114,101,115,112,111,110,115,101,40,13,10,32,32,32,32,32,32, -32,32,32,32,32,32,115,101,108,102,44,13,10,32,32,32,32,32,32,32, -32,32,32,32,32,99,111,108,44,13,10,32,32,32,32,32,32,32,32,32, -32,32,32,120,44,32,121,44,32,119,44,32,104,44,13,10,32,32,32,32, -32,32,32,32,32,32,32,32,103,111,97,108,88,44,32,103,111,97,108,89, -44,13,10,32,32,32,32,32,32,32,32,32,32,32,32,118,105,115,105,116, -101,100,70,105,108,116,101,114,13,10,32,32,32,32,32,32,32,32,41,13, -10,32,32,32,32,101,110,100,13,10,13,10,32,32,32,32,114,101,116,117, -114,110,32,103,111,97,108,88,44,32,103,111,97,108,89,44,32,99,111,108, -115,44,32,108,101,110,13,10,101,110,100,13,10,13,10,13,10,45,45,32, -80,117,98,108,105,99,32,108,105,98,114,97,114,121,32,102,117,110,99,116, -105,111,110,115,13,10,13,10,98,117,109,112,46,110,101,119,87,111,114,108, -100,32,61,32,102,117,110,99,116,105,111,110,40,99,101,108,108,83,105,122, -101,41,13,10,32,32,32,32,99,101,108,108,83,105,122,101,32,61,32,99, -101,108,108,83,105,122,101,32,111,114,32,54,52,13,10,32,32,32,32,97, -115,115,101,114,116,73,115,80,111,115,105,116,105,118,101,78,117,109,98,101, -114,40,99,101,108,108,83,105,122,101,44,32,39,99,101,108,108,83,105,122, -101,39,41,13,10,32,32,32,32,108,111,99,97,108,32,119,111,114,108,100, -32,61,32,115,101,116,109,101,116,97,116,97,98,108,101,40,123,13,10,32, -32,32,32,32,32,32,32,99,101,108,108,83,105,122,101,32,32,32,32,32, -32,32,32,32,32,32,32,32,61,32,99,101,108,108,83,105,122,101,44,13, -10,32,32,32,32,32,32,32,32,114,101,99,116,115,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,61,32,123,125,44,13, -10,32,32,32,32,32,32,32,32,114,111,119,115,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,61,32,123,125,44,13, -10,32,32,32,32,32,32,32,32,110,111,110,69,109,112,116,121,67,101,108, -108,115,32,32,32,32,61,32,123,125,44,13,10,32,32,32,32,32,32,32, -32,114,101,115,112,111,110,115,101,115,32,61,32,123,125,13,10,32,32,32, -32,125,44,32,87,111,114,108,100,95,109,116,41,13,10,13,10,32,32,32, -32,119,111,114,108,100,58,97,100,100,82,101,115,112,111,110,115,101,40,39, -116,111,117,99,104,39,44,32,116,111,117,99,104,41,13,10,32,32,32,32, -119,111,114,108,100,58,97,100,100,82,101,115,112,111,110,115,101,40,39,99, -114,111,115,115,39,44,32,99,114,111,115,115,41,13,10,32,32,32,32,119, -111,114,108,100,58,97,100,100,82,101,115,112,111,110,115,101,40,39,115,108, -105,100,101,39,44,32,115,108,105,100,101,41,13,10,32,32,32,32,119,111, -114,108,100,58,97,100,100,82,101,115,112,111,110,115,101,40,39,98,111,117, -110,99,101,39,44,32,98,111,117,110,99,101,41,13,10,13,10,32,32,32, -32,114,101,116,117,114,110,32,119,111,114,108,100,13,10,101,110,100,13,10, -13,10,98,117,109,112,46,114,101,99,116,32,61,32,123,13,10,32,32,32, -32,103,101,116,78,101,97,114,101,115,116,67,111,114,110,101,114,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,61,32,114,101,99,116,95,103,101,116,78,101,97,114,101, -115,116,67,111,114,110,101,114,44,13,10,32,32,32,32,103,101,116,83,101, -103,109,101,110,116,73,110,116,101,114,115,101,99,116,105,111,110,73,110,100, -105,99,101,115,32,61,32,114,101,99,116,95,103,101,116,83,101,103,109,101, -110,116,73,110,116,101,114,115,101,99,116,105,111,110,73,110,100,105,99,101, -115,44,13,10,32,32,32,32,103,101,116,68,105,102,102,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -61,32,114,101,99,116,95,103,101,116,68,105,102,102,44,13,10,32,32,32, -32,99,111,110,116,97,105,110,115,80,111,105,110,116,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,61,32,114,101,99,116,95,99,111,110,116,97,105, -110,115,80,111,105,110,116,44,13,10,32,32,32,32,105,115,73,110,116,101, -114,115,101,99,116,105,110,103,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -61,32,114,101,99,116,95,105,115,73,110,116,101,114,115,101,99,116,105,110, -103,44,13,10,32,32,32,32,103,101,116,83,113,117,97,114,101,68,105,115, -116,97,110,99,101,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,61,32,114,101,99,116,95,103,101,116, -83,113,117,97,114,101,68,105,115,116,97,110,99,101,44,13,10,32,32,32, -32,100,101,116,101,99,116,67,111,108,108,105,115,105,111,110,32,32,32,32, -32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, -32,32,32,32,32,61,32,114,101,99,116,95,100,101,116,101,99,116,67,111, -108,108,105,115,105,111,110,13,10,125,13,10,13,10,98,117,109,112,46,114, -101,115,112,111,110,115,101,115,32,61,32,123,13,10,32,32,32,32,116,111, -117,99,104,32,32,32,32,61,32,116,111,117,99,104,44,13,10,32,32,32, -32,99,114,111,115,115,32,32,32,32,61,32,99,114,111,115,115,44,13,10, -32,32,32,32,115,108,105,100,101,32,32,32,32,61,32,115,108,105,100,101, -44,13,10,32,32,32,32,98,111,117,110,99,101,32,61,32,98,111,117,110, -99,101,13,10,125,13,10,13,10,45,45,32,69,120,112,111,114,116,32,116, -111,32,74,105,110,46,32,13,10,13,10,106,105,110,46,112,104,121,115,105, -99,115,32,61,32,98,117,109,112,13,10 -}; - diff --git a/bin/splash.png b/bin/splash.png Binary files differdeleted file mode 100644 index b0c4256..0000000 --- a/bin/splash.png +++ /dev/null diff --git a/bin/texture.png b/bin/texture.png Binary files differdeleted file mode 100644 index 6b1efee..0000000 --- a/bin/texture.png +++ /dev/null |