From f01c5717f472e622c3584e3e6b1ba63a023a83f4 Mon Sep 17 00:00:00 2001 From: Howland Owl Date: Mon, 7 Oct 2013 16:14:30 +0300 Subject: [PATCH] some cleanup before heading into main render code --- textmode.coffee | 37 +- textmode.js | 2575 ++++++++++++++++++++++++----------------------- 2 files changed, 1311 insertions(+), 1301 deletions(-) diff --git a/textmode.coffee b/textmode.coffee index 26bf065..6da61ff 100644 --- a/textmode.coffee +++ b/textmode.coffee @@ -10,7 +10,7 @@ class @ImageTextModeSAUCE parse: ( content ) -> sauceMarker = content.length - 128; - return false if content.substr( sauceMarker, 5 ) is not 'SAUCE' + return false if content.substr( sauceMarker, 5 ) isnt 'SAUCE' @id = 'SAUCE' @version = content.substr( sauceMarker + 5, 2 ) @title = content.substr( sauceMarker + 7, 35 ) @@ -66,7 +66,8 @@ class @ImageTextModePalette class @ImageTextModePaletteVGA extends @ImageTextModePalette constructor: ( options ) -> - super @colors = [ + super + @colors = [ [ 0x00, 0x00, 0x00 ], [ 0x00, 0x00, 0xaa ], [ 0x00, 0xaa, 0x00 ], @@ -918,12 +919,12 @@ class @ImageTextMode constructor: ( options ) -> @screen = [] - @palette = new ImageTextModePaletteVGA - @font = new ImageTextModeFont8x16 - this[k] = v for own k, v of options + @palette = new ImageTextModePaletteVGA() + @font = new ImageTextModeFont8x16() + @[k] = v for own k, v of options parseUrl: ( url ) -> - req = new XMLHttpRequest + req = new XMLHttpRequest() req.open 'GET', url, false req.overrideMimeType 'text/plain; charset=x-user-defined' req.send null @@ -945,6 +946,8 @@ class @ImageTextMode getByteAt: ( data, offset ) -> return data.charCodeAt( offset ) & 0xFF +# could we replace this with math.max ? + getWidth: -> max = 0 for y in [ 0 .. @screen.length - 1 ] @@ -965,7 +968,7 @@ class @ImageTextMode b = b << 2 | b >> 4 colors.push [ r, g, b ] - @palette = new ImageTextModePalette( { colors: colors } ) + @palette = new ImageTextModePalette( colors: colors ) parseFontData: ( data, height = 16 ) -> chars = [] @@ -973,9 +976,11 @@ class @ImageTextMode chr = [] for j in [ 0 .. height - 1 ] chr.push @getByteAt( data, i * height + j ) - chars.push chr + chars.push chr @font = new ImageTextModeFont( { chars: chars, height: height } ) +# the majority of time is spent in this routine + renderCanvas: ( canvasElem ) -> w = @getWidth() * @font.width h = @getHeight() * @font.height @@ -985,9 +990,9 @@ class @ImageTextMode canvas.setAttribute 'height', h ctx = canvas.getContext '2d' - for cy in [ 0 .. @screen.length - 1 ] + for cy in [ 0 ... @screen.length ] continue if !@screen[ cy ]? - for cx in [ 0 .. @screen[ cy ].length - 1 ] + for cx in [ 0 ... @screen[ cy ].length ] pixel = @screen[ cy ][ cx ] continue if !pixel? if pixel.attr? @@ -1005,9 +1010,9 @@ class @ImageTextMode ctx.fillStyle = @palette.toRgbaString( @palette.colors[ fg ] ) chr = @font.chars[ pixel.ch.charCodeAt( 0 ) & 0xff ] - for i in [ 0 .. @font.height - 1 ] + for i in [ 0 ... @font.height ] line = chr[ i ] - for j in [ 0 .. @font.width - 1 ] + for j in [ 0 ... @font.width ] if line & ( 1 << @font.width - 1 - j ) ctx.fillRect px + j, py + i, 1, 1 @@ -1056,7 +1061,7 @@ class @ImageTextModeXBin extends @ImageTextMode parse: ( content ) -> @screen = [] headerData = content.substr( 0, 11 ) - if headerData.length is not 11 || !headerData.match( '^XBIN\x1a' ) + if headerData.length isnt 11 || !headerData.match( '^XBIN\x1a' ) throw new Error( 'File is not an XBin' ) @header.width = @unpackShort( headerData.substr( 5, 2 ) ) @@ -1353,7 +1358,7 @@ class @ImageTextModeIDF extends @ImageTextMode parse: ( content ) -> headerData = content.substr( 0, 12 ) - if headerData.length is not 12 || !headerData.match( '^\x041.4' ) + if headerData.length isnt 12 || !headerData.match( '^\x041.4' ) throw new Error( 'File is not an IDF' ) @header.x0 = @unpackShort( headerData.substr( 4, 2 ) ) @@ -1558,7 +1563,7 @@ class @ImageTextModePCBoard extends @ImageTextMode else if ch + content[ 0..2 ].join( '' ) is 'POS:' content.shift() for [ 1 .. 3 ] @x = content.shift() - @x += content.shift() if content[ 0 ] is not '@' + @x += content.shift() if content[ 0 ] isnt '@' @x-- content.shift() @@ -1648,3 +1653,5 @@ class @ImageTextModeAVATAR extends @ImageTextMode if ++@x >= @linewrap @x = 0 @y++ + + diff --git a/textmode.js b/textmode.js index 9998fb7..1d7578c 100644 --- a/textmode.js +++ b/textmode.js @@ -1,1369 +1,1372 @@ // Generated by CoffeeScript 1.6.3 -var __hasProp = {}.hasOwnProperty, - __extends = function(child, parent) { for (var key in parent) { if (__hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; }; +(function() { + var __hasProp = {}.hasOwnProperty, + __extends = function(child, parent) { for (var key in parent) { if (__hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; }; -this.ImageTextModeSAUCE = (function() { - function ImageTextModeSAUCE() {} + this.ImageTextModeSAUCE = (function() { + function ImageTextModeSAUCE() {} - ImageTextModeSAUCE.prototype.parseUrl = function(url) { - var content, req; - req = new XMLHttpRequest; - req.open('GET', url, false); - req.overrideMimeType('text/plain; charset=x-user-defined'); - req.send(null); - content = req.status === 200 || req.status === 0 ? req.responseText : ''; - return this.parse(content); - }; + ImageTextModeSAUCE.prototype.parseUrl = function(url) { + var content, req; + req = new XMLHttpRequest(); + req.open('GET', url, false); + req.overrideMimeType('text/plain; charset=x-user-defined'); + req.send(null); + content = req.status === 200 || req.status === 0 ? req.responseText : ''; + return this.parse(content); + }; - ImageTextModeSAUCE.prototype.parse = function(content) { - var commentMarker, i, sauceMarker; - sauceMarker = content.length - 128; - if (content.substr(sauceMarker, 5) === !'SAUCE') { - return false; - } - this.id = 'SAUCE'; - this.version = content.substr(sauceMarker + 5, 2); - this.title = content.substr(sauceMarker + 7, 35); - this.author = content.substr(sauceMarker + 42, 20); - this.group = content.substr(sauceMarker + 62, 20); - this.date = content.substr(sauceMarker + 82, 8); - this.fileSize = this.unpackLong(content.substr(sauceMarker + 90, 4)); - this.dataType = this.getByteAt(content.substr(sauceMarker + 94, 1)); - this.fileType = this.getByteAt(content.substr(sauceMarker + 95, 1)); - this.tinfo1 = this.unpackShort(content.substr(sauceMarker + 96, 2)); - this.tinfo2 = this.unpackShort(content.substr(sauceMarker + 98, 2)); - this.tinfo3 = this.unpackShort(content.substr(sauceMarker + 100, 2)); - this.tinfo4 = this.unpackShort(content.substr(sauceMarker + 102, 2)); - this.commentCount = this.getByteAt(content.substr(sauceMarker + 104, 1)); - this.flags = this.getByteAt(content.substr(sauceMarker + 105, 1)); - this.filler = content.substr(sauceMarker + 106, 22); - commentMarker = sauceMarker - 5 - this.commentCount * 64; - if (this.commentCount > 0 && content.substr(commentMarker, 5) === 'COMNT') { - commentMarker += 5; - this.comments = []; - i = this.commentCount; - while (i-- > 0) { - this.comments.push(content.substr(commentMarker, 64)); - commentMarker += 64; + ImageTextModeSAUCE.prototype.parse = function(content) { + var commentMarker, i, sauceMarker; + sauceMarker = content.length - 128; + if (content.substr(sauceMarker, 5) !== 'SAUCE') { + return false; + } + this.id = 'SAUCE'; + this.version = content.substr(sauceMarker + 5, 2); + this.title = content.substr(sauceMarker + 7, 35); + this.author = content.substr(sauceMarker + 42, 20); + this.group = content.substr(sauceMarker + 62, 20); + this.date = content.substr(sauceMarker + 82, 8); + this.fileSize = this.unpackLong(content.substr(sauceMarker + 90, 4)); + this.dataType = this.getByteAt(content.substr(sauceMarker + 94, 1)); + this.fileType = this.getByteAt(content.substr(sauceMarker + 95, 1)); + this.tinfo1 = this.unpackShort(content.substr(sauceMarker + 96, 2)); + this.tinfo2 = this.unpackShort(content.substr(sauceMarker + 98, 2)); + this.tinfo3 = this.unpackShort(content.substr(sauceMarker + 100, 2)); + this.tinfo4 = this.unpackShort(content.substr(sauceMarker + 102, 2)); + this.commentCount = this.getByteAt(content.substr(sauceMarker + 104, 1)); + this.flags = this.getByteAt(content.substr(sauceMarker + 105, 1)); + this.filler = content.substr(sauceMarker + 106, 22); + commentMarker = sauceMarker - 5 - this.commentCount * 64; + if (this.commentCount > 0 && content.substr(commentMarker, 5) === 'COMNT') { + commentMarker += 5; + this.comments = []; + i = this.commentCount; + while (i-- > 0) { + this.comments.push(content.substr(commentMarker, 64)); + commentMarker += 64; + } + } + return true; + }; + + ImageTextModeSAUCE.prototype.unpackLong = function(data) { + var lng; + lng = (((this.getByteAt(data, 3) << 8) + this.getByteAt(data, 2) << 8) + this.getByteAt(data, 1) << 8) + this.getByteAt(data, 0); + if (lng < 0) { + lng += 4294967296; + } + return lng; + }; + + ImageTextModeSAUCE.prototype.unpackShort = function(data) { + var shrt; + shrt = (this.getByteAt(data, 1) << 8) + this.getByteAt(data, 0); + if (shrt < 0) { + shrt += 65536; + } + return shrt; + }; + + ImageTextModeSAUCE.prototype.getByteAt = function(data, offset) { + return data.charCodeAt(offset) & 0xFF; + }; + + return ImageTextModeSAUCE; + + })(); + + this.ImageTextModePalette = (function() { + function ImageTextModePalette(options) { + var k, v; + this.colors = []; + for (k in options) { + if (!__hasProp.call(options, k)) continue; + v = options[k]; + this[k] = v; } } - return true; - }; - ImageTextModeSAUCE.prototype.unpackLong = function(data) { - var lng; - lng = (((this.getByteAt(data, 3) << 8) + this.getByteAt(data, 2) << 8) + this.getByteAt(data, 1) << 8) + this.getByteAt(data, 0); - if (lng < 0) { - lng += 4294967296; - } - return lng; - }; + ImageTextModePalette.prototype.toRgbaString = function(color) { + return 'rgba(' + color.join(',') + ',1)'; + }; - ImageTextModeSAUCE.prototype.unpackShort = function(data) { - var shrt; - shrt = (this.getByteAt(data, 1) << 8) + this.getByteAt(data, 0); - if (shrt < 0) { - shrt += 65536; - } - return shrt; - }; + return ImageTextModePalette; - ImageTextModeSAUCE.prototype.getByteAt = function(data, offset) { - return data.charCodeAt(offset) & 0xFF; - }; + })(); - return ImageTextModeSAUCE; + this.ImageTextModePaletteVGA = (function(_super) { + __extends(ImageTextModePaletteVGA, _super); -})(); - -this.ImageTextModePalette = (function() { - function ImageTextModePalette(options) { - var k, v; - this.colors = []; - for (k in options) { - if (!__hasProp.call(options, k)) continue; - v = options[k]; - this[k] = v; - } - } - - ImageTextModePalette.prototype.toRgbaString = function(color) { - return 'rgba(' + color.join(',') + ',1)'; - }; - - return ImageTextModePalette; - -})(); - -this.ImageTextModePaletteVGA = (function(_super) { - __extends(ImageTextModePaletteVGA, _super); - - function ImageTextModePaletteVGA(options) { - var k, v; - ImageTextModePaletteVGA.__super__.constructor.apply(this, arguments); - this.colors = [[0x00, 0x00, 0x00], [0x00, 0x00, 0xaa], [0x00, 0xaa, 0x00], [0x00, 0xaa, 0xaa], [0xaa, 0x00, 0x00], [0xaa, 0x00, 0xaa], [0xaa, 0x55, 0x00], [0xaa, 0xaa, 0xaa], [0x55, 0x55, 0x55], [0x55, 0x55, 0xff], [0x55, 0xff, 0x55], [0x55, 0xff, 0xff], [0xff, 0x55, 0x55], [0xff, 0x55, 0xff], [0xff, 0xff, 0x55], [0xff, 0xff, 0xff]]; - for (k in options) { - if (!__hasProp.call(options, k)) continue; - v = options[k]; - this[k] = v; - } - } - - return ImageTextModePaletteVGA; - -})(this.ImageTextModePalette); - -this.ImageTextModePaletteANSI = (function(_super) { - __extends(ImageTextModePaletteANSI, _super); - - function ImageTextModePaletteANSI(options) { - var k, v; - ImageTextModePaletteANSI.__super__.constructor.apply(this, arguments); - this.colors = [[0x00, 0x00, 0x00], [0xaa, 0x00, 0x00], [0x00, 0xaa, 0x00], [0xaa, 0x55, 0x00], [0x00, 0x00, 0xaa], [0xaa, 0x00, 0xaa], [0x00, 0xaa, 0xaa], [0xaa, 0xaa, 0xaa], [0x55, 0x55, 0x55], [0xff, 0x55, 0x55], [0x55, 0xff, 0x55], [0xff, 0xff, 0x55], [0x55, 0x55, 0xff], [0xff, 0x55, 0xff], [0x55, 0xff, 0xff], [0xff, 0xff, 0xff]]; - for (k in options) { - if (!__hasProp.call(options, k)) continue; - v = options[k]; - this[k] = v; - } - } - - return ImageTextModePaletteANSI; - -})(this.ImageTextModePalette); - -this.ImageTextModeFont = (function() { - function ImageTextModeFont(options) { - var k, v; - this.chars = []; - this.width = 8; - for (k in options) { - if (!__hasProp.call(options, k)) continue; - v = options[k]; - this[k] = v; - } - } - - return ImageTextModeFont; - -})(); - -this.ImageTextModeFont8x16 = (function(_super) { - __extends(ImageTextModeFont8x16, _super); - - function ImageTextModeFont8x16(options) { - var k, v; - ImageTextModeFont8x16.__super__.constructor.apply(this, arguments); - this.chars = [[0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00], [0x00, 0x00, 0x7e, 0x81, 0xa5, 0x81, 0x81, 0xbd, 0x99, 0x81, 0x81, 0x7e, 0x00, 0x00, 0x00, 0x00], [0x00, 0x00, 0x7e, 0xff, 0xdb, 0xff, 0xff, 0xc3, 0xe7, 0xff, 0xff, 0x7e, 0x00, 0x00, 0x00, 0x00], [0x00, 0x00, 0x00, 0x00, 0x6c, 0xfe, 0xfe, 0xfe, 0xfe, 0x7c, 0x38, 0x10, 0x00, 0x00, 0x00, 0x00], [0x00, 0x00, 0x00, 0x00, 0x10, 0x38, 0x7c, 0xfe, 0x7c, 0x38, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00], [0x00, 0x00, 0x00, 0x18, 0x3c, 0x3c, 0xe7, 0xe7, 0xe7, 0x18, 0x18, 0x3c, 0x00, 0x00, 0x00, 0x00], [0x00, 0x00, 0x00, 0x18, 0x3c, 0x7e, 0xff, 0xff, 0x7e, 0x18, 0x18, 0x3c, 0x00, 0x00, 0x00, 0x00], [0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x3c, 0x3c, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00], [0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe7, 0xc3, 0xc3, 0xe7, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff], [0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x66, 0x42, 0x42, 0x66, 0x3c, 0x00, 0x00, 0x00, 0x00, 0x00], [0xff, 0xff, 0xff, 0xff, 0xff, 0xc3, 0x99, 0xbd, 0xbd, 0x99, 0xc3, 0xff, 0xff, 0xff, 0xff, 0xff], [0x00, 0x00, 0x1e, 0x0e, 0x1a, 0x32, 0x78, 0xcc, 0xcc, 0xcc, 0xcc, 0x78, 0x00, 0x00, 0x00, 0x00], [0x00, 0x00, 0x3c, 0x66, 0x66, 0x66, 0x66, 0x3c, 0x18, 0x7e, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00], [0x00, 0x00, 0x3f, 0x33, 0x3f, 0x30, 0x30, 0x30, 0x30, 0x70, 0xf0, 0xe0, 0x00, 0x00, 0x00, 0x00], [0x00, 0x00, 0x7f, 0x63, 0x7f, 0x63, 0x63, 0x63, 0x63, 0x67, 0xe7, 0xe6, 0xc0, 0x00, 0x00, 0x00], [0x00, 0x00, 0x00, 0x18, 0x18, 0xdb, 0x3c, 0xe7, 0x3c, 0xdb, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00], [0x00, 0x80, 0xc0, 0xe0, 0xf0, 0xf8, 0xfe, 0xf8, 0xf0, 0xe0, 0xc0, 0x80, 0x00, 0x00, 0x00, 0x00], [0x00, 0x02, 0x06, 0x0e, 0x1e, 0x3e, 0xfe, 0x3e, 0x1e, 0x0e, 0x06, 0x02, 0x00, 0x00, 0x00, 0x00], [0x00, 0x00, 0x18, 0x3c, 0x7e, 0x18, 0x18, 0x18, 0x7e, 0x3c, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00], [0x00, 0x00, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x00, 0x66, 0x66, 0x00, 0x00, 0x00, 0x00], [0x00, 0x00, 0x7f, 0xdb, 0xdb, 0xdb, 0x7b, 0x1b, 0x1b, 0x1b, 0x1b, 0x1b, 0x00, 0x00, 0x00, 0x00], [0x00, 0x7c, 0xc6, 0x60, 0x38, 0x6c, 0xc6, 0xc6, 0x6c, 0x38, 0x0c, 0xc6, 0x7c, 0x00, 0x00, 0x00], [0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0xfe, 0xfe, 0xfe, 0x00, 0x00, 0x00, 0x00], [0x00, 0x00, 0x18, 0x3c, 0x7e, 0x18, 0x18, 0x18, 0x7e, 0x3c, 0x18, 0x7e, 0x00, 0x00, 0x00, 0x00], [0x00, 0x00, 0x18, 0x3c, 0x7e, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00], [0x00, 0x00, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x7e, 0x3c, 0x18, 0x00, 0x00, 0x00, 0x00], [0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x0c, 0xfe, 0x0c, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00], [0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x60, 0xfe, 0x60, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00], [0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xc0, 0xc0, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00], [0x00, 0x00, 0x00, 0x00, 0x00, 0x28, 0x6c, 0xfe, 0x6c, 0x28, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00], [0x00, 0x00, 0x00, 0x00, 0x10, 0x38, 0x38, 0x7c, 0x7c, 0xfe, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00], [0x00, 0x00, 0x00, 0x00, 0xfe, 0xfe, 0x7c, 0x7c, 0x38, 0x38, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00], [0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00], [0x00, 0x00, 0x18, 0x3c, 0x3c, 0x3c, 0x18, 0x18, 0x18, 0x00, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00], [0x00, 0x66, 0x66, 0x66, 0x24, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00], [0x00, 0x00, 0x00, 0x6c, 0x6c, 0xfe, 0x6c, 0x6c, 0x6c, 0xfe, 0x6c, 0x6c, 0x00, 0x00, 0x00, 0x00], [0x18, 0x18, 0x7c, 0xc6, 0xc2, 0xc0, 0x7c, 0x06, 0x06, 0x86, 0xc6, 0x7c, 0x18, 0x18, 0x00, 0x00], [0x00, 0x00, 0x00, 0x00, 0xc2, 0xc6, 0x0c, 0x18, 0x30, 0x60, 0xc6, 0x86, 0x00, 0x00, 0x00, 0x00], [0x00, 0x00, 0x38, 0x6c, 0x6c, 0x38, 0x76, 0xdc, 0xcc, 0xcc, 0xcc, 0x76, 0x00, 0x00, 0x00, 0x00], [0x00, 0x30, 0x30, 0x30, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00], [0x00, 0x00, 0x0c, 0x18, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x18, 0x0c, 0x00, 0x00, 0x00, 0x00], [0x00, 0x00, 0x30, 0x18, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x18, 0x30, 0x00, 0x00, 0x00, 0x00], [0x00, 0x00, 0x00, 0x00, 0x00, 0x66, 0x3c, 0xff, 0x3c, 0x66, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00], [0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x7e, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00], [0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x18, 0x30, 0x00, 0x00, 0x00], [0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00], [0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00], [0x00, 0x00, 0x00, 0x00, 0x02, 0x06, 0x0c, 0x18, 0x30, 0x60, 0xc0, 0x80, 0x00, 0x00, 0x00, 0x00], [0x00, 0x00, 0x38, 0x6c, 0xc6, 0xc6, 0xd6, 0xd6, 0xc6, 0xc6, 0x6c, 0x38, 0x00, 0x00, 0x00, 0x00], [0x00, 0x00, 0x18, 0x38, 0x78, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x7e, 0x00, 0x00, 0x00, 0x00], [0x00, 0x00, 0x7c, 0xc6, 0x06, 0x0c, 0x18, 0x30, 0x60, 0xc0, 0xc6, 0xfe, 0x00, 0x00, 0x00, 0x00], [0x00, 0x00, 0x7c, 0xc6, 0x06, 0x06, 0x3c, 0x06, 0x06, 0x06, 0xc6, 0x7c, 0x00, 0x00, 0x00, 0x00], [0x00, 0x00, 0x0c, 0x1c, 0x3c, 0x6c, 0xcc, 0xfe, 0x0c, 0x0c, 0x0c, 0x1e, 0x00, 0x00, 0x00, 0x00], [0x00, 0x00, 0xfe, 0xc0, 0xc0, 0xc0, 0xfc, 0x06, 0x06, 0x06, 0xc6, 0x7c, 0x00, 0x00, 0x00, 0x00], [0x00, 0x00, 0x38, 0x60, 0xc0, 0xc0, 0xfc, 0xc6, 0xc6, 0xc6, 0xc6, 0x7c, 0x00, 0x00, 0x00, 0x00], [0x00, 0x00, 0xfe, 0xc6, 0x06, 0x06, 0x0c, 0x18, 0x30, 0x30, 0x30, 0x30, 0x00, 0x00, 0x00, 0x00], [0x00, 0x00, 0x7c, 0xc6, 0xc6, 0xc6, 0x7c, 0xc6, 0xc6, 0xc6, 0xc6, 0x7c, 0x00, 0x00, 0x00, 0x00], [0x00, 0x00, 0x7c, 0xc6, 0xc6, 0xc6, 0x7e, 0x06, 0x06, 0x06, 0x0c, 0x78, 0x00, 0x00, 0x00, 0x00], [0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x00, 0x00, 0x00, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00], [0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x00, 0x00, 0x00, 0x18, 0x18, 0x30, 0x00, 0x00, 0x00, 0x00], [0x00, 0x00, 0x00, 0x06, 0x0c, 0x18, 0x30, 0x60, 0x30, 0x18, 0x0c, 0x06, 0x00, 0x00, 0x00, 0x00], [0x00, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x00, 0x00, 0x7e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00], [0x00, 0x00, 0x00, 0x60, 0x30, 0x18, 0x0c, 0x06, 0x0c, 0x18, 0x30, 0x60, 0x00, 0x00, 0x00, 0x00], [0x00, 0x00, 0x7c, 0xc6, 0xc6, 0x0c, 0x18, 0x18, 0x18, 0x00, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00], [0x00, 0x00, 0x00, 0x7c, 0xc6, 0xc6, 0xde, 0xde, 0xde, 0xdc, 0xc0, 0x7c, 0x00, 0x00, 0x00, 0x00], [0x00, 0x00, 0x10, 0x38, 0x6c, 0xc6, 0xc6, 0xfe, 0xc6, 0xc6, 0xc6, 0xc6, 0x00, 0x00, 0x00, 0x00], [0x00, 0x00, 0xfc, 0x66, 0x66, 0x66, 0x7c, 0x66, 0x66, 0x66, 0x66, 0xfc, 0x00, 0x00, 0x00, 0x00], [0x00, 0x00, 0x3c, 0x66, 0xc2, 0xc0, 0xc0, 0xc0, 0xc0, 0xc2, 0x66, 0x3c, 0x00, 0x00, 0x00, 0x00], [0x00, 0x00, 0xf8, 0x6c, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x6c, 0xf8, 0x00, 0x00, 0x00, 0x00], [0x00, 0x00, 0xfe, 0x66, 0x62, 0x68, 0x78, 0x68, 0x60, 0x62, 0x66, 0xfe, 0x00, 0x00, 0x00, 0x00], [0x00, 0x00, 0xfe, 0x66, 0x62, 0x68, 0x78, 0x68, 0x60, 0x60, 0x60, 0xf0, 0x00, 0x00, 0x00, 0x00], [0x00, 0x00, 0x3c, 0x66, 0xc2, 0xc0, 0xc0, 0xde, 0xc6, 0xc6, 0x66, 0x3a, 0x00, 0x00, 0x00, 0x00], [0x00, 0x00, 0xc6, 0xc6, 0xc6, 0xc6, 0xfe, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0x00, 0x00, 0x00, 0x00], [0x00, 0x00, 0x3c, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x3c, 0x00, 0x00, 0x00, 0x00], [0x00, 0x00, 0x1e, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0xcc, 0xcc, 0xcc, 0x78, 0x00, 0x00, 0x00, 0x00], [0x00, 0x00, 0xe6, 0x66, 0x66, 0x6c, 0x78, 0x78, 0x6c, 0x66, 0x66, 0xe6, 0x00, 0x00, 0x00, 0x00], [0x00, 0x00, 0xf0, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x62, 0x66, 0xfe, 0x00, 0x00, 0x00, 0x00], [0x00, 0x00, 0xc6, 0xee, 0xfe, 0xfe, 0xd6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0x00, 0x00, 0x00, 0x00], [0x00, 0x00, 0xc6, 0xe6, 0xf6, 0xfe, 0xde, 0xce, 0xc6, 0xc6, 0xc6, 0xc6, 0x00, 0x00, 0x00, 0x00], [0x00, 0x00, 0x7c, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0x7c, 0x00, 0x00, 0x00, 0x00], [0x00, 0x00, 0xfc, 0x66, 0x66, 0x66, 0x7c, 0x60, 0x60, 0x60, 0x60, 0xf0, 0x00, 0x00, 0x00, 0x00], [0x00, 0x00, 0x7c, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xd6, 0xde, 0x7c, 0x0c, 0x0e, 0x00, 0x00], [0x00, 0x00, 0xfc, 0x66, 0x66, 0x66, 0x7c, 0x6c, 0x66, 0x66, 0x66, 0xe6, 0x00, 0x00, 0x00, 0x00], [0x00, 0x00, 0x7c, 0xc6, 0xc6, 0x60, 0x38, 0x0c, 0x06, 0xc6, 0xc6, 0x7c, 0x00, 0x00, 0x00, 0x00], [0x00, 0x00, 0x7e, 0x7e, 0x5a, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x3c, 0x00, 0x00, 0x00, 0x00], [0x00, 0x00, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0x7c, 0x00, 0x00, 0x00, 0x00], [0x00, 0x00, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0x6c, 0x38, 0x10, 0x00, 0x00, 0x00, 0x00], [0x00, 0x00, 0xc6, 0xc6, 0xc6, 0xc6, 0xd6, 0xd6, 0xd6, 0xfe, 0xee, 0x6c, 0x00, 0x00, 0x00, 0x00], [0x00, 0x00, 0xc6, 0xc6, 0x6c, 0x7c, 0x38, 0x38, 0x7c, 0x6c, 0xc6, 0xc6, 0x00, 0x00, 0x00, 0x00], [0x00, 0x00, 0x66, 0x66, 0x66, 0x66, 0x3c, 0x18, 0x18, 0x18, 0x18, 0x3c, 0x00, 0x00, 0x00, 0x00], [0x00, 0x00, 0xfe, 0xc6, 0x86, 0x0c, 0x18, 0x30, 0x60, 0xc2, 0xc6, 0xfe, 0x00, 0x00, 0x00, 0x00], [0x00, 0x00, 0x3c, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x3c, 0x00, 0x00, 0x00, 0x00], [0x00, 0x00, 0x00, 0x80, 0xc0, 0xe0, 0x70, 0x38, 0x1c, 0x0e, 0x06, 0x02, 0x00, 0x00, 0x00, 0x00], [0x00, 0x00, 0x3c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x3c, 0x00, 0x00, 0x00, 0x00], [0x10, 0x38, 0x6c, 0xc6, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00], [0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00], [0x00, 0x30, 0x18, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00], [0x00, 0x00, 0x00, 0x00, 0x00, 0x78, 0x0c, 0x7c, 0xcc, 0xcc, 0xcc, 0x76, 0x00, 0x00, 0x00, 0x00], [0x00, 0x00, 0xe0, 0x60, 0x60, 0x78, 0x6c, 0x66, 0x66, 0x66, 0x66, 0x7c, 0x00, 0x00, 0x00, 0x00], [0x00, 0x00, 0x00, 0x00, 0x00, 0x7c, 0xc6, 0xc0, 0xc0, 0xc0, 0xc6, 0x7c, 0x00, 0x00, 0x00, 0x00], [0x00, 0x00, 0x1c, 0x0c, 0x0c, 0x3c, 0x6c, 0xcc, 0xcc, 0xcc, 0xcc, 0x76, 0x00, 0x00, 0x00, 0x00], [0x00, 0x00, 0x00, 0x00, 0x00, 0x7c, 0xc6, 0xfe, 0xc0, 0xc0, 0xc6, 0x7c, 0x00, 0x00, 0x00, 0x00], [0x00, 0x00, 0x1c, 0x36, 0x32, 0x30, 0x78, 0x30, 0x30, 0x30, 0x30, 0x78, 0x00, 0x00, 0x00, 0x00], [0x00, 0x00, 0x00, 0x00, 0x00, 0x76, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0x7c, 0x0c, 0xcc, 0x78, 0x00], [0x00, 0x00, 0xe0, 0x60, 0x60, 0x6c, 0x76, 0x66, 0x66, 0x66, 0x66, 0xe6, 0x00, 0x00, 0x00, 0x00], [0x00, 0x00, 0x18, 0x18, 0x00, 0x38, 0x18, 0x18, 0x18, 0x18, 0x18, 0x3c, 0x00, 0x00, 0x00, 0x00], [0x00, 0x00, 0x06, 0x06, 0x00, 0x0e, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x66, 0x66, 0x3c, 0x00], [0x00, 0x00, 0xe0, 0x60, 0x60, 0x66, 0x6c, 0x78, 0x78, 0x6c, 0x66, 0xe6, 0x00, 0x00, 0x00, 0x00], [0x00, 0x00, 0x38, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x3c, 0x00, 0x00, 0x00, 0x00], [0x00, 0x00, 0x00, 0x00, 0x00, 0xec, 0xfe, 0xd6, 0xd6, 0xd6, 0xd6, 0xc6, 0x00, 0x00, 0x00, 0x00], [0x00, 0x00, 0x00, 0x00, 0x00, 0xdc, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x00, 0x00, 0x00, 0x00], [0x00, 0x00, 0x00, 0x00, 0x00, 0x7c, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0x7c, 0x00, 0x00, 0x00, 0x00], [0x00, 0x00, 0x00, 0x00, 0x00, 0xdc, 0x66, 0x66, 0x66, 0x66, 0x66, 0x7c, 0x60, 0x60, 0xf0, 0x00], [0x00, 0x00, 0x00, 0x00, 0x00, 0x76, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0x7c, 0x0c, 0x0c, 0x1e, 0x00], [0x00, 0x00, 0x00, 0x00, 0x00, 0xdc, 0x76, 0x66, 0x60, 0x60, 0x60, 0xf0, 0x00, 0x00, 0x00, 0x00], [0x00, 0x00, 0x00, 0x00, 0x00, 0x7c, 0xc6, 0x60, 0x38, 0x0c, 0xc6, 0x7c, 0x00, 0x00, 0x00, 0x00], [0x00, 0x00, 0x10, 0x30, 0x30, 0xfc, 0x30, 0x30, 0x30, 0x30, 0x36, 0x1c, 0x00, 0x00, 0x00, 0x00], [0x00, 0x00, 0x00, 0x00, 0x00, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0x76, 0x00, 0x00, 0x00, 0x00], [0x00, 0x00, 0x00, 0x00, 0x00, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0x6c, 0x38, 0x00, 0x00, 0x00, 0x00], [0x00, 0x00, 0x00, 0x00, 0x00, 0xc6, 0xc6, 0xd6, 0xd6, 0xd6, 0xfe, 0x6c, 0x00, 0x00, 0x00, 0x00], [0x00, 0x00, 0x00, 0x00, 0x00, 0xc6, 0x6c, 0x38, 0x38, 0x38, 0x6c, 0xc6, 0x00, 0x00, 0x00, 0x00], [0x00, 0x00, 0x00, 0x00, 0x00, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0x7e, 0x06, 0x0c, 0xf8, 0x00], [0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0xcc, 0x18, 0x30, 0x60, 0xc6, 0xfe, 0x00, 0x00, 0x00, 0x00], [0x00, 0x00, 0x0e, 0x18, 0x18, 0x18, 0x70, 0x18, 0x18, 0x18, 0x18, 0x0e, 0x00, 0x00, 0x00, 0x00], [0x00, 0x00, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00], [0x00, 0x00, 0x70, 0x18, 0x18, 0x18, 0x0e, 0x18, 0x18, 0x18, 0x18, 0x70, 0x00, 0x00, 0x00, 0x00], [0x00, 0x76, 0xdc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00], [0x00, 0x00, 0x00, 0x00, 0x10, 0x38, 0x6c, 0xc6, 0xc6, 0xc6, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00], [0x00, 0x00, 0x3c, 0x66, 0xc2, 0xc0, 0xc0, 0xc0, 0xc0, 0xc2, 0x66, 0x3c, 0x18, 0x70, 0x00, 0x00], [0x00, 0x00, 0xcc, 0x00, 0x00, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0x76, 0x00, 0x00, 0x00, 0x00], [0x00, 0x0c, 0x18, 0x30, 0x00, 0x7c, 0xc6, 0xfe, 0xc0, 0xc0, 0xc6, 0x7c, 0x00, 0x00, 0x00, 0x00], [0x00, 0x10, 0x38, 0x6c, 0x00, 0x78, 0x0c, 0x7c, 0xcc, 0xcc, 0xcc, 0x76, 0x00, 0x00, 0x00, 0x00], [0x00, 0x00, 0xcc, 0x00, 0x00, 0x78, 0x0c, 0x7c, 0xcc, 0xcc, 0xcc, 0x76, 0x00, 0x00, 0x00, 0x00], [0x00, 0x60, 0x30, 0x18, 0x00, 0x78, 0x0c, 0x7c, 0xcc, 0xcc, 0xcc, 0x76, 0x00, 0x00, 0x00, 0x00], [0x00, 0x38, 0x6c, 0x38, 0x00, 0x78, 0x0c, 0x7c, 0xcc, 0xcc, 0xcc, 0x76, 0x00, 0x00, 0x00, 0x00], [0x00, 0x00, 0x00, 0x00, 0x00, 0x7c, 0xc6, 0xc0, 0xc0, 0xc0, 0xc6, 0x7c, 0x18, 0x70, 0x00, 0x00], [0x00, 0x10, 0x38, 0x6c, 0x00, 0x7c, 0xc6, 0xfe, 0xc0, 0xc0, 0xc6, 0x7c, 0x00, 0x00, 0x00, 0x00], [0x00, 0x00, 0xc6, 0x00, 0x00, 0x7c, 0xc6, 0xfe, 0xc0, 0xc0, 0xc6, 0x7c, 0x00, 0x00, 0x00, 0x00], [0x00, 0x60, 0x30, 0x18, 0x00, 0x7c, 0xc6, 0xfe, 0xc0, 0xc0, 0xc6, 0x7c, 0x00, 0x00, 0x00, 0x00], [0x00, 0x00, 0x66, 0x00, 0x00, 0x38, 0x18, 0x18, 0x18, 0x18, 0x18, 0x3c, 0x00, 0x00, 0x00, 0x00], [0x00, 0x18, 0x3c, 0x66, 0x00, 0x38, 0x18, 0x18, 0x18, 0x18, 0x18, 0x3c, 0x00, 0x00, 0x00, 0x00], [0x00, 0x60, 0x30, 0x18, 0x00, 0x38, 0x18, 0x18, 0x18, 0x18, 0x18, 0x3c, 0x00, 0x00, 0x00, 0x00], [0x00, 0xc6, 0x00, 0x10, 0x38, 0x6c, 0xc6, 0xc6, 0xfe, 0xc6, 0xc6, 0xc6, 0x00, 0x00, 0x00, 0x00], [0x38, 0x6c, 0x38, 0x10, 0x38, 0x6c, 0xc6, 0xfe, 0xc6, 0xc6, 0xc6, 0xc6, 0x00, 0x00, 0x00, 0x00], [0x0c, 0x18, 0x00, 0xfe, 0x66, 0x62, 0x68, 0x78, 0x68, 0x62, 0x66, 0xfe, 0x00, 0x00, 0x00, 0x00], [0x00, 0x00, 0x00, 0x00, 0x00, 0xec, 0x36, 0x36, 0x7e, 0xd8, 0xd8, 0x6e, 0x00, 0x00, 0x00, 0x00], [0x00, 0x00, 0x3e, 0x6c, 0xcc, 0xcc, 0xfe, 0xcc, 0xcc, 0xcc, 0xcc, 0xce, 0x00, 0x00, 0x00, 0x00], [0x00, 0x10, 0x38, 0x6c, 0x00, 0x7c, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0x7c, 0x00, 0x00, 0x00, 0x00], [0x00, 0x00, 0xc6, 0x00, 0x00, 0x7c, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0x7c, 0x00, 0x00, 0x00, 0x00], [0x00, 0x60, 0x30, 0x18, 0x00, 0x7c, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0x7c, 0x00, 0x00, 0x00, 0x00], [0x00, 0x30, 0x78, 0xcc, 0x00, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0x76, 0x00, 0x00, 0x00, 0x00], [0x00, 0x60, 0x30, 0x18, 0x00, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0x76, 0x00, 0x00, 0x00, 0x00], [0x00, 0x00, 0xc6, 0x00, 0x00, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0x7e, 0x06, 0x0c, 0x78, 0x00], [0x00, 0xc6, 0x00, 0x7c, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0x7c, 0x00, 0x00, 0x00, 0x00], [0x00, 0xc6, 0x00, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0x7c, 0x00, 0x00, 0x00, 0x00], [0x00, 0x18, 0x18, 0x7c, 0xc6, 0xc0, 0xc0, 0xc0, 0xc6, 0x7c, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00], [0x00, 0x38, 0x6c, 0x64, 0x60, 0xf0, 0x60, 0x60, 0x60, 0x60, 0xe6, 0xfc, 0x00, 0x00, 0x00, 0x00], [0x00, 0x00, 0x66, 0x66, 0x3c, 0x18, 0x7e, 0x18, 0x7e, 0x18, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00], [0x00, 0xf8, 0xcc, 0xcc, 0xf8, 0xc4, 0xcc, 0xde, 0xcc, 0xcc, 0xcc, 0xc6, 0x00, 0x00, 0x00, 0x00], [0x00, 0x0e, 0x1b, 0x18, 0x18, 0x18, 0x7e, 0x18, 0x18, 0x18, 0xd8, 0x70, 0x00, 0x00, 0x00, 0x00], [0x00, 0x18, 0x30, 0x60, 0x00, 0x78, 0x0c, 0x7c, 0xcc, 0xcc, 0xcc, 0x76, 0x00, 0x00, 0x00, 0x00], [0x00, 0x0c, 0x18, 0x30, 0x00, 0x38, 0x18, 0x18, 0x18, 0x18, 0x18, 0x3c, 0x00, 0x00, 0x00, 0x00], [0x00, 0x18, 0x30, 0x60, 0x00, 0x7c, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0x7c, 0x00, 0x00, 0x00, 0x00], [0x00, 0x18, 0x30, 0x60, 0x00, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0x76, 0x00, 0x00, 0x00, 0x00], [0x00, 0x00, 0x76, 0xdc, 0x00, 0xdc, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x00, 0x00, 0x00, 0x00], [0x76, 0xdc, 0x00, 0xc6, 0xe6, 0xf6, 0xfe, 0xde, 0xce, 0xc6, 0xc6, 0xc6, 0x00, 0x00, 0x00, 0x00], [0x00, 0x00, 0x3c, 0x6c, 0x6c, 0x3e, 0x00, 0x7e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00], [0x00, 0x00, 0x38, 0x6c, 0x6c, 0x38, 0x00, 0x7c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00], [0x00, 0x00, 0x30, 0x30, 0x00, 0x30, 0x30, 0x60, 0xc0, 0xc6, 0xc6, 0x7c, 0x00, 0x00, 0x00, 0x00], [0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0xc0, 0xc0, 0xc0, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00], [0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x06, 0x06, 0x06, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00], [0x00, 0x60, 0xe0, 0x62, 0x66, 0x6c, 0x18, 0x30, 0x60, 0xdc, 0x86, 0x0c, 0x18, 0x3e, 0x00, 0x00], [0x00, 0x60, 0xe0, 0x62, 0x66, 0x6c, 0x18, 0x30, 0x66, 0xce, 0x9a, 0x3f, 0x06, 0x06, 0x00, 0x00], [0x00, 0x00, 0x18, 0x18, 0x00, 0x18, 0x18, 0x18, 0x3c, 0x3c, 0x3c, 0x18, 0x00, 0x00, 0x00, 0x00], [0x00, 0x00, 0x00, 0x00, 0x00, 0x36, 0x6c, 0xd8, 0x6c, 0x36, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00], [0x00, 0x00, 0x00, 0x00, 0x00, 0xd8, 0x6c, 0x36, 0x6c, 0xd8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00], [0x11, 0x44, 0x11, 0x44, 0x11, 0x44, 0x11, 0x44, 0x11, 0x44, 0x11, 0x44, 0x11, 0x44, 0x11, 0x44], [0x55, 0xaa, 0x55, 0xaa, 0x55, 0xaa, 0x55, 0xaa, 0x55, 0xaa, 0x55, 0xaa, 0x55, 0xaa, 0x55, 0xaa], [0xdd, 0x77, 0xdd, 0x77, 0xdd, 0x77, 0xdd, 0x77, 0xdd, 0x77, 0xdd, 0x77, 0xdd, 0x77, 0xdd, 0x77], [0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18], [0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0xf8, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18], [0x18, 0x18, 0x18, 0x18, 0x18, 0xf8, 0x18, 0xf8, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18], [0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0xf6, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36], [0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36], [0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x18, 0xf8, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18], [0x36, 0x36, 0x36, 0x36, 0x36, 0xf6, 0x06, 0xf6, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36], [0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36], [0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x06, 0xf6, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36], [0x36, 0x36, 0x36, 0x36, 0x36, 0xf6, 0x06, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00], [0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00], [0x18, 0x18, 0x18, 0x18, 0x18, 0xf8, 0x18, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00], [0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18], [0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00], [0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00], [0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18], [0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x1f, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18], [0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00], [0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0xff, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18], [0x18, 0x18, 0x18, 0x18, 0x18, 0x1f, 0x18, 0x1f, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18], [0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x37, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36], [0x36, 0x36, 0x36, 0x36, 0x36, 0x37, 0x30, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00], [0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0x30, 0x37, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36], [0x36, 0x36, 0x36, 0x36, 0x36, 0xf7, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00], [0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x00, 0xf7, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36], [0x36, 0x36, 0x36, 0x36, 0x36, 0x37, 0x30, 0x37, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36], [0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00], [0x36, 0x36, 0x36, 0x36, 0x36, 0xf7, 0x00, 0xf7, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36], [0x18, 0x18, 0x18, 0x18, 0x18, 0xff, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00], [0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00], [0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x00, 0xff, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18], [0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36], [0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00], [0x18, 0x18, 0x18, 0x18, 0x18, 0x1f, 0x18, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00], [0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x18, 0x1f, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18], [0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36], [0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0xff, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36], [0x18, 0x18, 0x18, 0x18, 0x18, 0xff, 0x18, 0xff, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18], [0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00], [0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18], [0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff], [0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff], [0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0], [0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f], [0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00], [0x00, 0x00, 0x00, 0x00, 0x00, 0x76, 0xdc, 0xd8, 0xd8, 0xd8, 0xdc, 0x76, 0x00, 0x00, 0x00, 0x00], [0x00, 0x00, 0x78, 0xcc, 0xcc, 0xcc, 0xd8, 0xcc, 0xc6, 0xc6, 0xc6, 0xcc, 0x00, 0x00, 0x00, 0x00], [0x00, 0x00, 0xfe, 0xc6, 0xc6, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0x00, 0x00, 0x00, 0x00], [0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x6c, 0x6c, 0x6c, 0x6c, 0x6c, 0x6c, 0x00, 0x00, 0x00, 0x00], [0x00, 0x00, 0xfe, 0xc6, 0x60, 0x30, 0x18, 0x18, 0x30, 0x60, 0xc6, 0xfe, 0x00, 0x00, 0x00, 0x00], [0x00, 0x00, 0x00, 0x00, 0x00, 0x7e, 0xd8, 0xd8, 0xd8, 0xd8, 0xd8, 0x70, 0x00, 0x00, 0x00, 0x00], [0x00, 0x00, 0x00, 0x00, 0x00, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x7c, 0x60, 0x60, 0xc0, 0x00], [0x00, 0x00, 0x00, 0x00, 0x76, 0xdc, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00], [0x00, 0x00, 0x7e, 0x18, 0x3c, 0x66, 0x66, 0x66, 0x66, 0x3c, 0x18, 0x7e, 0x00, 0x00, 0x00, 0x00], [0x00, 0x00, 0x38, 0x6c, 0xc6, 0xc6, 0xfe, 0xc6, 0xc6, 0xc6, 0x6c, 0x38, 0x00, 0x00, 0x00, 0x00], [0x00, 0x00, 0x38, 0x6c, 0xc6, 0xc6, 0xc6, 0x6c, 0x6c, 0x6c, 0x6c, 0xee, 0x00, 0x00, 0x00, 0x00], [0x00, 0x00, 0x1e, 0x30, 0x18, 0x0c, 0x3e, 0x66, 0x66, 0x66, 0x66, 0x3c, 0x00, 0x00, 0x00, 0x00], [0x00, 0x00, 0x00, 0x00, 0x00, 0x7e, 0xdb, 0xdb, 0xdb, 0x7e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00], [0x00, 0x00, 0x00, 0x03, 0x06, 0x7e, 0xdb, 0xdb, 0xf3, 0x7e, 0x60, 0xc0, 0x00, 0x00, 0x00, 0x00], [0x00, 0x00, 0x1c, 0x30, 0x60, 0x60, 0x7c, 0x60, 0x60, 0x60, 0x30, 0x1c, 0x00, 0x00, 0x00, 0x00], [0x00, 0x00, 0x00, 0x7c, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0x00, 0x00, 0x00, 0x00], [0x00, 0x00, 0x00, 0x00, 0xfe, 0x00, 0x00, 0xfe, 0x00, 0x00, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00], [0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x7e, 0x18, 0x18, 0x00, 0x00, 0x7e, 0x00, 0x00, 0x00, 0x00], [0x00, 0x00, 0x00, 0x30, 0x18, 0x0c, 0x06, 0x0c, 0x18, 0x30, 0x00, 0x7e, 0x00, 0x00, 0x00, 0x00], [0x00, 0x00, 0x00, 0x0c, 0x18, 0x30, 0x60, 0x30, 0x18, 0x0c, 0x00, 0x7e, 0x00, 0x00, 0x00, 0x00], [0x00, 0x00, 0x0e, 0x1b, 0x1b, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18], [0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0xd8, 0xd8, 0xd8, 0x70, 0x00, 0x00, 0x00], [0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x00, 0x7e, 0x00, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00], [0x00, 0x00, 0x00, 0x00, 0x00, 0x76, 0xdc, 0x00, 0x76, 0xdc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00], [0x00, 0x38, 0x6c, 0x6c, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00], [0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00], [0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00], [0x00, 0x0f, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0xec, 0x6c, 0x6c, 0x3c, 0x1c, 0x00, 0x00, 0x00, 0x00], [0x00, 0x6c, 0x36, 0x36, 0x36, 0x36, 0x36, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00], [0x00, 0x3c, 0x66, 0x0c, 0x18, 0x32, 0x7e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00], [0x00, 0x00, 0x00, 0x00, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x00, 0x00, 0x00, 0x00, 0x00], [0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00]]; - this.height = 16; - for (k in options) { - if (!__hasProp.call(options, k)) continue; - v = options[k]; - this[k] = v; - } - } - - return ImageTextModeFont8x16; - -})(this.ImageTextModeFont); - -this.ImageTextModeFont8x8 = (function(_super) { - __extends(ImageTextModeFont8x8, _super); - - function ImageTextModeFont8x8(options) { - var k, v; - ImageTextModeFont8x8.__super__.constructor.apply(this, arguments); - this.chars = [[0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00], [0x7e, 0x81, 0xa5, 0x81, 0xbd, 0x99, 0x81, 0x7e], [0x7e, 0xff, 0xdb, 0xff, 0xc3, 0xe7, 0xff, 0x7e], [0x6c, 0xfe, 0xfe, 0xfe, 0x7c, 0x38, 0x10, 0x00], [0x10, 0x38, 0x7c, 0xfe, 0x7c, 0x38, 0x10, 0x00], [0x38, 0x7c, 0x38, 0xfe, 0xfe, 0xd6, 0x10, 0x38], [0x10, 0x38, 0x7c, 0xfe, 0xfe, 0x7c, 0x10, 0x38], [0x00, 0x00, 0x18, 0x3c, 0x3c, 0x18, 0x00, 0x00], [0xff, 0xff, 0xe7, 0xc3, 0xc3, 0xe7, 0xff, 0xff], [0x00, 0x3c, 0x66, 0x42, 0x42, 0x66, 0x3c, 0x00], [0xff, 0xc3, 0x99, 0xbd, 0xbd, 0x99, 0xc3, 0xff], [0x0f, 0x07, 0x0f, 0x7d, 0xcc, 0xcc, 0xcc, 0x78], [0x3c, 0x66, 0x66, 0x66, 0x3c, 0x18, 0x7e, 0x18], [0x3f, 0x33, 0x3f, 0x30, 0x30, 0x70, 0xf0, 0xe0], [0x7f, 0x63, 0x7f, 0x63, 0x63, 0x67, 0xe6, 0xc0], [0x18, 0xdb, 0x3c, 0xe7, 0xe7, 0x3c, 0xdb, 0x18], [0x80, 0xe0, 0xf8, 0xfe, 0xf8, 0xe0, 0x80, 0x00], [0x02, 0x0e, 0x3e, 0xfe, 0x3e, 0x0e, 0x02, 0x00], [0x18, 0x3c, 0x7e, 0x18, 0x18, 0x7e, 0x3c, 0x18], [0x66, 0x66, 0x66, 0x66, 0x66, 0x00, 0x66, 0x00], [0x7f, 0xdb, 0xdb, 0x7b, 0x1b, 0x1b, 0x1b, 0x00], [0x3e, 0x61, 0x3c, 0x66, 0x66, 0x3c, 0x86, 0x7c], [0x00, 0x00, 0x00, 0x00, 0x7e, 0x7e, 0x7e, 0x00], [0x18, 0x3c, 0x7e, 0x18, 0x7e, 0x3c, 0x18, 0xff], [0x18, 0x3c, 0x7e, 0x18, 0x18, 0x18, 0x18, 0x00], [0x18, 0x18, 0x18, 0x18, 0x7e, 0x3c, 0x18, 0x00], [0x00, 0x18, 0x0c, 0xfe, 0x0c, 0x18, 0x00, 0x00], [0x00, 0x30, 0x60, 0xfe, 0x60, 0x30, 0x00, 0x00], [0x00, 0x00, 0xc0, 0xc0, 0xc0, 0xfe, 0x00, 0x00], [0x00, 0x24, 0x66, 0xff, 0x66, 0x24, 0x00, 0x00], [0x00, 0x18, 0x3c, 0x7e, 0xff, 0xff, 0x00, 0x00], [0x00, 0xff, 0xff, 0x7e, 0x3c, 0x18, 0x00, 0x00], [0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00], [0x18, 0x3c, 0x3c, 0x18, 0x18, 0x00, 0x18, 0x00], [0x66, 0x66, 0x24, 0x00, 0x00, 0x00, 0x00, 0x00], [0x6c, 0x6c, 0xfe, 0x6c, 0xfe, 0x6c, 0x6c, 0x00], [0x18, 0x3e, 0x60, 0x3c, 0x06, 0x7c, 0x18, 0x00], [0x00, 0xc6, 0xcc, 0x18, 0x30, 0x66, 0xc6, 0x00], [0x38, 0x6c, 0x38, 0x76, 0xdc, 0xcc, 0x76, 0x00], [0x18, 0x18, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00], [0x0c, 0x18, 0x30, 0x30, 0x30, 0x18, 0x0c, 0x00], [0x30, 0x18, 0x0c, 0x0c, 0x0c, 0x18, 0x30, 0x00], [0x00, 0x66, 0x3c, 0xff, 0x3c, 0x66, 0x00, 0x00], [0x00, 0x18, 0x18, 0x7e, 0x18, 0x18, 0x00, 0x00], [0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x30], [0x00, 0x00, 0x00, 0x7e, 0x00, 0x00, 0x00, 0x00], [0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x00], [0x06, 0x0c, 0x18, 0x30, 0x60, 0xc0, 0x80, 0x00], [0x38, 0x6c, 0xc6, 0xd6, 0xc6, 0x6c, 0x38, 0x00], [0x18, 0x38, 0x18, 0x18, 0x18, 0x18, 0x7e, 0x00], [0x7c, 0xc6, 0x06, 0x1c, 0x30, 0x66, 0xfe, 0x00], [0x7c, 0xc6, 0x06, 0x3c, 0x06, 0xc6, 0x7c, 0x00], [0x1c, 0x3c, 0x6c, 0xcc, 0xfe, 0x0c, 0x1e, 0x00], [0xfe, 0xc0, 0xc0, 0xfc, 0x06, 0xc6, 0x7c, 0x00], [0x38, 0x60, 0xc0, 0xfc, 0xc6, 0xc6, 0x7c, 0x00], [0xfe, 0xc6, 0x0c, 0x18, 0x30, 0x30, 0x30, 0x00], [0x7c, 0xc6, 0xc6, 0x7c, 0xc6, 0xc6, 0x7c, 0x00], [0x7c, 0xc6, 0xc6, 0x7e, 0x06, 0x0c, 0x78, 0x00], [0x00, 0x18, 0x18, 0x00, 0x00, 0x18, 0x18, 0x00], [0x00, 0x18, 0x18, 0x00, 0x00, 0x18, 0x18, 0x30], [0x06, 0x0c, 0x18, 0x30, 0x18, 0x0c, 0x06, 0x00], [0x00, 0x00, 0x7e, 0x00, 0x00, 0x7e, 0x00, 0x00], [0x60, 0x30, 0x18, 0x0c, 0x18, 0x30, 0x60, 0x00], [0x7c, 0xc6, 0x0c, 0x18, 0x18, 0x00, 0x18, 0x00], [0x7c, 0xc6, 0xde, 0xde, 0xde, 0xc0, 0x78, 0x00], [0x38, 0x6c, 0xc6, 0xfe, 0xc6, 0xc6, 0xc6, 0x00], [0xfc, 0x66, 0x66, 0x7c, 0x66, 0x66, 0xfc, 0x00], [0x3c, 0x66, 0xc0, 0xc0, 0xc0, 0x66, 0x3c, 0x00], [0xf8, 0x6c, 0x66, 0x66, 0x66, 0x6c, 0xf8, 0x00], [0xfe, 0x62, 0x68, 0x78, 0x68, 0x62, 0xfe, 0x00], [0xfe, 0x62, 0x68, 0x78, 0x68, 0x60, 0xf0, 0x00], [0x3c, 0x66, 0xc0, 0xc0, 0xce, 0x66, 0x3a, 0x00], [0xc6, 0xc6, 0xc6, 0xfe, 0xc6, 0xc6, 0xc6, 0x00], [0x3c, 0x18, 0x18, 0x18, 0x18, 0x18, 0x3c, 0x00], [0x1e, 0x0c, 0x0c, 0x0c, 0xcc, 0xcc, 0x78, 0x00], [0xe6, 0x66, 0x6c, 0x78, 0x6c, 0x66, 0xe6, 0x00], [0xf0, 0x60, 0x60, 0x60, 0x62, 0x66, 0xfe, 0x00], [0xc6, 0xee, 0xfe, 0xfe, 0xd6, 0xc6, 0xc6, 0x00], [0xc6, 0xe6, 0xf6, 0xde, 0xce, 0xc6, 0xc6, 0x00], [0x7c, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0x7c, 0x00], [0xfc, 0x66, 0x66, 0x7c, 0x60, 0x60, 0xf0, 0x00], [0x7c, 0xc6, 0xc6, 0xc6, 0xc6, 0xce, 0x7c, 0x0e], [0xfc, 0x66, 0x66, 0x7c, 0x6c, 0x66, 0xe6, 0x00], [0x3c, 0x66, 0x30, 0x18, 0x0c, 0x66, 0x3c, 0x00], [0x7e, 0x7e, 0x5a, 0x18, 0x18, 0x18, 0x3c, 0x00], [0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0x7c, 0x00], [0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0x6c, 0x38, 0x00], [0xc6, 0xc6, 0xc6, 0xd6, 0xd6, 0xfe, 0x6c, 0x00], [0xc6, 0xc6, 0x6c, 0x38, 0x6c, 0xc6, 0xc6, 0x00], [0x66, 0x66, 0x66, 0x3c, 0x18, 0x18, 0x3c, 0x00], [0xfe, 0xc6, 0x8c, 0x18, 0x32, 0x66, 0xfe, 0x00], [0x3c, 0x30, 0x30, 0x30, 0x30, 0x30, 0x3c, 0x00], [0xc0, 0x60, 0x30, 0x18, 0x0c, 0x06, 0x02, 0x00], [0x3c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x3c, 0x00], [0x10, 0x38, 0x6c, 0xc6, 0x00, 0x00, 0x00, 0x00], [0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff], [0x30, 0x18, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00], [0x00, 0x00, 0x78, 0x0c, 0x7c, 0xcc, 0x76, 0x00], [0xe0, 0x60, 0x7c, 0x66, 0x66, 0x66, 0xdc, 0x00], [0x00, 0x00, 0x7c, 0xc6, 0xc0, 0xc6, 0x7c, 0x00], [0x1c, 0x0c, 0x7c, 0xcc, 0xcc, 0xcc, 0x76, 0x00], [0x00, 0x00, 0x7c, 0xc6, 0xfe, 0xc0, 0x7c, 0x00], [0x3c, 0x66, 0x60, 0xf8, 0x60, 0x60, 0xf0, 0x00], [0x00, 0x00, 0x76, 0xcc, 0xcc, 0x7c, 0x0c, 0xf8], [0xe0, 0x60, 0x6c, 0x76, 0x66, 0x66, 0xe6, 0x00], [0x18, 0x00, 0x38, 0x18, 0x18, 0x18, 0x3c, 0x00], [0x06, 0x00, 0x06, 0x06, 0x06, 0x66, 0x66, 0x3c], [0xe0, 0x60, 0x66, 0x6c, 0x78, 0x6c, 0xe6, 0x00], [0x38, 0x18, 0x18, 0x18, 0x18, 0x18, 0x3c, 0x00], [0x00, 0x00, 0xec, 0xfe, 0xd6, 0xd6, 0xd6, 0x00], [0x00, 0x00, 0xdc, 0x66, 0x66, 0x66, 0x66, 0x00], [0x00, 0x00, 0x7c, 0xc6, 0xc6, 0xc6, 0x7c, 0x00], [0x00, 0x00, 0xdc, 0x66, 0x66, 0x7c, 0x60, 0xf0], [0x00, 0x00, 0x76, 0xcc, 0xcc, 0x7c, 0x0c, 0x1e], [0x00, 0x00, 0xdc, 0x76, 0x60, 0x60, 0xf0, 0x00], [0x00, 0x00, 0x7e, 0xc0, 0x7c, 0x06, 0xfc, 0x00], [0x30, 0x30, 0xfc, 0x30, 0x30, 0x36, 0x1c, 0x00], [0x00, 0x00, 0xcc, 0xcc, 0xcc, 0xcc, 0x76, 0x00], [0x00, 0x00, 0xc6, 0xc6, 0xc6, 0x6c, 0x38, 0x00], [0x00, 0x00, 0xc6, 0xd6, 0xd6, 0xfe, 0x6c, 0x00], [0x00, 0x00, 0xc6, 0x6c, 0x38, 0x6c, 0xc6, 0x00], [0x00, 0x00, 0xc6, 0xc6, 0xc6, 0x7e, 0x06, 0xfc], [0x00, 0x00, 0x7e, 0x4c, 0x18, 0x32, 0x7e, 0x00], [0x0e, 0x18, 0x18, 0x70, 0x18, 0x18, 0x0e, 0x00], [0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x00], [0x70, 0x18, 0x18, 0x0e, 0x18, 0x18, 0x70, 0x00], [0x76, 0xdc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00], [0x00, 0x10, 0x38, 0x6c, 0xc6, 0xc6, 0xfe, 0x00], [0x7c, 0xc6, 0xc0, 0xc0, 0xc6, 0x7c, 0x0c, 0x78], [0xcc, 0x00, 0xcc, 0xcc, 0xcc, 0xcc, 0x76, 0x00], [0x0c, 0x18, 0x7c, 0xc6, 0xfe, 0xc0, 0x7c, 0x00], [0x7c, 0x82, 0x78, 0x0c, 0x7c, 0xcc, 0x76, 0x00], [0xc6, 0x00, 0x78, 0x0c, 0x7c, 0xcc, 0x76, 0x00], [0x30, 0x18, 0x78, 0x0c, 0x7c, 0xcc, 0x76, 0x00], [0x30, 0x30, 0x78, 0x0c, 0x7c, 0xcc, 0x76, 0x00], [0x00, 0x00, 0x7e, 0xc0, 0xc0, 0x7e, 0x0c, 0x38], [0x7c, 0x82, 0x7c, 0xc6, 0xfe, 0xc0, 0x7c, 0x00], [0xc6, 0x00, 0x7c, 0xc6, 0xfe, 0xc0, 0x7c, 0x00], [0x30, 0x18, 0x7c, 0xc6, 0xfe, 0xc0, 0x7c, 0x00], [0x66, 0x00, 0x38, 0x18, 0x18, 0x18, 0x3c, 0x00], [0x7c, 0x82, 0x38, 0x18, 0x18, 0x18, 0x3c, 0x00], [0x30, 0x18, 0x00, 0x38, 0x18, 0x18, 0x3c, 0x00], [0xc6, 0x38, 0x6c, 0xc6, 0xfe, 0xc6, 0xc6, 0x00], [0x38, 0x6c, 0x7c, 0xc6, 0xfe, 0xc6, 0xc6, 0x00], [0x18, 0x30, 0xfe, 0xc0, 0xf8, 0xc0, 0xfe, 0x00], [0x00, 0x00, 0x7e, 0x18, 0x7e, 0xd8, 0x7e, 0x00], [0x3e, 0x6c, 0xcc, 0xfe, 0xcc, 0xcc, 0xce, 0x00], [0x7c, 0x82, 0x7c, 0xc6, 0xc6, 0xc6, 0x7c, 0x00], [0xc6, 0x00, 0x7c, 0xc6, 0xc6, 0xc6, 0x7c, 0x00], [0x30, 0x18, 0x7c, 0xc6, 0xc6, 0xc6, 0x7c, 0x00], [0x78, 0x84, 0x00, 0xcc, 0xcc, 0xcc, 0x76, 0x00], [0x60, 0x30, 0xcc, 0xcc, 0xcc, 0xcc, 0x76, 0x00], [0xc6, 0x00, 0xc6, 0xc6, 0xc6, 0x7e, 0x06, 0xfc], [0xc6, 0x38, 0x6c, 0xc6, 0xc6, 0x6c, 0x38, 0x00], [0xc6, 0x00, 0xc6, 0xc6, 0xc6, 0xc6, 0x7c, 0x00], [0x18, 0x18, 0x7e, 0xc0, 0xc0, 0x7e, 0x18, 0x18], [0x38, 0x6c, 0x64, 0xf0, 0x60, 0x66, 0xfc, 0x00], [0x66, 0x66, 0x3c, 0x7e, 0x18, 0x7e, 0x18, 0x18], [0xf8, 0xcc, 0xcc, 0xfa, 0xc6, 0xcf, 0xc6, 0xc7], [0x0e, 0x1b, 0x18, 0x3c, 0x18, 0xd8, 0x70, 0x00], [0x18, 0x30, 0x78, 0x0c, 0x7c, 0xcc, 0x76, 0x00], [0x0c, 0x18, 0x00, 0x38, 0x18, 0x18, 0x3c, 0x00], [0x0c, 0x18, 0x7c, 0xc6, 0xc6, 0xc6, 0x7c, 0x00], [0x18, 0x30, 0xcc, 0xcc, 0xcc, 0xcc, 0x76, 0x00], [0x76, 0xdc, 0x00, 0xdc, 0x66, 0x66, 0x66, 0x00], [0x76, 0xdc, 0x00, 0xe6, 0xf6, 0xde, 0xce, 0x00], [0x3c, 0x6c, 0x6c, 0x3e, 0x00, 0x7e, 0x00, 0x00], [0x38, 0x6c, 0x6c, 0x38, 0x00, 0x7c, 0x00, 0x00], [0x18, 0x00, 0x18, 0x18, 0x30, 0x63, 0x3e, 0x00], [0x00, 0x00, 0x00, 0xfe, 0xc0, 0xc0, 0x00, 0x00], [0x00, 0x00, 0x00, 0xfe, 0x06, 0x06, 0x00, 0x00], [0x63, 0xe6, 0x6c, 0x7e, 0x33, 0x66, 0xcc, 0x0f], [0x63, 0xe6, 0x6c, 0x7a, 0x36, 0x6a, 0xdf, 0x06], [0x18, 0x00, 0x18, 0x18, 0x3c, 0x3c, 0x18, 0x00], [0x00, 0x33, 0x66, 0xcc, 0x66, 0x33, 0x00, 0x00], [0x00, 0xcc, 0x66, 0x33, 0x66, 0xcc, 0x00, 0x00], [0x22, 0x88, 0x22, 0x88, 0x22, 0x88, 0x22, 0x88], [0x55, 0xaa, 0x55, 0xaa, 0x55, 0xaa, 0x55, 0xaa], [0x77, 0xdd, 0x77, 0xdd, 0x77, 0xdd, 0x77, 0xdd], [0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18], [0x18, 0x18, 0x18, 0x18, 0xf8, 0x18, 0x18, 0x18], [0x18, 0x18, 0xf8, 0x18, 0xf8, 0x18, 0x18, 0x18], [0x36, 0x36, 0x36, 0x36, 0xf6, 0x36, 0x36, 0x36], [0x00, 0x00, 0x00, 0x00, 0xfe, 0x36, 0x36, 0x36], [0x00, 0x00, 0xf8, 0x18, 0xf8, 0x18, 0x18, 0x18], [0x36, 0x36, 0xf6, 0x06, 0xf6, 0x36, 0x36, 0x36], [0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36], [0x00, 0x00, 0xfe, 0x06, 0xf6, 0x36, 0x36, 0x36], [0x36, 0x36, 0xf6, 0x06, 0xfe, 0x00, 0x00, 0x00], [0x36, 0x36, 0x36, 0x36, 0xfe, 0x00, 0x00, 0x00], [0x18, 0x18, 0xf8, 0x18, 0xf8, 0x00, 0x00, 0x00], [0x00, 0x00, 0x00, 0x00, 0xf8, 0x18, 0x18, 0x18], [0x18, 0x18, 0x18, 0x18, 0x1f, 0x00, 0x00, 0x00], [0x18, 0x18, 0x18, 0x18, 0xff, 0x00, 0x00, 0x00], [0x00, 0x00, 0x00, 0x00, 0xff, 0x18, 0x18, 0x18], [0x18, 0x18, 0x18, 0x18, 0x1f, 0x18, 0x18, 0x18], [0x00, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00], [0x18, 0x18, 0x18, 0x18, 0xff, 0x18, 0x18, 0x18], [0x18, 0x18, 0x1f, 0x18, 0x1f, 0x18, 0x18, 0x18], [0x36, 0x36, 0x36, 0x36, 0x37, 0x36, 0x36, 0x36], [0x36, 0x36, 0x37, 0x30, 0x3f, 0x00, 0x00, 0x00], [0x00, 0x00, 0x3f, 0x30, 0x37, 0x36, 0x36, 0x36], [0x36, 0x36, 0xf7, 0x00, 0xff, 0x00, 0x00, 0x00], [0x00, 0x00, 0xff, 0x00, 0xf7, 0x36, 0x36, 0x36], [0x36, 0x36, 0x37, 0x30, 0x37, 0x36, 0x36, 0x36], [0x00, 0x00, 0xff, 0x00, 0xff, 0x00, 0x00, 0x00], [0x36, 0x36, 0xf7, 0x00, 0xf7, 0x36, 0x36, 0x36], [0x18, 0x18, 0xff, 0x00, 0xff, 0x00, 0x00, 0x00], [0x36, 0x36, 0x36, 0x36, 0xff, 0x00, 0x00, 0x00], [0x00, 0x00, 0xff, 0x00, 0xff, 0x18, 0x18, 0x18], [0x00, 0x00, 0x00, 0x00, 0xff, 0x36, 0x36, 0x36], [0x36, 0x36, 0x36, 0x36, 0x3f, 0x00, 0x00, 0x00], [0x18, 0x18, 0x1f, 0x18, 0x1f, 0x00, 0x00, 0x00], [0x00, 0x00, 0x1f, 0x18, 0x1f, 0x18, 0x18, 0x18], [0x00, 0x00, 0x00, 0x00, 0x3f, 0x36, 0x36, 0x36], [0x36, 0x36, 0x36, 0x36, 0xff, 0x36, 0x36, 0x36], [0x18, 0x18, 0xff, 0x18, 0xff, 0x18, 0x18, 0x18], [0x18, 0x18, 0x18, 0x18, 0xf8, 0x00, 0x00, 0x00], [0x00, 0x00, 0x00, 0x00, 0x1f, 0x18, 0x18, 0x18], [0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff], [0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff], [0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0], [0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f], [0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00], [0x00, 0x00, 0x76, 0xdc, 0xc8, 0xdc, 0x76, 0x00], [0x78, 0xcc, 0xcc, 0xd8, 0xcc, 0xc6, 0xcc, 0x00], [0xfe, 0xc6, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0x00], [0x00, 0x00, 0xfe, 0x6c, 0x6c, 0x6c, 0x6c, 0x00], [0xfe, 0xc6, 0x60, 0x30, 0x60, 0xc6, 0xfe, 0x00], [0x00, 0x00, 0x7e, 0xd8, 0xd8, 0xd8, 0x70, 0x00], [0x00, 0x00, 0x66, 0x66, 0x66, 0x66, 0x7c, 0xc0], [0x00, 0x76, 0xdc, 0x18, 0x18, 0x18, 0x18, 0x00], [0x7e, 0x18, 0x3c, 0x66, 0x66, 0x3c, 0x18, 0x7e], [0x38, 0x6c, 0xc6, 0xfe, 0xc6, 0x6c, 0x38, 0x00], [0x38, 0x6c, 0xc6, 0xc6, 0x6c, 0x6c, 0xee, 0x00], [0x0e, 0x18, 0x0c, 0x3e, 0x66, 0x66, 0x3c, 0x00], [0x00, 0x00, 0x7e, 0xdb, 0xdb, 0x7e, 0x00, 0x00], [0x06, 0x0c, 0x7e, 0xdb, 0xdb, 0x7e, 0x60, 0xc0], [0x1e, 0x30, 0x60, 0x7e, 0x60, 0x30, 0x1e, 0x00], [0x00, 0x7c, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0x00], [0x00, 0xfe, 0x00, 0xfe, 0x00, 0xfe, 0x00, 0x00], [0x18, 0x18, 0x7e, 0x18, 0x18, 0x00, 0x7e, 0x00], [0x30, 0x18, 0x0c, 0x18, 0x30, 0x00, 0x7e, 0x00], [0x0c, 0x18, 0x30, 0x18, 0x0c, 0x00, 0x7e, 0x00], [0x0e, 0x1b, 0x1b, 0x18, 0x18, 0x18, 0x18, 0x18], [0x18, 0x18, 0x18, 0x18, 0x18, 0xd8, 0xd8, 0x70], [0x00, 0x18, 0x00, 0x7e, 0x00, 0x18, 0x00, 0x00], [0x00, 0x76, 0xdc, 0x00, 0x76, 0xdc, 0x00, 0x00], [0x38, 0x6c, 0x6c, 0x38, 0x00, 0x00, 0x00, 0x00], [0x00, 0x00, 0x00, 0x18, 0x18, 0x00, 0x00, 0x00], [0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x00], [0x0f, 0x0c, 0x0c, 0x0c, 0xec, 0x6c, 0x3c, 0x1c], [0x6c, 0x36, 0x36, 0x36, 0x36, 0x00, 0x00, 0x00], [0x78, 0x0c, 0x18, 0x30, 0x7c, 0x00, 0x00, 0x00], [0x00, 0x00, 0x3c, 0x3c, 0x3c, 0x3c, 0x00, 0x00], [0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00]]; - this.height = 8; - for (k in options) { - if (!__hasProp.call(options, k)) continue; - v = options[k]; - this[k] = v; - } - } - - return ImageTextModeFont8x8; - -})(this.ImageTextModeFont); - -this.ImageTextModeFontAmiga = (function(_super) { - __extends(ImageTextModeFontAmiga, _super); - - function ImageTextModeFontAmiga(options) { - var k, v; - ImageTextModeFontAmiga.__super__.constructor.apply(this, arguments); - this.chars = [[0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00], [0x83, 0x83, 0x39, 0x39, 0x21, 0x21, 0x29, 0x29, 0x21, 0x21, 0x3f, 0x3f, 0x87, 0x87, 0xff, 0xff], [0xc3, 0xc3, 0x99, 0x99, 0x99, 0x99, 0x81, 0x81, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0xff, 0xff], [0x83, 0x83, 0x99, 0x99, 0x99, 0x99, 0x83, 0x83, 0x99, 0x99, 0x99, 0x99, 0x83, 0x83, 0xff, 0xff], [0xe1, 0xe1, 0xcf, 0xcf, 0x9f, 0x9f, 0x9f, 0x9f, 0x9f, 0x9f, 0xcf, 0xcf, 0xe1, 0xe1, 0xff, 0xff], [0x87, 0x87, 0x93, 0x93, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x93, 0x93, 0x87, 0x87, 0xff, 0xff], [0x81, 0x81, 0x9f, 0x9f, 0x9f, 0x9f, 0x87, 0x87, 0x9f, 0x9f, 0x9f, 0x9f, 0x81, 0x81, 0xff, 0xff], [0x81, 0x81, 0x9f, 0x9f, 0x9f, 0x9f, 0x87, 0x87, 0x9f, 0x9f, 0x9f, 0x9f, 0x9f, 0x9f, 0xff, 0xff], [0xc3, 0xc3, 0x99, 0x99, 0x9f, 0x9f, 0x91, 0x91, 0x99, 0x99, 0x99, 0x99, 0xc1, 0xc1, 0xff, 0xff], [0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x81, 0x81, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0xff, 0xff], [0xc3, 0xc3, 0xe7, 0xe7, 0xe7, 0xe7, 0xe7, 0xe7, 0xe7, 0xe7, 0xe7, 0xe7, 0xc3, 0xc3, 0xff, 0xff], [0xf9, 0xf9, 0xf9, 0xf9, 0xf9, 0xf9, 0xf9, 0xf9, 0xf9, 0xf9, 0x99, 0x99, 0xc3, 0xc3, 0xff, 0xff], [0x9c, 0x9c, 0x99, 0x99, 0x93, 0x93, 0x87, 0x87, 0x93, 0x93, 0x99, 0x99, 0x9c, 0x9c, 0xff, 0xff], [0x9f, 0x9f, 0x9f, 0x9f, 0x9f, 0x9f, 0x9f, 0x9f, 0x9f, 0x9f, 0x9f, 0x9f, 0x81, 0x81, 0xff, 0xff], [0x9c, 0x9c, 0x88, 0x88, 0x80, 0x80, 0x94, 0x94, 0x9c, 0x9c, 0x9c, 0x9c, 0x9c, 0x9c, 0xff, 0xff], [0x9c, 0x9c, 0x8c, 0x8c, 0x84, 0x84, 0x90, 0x90, 0x98, 0x98, 0x9c, 0x9c, 0x9c, 0x9c, 0xff, 0xff], [0xc3, 0xc3, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0xc3, 0xc3, 0xff, 0xff], [0x83, 0x83, 0x99, 0x99, 0x99, 0x99, 0x83, 0x83, 0x9f, 0x9f, 0x9f, 0x9f, 0x9f, 0x9f, 0xff, 0xff], [0xc3, 0xc3, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x91, 0x91, 0xc0, 0xc0, 0xff, 0xff], [0x83, 0x83, 0x99, 0x99, 0x99, 0x99, 0x83, 0x83, 0x93, 0x93, 0x99, 0x99, 0x99, 0x99, 0xff, 0xff], [0xc3, 0xc3, 0x99, 0x99, 0x8f, 0x8f, 0xc3, 0xc3, 0xf1, 0xf1, 0x99, 0x99, 0xc3, 0xc3, 0xff, 0xff], [0x81, 0x81, 0xe7, 0xe7, 0xe7, 0xe7, 0xe7, 0xe7, 0xe7, 0xe7, 0xe7, 0xe7, 0xe7, 0xe7, 0xff, 0xff], [0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0xc3, 0xc3, 0xff, 0xff], [0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x81, 0xc3, 0xc3, 0xe7, 0xe7, 0xff, 0xff], [0x9c, 0x9c, 0x9c, 0x9c, 0x9c, 0x9c, 0x94, 0x94, 0x80, 0x80, 0x88, 0x88, 0x9c, 0x9c, 0xff, 0xff], [0x3c, 0x3c, 0x99, 0x99, 0xc3, 0xc3, 0xe7, 0xe7, 0xc3, 0xc3, 0x99, 0x99, 0x3c, 0x3c, 0xff, 0xff], [0x3c, 0x3c, 0x99, 0x99, 0xc3, 0xc3, 0xe7, 0xe7, 0xe7, 0xe7, 0xe7, 0xe7, 0xe7, 0xe7, 0xff, 0xff], [0x80, 0x80, 0xf9, 0xf9, 0xf3, 0xf3, 0xe7, 0xe7, 0xcf, 0xcf, 0x9f, 0x9f, 0x80, 0x80, 0xff, 0xff], [0xc3, 0xc3, 0xcf, 0xcf, 0xcf, 0xcf, 0xcf, 0xcf, 0xcf, 0xcf, 0xcf, 0xcf, 0xc3, 0xc3, 0xff, 0xff], [0x3f, 0x3f, 0x9f, 0x9f, 0xcf, 0xcf, 0xe7, 0xe7, 0xf3, 0xf3, 0xf9, 0xf9, 0xfc, 0xfc, 0xff, 0xff], [0xc3, 0xc3, 0xf3, 0xf3, 0xf3, 0xf3, 0xf3, 0xf3, 0xf3, 0xf3, 0xf3, 0xf3, 0xc3, 0xc3, 0xff, 0xff], [0xf7, 0xf7, 0xe3, 0xe3, 0xc9, 0xc9, 0x9c, 0x9c, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff], [0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00], [0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x00, 0x00, 0x18, 0x18, 0x00, 0x00], [0x6c, 0x6c, 0x6c, 0x6c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00], [0x6c, 0x6c, 0x6c, 0x6c, 0xfe, 0xfe, 0x6c, 0x6c, 0xfe, 0xfe, 0x6c, 0x6c, 0x6c, 0x6c, 0x00, 0x00], [0x18, 0x18, 0x3e, 0x3e, 0x60, 0x60, 0x3c, 0x3c, 0x06, 0x06, 0x7c, 0x7c, 0x18, 0x18, 0x00, 0x00], [0x00, 0x00, 0x66, 0x66, 0xac, 0xac, 0xd8, 0xd8, 0x36, 0x36, 0x6a, 0x6a, 0xcc, 0xcc, 0x00, 0x00], [0x38, 0x38, 0x6c, 0x6c, 0x68, 0x68, 0x76, 0x76, 0xdc, 0xdc, 0xce, 0xce, 0x7b, 0x7b, 0x00, 0x00], [0x18, 0x18, 0x18, 0x18, 0x30, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00], [0x0c, 0x0c, 0x18, 0x18, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x18, 0x18, 0x0c, 0x0c, 0x00, 0x00], [0x30, 0x30, 0x18, 0x18, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x18, 0x18, 0x30, 0x30, 0x00, 0x00], [0x00, 0x00, 0x66, 0x66, 0x3c, 0x3c, 0xff, 0xff, 0x3c, 0x3c, 0x66, 0x66, 0x00, 0x00, 0x00, 0x00], [0x00, 0x00, 0x18, 0x18, 0x18, 0x18, 0x7e, 0x7e, 0x18, 0x18, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00], [0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x18, 0x18, 0x30, 0x30], [0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x7e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00], [0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x18, 0x18, 0x00, 0x00], [0x03, 0x03, 0x06, 0x06, 0x0c, 0x0c, 0x18, 0x18, 0x30, 0x30, 0x60, 0x60, 0xc0, 0xc0, 0x00, 0x00], [0x3c, 0x3c, 0x66, 0x66, 0x6e, 0x6e, 0x7e, 0x7e, 0x76, 0x76, 0x66, 0x66, 0x3c, 0x3c, 0x00, 0x00], [0x18, 0x18, 0x38, 0x38, 0x78, 0x78, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x00, 0x00], [0x3c, 0x3c, 0x66, 0x66, 0x06, 0x06, 0x0c, 0x0c, 0x18, 0x18, 0x30, 0x30, 0x7e, 0x7e, 0x00, 0x00], [0x3c, 0x3c, 0x66, 0x66, 0x06, 0x06, 0x1c, 0x1c, 0x06, 0x06, 0x66, 0x66, 0x3c, 0x3c, 0x00, 0x00], [0x1c, 0x1c, 0x3c, 0x3c, 0x6c, 0x6c, 0xcc, 0xcc, 0xfe, 0xfe, 0x0c, 0x0c, 0x0c, 0x0c, 0x00, 0x00], [0x7e, 0x7e, 0x60, 0x60, 0x7c, 0x7c, 0x06, 0x06, 0x06, 0x06, 0x66, 0x66, 0x3c, 0x3c, 0x00, 0x00], [0x1c, 0x1c, 0x30, 0x30, 0x60, 0x60, 0x7c, 0x7c, 0x66, 0x66, 0x66, 0x66, 0x3c, 0x3c, 0x00, 0x00], [0x7e, 0x7e, 0x06, 0x06, 0x06, 0x06, 0x0c, 0x0c, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x00, 0x00], [0x3c, 0x3c, 0x66, 0x66, 0x66, 0x66, 0x3c, 0x3c, 0x66, 0x66, 0x66, 0x66, 0x3c, 0x3c, 0x00, 0x00], [0x3c, 0x3c, 0x66, 0x66, 0x66, 0x66, 0x3e, 0x3e, 0x06, 0x06, 0x0c, 0x0c, 0x38, 0x38, 0x00, 0x00], [0x00, 0x00, 0x18, 0x18, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x18, 0x18, 0x00, 0x00], [0x00, 0x00, 0x18, 0x18, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x18, 0x18, 0x30, 0x30], [0x00, 0x00, 0x06, 0x06, 0x18, 0x18, 0x60, 0x60, 0x18, 0x18, 0x06, 0x06, 0x00, 0x00, 0x00, 0x00], [0x00, 0x00, 0x00, 0x00, 0x7e, 0x7e, 0x00, 0x00, 0x7e, 0x7e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00], [0x00, 0x00, 0x60, 0x60, 0x18, 0x18, 0x06, 0x06, 0x18, 0x18, 0x60, 0x60, 0x00, 0x00, 0x00, 0x00], [0x3c, 0x3c, 0x66, 0x66, 0x06, 0x06, 0x0c, 0x0c, 0x18, 0x18, 0x00, 0x00, 0x18, 0x18, 0x00, 0x00], [0x7c, 0x7c, 0xc6, 0xc6, 0xde, 0xde, 0xd6, 0xd6, 0xde, 0xde, 0xc0, 0xc0, 0x78, 0x78, 0x00, 0x00], [0x3c, 0x3c, 0x66, 0x66, 0x66, 0x66, 0x7e, 0x7e, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x00, 0x00], [0x7c, 0x7c, 0x66, 0x66, 0x66, 0x66, 0x7c, 0x7c, 0x66, 0x66, 0x66, 0x66, 0x7c, 0x7c, 0x00, 0x00], [0x1e, 0x1e, 0x30, 0x30, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x30, 0x30, 0x1e, 0x1e, 0x00, 0x00], [0x78, 0x78, 0x6c, 0x6c, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x6c, 0x6c, 0x78, 0x78, 0x00, 0x00], [0x7e, 0x7e, 0x60, 0x60, 0x60, 0x60, 0x78, 0x78, 0x60, 0x60, 0x60, 0x60, 0x7e, 0x7e, 0x00, 0x00], [0x7e, 0x7e, 0x60, 0x60, 0x60, 0x60, 0x78, 0x78, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x00, 0x00], [0x3c, 0x3c, 0x66, 0x66, 0x60, 0x60, 0x6e, 0x6e, 0x66, 0x66, 0x66, 0x66, 0x3e, 0x3e, 0x00, 0x00], [0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x7e, 0x7e, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x00, 0x00], [0x3c, 0x3c, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x3c, 0x3c, 0x00, 0x00], [0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x66, 0x66, 0x3c, 0x3c, 0x00, 0x00], [0xc6, 0xc6, 0xcc, 0xcc, 0xd8, 0xd8, 0xf0, 0xf0, 0xd8, 0xd8, 0xcc, 0xcc, 0xc6, 0xc6, 0x00, 0x00], [0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x7e, 0x7e, 0x00, 0x00], [0xc6, 0xc6, 0xee, 0xee, 0xfe, 0xfe, 0xd6, 0xd6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0x00, 0x00], [0xc6, 0xc6, 0xe6, 0xe6, 0xf6, 0xf6, 0xde, 0xde, 0xce, 0xce, 0xc6, 0xc6, 0xc6, 0xc6, 0x00, 0x00], [0x3c, 0x3c, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x3c, 0x3c, 0x00, 0x00], [0x7c, 0x7c, 0x66, 0x66, 0x66, 0x66, 0x7c, 0x7c, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x00, 0x00], [0x78, 0x78, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xdc, 0xdc, 0x7e, 0x7e, 0x00, 0x00], [0x7c, 0x7c, 0x66, 0x66, 0x66, 0x66, 0x7c, 0x7c, 0x6c, 0x6c, 0x66, 0x66, 0x66, 0x66, 0x00, 0x00], [0x3c, 0x3c, 0x66, 0x66, 0x70, 0x70, 0x3c, 0x3c, 0x0e, 0x0e, 0x66, 0x66, 0x3c, 0x3c, 0x00, 0x00], [0x7e, 0x7e, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x00, 0x00], [0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x3c, 0x3c, 0x00, 0x00], [0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x3c, 0x3c, 0x3c, 0x3c, 0x18, 0x18, 0x00, 0x00], [0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xd6, 0xd6, 0xfe, 0xfe, 0xee, 0xee, 0xc6, 0xc6, 0x00, 0x00], [0xc3, 0xc3, 0x66, 0x66, 0x3c, 0x3c, 0x18, 0x18, 0x3c, 0x3c, 0x66, 0x66, 0xc3, 0xc3, 0x00, 0x00], [0xc3, 0xc3, 0x66, 0x66, 0x3c, 0x3c, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x00, 0x00], [0xfe, 0xfe, 0x0c, 0x0c, 0x18, 0x18, 0x30, 0x30, 0x60, 0x60, 0xc0, 0xc0, 0xfe, 0xfe, 0x00, 0x00], [0x3c, 0x3c, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x3c, 0x3c, 0x00, 0x00], [0xc0, 0xc0, 0x60, 0x60, 0x30, 0x30, 0x18, 0x18, 0x0c, 0x0c, 0x06, 0x06, 0x03, 0x03, 0x00, 0x00], [0x3c, 0x3c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x3c, 0x3c, 0x00, 0x00], [0x10, 0x10, 0x38, 0x38, 0x6c, 0x6c, 0xc6, 0xc6, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00], [0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0xfe], [0x18, 0x18, 0x18, 0x18, 0x0c, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00], [0x00, 0x00, 0x00, 0x00, 0x3c, 0x3c, 0x06, 0x06, 0x3e, 0x3e, 0x66, 0x66, 0x3e, 0x3e, 0x00, 0x00], [0x60, 0x60, 0x60, 0x60, 0x7c, 0x7c, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x7c, 0x7c, 0x00, 0x00], [0x00, 0x00, 0x00, 0x00, 0x3c, 0x3c, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x3c, 0x3c, 0x00, 0x00], [0x06, 0x06, 0x06, 0x06, 0x3e, 0x3e, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x3e, 0x3e, 0x00, 0x00], [0x00, 0x00, 0x00, 0x00, 0x3c, 0x3c, 0x66, 0x66, 0x7e, 0x7e, 0x60, 0x60, 0x3c, 0x3c, 0x00, 0x00], [0x1c, 0x1c, 0x30, 0x30, 0x7c, 0x7c, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x00, 0x00], [0x00, 0x00, 0x00, 0x00, 0x3e, 0x3e, 0x66, 0x66, 0x66, 0x66, 0x3e, 0x3e, 0x06, 0x06, 0x3c, 0x3c], [0x60, 0x60, 0x60, 0x60, 0x7c, 0x7c, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x00, 0x00], [0x18, 0x18, 0x00, 0x00, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x0c, 0x0c, 0x00, 0x00], [0x0c, 0x0c, 0x00, 0x00, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x78, 0x78], [0x60, 0x60, 0x60, 0x60, 0x66, 0x66, 0x6c, 0x6c, 0x78, 0x78, 0x6c, 0x6c, 0x66, 0x66, 0x00, 0x00], [0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x0c, 0x0c, 0x00, 0x00], [0x00, 0x00, 0x00, 0x00, 0xec, 0xec, 0xfe, 0xfe, 0xd6, 0xd6, 0xc6, 0xc6, 0xc6, 0xc6, 0x00, 0x00], [0x00, 0x00, 0x00, 0x00, 0x7c, 0x7c, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x00, 0x00], [0x00, 0x00, 0x00, 0x00, 0x3c, 0x3c, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x3c, 0x3c, 0x00, 0x00], [0x00, 0x00, 0x00, 0x00, 0x7c, 0x7c, 0x66, 0x66, 0x66, 0x66, 0x7c, 0x7c, 0x60, 0x60, 0x60, 0x60], [0x00, 0x00, 0x00, 0x00, 0x3e, 0x3e, 0x66, 0x66, 0x66, 0x66, 0x3e, 0x3e, 0x06, 0x06, 0x06, 0x06], [0x00, 0x00, 0x00, 0x00, 0x7c, 0x7c, 0x66, 0x66, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x00, 0x00], [0x00, 0x00, 0x00, 0x00, 0x3c, 0x3c, 0x60, 0x60, 0x3c, 0x3c, 0x06, 0x06, 0x7c, 0x7c, 0x00, 0x00], [0x30, 0x30, 0x30, 0x30, 0x7c, 0x7c, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x1c, 0x1c, 0x00, 0x00], [0x00, 0x00, 0x00, 0x00, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x3e, 0x3e, 0x00, 0x00], [0x00, 0x00, 0x00, 0x00, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x3c, 0x3c, 0x18, 0x18, 0x00, 0x00], [0x00, 0x00, 0x00, 0x00, 0xc6, 0xc6, 0xc6, 0xc6, 0xd6, 0xd6, 0xfe, 0xfe, 0x6c, 0x6c, 0x00, 0x00], [0x00, 0x00, 0x00, 0x00, 0xc6, 0xc6, 0x6c, 0x6c, 0x38, 0x38, 0x6c, 0x6c, 0xc6, 0xc6, 0x00, 0x00], [0x00, 0x00, 0x00, 0x00, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x3c, 0x3c, 0x18, 0x18, 0x30, 0x30], [0x00, 0x00, 0x00, 0x00, 0x7e, 0x7e, 0x0c, 0x0c, 0x18, 0x18, 0x30, 0x30, 0x7e, 0x7e, 0x00, 0x00], [0x0e, 0x0e, 0x18, 0x18, 0x18, 0x18, 0x70, 0x70, 0x18, 0x18, 0x18, 0x18, 0x0e, 0x0e, 0x00, 0x00], [0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x00, 0x00], [0x70, 0x70, 0x18, 0x18, 0x18, 0x18, 0x0e, 0x0e, 0x18, 0x18, 0x18, 0x18, 0x70, 0x70, 0x00, 0x00], [0x72, 0x72, 0x9c, 0x9c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00], [0x0f, 0x0f, 0x3c, 0x3c, 0xf0, 0xf0, 0xc3, 0xc3, 0x0f, 0x0f, 0x3c, 0x3c, 0xf0, 0xf0, 0x00, 0x00], [0xcf, 0xcf, 0xe7, 0xe7, 0xc3, 0xc3, 0x99, 0x99, 0x81, 0x81, 0x99, 0x99, 0x99, 0x99, 0xff, 0xff], [0xf3, 0xf3, 0xe7, 0xe7, 0xc3, 0xc3, 0x99, 0x99, 0x81, 0x81, 0x99, 0x99, 0x99, 0x99, 0xff, 0xff], [0xe7, 0xe7, 0x99, 0x99, 0xc3, 0xc3, 0x99, 0x99, 0x81, 0x81, 0x99, 0x99, 0x99, 0x99, 0xff, 0xff], [0x8e, 0x8e, 0x71, 0x71, 0xc3, 0xc3, 0x99, 0x99, 0x81, 0x81, 0x99, 0x99, 0x99, 0x99, 0xff, 0xff], [0x99, 0x99, 0xff, 0xff, 0xc3, 0xc3, 0x99, 0x99, 0x81, 0x81, 0x99, 0x99, 0x99, 0x99, 0xff, 0xff], [0xe7, 0xe7, 0xdb, 0xdb, 0xc3, 0xc3, 0x99, 0x99, 0x81, 0x81, 0x99, 0x99, 0x99, 0x99, 0xff, 0xff], [0xe0, 0xe0, 0xc3, 0xc3, 0xc3, 0xc3, 0x90, 0x90, 0x83, 0x83, 0x33, 0x33, 0x30, 0x30, 0xff, 0xff], [0xe1, 0xe1, 0xcf, 0xcf, 0x9f, 0x9f, 0x9f, 0x9f, 0xcf, 0xcf, 0xe1, 0xe1, 0xf3, 0xf3, 0xe7, 0xe7], [0xcf, 0xcf, 0xe7, 0xe7, 0x81, 0x81, 0x9f, 0x9f, 0x87, 0x87, 0x9f, 0x9f, 0x81, 0x81, 0xff, 0xff], [0xf3, 0xf3, 0xe7, 0xe7, 0x81, 0x81, 0x9f, 0x9f, 0x87, 0x87, 0x9f, 0x9f, 0x81, 0x81, 0xff, 0xff], [0xe7, 0xe7, 0x99, 0x99, 0x81, 0x81, 0x9f, 0x9f, 0x87, 0x87, 0x9f, 0x9f, 0x81, 0x81, 0xff, 0xff], [0x99, 0x99, 0xff, 0xff, 0x81, 0x81, 0x9f, 0x9f, 0x87, 0x87, 0x9f, 0x9f, 0x81, 0x81, 0xff, 0xff], [0xcf, 0xcf, 0xe7, 0xe7, 0xc3, 0xc3, 0xe7, 0xe7, 0xe7, 0xe7, 0xe7, 0xe7, 0xc3, 0xc3, 0xff, 0xff], [0xf3, 0xf3, 0xe7, 0xe7, 0xc3, 0xc3, 0xe7, 0xe7, 0xe7, 0xe7, 0xe7, 0xe7, 0xc3, 0xc3, 0xff, 0xff], [0xe7, 0xe7, 0x99, 0x99, 0xc3, 0xc3, 0xe7, 0xe7, 0xe7, 0xe7, 0xe7, 0xe7, 0xc3, 0xc3, 0xff, 0xff], [0x99, 0x99, 0xff, 0xff, 0xc3, 0xc3, 0xe7, 0xe7, 0xe7, 0xe7, 0xe7, 0xe7, 0xc3, 0xc3, 0xff, 0xff], [0x87, 0x87, 0x93, 0x93, 0x99, 0x99, 0x09, 0x09, 0x99, 0x99, 0x93, 0x93, 0x87, 0x87, 0xff, 0xff], [0x8e, 0x8e, 0x31, 0x31, 0x19, 0x19, 0x09, 0x09, 0x21, 0x21, 0x31, 0x31, 0x39, 0x39, 0xff, 0xff], [0xcf, 0xcf, 0xe7, 0xe7, 0xc3, 0xc3, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0xc3, 0xc3, 0xff, 0xff], [0xf3, 0xf3, 0xe7, 0xe7, 0xc3, 0xc3, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0xc3, 0xc3, 0xff, 0xff], [0xe7, 0xe7, 0x99, 0x99, 0xc3, 0xc3, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0xc3, 0xc3, 0xff, 0xff], [0x8e, 0x8e, 0x71, 0x71, 0xc3, 0xc3, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0xc3, 0xc3, 0xff, 0xff], [0x3c, 0x3c, 0xc3, 0xc3, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0xc3, 0xc3, 0xff, 0xff], [0xff, 0xff, 0x39, 0x39, 0x93, 0x93, 0xc7, 0xc7, 0x93, 0x93, 0x39, 0x39, 0xff, 0xff, 0xff, 0xff], [0xc0, 0xc0, 0x99, 0x99, 0x91, 0x91, 0x81, 0x81, 0x89, 0x89, 0x99, 0x99, 0x03, 0x03, 0xff, 0xff], [0xcf, 0xcf, 0xe7, 0xe7, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0xc3, 0xc3, 0xff, 0xff], [0xf3, 0xf3, 0xe7, 0xe7, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0xc3, 0xc3, 0xff, 0xff], [0xe7, 0xe7, 0xdb, 0xdb, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0xc3, 0xc3, 0xff, 0xff], [0x99, 0x99, 0xff, 0xff, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0xc3, 0xc3, 0xff, 0xff], [0xf9, 0xf9, 0xf7, 0xf7, 0x3c, 0x3c, 0x99, 0x99, 0xc3, 0xc3, 0xe7, 0xe7, 0xe7, 0xe7, 0xff, 0xff], [0x3f, 0x3f, 0x3f, 0x3f, 0x03, 0x03, 0x39, 0x39, 0x03, 0x03, 0x3f, 0x3f, 0x3f, 0x3f, 0xff, 0xff], [0xc3, 0xc3, 0x99, 0x99, 0x99, 0x99, 0x93, 0x93, 0x99, 0x99, 0x99, 0x99, 0x93, 0x93, 0x9f, 0x9f], [0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x80, 0x80], [0x18, 0x18, 0x00, 0x00, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x00, 0x00], [0x00, 0x00, 0x0c, 0x0c, 0x3e, 0x3e, 0x6c, 0x6c, 0x3e, 0x3e, 0x0c, 0x0c, 0x00, 0x00, 0x00, 0x00], [0x1c, 0x1c, 0x36, 0x36, 0x30, 0x30, 0x78, 0x78, 0x30, 0x30, 0x30, 0x30, 0x7e, 0x7e, 0x00, 0x00], [0x42, 0x42, 0x3c, 0x3c, 0x66, 0x66, 0x3c, 0x3c, 0x42, 0x42, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00], [0xc3, 0xc3, 0x66, 0x66, 0x3c, 0x3c, 0x18, 0x18, 0x3c, 0x3c, 0x18, 0x18, 0x18, 0x18, 0x00, 0x00], [0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x00, 0x00, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x00, 0x00], [0x3c, 0x3c, 0x60, 0x60, 0x3c, 0x3c, 0x66, 0x66, 0x3c, 0x3c, 0x06, 0x06, 0x3c, 0x3c, 0x00, 0x00], [0x66, 0x66, 0x66, 0x66, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00], [0x7e, 0x7e, 0x81, 0x81, 0x9d, 0x9d, 0xb1, 0xb1, 0x9d, 0x9d, 0x81, 0x81, 0x7e, 0x7e, 0x00, 0x00], [0x1c, 0x1c, 0x24, 0x24, 0x44, 0x44, 0x3c, 0x3c, 0x00, 0x00, 0x7e, 0x7e, 0x00, 0x00, 0x00, 0x00], [0x00, 0x00, 0x33, 0x33, 0x66, 0x66, 0xcc, 0xcc, 0x66, 0x66, 0x33, 0x33, 0x00, 0x00, 0x00, 0x00], [0x3e, 0x3e, 0x06, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00], [0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x7e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00], [0x7e, 0x7e, 0x81, 0x81, 0xb9, 0xb9, 0xa5, 0xa5, 0xb9, 0xb9, 0xa5, 0xa5, 0x81, 0x81, 0x7e, 0x7e], [0x7e, 0x7e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00], [0x3c, 0x3c, 0x66, 0x66, 0x3c, 0x3c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00], [0x18, 0x18, 0x18, 0x18, 0x7e, 0x7e, 0x18, 0x18, 0x18, 0x18, 0x00, 0x00, 0x7e, 0x7e, 0x00, 0x00], [0x78, 0x78, 0x0c, 0x0c, 0x18, 0x18, 0x30, 0x30, 0x7c, 0x7c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00], [0x78, 0x78, 0x0c, 0x0c, 0x18, 0x18, 0x0c, 0x0c, 0x78, 0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00], [0x18, 0x18, 0x30, 0x30, 0x60, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00], [0x00, 0x00, 0x00, 0x00, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x7f, 0x7f, 0x60, 0x60], [0x3e, 0x3e, 0x7a, 0x7a, 0x7a, 0x7a, 0x3a, 0x3a, 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, 0x00, 0x00], [0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00], [0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x30, 0x30], [0x30, 0x30, 0x70, 0x70, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00], [0x38, 0x38, 0x44, 0x44, 0x44, 0x44, 0x38, 0x38, 0x00, 0x00, 0x7c, 0x7c, 0x00, 0x00, 0x00, 0x00], [0x00, 0x00, 0xcc, 0xcc, 0x66, 0x66, 0x33, 0x33, 0x66, 0x66, 0xcc, 0xcc, 0x00, 0x00, 0x00, 0x00], [0x40, 0x40, 0xc6, 0xc6, 0x4c, 0x4c, 0x58, 0x58, 0x32, 0x32, 0x66, 0x66, 0xcf, 0xcf, 0x02, 0x02], [0x40, 0x40, 0xc6, 0xc6, 0x4c, 0x4c, 0x58, 0x58, 0x3e, 0x3e, 0x62, 0x62, 0xc4, 0xc4, 0x0e, 0x0e], [0xc0, 0xc0, 0x23, 0x23, 0x66, 0x66, 0x2c, 0x2c, 0xd9, 0xd9, 0x33, 0x33, 0x67, 0x67, 0x01, 0x01], [0x18, 0x18, 0x00, 0x00, 0x18, 0x18, 0x30, 0x30, 0x60, 0x60, 0x66, 0x66, 0x3c, 0x3c, 0x00, 0x00], [0x30, 0x30, 0x18, 0x18, 0x3c, 0x3c, 0x66, 0x66, 0x7e, 0x7e, 0x66, 0x66, 0x66, 0x66, 0x00, 0x00], [0x0c, 0x0c, 0x18, 0x18, 0x3c, 0x3c, 0x66, 0x66, 0x7e, 0x7e, 0x66, 0x66, 0x66, 0x66, 0x00, 0x00], [0x18, 0x18, 0x66, 0x66, 0x3c, 0x3c, 0x66, 0x66, 0x7e, 0x7e, 0x66, 0x66, 0x66, 0x66, 0x00, 0x00], [0x71, 0x71, 0x8e, 0x8e, 0x3c, 0x3c, 0x66, 0x66, 0x7e, 0x7e, 0x66, 0x66, 0x66, 0x66, 0x00, 0x00], [0x66, 0x66, 0x00, 0x00, 0x3c, 0x3c, 0x66, 0x66, 0x7e, 0x7e, 0x66, 0x66, 0x66, 0x66, 0x00, 0x00], [0x18, 0x18, 0x24, 0x24, 0x3c, 0x3c, 0x66, 0x66, 0x7e, 0x7e, 0x66, 0x66, 0x66, 0x66, 0x00, 0x00], [0x1f, 0x1f, 0x3c, 0x3c, 0x3c, 0x3c, 0x6f, 0x6f, 0x7c, 0x7c, 0xcc, 0xcc, 0xcf, 0xcf, 0x00, 0x00], [0x1e, 0x1e, 0x30, 0x30, 0x60, 0x60, 0x60, 0x60, 0x30, 0x30, 0x1e, 0x1e, 0x0c, 0x0c, 0x18, 0x18], [0x30, 0x30, 0x18, 0x18, 0x7e, 0x7e, 0x60, 0x60, 0x78, 0x78, 0x60, 0x60, 0x7e, 0x7e, 0x00, 0x00], [0x0c, 0x0c, 0x18, 0x18, 0x7e, 0x7e, 0x60, 0x60, 0x78, 0x78, 0x60, 0x60, 0x7e, 0x7e, 0x00, 0x00], [0x18, 0x18, 0x66, 0x66, 0x7e, 0x7e, 0x60, 0x60, 0x78, 0x78, 0x60, 0x60, 0x7e, 0x7e, 0x00, 0x00], [0x66, 0x66, 0x00, 0x00, 0x7e, 0x7e, 0x60, 0x60, 0x78, 0x78, 0x60, 0x60, 0x7e, 0x7e, 0x00, 0x00], [0x30, 0x30, 0x18, 0x18, 0x3c, 0x3c, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x3c, 0x3c, 0x00, 0x00], [0x0c, 0x0c, 0x18, 0x18, 0x3c, 0x3c, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x3c, 0x3c, 0x00, 0x00], [0x18, 0x18, 0x66, 0x66, 0x3c, 0x3c, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x3c, 0x3c, 0x00, 0x00], [0x66, 0x66, 0x00, 0x00, 0x3c, 0x3c, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x3c, 0x3c, 0x00, 0x00], [0x78, 0x78, 0x6c, 0x6c, 0x66, 0x66, 0xf6, 0xf6, 0x66, 0x66, 0x6c, 0x6c, 0x78, 0x78, 0x00, 0x00], [0x71, 0x71, 0xce, 0xce, 0xe6, 0xe6, 0xf6, 0xf6, 0xde, 0xde, 0xce, 0xce, 0xc6, 0xc6, 0x00, 0x00], [0x30, 0x30, 0x18, 0x18, 0x3c, 0x3c, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x3c, 0x3c, 0x00, 0x00], [0x0c, 0x0c, 0x18, 0x18, 0x3c, 0x3c, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x3c, 0x3c, 0x00, 0x00], [0x18, 0x18, 0x66, 0x66, 0x3c, 0x3c, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x3c, 0x3c, 0x00, 0x00], [0x71, 0x71, 0x8e, 0x8e, 0x3c, 0x3c, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x3c, 0x3c, 0x00, 0x00], [0xc3, 0xc3, 0x3c, 0x3c, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x3c, 0x3c, 0x00, 0x00], [0x00, 0x00, 0xc6, 0xc6, 0x6c, 0x6c, 0x38, 0x38, 0x6c, 0x6c, 0xc6, 0xc6, 0x00, 0x00, 0x00, 0x00], [0x3f, 0x3f, 0x66, 0x66, 0x6e, 0x6e, 0x7e, 0x7e, 0x76, 0x76, 0x66, 0x66, 0xfc, 0xfc, 0x00, 0x00], [0x30, 0x30, 0x18, 0x18, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x3c, 0x3c, 0x00, 0x00], [0x0c, 0x0c, 0x18, 0x18, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x3c, 0x3c, 0x00, 0x00], [0x18, 0x18, 0x24, 0x24, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x3c, 0x3c, 0x00, 0x00], [0x66, 0x66, 0x00, 0x00, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x3c, 0x3c, 0x00, 0x00], [0x06, 0x06, 0x08, 0x08, 0xc3, 0xc3, 0x66, 0x66, 0x3c, 0x3c, 0x18, 0x18, 0x18, 0x18, 0x00, 0x00], [0xc0, 0xc0, 0xc0, 0xc0, 0xfc, 0xfc, 0xc6, 0xc6, 0xfc, 0xfc, 0xc0, 0xc0, 0xc0, 0xc0, 0x00, 0x00], [0x3c, 0x3c, 0x66, 0x66, 0x66, 0x66, 0x6c, 0x6c, 0x66, 0x66, 0x66, 0x66, 0x6c, 0x6c, 0x60, 0x60], [0x30, 0x30, 0x18, 0x18, 0x3c, 0x3c, 0x06, 0x06, 0x3e, 0x3e, 0x66, 0x66, 0x3e, 0x3e, 0x00, 0x00], [0x0c, 0x0c, 0x18, 0x18, 0x3c, 0x3c, 0x06, 0x06, 0x3e, 0x3e, 0x66, 0x66, 0x3e, 0x3e, 0x00, 0x00], [0x18, 0x18, 0x66, 0x66, 0x3c, 0x3c, 0x06, 0x06, 0x3e, 0x3e, 0x66, 0x66, 0x3e, 0x3e, 0x00, 0x00], [0x71, 0x71, 0x8e, 0x8e, 0x3c, 0x3c, 0x06, 0x06, 0x3e, 0x3e, 0x66, 0x66, 0x3e, 0x3e, 0x00, 0x00], [0x66, 0x66, 0x00, 0x00, 0x3c, 0x3c, 0x06, 0x06, 0x3e, 0x3e, 0x66, 0x66, 0x3e, 0x3e, 0x00, 0x00], [0x18, 0x18, 0x24, 0x24, 0x3c, 0x3c, 0x06, 0x06, 0x3e, 0x3e, 0x66, 0x66, 0x3e, 0x3e, 0x00, 0x00], [0x00, 0x00, 0x00, 0x00, 0x7e, 0x7e, 0x1b, 0x1b, 0x7f, 0x7f, 0xd8, 0xd8, 0x77, 0x77, 0x00, 0x00], [0x00, 0x00, 0x00, 0x00, 0x3c, 0x3c, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x3c, 0x3c, 0x18, 0x18], [0x30, 0x30, 0x18, 0x18, 0x3c, 0x3c, 0x66, 0x66, 0x7e, 0x7e, 0x60, 0x60, 0x3c, 0x3c, 0x00, 0x00], [0x0c, 0x0c, 0x18, 0x18, 0x3c, 0x3c, 0x66, 0x66, 0x7e, 0x7e, 0x60, 0x60, 0x3c, 0x3c, 0x00, 0x00], [0x18, 0x18, 0x66, 0x66, 0x3c, 0x3c, 0x66, 0x66, 0x7e, 0x7e, 0x60, 0x60, 0x3c, 0x3c, 0x00, 0x00], [0x66, 0x66, 0x00, 0x00, 0x3c, 0x3c, 0x66, 0x66, 0x7e, 0x7e, 0x60, 0x60, 0x3c, 0x3c, 0x00, 0x00], [0x30, 0x30, 0x18, 0x18, 0x00, 0x00, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x0c, 0x0c, 0x00, 0x00], [0x0c, 0x0c, 0x18, 0x18, 0x00, 0x00, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x0c, 0x0c, 0x00, 0x00], [0x18, 0x18, 0x66, 0x66, 0x00, 0x00, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x0c, 0x0c, 0x00, 0x00], [0x00, 0x00, 0x66, 0x66, 0x00, 0x00, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x0c, 0x0c, 0x00, 0x00], [0x60, 0x60, 0xfc, 0xfc, 0x18, 0x18, 0x3c, 0x3c, 0x66, 0x66, 0x66, 0x66, 0x3c, 0x3c, 0x00, 0x00], [0x71, 0x71, 0x8e, 0x8e, 0x00, 0x00, 0x7c, 0x7c, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x00, 0x00], [0x30, 0x30, 0x18, 0x18, 0x00, 0x00, 0x3c, 0x3c, 0x66, 0x66, 0x66, 0x66, 0x3c, 0x3c, 0x00, 0x00], [0x0c, 0x0c, 0x18, 0x18, 0x00, 0x00, 0x3c, 0x3c, 0x66, 0x66, 0x66, 0x66, 0x3c, 0x3c, 0x00, 0x00], [0x18, 0x18, 0x66, 0x66, 0x00, 0x00, 0x3c, 0x3c, 0x66, 0x66, 0x66, 0x66, 0x3c, 0x3c, 0x00, 0x00], [0x71, 0x71, 0x8e, 0x8e, 0x00, 0x00, 0x3c, 0x3c, 0x66, 0x66, 0x66, 0x66, 0x3c, 0x3c, 0x00, 0x00], [0x00, 0x00, 0x66, 0x66, 0x00, 0x00, 0x3c, 0x3c, 0x66, 0x66, 0x66, 0x66, 0x3c, 0x3c, 0x00, 0x00], [0x00, 0x00, 0x18, 0x18, 0x00, 0x00, 0x7e, 0x7e, 0x00, 0x00, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00], [0x00, 0x00, 0x02, 0x02, 0x7c, 0x7c, 0xce, 0xce, 0xd6, 0xd6, 0xe6, 0xe6, 0x7c, 0x7c, 0x80, 0x80], [0x30, 0x30, 0x18, 0x18, 0x00, 0x00, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x3e, 0x3e, 0x00, 0x00], [0x0c, 0x0c, 0x18, 0x18, 0x00, 0x00, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x3e, 0x3e, 0x00, 0x00], [0x18, 0x18, 0x66, 0x66, 0x00, 0x00, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x3e, 0x3e, 0x00, 0x00], [0x00, 0x00, 0x66, 0x66, 0x00, 0x00, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x3e, 0x3e, 0x00, 0x00], [0x0c, 0x0c, 0x18, 0x18, 0x00, 0x00, 0x66, 0x66, 0x66, 0x66, 0x3c, 0x3c, 0x18, 0x18, 0x30, 0x30], [0x60, 0x60, 0x60, 0x60, 0x7c, 0x7c, 0x66, 0x66, 0x66, 0x66, 0x7c, 0x7c, 0x60, 0x60, 0x60, 0x60], [0x00, 0x00, 0x66, 0x66, 0x00, 0x00, 0x66, 0x66, 0x66, 0x66, 0x3c, 0x3c, 0x18, 0x18, 0x30, 0x30]]; - this.height = 16; - for (k in options) { - if (!__hasProp.call(options, k)) continue; - v = options[k]; - this[k] = v; - } - } - - return ImageTextModeFontAmiga; - -})(this.ImageTextModeFont); - -this.ImageTextMode = (function() { - ImageTextMode.VERSION = '0.01'; - - function ImageTextMode(options) { - var k, v; - this.screen = []; - this.palette = new ImageTextModePaletteVGA; - this.font = new ImageTextModeFont8x16; - for (k in options) { - if (!__hasProp.call(options, k)) continue; - v = options[k]; - this[k] = v; - } - } - - ImageTextMode.prototype.parseUrl = function(url) { - var content, req; - req = new XMLHttpRequest; - req.open('GET', url, false); - req.overrideMimeType('text/plain; charset=x-user-defined'); - req.send(null); - content = req.status === 200 || req.status === 0 ? req.responseText : ''; - return this.parse(content); - }; - - ImageTextMode.prototype.unpackShort = function(data) { - var shrt; - shrt = (this.getByteAt(data, 1) << 8) + this.getByteAt(data, 0); - if (shrt < 0) { - shrt += 65536; - } - return shrt; - }; - - ImageTextMode.prototype.unpackLong = function(data) { - var lng; - lng = (((this.getByteAt(data, 0) << 8) + this.getByteAt(data, 1) << 8) + this.getByteAt(data, 2) << 8) + this.getByteAt(data, 3); - if (lng < 0) { - lng += 4294967296; - } - return lng; - }; - - ImageTextMode.prototype.getByteAt = function(data, offset) { - return data.charCodeAt(offset) & 0xFF; - }; - - ImageTextMode.prototype.getWidth = function() { - var max, y, _i, _ref; - max = 0; - for (y = _i = 0, _ref = this.screen.length - 1; 0 <= _ref ? _i <= _ref : _i >= _ref; y = 0 <= _ref ? ++_i : --_i) { - if ((this.screen[y] != null) && this.screen[y].length > max) { - max = this.screen[y].length; + function ImageTextModePaletteVGA(options) { + var k, v; + ImageTextModePaletteVGA.__super__.constructor.apply(this, arguments); + this.colors = [[0x00, 0x00, 0x00], [0x00, 0x00, 0xaa], [0x00, 0xaa, 0x00], [0x00, 0xaa, 0xaa], [0xaa, 0x00, 0x00], [0xaa, 0x00, 0xaa], [0xaa, 0x55, 0x00], [0xaa, 0xaa, 0xaa], [0x55, 0x55, 0x55], [0x55, 0x55, 0xff], [0x55, 0xff, 0x55], [0x55, 0xff, 0xff], [0xff, 0x55, 0x55], [0xff, 0x55, 0xff], [0xff, 0xff, 0x55], [0xff, 0xff, 0xff]]; + for (k in options) { + if (!__hasProp.call(options, k)) continue; + v = options[k]; + this[k] = v; } } - return max; - }; - ImageTextMode.prototype.getHeight = function() { - return this.screen.length; - }; + return ImageTextModePaletteVGA; - ImageTextMode.prototype.parsePaletteData = function(data) { - var b, colors, g, i, r, _i; - colors = []; - for (i = _i = 0; _i <= 45; i = _i += 3) { - r = this.getByteAt(data, i); - r = r << 2 | r >> 4; - g = this.getByteAt(data, i + 1); - g = g << 2 | g >> 4; - b = this.getByteAt(data, i + 2); - b = b << 2 | b >> 4; - colors.push([r, g, b]); - } - return this.palette = new ImageTextModePalette({ - colors: colors - }); - }; + })(this.ImageTextModePalette); - ImageTextMode.prototype.parseFontData = function(data, height) { - var chars, chr, i, j, _i, _j, _ref, _ref1; - if (height == null) { - height = 16; - } - chars = []; - for (i = _i = 0, _ref = data.length / height - 1; 0 <= _ref ? _i <= _ref : _i >= _ref; i = 0 <= _ref ? ++_i : --_i) { - chr = []; - for (j = _j = 0, _ref1 = height - 1; 0 <= _ref1 ? _j <= _ref1 : _j >= _ref1; j = 0 <= _ref1 ? ++_j : --_j) { - chr.push(this.getByteAt(data, i * height + j)); + this.ImageTextModePaletteANSI = (function(_super) { + __extends(ImageTextModePaletteANSI, _super); + + function ImageTextModePaletteANSI(options) { + var k, v; + ImageTextModePaletteANSI.__super__.constructor.apply(this, arguments); + this.colors = [[0x00, 0x00, 0x00], [0xaa, 0x00, 0x00], [0x00, 0xaa, 0x00], [0xaa, 0x55, 0x00], [0x00, 0x00, 0xaa], [0xaa, 0x00, 0xaa], [0x00, 0xaa, 0xaa], [0xaa, 0xaa, 0xaa], [0x55, 0x55, 0x55], [0xff, 0x55, 0x55], [0x55, 0xff, 0x55], [0xff, 0xff, 0x55], [0x55, 0x55, 0xff], [0xff, 0x55, 0xff], [0x55, 0xff, 0xff], [0xff, 0xff, 0xff]]; + for (k in options) { + if (!__hasProp.call(options, k)) continue; + v = options[k]; + this[k] = v; } - chars.push(chr); } - return this.font = new ImageTextModeFont({ - chars: chars, - height: height - }); - }; - ImageTextMode.prototype.renderCanvas = function(canvasElem) { - var bg, canvas, chr, ctx, cx, cy, fg, h, i, j, line, pixel, px, py, w, _i, _j, _k, _l, _ref, _ref1, _ref2, _ref3; - w = this.getWidth() * this.font.width; - h = this.getHeight() * this.font.height; - canvas = document.createElement('canvas'); - canvas.setAttribute('width', w); - canvas.setAttribute('height', h); - ctx = canvas.getContext('2d'); - for (cy = _i = 0, _ref = this.screen.length - 1; 0 <= _ref ? _i <= _ref : _i >= _ref; cy = 0 <= _ref ? ++_i : --_i) { - if (this.screen[cy] == null) { - continue; + return ImageTextModePaletteANSI; + + })(this.ImageTextModePalette); + + this.ImageTextModeFont = (function() { + function ImageTextModeFont(options) { + var k, v; + this.chars = []; + this.width = 8; + for (k in options) { + if (!__hasProp.call(options, k)) continue; + v = options[k]; + this[k] = v; } - for (cx = _j = 0, _ref1 = this.screen[cy].length - 1; 0 <= _ref1 ? _j <= _ref1 : _j >= _ref1; cx = 0 <= _ref1 ? ++_j : --_j) { - pixel = this.screen[cy][cx]; - if (pixel == null) { + } + + return ImageTextModeFont; + + })(); + + this.ImageTextModeFont8x16 = (function(_super) { + __extends(ImageTextModeFont8x16, _super); + + function ImageTextModeFont8x16(options) { + var k, v; + ImageTextModeFont8x16.__super__.constructor.apply(this, arguments); + this.chars = [[0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00], [0x00, 0x00, 0x7e, 0x81, 0xa5, 0x81, 0x81, 0xbd, 0x99, 0x81, 0x81, 0x7e, 0x00, 0x00, 0x00, 0x00], [0x00, 0x00, 0x7e, 0xff, 0xdb, 0xff, 0xff, 0xc3, 0xe7, 0xff, 0xff, 0x7e, 0x00, 0x00, 0x00, 0x00], [0x00, 0x00, 0x00, 0x00, 0x6c, 0xfe, 0xfe, 0xfe, 0xfe, 0x7c, 0x38, 0x10, 0x00, 0x00, 0x00, 0x00], [0x00, 0x00, 0x00, 0x00, 0x10, 0x38, 0x7c, 0xfe, 0x7c, 0x38, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00], [0x00, 0x00, 0x00, 0x18, 0x3c, 0x3c, 0xe7, 0xe7, 0xe7, 0x18, 0x18, 0x3c, 0x00, 0x00, 0x00, 0x00], [0x00, 0x00, 0x00, 0x18, 0x3c, 0x7e, 0xff, 0xff, 0x7e, 0x18, 0x18, 0x3c, 0x00, 0x00, 0x00, 0x00], [0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x3c, 0x3c, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00], [0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe7, 0xc3, 0xc3, 0xe7, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff], [0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x66, 0x42, 0x42, 0x66, 0x3c, 0x00, 0x00, 0x00, 0x00, 0x00], [0xff, 0xff, 0xff, 0xff, 0xff, 0xc3, 0x99, 0xbd, 0xbd, 0x99, 0xc3, 0xff, 0xff, 0xff, 0xff, 0xff], [0x00, 0x00, 0x1e, 0x0e, 0x1a, 0x32, 0x78, 0xcc, 0xcc, 0xcc, 0xcc, 0x78, 0x00, 0x00, 0x00, 0x00], [0x00, 0x00, 0x3c, 0x66, 0x66, 0x66, 0x66, 0x3c, 0x18, 0x7e, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00], [0x00, 0x00, 0x3f, 0x33, 0x3f, 0x30, 0x30, 0x30, 0x30, 0x70, 0xf0, 0xe0, 0x00, 0x00, 0x00, 0x00], [0x00, 0x00, 0x7f, 0x63, 0x7f, 0x63, 0x63, 0x63, 0x63, 0x67, 0xe7, 0xe6, 0xc0, 0x00, 0x00, 0x00], [0x00, 0x00, 0x00, 0x18, 0x18, 0xdb, 0x3c, 0xe7, 0x3c, 0xdb, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00], [0x00, 0x80, 0xc0, 0xe0, 0xf0, 0xf8, 0xfe, 0xf8, 0xf0, 0xe0, 0xc0, 0x80, 0x00, 0x00, 0x00, 0x00], [0x00, 0x02, 0x06, 0x0e, 0x1e, 0x3e, 0xfe, 0x3e, 0x1e, 0x0e, 0x06, 0x02, 0x00, 0x00, 0x00, 0x00], [0x00, 0x00, 0x18, 0x3c, 0x7e, 0x18, 0x18, 0x18, 0x7e, 0x3c, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00], [0x00, 0x00, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x00, 0x66, 0x66, 0x00, 0x00, 0x00, 0x00], [0x00, 0x00, 0x7f, 0xdb, 0xdb, 0xdb, 0x7b, 0x1b, 0x1b, 0x1b, 0x1b, 0x1b, 0x00, 0x00, 0x00, 0x00], [0x00, 0x7c, 0xc6, 0x60, 0x38, 0x6c, 0xc6, 0xc6, 0x6c, 0x38, 0x0c, 0xc6, 0x7c, 0x00, 0x00, 0x00], [0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0xfe, 0xfe, 0xfe, 0x00, 0x00, 0x00, 0x00], [0x00, 0x00, 0x18, 0x3c, 0x7e, 0x18, 0x18, 0x18, 0x7e, 0x3c, 0x18, 0x7e, 0x00, 0x00, 0x00, 0x00], [0x00, 0x00, 0x18, 0x3c, 0x7e, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00], [0x00, 0x00, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x7e, 0x3c, 0x18, 0x00, 0x00, 0x00, 0x00], [0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x0c, 0xfe, 0x0c, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00], [0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x60, 0xfe, 0x60, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00], [0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xc0, 0xc0, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00], [0x00, 0x00, 0x00, 0x00, 0x00, 0x28, 0x6c, 0xfe, 0x6c, 0x28, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00], [0x00, 0x00, 0x00, 0x00, 0x10, 0x38, 0x38, 0x7c, 0x7c, 0xfe, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00], [0x00, 0x00, 0x00, 0x00, 0xfe, 0xfe, 0x7c, 0x7c, 0x38, 0x38, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00], [0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00], [0x00, 0x00, 0x18, 0x3c, 0x3c, 0x3c, 0x18, 0x18, 0x18, 0x00, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00], [0x00, 0x66, 0x66, 0x66, 0x24, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00], [0x00, 0x00, 0x00, 0x6c, 0x6c, 0xfe, 0x6c, 0x6c, 0x6c, 0xfe, 0x6c, 0x6c, 0x00, 0x00, 0x00, 0x00], [0x18, 0x18, 0x7c, 0xc6, 0xc2, 0xc0, 0x7c, 0x06, 0x06, 0x86, 0xc6, 0x7c, 0x18, 0x18, 0x00, 0x00], [0x00, 0x00, 0x00, 0x00, 0xc2, 0xc6, 0x0c, 0x18, 0x30, 0x60, 0xc6, 0x86, 0x00, 0x00, 0x00, 0x00], [0x00, 0x00, 0x38, 0x6c, 0x6c, 0x38, 0x76, 0xdc, 0xcc, 0xcc, 0xcc, 0x76, 0x00, 0x00, 0x00, 0x00], [0x00, 0x30, 0x30, 0x30, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00], [0x00, 0x00, 0x0c, 0x18, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x18, 0x0c, 0x00, 0x00, 0x00, 0x00], [0x00, 0x00, 0x30, 0x18, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x18, 0x30, 0x00, 0x00, 0x00, 0x00], [0x00, 0x00, 0x00, 0x00, 0x00, 0x66, 0x3c, 0xff, 0x3c, 0x66, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00], [0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x7e, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00], [0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x18, 0x30, 0x00, 0x00, 0x00], [0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00], [0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00], [0x00, 0x00, 0x00, 0x00, 0x02, 0x06, 0x0c, 0x18, 0x30, 0x60, 0xc0, 0x80, 0x00, 0x00, 0x00, 0x00], [0x00, 0x00, 0x38, 0x6c, 0xc6, 0xc6, 0xd6, 0xd6, 0xc6, 0xc6, 0x6c, 0x38, 0x00, 0x00, 0x00, 0x00], [0x00, 0x00, 0x18, 0x38, 0x78, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x7e, 0x00, 0x00, 0x00, 0x00], [0x00, 0x00, 0x7c, 0xc6, 0x06, 0x0c, 0x18, 0x30, 0x60, 0xc0, 0xc6, 0xfe, 0x00, 0x00, 0x00, 0x00], [0x00, 0x00, 0x7c, 0xc6, 0x06, 0x06, 0x3c, 0x06, 0x06, 0x06, 0xc6, 0x7c, 0x00, 0x00, 0x00, 0x00], [0x00, 0x00, 0x0c, 0x1c, 0x3c, 0x6c, 0xcc, 0xfe, 0x0c, 0x0c, 0x0c, 0x1e, 0x00, 0x00, 0x00, 0x00], [0x00, 0x00, 0xfe, 0xc0, 0xc0, 0xc0, 0xfc, 0x06, 0x06, 0x06, 0xc6, 0x7c, 0x00, 0x00, 0x00, 0x00], [0x00, 0x00, 0x38, 0x60, 0xc0, 0xc0, 0xfc, 0xc6, 0xc6, 0xc6, 0xc6, 0x7c, 0x00, 0x00, 0x00, 0x00], [0x00, 0x00, 0xfe, 0xc6, 0x06, 0x06, 0x0c, 0x18, 0x30, 0x30, 0x30, 0x30, 0x00, 0x00, 0x00, 0x00], [0x00, 0x00, 0x7c, 0xc6, 0xc6, 0xc6, 0x7c, 0xc6, 0xc6, 0xc6, 0xc6, 0x7c, 0x00, 0x00, 0x00, 0x00], [0x00, 0x00, 0x7c, 0xc6, 0xc6, 0xc6, 0x7e, 0x06, 0x06, 0x06, 0x0c, 0x78, 0x00, 0x00, 0x00, 0x00], [0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x00, 0x00, 0x00, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00], [0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x00, 0x00, 0x00, 0x18, 0x18, 0x30, 0x00, 0x00, 0x00, 0x00], [0x00, 0x00, 0x00, 0x06, 0x0c, 0x18, 0x30, 0x60, 0x30, 0x18, 0x0c, 0x06, 0x00, 0x00, 0x00, 0x00], [0x00, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x00, 0x00, 0x7e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00], [0x00, 0x00, 0x00, 0x60, 0x30, 0x18, 0x0c, 0x06, 0x0c, 0x18, 0x30, 0x60, 0x00, 0x00, 0x00, 0x00], [0x00, 0x00, 0x7c, 0xc6, 0xc6, 0x0c, 0x18, 0x18, 0x18, 0x00, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00], [0x00, 0x00, 0x00, 0x7c, 0xc6, 0xc6, 0xde, 0xde, 0xde, 0xdc, 0xc0, 0x7c, 0x00, 0x00, 0x00, 0x00], [0x00, 0x00, 0x10, 0x38, 0x6c, 0xc6, 0xc6, 0xfe, 0xc6, 0xc6, 0xc6, 0xc6, 0x00, 0x00, 0x00, 0x00], [0x00, 0x00, 0xfc, 0x66, 0x66, 0x66, 0x7c, 0x66, 0x66, 0x66, 0x66, 0xfc, 0x00, 0x00, 0x00, 0x00], [0x00, 0x00, 0x3c, 0x66, 0xc2, 0xc0, 0xc0, 0xc0, 0xc0, 0xc2, 0x66, 0x3c, 0x00, 0x00, 0x00, 0x00], [0x00, 0x00, 0xf8, 0x6c, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x6c, 0xf8, 0x00, 0x00, 0x00, 0x00], [0x00, 0x00, 0xfe, 0x66, 0x62, 0x68, 0x78, 0x68, 0x60, 0x62, 0x66, 0xfe, 0x00, 0x00, 0x00, 0x00], [0x00, 0x00, 0xfe, 0x66, 0x62, 0x68, 0x78, 0x68, 0x60, 0x60, 0x60, 0xf0, 0x00, 0x00, 0x00, 0x00], [0x00, 0x00, 0x3c, 0x66, 0xc2, 0xc0, 0xc0, 0xde, 0xc6, 0xc6, 0x66, 0x3a, 0x00, 0x00, 0x00, 0x00], [0x00, 0x00, 0xc6, 0xc6, 0xc6, 0xc6, 0xfe, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0x00, 0x00, 0x00, 0x00], [0x00, 0x00, 0x3c, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x3c, 0x00, 0x00, 0x00, 0x00], [0x00, 0x00, 0x1e, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0xcc, 0xcc, 0xcc, 0x78, 0x00, 0x00, 0x00, 0x00], [0x00, 0x00, 0xe6, 0x66, 0x66, 0x6c, 0x78, 0x78, 0x6c, 0x66, 0x66, 0xe6, 0x00, 0x00, 0x00, 0x00], [0x00, 0x00, 0xf0, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x62, 0x66, 0xfe, 0x00, 0x00, 0x00, 0x00], [0x00, 0x00, 0xc6, 0xee, 0xfe, 0xfe, 0xd6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0x00, 0x00, 0x00, 0x00], [0x00, 0x00, 0xc6, 0xe6, 0xf6, 0xfe, 0xde, 0xce, 0xc6, 0xc6, 0xc6, 0xc6, 0x00, 0x00, 0x00, 0x00], [0x00, 0x00, 0x7c, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0x7c, 0x00, 0x00, 0x00, 0x00], [0x00, 0x00, 0xfc, 0x66, 0x66, 0x66, 0x7c, 0x60, 0x60, 0x60, 0x60, 0xf0, 0x00, 0x00, 0x00, 0x00], [0x00, 0x00, 0x7c, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xd6, 0xde, 0x7c, 0x0c, 0x0e, 0x00, 0x00], [0x00, 0x00, 0xfc, 0x66, 0x66, 0x66, 0x7c, 0x6c, 0x66, 0x66, 0x66, 0xe6, 0x00, 0x00, 0x00, 0x00], [0x00, 0x00, 0x7c, 0xc6, 0xc6, 0x60, 0x38, 0x0c, 0x06, 0xc6, 0xc6, 0x7c, 0x00, 0x00, 0x00, 0x00], [0x00, 0x00, 0x7e, 0x7e, 0x5a, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x3c, 0x00, 0x00, 0x00, 0x00], [0x00, 0x00, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0x7c, 0x00, 0x00, 0x00, 0x00], [0x00, 0x00, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0x6c, 0x38, 0x10, 0x00, 0x00, 0x00, 0x00], [0x00, 0x00, 0xc6, 0xc6, 0xc6, 0xc6, 0xd6, 0xd6, 0xd6, 0xfe, 0xee, 0x6c, 0x00, 0x00, 0x00, 0x00], [0x00, 0x00, 0xc6, 0xc6, 0x6c, 0x7c, 0x38, 0x38, 0x7c, 0x6c, 0xc6, 0xc6, 0x00, 0x00, 0x00, 0x00], [0x00, 0x00, 0x66, 0x66, 0x66, 0x66, 0x3c, 0x18, 0x18, 0x18, 0x18, 0x3c, 0x00, 0x00, 0x00, 0x00], [0x00, 0x00, 0xfe, 0xc6, 0x86, 0x0c, 0x18, 0x30, 0x60, 0xc2, 0xc6, 0xfe, 0x00, 0x00, 0x00, 0x00], [0x00, 0x00, 0x3c, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x3c, 0x00, 0x00, 0x00, 0x00], [0x00, 0x00, 0x00, 0x80, 0xc0, 0xe0, 0x70, 0x38, 0x1c, 0x0e, 0x06, 0x02, 0x00, 0x00, 0x00, 0x00], [0x00, 0x00, 0x3c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x3c, 0x00, 0x00, 0x00, 0x00], [0x10, 0x38, 0x6c, 0xc6, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00], [0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00], [0x00, 0x30, 0x18, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00], [0x00, 0x00, 0x00, 0x00, 0x00, 0x78, 0x0c, 0x7c, 0xcc, 0xcc, 0xcc, 0x76, 0x00, 0x00, 0x00, 0x00], [0x00, 0x00, 0xe0, 0x60, 0x60, 0x78, 0x6c, 0x66, 0x66, 0x66, 0x66, 0x7c, 0x00, 0x00, 0x00, 0x00], [0x00, 0x00, 0x00, 0x00, 0x00, 0x7c, 0xc6, 0xc0, 0xc0, 0xc0, 0xc6, 0x7c, 0x00, 0x00, 0x00, 0x00], [0x00, 0x00, 0x1c, 0x0c, 0x0c, 0x3c, 0x6c, 0xcc, 0xcc, 0xcc, 0xcc, 0x76, 0x00, 0x00, 0x00, 0x00], [0x00, 0x00, 0x00, 0x00, 0x00, 0x7c, 0xc6, 0xfe, 0xc0, 0xc0, 0xc6, 0x7c, 0x00, 0x00, 0x00, 0x00], [0x00, 0x00, 0x1c, 0x36, 0x32, 0x30, 0x78, 0x30, 0x30, 0x30, 0x30, 0x78, 0x00, 0x00, 0x00, 0x00], [0x00, 0x00, 0x00, 0x00, 0x00, 0x76, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0x7c, 0x0c, 0xcc, 0x78, 0x00], [0x00, 0x00, 0xe0, 0x60, 0x60, 0x6c, 0x76, 0x66, 0x66, 0x66, 0x66, 0xe6, 0x00, 0x00, 0x00, 0x00], [0x00, 0x00, 0x18, 0x18, 0x00, 0x38, 0x18, 0x18, 0x18, 0x18, 0x18, 0x3c, 0x00, 0x00, 0x00, 0x00], [0x00, 0x00, 0x06, 0x06, 0x00, 0x0e, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x66, 0x66, 0x3c, 0x00], [0x00, 0x00, 0xe0, 0x60, 0x60, 0x66, 0x6c, 0x78, 0x78, 0x6c, 0x66, 0xe6, 0x00, 0x00, 0x00, 0x00], [0x00, 0x00, 0x38, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x3c, 0x00, 0x00, 0x00, 0x00], [0x00, 0x00, 0x00, 0x00, 0x00, 0xec, 0xfe, 0xd6, 0xd6, 0xd6, 0xd6, 0xc6, 0x00, 0x00, 0x00, 0x00], [0x00, 0x00, 0x00, 0x00, 0x00, 0xdc, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x00, 0x00, 0x00, 0x00], [0x00, 0x00, 0x00, 0x00, 0x00, 0x7c, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0x7c, 0x00, 0x00, 0x00, 0x00], [0x00, 0x00, 0x00, 0x00, 0x00, 0xdc, 0x66, 0x66, 0x66, 0x66, 0x66, 0x7c, 0x60, 0x60, 0xf0, 0x00], [0x00, 0x00, 0x00, 0x00, 0x00, 0x76, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0x7c, 0x0c, 0x0c, 0x1e, 0x00], [0x00, 0x00, 0x00, 0x00, 0x00, 0xdc, 0x76, 0x66, 0x60, 0x60, 0x60, 0xf0, 0x00, 0x00, 0x00, 0x00], [0x00, 0x00, 0x00, 0x00, 0x00, 0x7c, 0xc6, 0x60, 0x38, 0x0c, 0xc6, 0x7c, 0x00, 0x00, 0x00, 0x00], [0x00, 0x00, 0x10, 0x30, 0x30, 0xfc, 0x30, 0x30, 0x30, 0x30, 0x36, 0x1c, 0x00, 0x00, 0x00, 0x00], [0x00, 0x00, 0x00, 0x00, 0x00, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0x76, 0x00, 0x00, 0x00, 0x00], [0x00, 0x00, 0x00, 0x00, 0x00, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0x6c, 0x38, 0x00, 0x00, 0x00, 0x00], [0x00, 0x00, 0x00, 0x00, 0x00, 0xc6, 0xc6, 0xd6, 0xd6, 0xd6, 0xfe, 0x6c, 0x00, 0x00, 0x00, 0x00], [0x00, 0x00, 0x00, 0x00, 0x00, 0xc6, 0x6c, 0x38, 0x38, 0x38, 0x6c, 0xc6, 0x00, 0x00, 0x00, 0x00], [0x00, 0x00, 0x00, 0x00, 0x00, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0x7e, 0x06, 0x0c, 0xf8, 0x00], [0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0xcc, 0x18, 0x30, 0x60, 0xc6, 0xfe, 0x00, 0x00, 0x00, 0x00], [0x00, 0x00, 0x0e, 0x18, 0x18, 0x18, 0x70, 0x18, 0x18, 0x18, 0x18, 0x0e, 0x00, 0x00, 0x00, 0x00], [0x00, 0x00, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00], [0x00, 0x00, 0x70, 0x18, 0x18, 0x18, 0x0e, 0x18, 0x18, 0x18, 0x18, 0x70, 0x00, 0x00, 0x00, 0x00], [0x00, 0x76, 0xdc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00], [0x00, 0x00, 0x00, 0x00, 0x10, 0x38, 0x6c, 0xc6, 0xc6, 0xc6, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00], [0x00, 0x00, 0x3c, 0x66, 0xc2, 0xc0, 0xc0, 0xc0, 0xc0, 0xc2, 0x66, 0x3c, 0x18, 0x70, 0x00, 0x00], [0x00, 0x00, 0xcc, 0x00, 0x00, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0x76, 0x00, 0x00, 0x00, 0x00], [0x00, 0x0c, 0x18, 0x30, 0x00, 0x7c, 0xc6, 0xfe, 0xc0, 0xc0, 0xc6, 0x7c, 0x00, 0x00, 0x00, 0x00], [0x00, 0x10, 0x38, 0x6c, 0x00, 0x78, 0x0c, 0x7c, 0xcc, 0xcc, 0xcc, 0x76, 0x00, 0x00, 0x00, 0x00], [0x00, 0x00, 0xcc, 0x00, 0x00, 0x78, 0x0c, 0x7c, 0xcc, 0xcc, 0xcc, 0x76, 0x00, 0x00, 0x00, 0x00], [0x00, 0x60, 0x30, 0x18, 0x00, 0x78, 0x0c, 0x7c, 0xcc, 0xcc, 0xcc, 0x76, 0x00, 0x00, 0x00, 0x00], [0x00, 0x38, 0x6c, 0x38, 0x00, 0x78, 0x0c, 0x7c, 0xcc, 0xcc, 0xcc, 0x76, 0x00, 0x00, 0x00, 0x00], [0x00, 0x00, 0x00, 0x00, 0x00, 0x7c, 0xc6, 0xc0, 0xc0, 0xc0, 0xc6, 0x7c, 0x18, 0x70, 0x00, 0x00], [0x00, 0x10, 0x38, 0x6c, 0x00, 0x7c, 0xc6, 0xfe, 0xc0, 0xc0, 0xc6, 0x7c, 0x00, 0x00, 0x00, 0x00], [0x00, 0x00, 0xc6, 0x00, 0x00, 0x7c, 0xc6, 0xfe, 0xc0, 0xc0, 0xc6, 0x7c, 0x00, 0x00, 0x00, 0x00], [0x00, 0x60, 0x30, 0x18, 0x00, 0x7c, 0xc6, 0xfe, 0xc0, 0xc0, 0xc6, 0x7c, 0x00, 0x00, 0x00, 0x00], [0x00, 0x00, 0x66, 0x00, 0x00, 0x38, 0x18, 0x18, 0x18, 0x18, 0x18, 0x3c, 0x00, 0x00, 0x00, 0x00], [0x00, 0x18, 0x3c, 0x66, 0x00, 0x38, 0x18, 0x18, 0x18, 0x18, 0x18, 0x3c, 0x00, 0x00, 0x00, 0x00], [0x00, 0x60, 0x30, 0x18, 0x00, 0x38, 0x18, 0x18, 0x18, 0x18, 0x18, 0x3c, 0x00, 0x00, 0x00, 0x00], [0x00, 0xc6, 0x00, 0x10, 0x38, 0x6c, 0xc6, 0xc6, 0xfe, 0xc6, 0xc6, 0xc6, 0x00, 0x00, 0x00, 0x00], [0x38, 0x6c, 0x38, 0x10, 0x38, 0x6c, 0xc6, 0xfe, 0xc6, 0xc6, 0xc6, 0xc6, 0x00, 0x00, 0x00, 0x00], [0x0c, 0x18, 0x00, 0xfe, 0x66, 0x62, 0x68, 0x78, 0x68, 0x62, 0x66, 0xfe, 0x00, 0x00, 0x00, 0x00], [0x00, 0x00, 0x00, 0x00, 0x00, 0xec, 0x36, 0x36, 0x7e, 0xd8, 0xd8, 0x6e, 0x00, 0x00, 0x00, 0x00], [0x00, 0x00, 0x3e, 0x6c, 0xcc, 0xcc, 0xfe, 0xcc, 0xcc, 0xcc, 0xcc, 0xce, 0x00, 0x00, 0x00, 0x00], [0x00, 0x10, 0x38, 0x6c, 0x00, 0x7c, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0x7c, 0x00, 0x00, 0x00, 0x00], [0x00, 0x00, 0xc6, 0x00, 0x00, 0x7c, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0x7c, 0x00, 0x00, 0x00, 0x00], [0x00, 0x60, 0x30, 0x18, 0x00, 0x7c, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0x7c, 0x00, 0x00, 0x00, 0x00], [0x00, 0x30, 0x78, 0xcc, 0x00, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0x76, 0x00, 0x00, 0x00, 0x00], [0x00, 0x60, 0x30, 0x18, 0x00, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0x76, 0x00, 0x00, 0x00, 0x00], [0x00, 0x00, 0xc6, 0x00, 0x00, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0x7e, 0x06, 0x0c, 0x78, 0x00], [0x00, 0xc6, 0x00, 0x7c, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0x7c, 0x00, 0x00, 0x00, 0x00], [0x00, 0xc6, 0x00, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0x7c, 0x00, 0x00, 0x00, 0x00], [0x00, 0x18, 0x18, 0x7c, 0xc6, 0xc0, 0xc0, 0xc0, 0xc6, 0x7c, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00], [0x00, 0x38, 0x6c, 0x64, 0x60, 0xf0, 0x60, 0x60, 0x60, 0x60, 0xe6, 0xfc, 0x00, 0x00, 0x00, 0x00], [0x00, 0x00, 0x66, 0x66, 0x3c, 0x18, 0x7e, 0x18, 0x7e, 0x18, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00], [0x00, 0xf8, 0xcc, 0xcc, 0xf8, 0xc4, 0xcc, 0xde, 0xcc, 0xcc, 0xcc, 0xc6, 0x00, 0x00, 0x00, 0x00], [0x00, 0x0e, 0x1b, 0x18, 0x18, 0x18, 0x7e, 0x18, 0x18, 0x18, 0xd8, 0x70, 0x00, 0x00, 0x00, 0x00], [0x00, 0x18, 0x30, 0x60, 0x00, 0x78, 0x0c, 0x7c, 0xcc, 0xcc, 0xcc, 0x76, 0x00, 0x00, 0x00, 0x00], [0x00, 0x0c, 0x18, 0x30, 0x00, 0x38, 0x18, 0x18, 0x18, 0x18, 0x18, 0x3c, 0x00, 0x00, 0x00, 0x00], [0x00, 0x18, 0x30, 0x60, 0x00, 0x7c, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0x7c, 0x00, 0x00, 0x00, 0x00], [0x00, 0x18, 0x30, 0x60, 0x00, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0x76, 0x00, 0x00, 0x00, 0x00], [0x00, 0x00, 0x76, 0xdc, 0x00, 0xdc, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x00, 0x00, 0x00, 0x00], [0x76, 0xdc, 0x00, 0xc6, 0xe6, 0xf6, 0xfe, 0xde, 0xce, 0xc6, 0xc6, 0xc6, 0x00, 0x00, 0x00, 0x00], [0x00, 0x00, 0x3c, 0x6c, 0x6c, 0x3e, 0x00, 0x7e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00], [0x00, 0x00, 0x38, 0x6c, 0x6c, 0x38, 0x00, 0x7c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00], [0x00, 0x00, 0x30, 0x30, 0x00, 0x30, 0x30, 0x60, 0xc0, 0xc6, 0xc6, 0x7c, 0x00, 0x00, 0x00, 0x00], [0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0xc0, 0xc0, 0xc0, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00], [0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x06, 0x06, 0x06, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00], [0x00, 0x60, 0xe0, 0x62, 0x66, 0x6c, 0x18, 0x30, 0x60, 0xdc, 0x86, 0x0c, 0x18, 0x3e, 0x00, 0x00], [0x00, 0x60, 0xe0, 0x62, 0x66, 0x6c, 0x18, 0x30, 0x66, 0xce, 0x9a, 0x3f, 0x06, 0x06, 0x00, 0x00], [0x00, 0x00, 0x18, 0x18, 0x00, 0x18, 0x18, 0x18, 0x3c, 0x3c, 0x3c, 0x18, 0x00, 0x00, 0x00, 0x00], [0x00, 0x00, 0x00, 0x00, 0x00, 0x36, 0x6c, 0xd8, 0x6c, 0x36, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00], [0x00, 0x00, 0x00, 0x00, 0x00, 0xd8, 0x6c, 0x36, 0x6c, 0xd8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00], [0x11, 0x44, 0x11, 0x44, 0x11, 0x44, 0x11, 0x44, 0x11, 0x44, 0x11, 0x44, 0x11, 0x44, 0x11, 0x44], [0x55, 0xaa, 0x55, 0xaa, 0x55, 0xaa, 0x55, 0xaa, 0x55, 0xaa, 0x55, 0xaa, 0x55, 0xaa, 0x55, 0xaa], [0xdd, 0x77, 0xdd, 0x77, 0xdd, 0x77, 0xdd, 0x77, 0xdd, 0x77, 0xdd, 0x77, 0xdd, 0x77, 0xdd, 0x77], [0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18], [0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0xf8, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18], [0x18, 0x18, 0x18, 0x18, 0x18, 0xf8, 0x18, 0xf8, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18], [0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0xf6, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36], [0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36], [0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x18, 0xf8, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18], [0x36, 0x36, 0x36, 0x36, 0x36, 0xf6, 0x06, 0xf6, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36], [0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36], [0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x06, 0xf6, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36], [0x36, 0x36, 0x36, 0x36, 0x36, 0xf6, 0x06, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00], [0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00], [0x18, 0x18, 0x18, 0x18, 0x18, 0xf8, 0x18, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00], [0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18], [0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00], [0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00], [0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18], [0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x1f, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18], [0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00], [0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0xff, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18], [0x18, 0x18, 0x18, 0x18, 0x18, 0x1f, 0x18, 0x1f, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18], [0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x37, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36], [0x36, 0x36, 0x36, 0x36, 0x36, 0x37, 0x30, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00], [0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0x30, 0x37, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36], [0x36, 0x36, 0x36, 0x36, 0x36, 0xf7, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00], [0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x00, 0xf7, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36], [0x36, 0x36, 0x36, 0x36, 0x36, 0x37, 0x30, 0x37, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36], [0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00], [0x36, 0x36, 0x36, 0x36, 0x36, 0xf7, 0x00, 0xf7, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36], [0x18, 0x18, 0x18, 0x18, 0x18, 0xff, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00], [0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00], [0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x00, 0xff, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18], [0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36], [0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00], [0x18, 0x18, 0x18, 0x18, 0x18, 0x1f, 0x18, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00], [0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x18, 0x1f, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18], [0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36], [0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0xff, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36], [0x18, 0x18, 0x18, 0x18, 0x18, 0xff, 0x18, 0xff, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18], [0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00], [0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18], [0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff], [0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff], [0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0], [0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f], [0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00], [0x00, 0x00, 0x00, 0x00, 0x00, 0x76, 0xdc, 0xd8, 0xd8, 0xd8, 0xdc, 0x76, 0x00, 0x00, 0x00, 0x00], [0x00, 0x00, 0x78, 0xcc, 0xcc, 0xcc, 0xd8, 0xcc, 0xc6, 0xc6, 0xc6, 0xcc, 0x00, 0x00, 0x00, 0x00], [0x00, 0x00, 0xfe, 0xc6, 0xc6, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0x00, 0x00, 0x00, 0x00], [0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x6c, 0x6c, 0x6c, 0x6c, 0x6c, 0x6c, 0x00, 0x00, 0x00, 0x00], [0x00, 0x00, 0xfe, 0xc6, 0x60, 0x30, 0x18, 0x18, 0x30, 0x60, 0xc6, 0xfe, 0x00, 0x00, 0x00, 0x00], [0x00, 0x00, 0x00, 0x00, 0x00, 0x7e, 0xd8, 0xd8, 0xd8, 0xd8, 0xd8, 0x70, 0x00, 0x00, 0x00, 0x00], [0x00, 0x00, 0x00, 0x00, 0x00, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x7c, 0x60, 0x60, 0xc0, 0x00], [0x00, 0x00, 0x00, 0x00, 0x76, 0xdc, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00], [0x00, 0x00, 0x7e, 0x18, 0x3c, 0x66, 0x66, 0x66, 0x66, 0x3c, 0x18, 0x7e, 0x00, 0x00, 0x00, 0x00], [0x00, 0x00, 0x38, 0x6c, 0xc6, 0xc6, 0xfe, 0xc6, 0xc6, 0xc6, 0x6c, 0x38, 0x00, 0x00, 0x00, 0x00], [0x00, 0x00, 0x38, 0x6c, 0xc6, 0xc6, 0xc6, 0x6c, 0x6c, 0x6c, 0x6c, 0xee, 0x00, 0x00, 0x00, 0x00], [0x00, 0x00, 0x1e, 0x30, 0x18, 0x0c, 0x3e, 0x66, 0x66, 0x66, 0x66, 0x3c, 0x00, 0x00, 0x00, 0x00], [0x00, 0x00, 0x00, 0x00, 0x00, 0x7e, 0xdb, 0xdb, 0xdb, 0x7e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00], [0x00, 0x00, 0x00, 0x03, 0x06, 0x7e, 0xdb, 0xdb, 0xf3, 0x7e, 0x60, 0xc0, 0x00, 0x00, 0x00, 0x00], [0x00, 0x00, 0x1c, 0x30, 0x60, 0x60, 0x7c, 0x60, 0x60, 0x60, 0x30, 0x1c, 0x00, 0x00, 0x00, 0x00], [0x00, 0x00, 0x00, 0x7c, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0x00, 0x00, 0x00, 0x00], [0x00, 0x00, 0x00, 0x00, 0xfe, 0x00, 0x00, 0xfe, 0x00, 0x00, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00], [0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x7e, 0x18, 0x18, 0x00, 0x00, 0x7e, 0x00, 0x00, 0x00, 0x00], [0x00, 0x00, 0x00, 0x30, 0x18, 0x0c, 0x06, 0x0c, 0x18, 0x30, 0x00, 0x7e, 0x00, 0x00, 0x00, 0x00], [0x00, 0x00, 0x00, 0x0c, 0x18, 0x30, 0x60, 0x30, 0x18, 0x0c, 0x00, 0x7e, 0x00, 0x00, 0x00, 0x00], [0x00, 0x00, 0x0e, 0x1b, 0x1b, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18], [0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0xd8, 0xd8, 0xd8, 0x70, 0x00, 0x00, 0x00], [0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x00, 0x7e, 0x00, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00], [0x00, 0x00, 0x00, 0x00, 0x00, 0x76, 0xdc, 0x00, 0x76, 0xdc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00], [0x00, 0x38, 0x6c, 0x6c, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00], [0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00], [0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00], [0x00, 0x0f, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0xec, 0x6c, 0x6c, 0x3c, 0x1c, 0x00, 0x00, 0x00, 0x00], [0x00, 0x6c, 0x36, 0x36, 0x36, 0x36, 0x36, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00], [0x00, 0x3c, 0x66, 0x0c, 0x18, 0x32, 0x7e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00], [0x00, 0x00, 0x00, 0x00, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x00, 0x00, 0x00, 0x00, 0x00], [0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00]]; + this.height = 16; + for (k in options) { + if (!__hasProp.call(options, k)) continue; + v = options[k]; + this[k] = v; + } + } + + return ImageTextModeFont8x16; + + })(this.ImageTextModeFont); + + this.ImageTextModeFont8x8 = (function(_super) { + __extends(ImageTextModeFont8x8, _super); + + function ImageTextModeFont8x8(options) { + var k, v; + ImageTextModeFont8x8.__super__.constructor.apply(this, arguments); + this.chars = [[0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00], [0x7e, 0x81, 0xa5, 0x81, 0xbd, 0x99, 0x81, 0x7e], [0x7e, 0xff, 0xdb, 0xff, 0xc3, 0xe7, 0xff, 0x7e], [0x6c, 0xfe, 0xfe, 0xfe, 0x7c, 0x38, 0x10, 0x00], [0x10, 0x38, 0x7c, 0xfe, 0x7c, 0x38, 0x10, 0x00], [0x38, 0x7c, 0x38, 0xfe, 0xfe, 0xd6, 0x10, 0x38], [0x10, 0x38, 0x7c, 0xfe, 0xfe, 0x7c, 0x10, 0x38], [0x00, 0x00, 0x18, 0x3c, 0x3c, 0x18, 0x00, 0x00], [0xff, 0xff, 0xe7, 0xc3, 0xc3, 0xe7, 0xff, 0xff], [0x00, 0x3c, 0x66, 0x42, 0x42, 0x66, 0x3c, 0x00], [0xff, 0xc3, 0x99, 0xbd, 0xbd, 0x99, 0xc3, 0xff], [0x0f, 0x07, 0x0f, 0x7d, 0xcc, 0xcc, 0xcc, 0x78], [0x3c, 0x66, 0x66, 0x66, 0x3c, 0x18, 0x7e, 0x18], [0x3f, 0x33, 0x3f, 0x30, 0x30, 0x70, 0xf0, 0xe0], [0x7f, 0x63, 0x7f, 0x63, 0x63, 0x67, 0xe6, 0xc0], [0x18, 0xdb, 0x3c, 0xe7, 0xe7, 0x3c, 0xdb, 0x18], [0x80, 0xe0, 0xf8, 0xfe, 0xf8, 0xe0, 0x80, 0x00], [0x02, 0x0e, 0x3e, 0xfe, 0x3e, 0x0e, 0x02, 0x00], [0x18, 0x3c, 0x7e, 0x18, 0x18, 0x7e, 0x3c, 0x18], [0x66, 0x66, 0x66, 0x66, 0x66, 0x00, 0x66, 0x00], [0x7f, 0xdb, 0xdb, 0x7b, 0x1b, 0x1b, 0x1b, 0x00], [0x3e, 0x61, 0x3c, 0x66, 0x66, 0x3c, 0x86, 0x7c], [0x00, 0x00, 0x00, 0x00, 0x7e, 0x7e, 0x7e, 0x00], [0x18, 0x3c, 0x7e, 0x18, 0x7e, 0x3c, 0x18, 0xff], [0x18, 0x3c, 0x7e, 0x18, 0x18, 0x18, 0x18, 0x00], [0x18, 0x18, 0x18, 0x18, 0x7e, 0x3c, 0x18, 0x00], [0x00, 0x18, 0x0c, 0xfe, 0x0c, 0x18, 0x00, 0x00], [0x00, 0x30, 0x60, 0xfe, 0x60, 0x30, 0x00, 0x00], [0x00, 0x00, 0xc0, 0xc0, 0xc0, 0xfe, 0x00, 0x00], [0x00, 0x24, 0x66, 0xff, 0x66, 0x24, 0x00, 0x00], [0x00, 0x18, 0x3c, 0x7e, 0xff, 0xff, 0x00, 0x00], [0x00, 0xff, 0xff, 0x7e, 0x3c, 0x18, 0x00, 0x00], [0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00], [0x18, 0x3c, 0x3c, 0x18, 0x18, 0x00, 0x18, 0x00], [0x66, 0x66, 0x24, 0x00, 0x00, 0x00, 0x00, 0x00], [0x6c, 0x6c, 0xfe, 0x6c, 0xfe, 0x6c, 0x6c, 0x00], [0x18, 0x3e, 0x60, 0x3c, 0x06, 0x7c, 0x18, 0x00], [0x00, 0xc6, 0xcc, 0x18, 0x30, 0x66, 0xc6, 0x00], [0x38, 0x6c, 0x38, 0x76, 0xdc, 0xcc, 0x76, 0x00], [0x18, 0x18, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00], [0x0c, 0x18, 0x30, 0x30, 0x30, 0x18, 0x0c, 0x00], [0x30, 0x18, 0x0c, 0x0c, 0x0c, 0x18, 0x30, 0x00], [0x00, 0x66, 0x3c, 0xff, 0x3c, 0x66, 0x00, 0x00], [0x00, 0x18, 0x18, 0x7e, 0x18, 0x18, 0x00, 0x00], [0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x30], [0x00, 0x00, 0x00, 0x7e, 0x00, 0x00, 0x00, 0x00], [0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x00], [0x06, 0x0c, 0x18, 0x30, 0x60, 0xc0, 0x80, 0x00], [0x38, 0x6c, 0xc6, 0xd6, 0xc6, 0x6c, 0x38, 0x00], [0x18, 0x38, 0x18, 0x18, 0x18, 0x18, 0x7e, 0x00], [0x7c, 0xc6, 0x06, 0x1c, 0x30, 0x66, 0xfe, 0x00], [0x7c, 0xc6, 0x06, 0x3c, 0x06, 0xc6, 0x7c, 0x00], [0x1c, 0x3c, 0x6c, 0xcc, 0xfe, 0x0c, 0x1e, 0x00], [0xfe, 0xc0, 0xc0, 0xfc, 0x06, 0xc6, 0x7c, 0x00], [0x38, 0x60, 0xc0, 0xfc, 0xc6, 0xc6, 0x7c, 0x00], [0xfe, 0xc6, 0x0c, 0x18, 0x30, 0x30, 0x30, 0x00], [0x7c, 0xc6, 0xc6, 0x7c, 0xc6, 0xc6, 0x7c, 0x00], [0x7c, 0xc6, 0xc6, 0x7e, 0x06, 0x0c, 0x78, 0x00], [0x00, 0x18, 0x18, 0x00, 0x00, 0x18, 0x18, 0x00], [0x00, 0x18, 0x18, 0x00, 0x00, 0x18, 0x18, 0x30], [0x06, 0x0c, 0x18, 0x30, 0x18, 0x0c, 0x06, 0x00], [0x00, 0x00, 0x7e, 0x00, 0x00, 0x7e, 0x00, 0x00], [0x60, 0x30, 0x18, 0x0c, 0x18, 0x30, 0x60, 0x00], [0x7c, 0xc6, 0x0c, 0x18, 0x18, 0x00, 0x18, 0x00], [0x7c, 0xc6, 0xde, 0xde, 0xde, 0xc0, 0x78, 0x00], [0x38, 0x6c, 0xc6, 0xfe, 0xc6, 0xc6, 0xc6, 0x00], [0xfc, 0x66, 0x66, 0x7c, 0x66, 0x66, 0xfc, 0x00], [0x3c, 0x66, 0xc0, 0xc0, 0xc0, 0x66, 0x3c, 0x00], [0xf8, 0x6c, 0x66, 0x66, 0x66, 0x6c, 0xf8, 0x00], [0xfe, 0x62, 0x68, 0x78, 0x68, 0x62, 0xfe, 0x00], [0xfe, 0x62, 0x68, 0x78, 0x68, 0x60, 0xf0, 0x00], [0x3c, 0x66, 0xc0, 0xc0, 0xce, 0x66, 0x3a, 0x00], [0xc6, 0xc6, 0xc6, 0xfe, 0xc6, 0xc6, 0xc6, 0x00], [0x3c, 0x18, 0x18, 0x18, 0x18, 0x18, 0x3c, 0x00], [0x1e, 0x0c, 0x0c, 0x0c, 0xcc, 0xcc, 0x78, 0x00], [0xe6, 0x66, 0x6c, 0x78, 0x6c, 0x66, 0xe6, 0x00], [0xf0, 0x60, 0x60, 0x60, 0x62, 0x66, 0xfe, 0x00], [0xc6, 0xee, 0xfe, 0xfe, 0xd6, 0xc6, 0xc6, 0x00], [0xc6, 0xe6, 0xf6, 0xde, 0xce, 0xc6, 0xc6, 0x00], [0x7c, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0x7c, 0x00], [0xfc, 0x66, 0x66, 0x7c, 0x60, 0x60, 0xf0, 0x00], [0x7c, 0xc6, 0xc6, 0xc6, 0xc6, 0xce, 0x7c, 0x0e], [0xfc, 0x66, 0x66, 0x7c, 0x6c, 0x66, 0xe6, 0x00], [0x3c, 0x66, 0x30, 0x18, 0x0c, 0x66, 0x3c, 0x00], [0x7e, 0x7e, 0x5a, 0x18, 0x18, 0x18, 0x3c, 0x00], [0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0x7c, 0x00], [0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0x6c, 0x38, 0x00], [0xc6, 0xc6, 0xc6, 0xd6, 0xd6, 0xfe, 0x6c, 0x00], [0xc6, 0xc6, 0x6c, 0x38, 0x6c, 0xc6, 0xc6, 0x00], [0x66, 0x66, 0x66, 0x3c, 0x18, 0x18, 0x3c, 0x00], [0xfe, 0xc6, 0x8c, 0x18, 0x32, 0x66, 0xfe, 0x00], [0x3c, 0x30, 0x30, 0x30, 0x30, 0x30, 0x3c, 0x00], [0xc0, 0x60, 0x30, 0x18, 0x0c, 0x06, 0x02, 0x00], [0x3c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x3c, 0x00], [0x10, 0x38, 0x6c, 0xc6, 0x00, 0x00, 0x00, 0x00], [0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff], [0x30, 0x18, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00], [0x00, 0x00, 0x78, 0x0c, 0x7c, 0xcc, 0x76, 0x00], [0xe0, 0x60, 0x7c, 0x66, 0x66, 0x66, 0xdc, 0x00], [0x00, 0x00, 0x7c, 0xc6, 0xc0, 0xc6, 0x7c, 0x00], [0x1c, 0x0c, 0x7c, 0xcc, 0xcc, 0xcc, 0x76, 0x00], [0x00, 0x00, 0x7c, 0xc6, 0xfe, 0xc0, 0x7c, 0x00], [0x3c, 0x66, 0x60, 0xf8, 0x60, 0x60, 0xf0, 0x00], [0x00, 0x00, 0x76, 0xcc, 0xcc, 0x7c, 0x0c, 0xf8], [0xe0, 0x60, 0x6c, 0x76, 0x66, 0x66, 0xe6, 0x00], [0x18, 0x00, 0x38, 0x18, 0x18, 0x18, 0x3c, 0x00], [0x06, 0x00, 0x06, 0x06, 0x06, 0x66, 0x66, 0x3c], [0xe0, 0x60, 0x66, 0x6c, 0x78, 0x6c, 0xe6, 0x00], [0x38, 0x18, 0x18, 0x18, 0x18, 0x18, 0x3c, 0x00], [0x00, 0x00, 0xec, 0xfe, 0xd6, 0xd6, 0xd6, 0x00], [0x00, 0x00, 0xdc, 0x66, 0x66, 0x66, 0x66, 0x00], [0x00, 0x00, 0x7c, 0xc6, 0xc6, 0xc6, 0x7c, 0x00], [0x00, 0x00, 0xdc, 0x66, 0x66, 0x7c, 0x60, 0xf0], [0x00, 0x00, 0x76, 0xcc, 0xcc, 0x7c, 0x0c, 0x1e], [0x00, 0x00, 0xdc, 0x76, 0x60, 0x60, 0xf0, 0x00], [0x00, 0x00, 0x7e, 0xc0, 0x7c, 0x06, 0xfc, 0x00], [0x30, 0x30, 0xfc, 0x30, 0x30, 0x36, 0x1c, 0x00], [0x00, 0x00, 0xcc, 0xcc, 0xcc, 0xcc, 0x76, 0x00], [0x00, 0x00, 0xc6, 0xc6, 0xc6, 0x6c, 0x38, 0x00], [0x00, 0x00, 0xc6, 0xd6, 0xd6, 0xfe, 0x6c, 0x00], [0x00, 0x00, 0xc6, 0x6c, 0x38, 0x6c, 0xc6, 0x00], [0x00, 0x00, 0xc6, 0xc6, 0xc6, 0x7e, 0x06, 0xfc], [0x00, 0x00, 0x7e, 0x4c, 0x18, 0x32, 0x7e, 0x00], [0x0e, 0x18, 0x18, 0x70, 0x18, 0x18, 0x0e, 0x00], [0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x00], [0x70, 0x18, 0x18, 0x0e, 0x18, 0x18, 0x70, 0x00], [0x76, 0xdc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00], [0x00, 0x10, 0x38, 0x6c, 0xc6, 0xc6, 0xfe, 0x00], [0x7c, 0xc6, 0xc0, 0xc0, 0xc6, 0x7c, 0x0c, 0x78], [0xcc, 0x00, 0xcc, 0xcc, 0xcc, 0xcc, 0x76, 0x00], [0x0c, 0x18, 0x7c, 0xc6, 0xfe, 0xc0, 0x7c, 0x00], [0x7c, 0x82, 0x78, 0x0c, 0x7c, 0xcc, 0x76, 0x00], [0xc6, 0x00, 0x78, 0x0c, 0x7c, 0xcc, 0x76, 0x00], [0x30, 0x18, 0x78, 0x0c, 0x7c, 0xcc, 0x76, 0x00], [0x30, 0x30, 0x78, 0x0c, 0x7c, 0xcc, 0x76, 0x00], [0x00, 0x00, 0x7e, 0xc0, 0xc0, 0x7e, 0x0c, 0x38], [0x7c, 0x82, 0x7c, 0xc6, 0xfe, 0xc0, 0x7c, 0x00], [0xc6, 0x00, 0x7c, 0xc6, 0xfe, 0xc0, 0x7c, 0x00], [0x30, 0x18, 0x7c, 0xc6, 0xfe, 0xc0, 0x7c, 0x00], [0x66, 0x00, 0x38, 0x18, 0x18, 0x18, 0x3c, 0x00], [0x7c, 0x82, 0x38, 0x18, 0x18, 0x18, 0x3c, 0x00], [0x30, 0x18, 0x00, 0x38, 0x18, 0x18, 0x3c, 0x00], [0xc6, 0x38, 0x6c, 0xc6, 0xfe, 0xc6, 0xc6, 0x00], [0x38, 0x6c, 0x7c, 0xc6, 0xfe, 0xc6, 0xc6, 0x00], [0x18, 0x30, 0xfe, 0xc0, 0xf8, 0xc0, 0xfe, 0x00], [0x00, 0x00, 0x7e, 0x18, 0x7e, 0xd8, 0x7e, 0x00], [0x3e, 0x6c, 0xcc, 0xfe, 0xcc, 0xcc, 0xce, 0x00], [0x7c, 0x82, 0x7c, 0xc6, 0xc6, 0xc6, 0x7c, 0x00], [0xc6, 0x00, 0x7c, 0xc6, 0xc6, 0xc6, 0x7c, 0x00], [0x30, 0x18, 0x7c, 0xc6, 0xc6, 0xc6, 0x7c, 0x00], [0x78, 0x84, 0x00, 0xcc, 0xcc, 0xcc, 0x76, 0x00], [0x60, 0x30, 0xcc, 0xcc, 0xcc, 0xcc, 0x76, 0x00], [0xc6, 0x00, 0xc6, 0xc6, 0xc6, 0x7e, 0x06, 0xfc], [0xc6, 0x38, 0x6c, 0xc6, 0xc6, 0x6c, 0x38, 0x00], [0xc6, 0x00, 0xc6, 0xc6, 0xc6, 0xc6, 0x7c, 0x00], [0x18, 0x18, 0x7e, 0xc0, 0xc0, 0x7e, 0x18, 0x18], [0x38, 0x6c, 0x64, 0xf0, 0x60, 0x66, 0xfc, 0x00], [0x66, 0x66, 0x3c, 0x7e, 0x18, 0x7e, 0x18, 0x18], [0xf8, 0xcc, 0xcc, 0xfa, 0xc6, 0xcf, 0xc6, 0xc7], [0x0e, 0x1b, 0x18, 0x3c, 0x18, 0xd8, 0x70, 0x00], [0x18, 0x30, 0x78, 0x0c, 0x7c, 0xcc, 0x76, 0x00], [0x0c, 0x18, 0x00, 0x38, 0x18, 0x18, 0x3c, 0x00], [0x0c, 0x18, 0x7c, 0xc6, 0xc6, 0xc6, 0x7c, 0x00], [0x18, 0x30, 0xcc, 0xcc, 0xcc, 0xcc, 0x76, 0x00], [0x76, 0xdc, 0x00, 0xdc, 0x66, 0x66, 0x66, 0x00], [0x76, 0xdc, 0x00, 0xe6, 0xf6, 0xde, 0xce, 0x00], [0x3c, 0x6c, 0x6c, 0x3e, 0x00, 0x7e, 0x00, 0x00], [0x38, 0x6c, 0x6c, 0x38, 0x00, 0x7c, 0x00, 0x00], [0x18, 0x00, 0x18, 0x18, 0x30, 0x63, 0x3e, 0x00], [0x00, 0x00, 0x00, 0xfe, 0xc0, 0xc0, 0x00, 0x00], [0x00, 0x00, 0x00, 0xfe, 0x06, 0x06, 0x00, 0x00], [0x63, 0xe6, 0x6c, 0x7e, 0x33, 0x66, 0xcc, 0x0f], [0x63, 0xe6, 0x6c, 0x7a, 0x36, 0x6a, 0xdf, 0x06], [0x18, 0x00, 0x18, 0x18, 0x3c, 0x3c, 0x18, 0x00], [0x00, 0x33, 0x66, 0xcc, 0x66, 0x33, 0x00, 0x00], [0x00, 0xcc, 0x66, 0x33, 0x66, 0xcc, 0x00, 0x00], [0x22, 0x88, 0x22, 0x88, 0x22, 0x88, 0x22, 0x88], [0x55, 0xaa, 0x55, 0xaa, 0x55, 0xaa, 0x55, 0xaa], [0x77, 0xdd, 0x77, 0xdd, 0x77, 0xdd, 0x77, 0xdd], [0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18], [0x18, 0x18, 0x18, 0x18, 0xf8, 0x18, 0x18, 0x18], [0x18, 0x18, 0xf8, 0x18, 0xf8, 0x18, 0x18, 0x18], [0x36, 0x36, 0x36, 0x36, 0xf6, 0x36, 0x36, 0x36], [0x00, 0x00, 0x00, 0x00, 0xfe, 0x36, 0x36, 0x36], [0x00, 0x00, 0xf8, 0x18, 0xf8, 0x18, 0x18, 0x18], [0x36, 0x36, 0xf6, 0x06, 0xf6, 0x36, 0x36, 0x36], [0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36], [0x00, 0x00, 0xfe, 0x06, 0xf6, 0x36, 0x36, 0x36], [0x36, 0x36, 0xf6, 0x06, 0xfe, 0x00, 0x00, 0x00], [0x36, 0x36, 0x36, 0x36, 0xfe, 0x00, 0x00, 0x00], [0x18, 0x18, 0xf8, 0x18, 0xf8, 0x00, 0x00, 0x00], [0x00, 0x00, 0x00, 0x00, 0xf8, 0x18, 0x18, 0x18], [0x18, 0x18, 0x18, 0x18, 0x1f, 0x00, 0x00, 0x00], [0x18, 0x18, 0x18, 0x18, 0xff, 0x00, 0x00, 0x00], [0x00, 0x00, 0x00, 0x00, 0xff, 0x18, 0x18, 0x18], [0x18, 0x18, 0x18, 0x18, 0x1f, 0x18, 0x18, 0x18], [0x00, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00], [0x18, 0x18, 0x18, 0x18, 0xff, 0x18, 0x18, 0x18], [0x18, 0x18, 0x1f, 0x18, 0x1f, 0x18, 0x18, 0x18], [0x36, 0x36, 0x36, 0x36, 0x37, 0x36, 0x36, 0x36], [0x36, 0x36, 0x37, 0x30, 0x3f, 0x00, 0x00, 0x00], [0x00, 0x00, 0x3f, 0x30, 0x37, 0x36, 0x36, 0x36], [0x36, 0x36, 0xf7, 0x00, 0xff, 0x00, 0x00, 0x00], [0x00, 0x00, 0xff, 0x00, 0xf7, 0x36, 0x36, 0x36], [0x36, 0x36, 0x37, 0x30, 0x37, 0x36, 0x36, 0x36], [0x00, 0x00, 0xff, 0x00, 0xff, 0x00, 0x00, 0x00], [0x36, 0x36, 0xf7, 0x00, 0xf7, 0x36, 0x36, 0x36], [0x18, 0x18, 0xff, 0x00, 0xff, 0x00, 0x00, 0x00], [0x36, 0x36, 0x36, 0x36, 0xff, 0x00, 0x00, 0x00], [0x00, 0x00, 0xff, 0x00, 0xff, 0x18, 0x18, 0x18], [0x00, 0x00, 0x00, 0x00, 0xff, 0x36, 0x36, 0x36], [0x36, 0x36, 0x36, 0x36, 0x3f, 0x00, 0x00, 0x00], [0x18, 0x18, 0x1f, 0x18, 0x1f, 0x00, 0x00, 0x00], [0x00, 0x00, 0x1f, 0x18, 0x1f, 0x18, 0x18, 0x18], [0x00, 0x00, 0x00, 0x00, 0x3f, 0x36, 0x36, 0x36], [0x36, 0x36, 0x36, 0x36, 0xff, 0x36, 0x36, 0x36], [0x18, 0x18, 0xff, 0x18, 0xff, 0x18, 0x18, 0x18], [0x18, 0x18, 0x18, 0x18, 0xf8, 0x00, 0x00, 0x00], [0x00, 0x00, 0x00, 0x00, 0x1f, 0x18, 0x18, 0x18], [0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff], [0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff], [0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0], [0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f], [0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00], [0x00, 0x00, 0x76, 0xdc, 0xc8, 0xdc, 0x76, 0x00], [0x78, 0xcc, 0xcc, 0xd8, 0xcc, 0xc6, 0xcc, 0x00], [0xfe, 0xc6, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0x00], [0x00, 0x00, 0xfe, 0x6c, 0x6c, 0x6c, 0x6c, 0x00], [0xfe, 0xc6, 0x60, 0x30, 0x60, 0xc6, 0xfe, 0x00], [0x00, 0x00, 0x7e, 0xd8, 0xd8, 0xd8, 0x70, 0x00], [0x00, 0x00, 0x66, 0x66, 0x66, 0x66, 0x7c, 0xc0], [0x00, 0x76, 0xdc, 0x18, 0x18, 0x18, 0x18, 0x00], [0x7e, 0x18, 0x3c, 0x66, 0x66, 0x3c, 0x18, 0x7e], [0x38, 0x6c, 0xc6, 0xfe, 0xc6, 0x6c, 0x38, 0x00], [0x38, 0x6c, 0xc6, 0xc6, 0x6c, 0x6c, 0xee, 0x00], [0x0e, 0x18, 0x0c, 0x3e, 0x66, 0x66, 0x3c, 0x00], [0x00, 0x00, 0x7e, 0xdb, 0xdb, 0x7e, 0x00, 0x00], [0x06, 0x0c, 0x7e, 0xdb, 0xdb, 0x7e, 0x60, 0xc0], [0x1e, 0x30, 0x60, 0x7e, 0x60, 0x30, 0x1e, 0x00], [0x00, 0x7c, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0x00], [0x00, 0xfe, 0x00, 0xfe, 0x00, 0xfe, 0x00, 0x00], [0x18, 0x18, 0x7e, 0x18, 0x18, 0x00, 0x7e, 0x00], [0x30, 0x18, 0x0c, 0x18, 0x30, 0x00, 0x7e, 0x00], [0x0c, 0x18, 0x30, 0x18, 0x0c, 0x00, 0x7e, 0x00], [0x0e, 0x1b, 0x1b, 0x18, 0x18, 0x18, 0x18, 0x18], [0x18, 0x18, 0x18, 0x18, 0x18, 0xd8, 0xd8, 0x70], [0x00, 0x18, 0x00, 0x7e, 0x00, 0x18, 0x00, 0x00], [0x00, 0x76, 0xdc, 0x00, 0x76, 0xdc, 0x00, 0x00], [0x38, 0x6c, 0x6c, 0x38, 0x00, 0x00, 0x00, 0x00], [0x00, 0x00, 0x00, 0x18, 0x18, 0x00, 0x00, 0x00], [0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x00], [0x0f, 0x0c, 0x0c, 0x0c, 0xec, 0x6c, 0x3c, 0x1c], [0x6c, 0x36, 0x36, 0x36, 0x36, 0x00, 0x00, 0x00], [0x78, 0x0c, 0x18, 0x30, 0x7c, 0x00, 0x00, 0x00], [0x00, 0x00, 0x3c, 0x3c, 0x3c, 0x3c, 0x00, 0x00], [0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00]]; + this.height = 8; + for (k in options) { + if (!__hasProp.call(options, k)) continue; + v = options[k]; + this[k] = v; + } + } + + return ImageTextModeFont8x8; + + })(this.ImageTextModeFont); + + this.ImageTextModeFontAmiga = (function(_super) { + __extends(ImageTextModeFontAmiga, _super); + + function ImageTextModeFontAmiga(options) { + var k, v; + ImageTextModeFontAmiga.__super__.constructor.apply(this, arguments); + this.chars = [[0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00], [0x83, 0x83, 0x39, 0x39, 0x21, 0x21, 0x29, 0x29, 0x21, 0x21, 0x3f, 0x3f, 0x87, 0x87, 0xff, 0xff], [0xc3, 0xc3, 0x99, 0x99, 0x99, 0x99, 0x81, 0x81, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0xff, 0xff], [0x83, 0x83, 0x99, 0x99, 0x99, 0x99, 0x83, 0x83, 0x99, 0x99, 0x99, 0x99, 0x83, 0x83, 0xff, 0xff], [0xe1, 0xe1, 0xcf, 0xcf, 0x9f, 0x9f, 0x9f, 0x9f, 0x9f, 0x9f, 0xcf, 0xcf, 0xe1, 0xe1, 0xff, 0xff], [0x87, 0x87, 0x93, 0x93, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x93, 0x93, 0x87, 0x87, 0xff, 0xff], [0x81, 0x81, 0x9f, 0x9f, 0x9f, 0x9f, 0x87, 0x87, 0x9f, 0x9f, 0x9f, 0x9f, 0x81, 0x81, 0xff, 0xff], [0x81, 0x81, 0x9f, 0x9f, 0x9f, 0x9f, 0x87, 0x87, 0x9f, 0x9f, 0x9f, 0x9f, 0x9f, 0x9f, 0xff, 0xff], [0xc3, 0xc3, 0x99, 0x99, 0x9f, 0x9f, 0x91, 0x91, 0x99, 0x99, 0x99, 0x99, 0xc1, 0xc1, 0xff, 0xff], [0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x81, 0x81, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0xff, 0xff], [0xc3, 0xc3, 0xe7, 0xe7, 0xe7, 0xe7, 0xe7, 0xe7, 0xe7, 0xe7, 0xe7, 0xe7, 0xc3, 0xc3, 0xff, 0xff], [0xf9, 0xf9, 0xf9, 0xf9, 0xf9, 0xf9, 0xf9, 0xf9, 0xf9, 0xf9, 0x99, 0x99, 0xc3, 0xc3, 0xff, 0xff], [0x9c, 0x9c, 0x99, 0x99, 0x93, 0x93, 0x87, 0x87, 0x93, 0x93, 0x99, 0x99, 0x9c, 0x9c, 0xff, 0xff], [0x9f, 0x9f, 0x9f, 0x9f, 0x9f, 0x9f, 0x9f, 0x9f, 0x9f, 0x9f, 0x9f, 0x9f, 0x81, 0x81, 0xff, 0xff], [0x9c, 0x9c, 0x88, 0x88, 0x80, 0x80, 0x94, 0x94, 0x9c, 0x9c, 0x9c, 0x9c, 0x9c, 0x9c, 0xff, 0xff], [0x9c, 0x9c, 0x8c, 0x8c, 0x84, 0x84, 0x90, 0x90, 0x98, 0x98, 0x9c, 0x9c, 0x9c, 0x9c, 0xff, 0xff], [0xc3, 0xc3, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0xc3, 0xc3, 0xff, 0xff], [0x83, 0x83, 0x99, 0x99, 0x99, 0x99, 0x83, 0x83, 0x9f, 0x9f, 0x9f, 0x9f, 0x9f, 0x9f, 0xff, 0xff], [0xc3, 0xc3, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x91, 0x91, 0xc0, 0xc0, 0xff, 0xff], [0x83, 0x83, 0x99, 0x99, 0x99, 0x99, 0x83, 0x83, 0x93, 0x93, 0x99, 0x99, 0x99, 0x99, 0xff, 0xff], [0xc3, 0xc3, 0x99, 0x99, 0x8f, 0x8f, 0xc3, 0xc3, 0xf1, 0xf1, 0x99, 0x99, 0xc3, 0xc3, 0xff, 0xff], [0x81, 0x81, 0xe7, 0xe7, 0xe7, 0xe7, 0xe7, 0xe7, 0xe7, 0xe7, 0xe7, 0xe7, 0xe7, 0xe7, 0xff, 0xff], [0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0xc3, 0xc3, 0xff, 0xff], [0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x81, 0xc3, 0xc3, 0xe7, 0xe7, 0xff, 0xff], [0x9c, 0x9c, 0x9c, 0x9c, 0x9c, 0x9c, 0x94, 0x94, 0x80, 0x80, 0x88, 0x88, 0x9c, 0x9c, 0xff, 0xff], [0x3c, 0x3c, 0x99, 0x99, 0xc3, 0xc3, 0xe7, 0xe7, 0xc3, 0xc3, 0x99, 0x99, 0x3c, 0x3c, 0xff, 0xff], [0x3c, 0x3c, 0x99, 0x99, 0xc3, 0xc3, 0xe7, 0xe7, 0xe7, 0xe7, 0xe7, 0xe7, 0xe7, 0xe7, 0xff, 0xff], [0x80, 0x80, 0xf9, 0xf9, 0xf3, 0xf3, 0xe7, 0xe7, 0xcf, 0xcf, 0x9f, 0x9f, 0x80, 0x80, 0xff, 0xff], [0xc3, 0xc3, 0xcf, 0xcf, 0xcf, 0xcf, 0xcf, 0xcf, 0xcf, 0xcf, 0xcf, 0xcf, 0xc3, 0xc3, 0xff, 0xff], [0x3f, 0x3f, 0x9f, 0x9f, 0xcf, 0xcf, 0xe7, 0xe7, 0xf3, 0xf3, 0xf9, 0xf9, 0xfc, 0xfc, 0xff, 0xff], [0xc3, 0xc3, 0xf3, 0xf3, 0xf3, 0xf3, 0xf3, 0xf3, 0xf3, 0xf3, 0xf3, 0xf3, 0xc3, 0xc3, 0xff, 0xff], [0xf7, 0xf7, 0xe3, 0xe3, 0xc9, 0xc9, 0x9c, 0x9c, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff], [0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00], [0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x00, 0x00, 0x18, 0x18, 0x00, 0x00], [0x6c, 0x6c, 0x6c, 0x6c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00], [0x6c, 0x6c, 0x6c, 0x6c, 0xfe, 0xfe, 0x6c, 0x6c, 0xfe, 0xfe, 0x6c, 0x6c, 0x6c, 0x6c, 0x00, 0x00], [0x18, 0x18, 0x3e, 0x3e, 0x60, 0x60, 0x3c, 0x3c, 0x06, 0x06, 0x7c, 0x7c, 0x18, 0x18, 0x00, 0x00], [0x00, 0x00, 0x66, 0x66, 0xac, 0xac, 0xd8, 0xd8, 0x36, 0x36, 0x6a, 0x6a, 0xcc, 0xcc, 0x00, 0x00], [0x38, 0x38, 0x6c, 0x6c, 0x68, 0x68, 0x76, 0x76, 0xdc, 0xdc, 0xce, 0xce, 0x7b, 0x7b, 0x00, 0x00], [0x18, 0x18, 0x18, 0x18, 0x30, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00], [0x0c, 0x0c, 0x18, 0x18, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x18, 0x18, 0x0c, 0x0c, 0x00, 0x00], [0x30, 0x30, 0x18, 0x18, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x18, 0x18, 0x30, 0x30, 0x00, 0x00], [0x00, 0x00, 0x66, 0x66, 0x3c, 0x3c, 0xff, 0xff, 0x3c, 0x3c, 0x66, 0x66, 0x00, 0x00, 0x00, 0x00], [0x00, 0x00, 0x18, 0x18, 0x18, 0x18, 0x7e, 0x7e, 0x18, 0x18, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00], [0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x18, 0x18, 0x30, 0x30], [0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x7e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00], [0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x18, 0x18, 0x00, 0x00], [0x03, 0x03, 0x06, 0x06, 0x0c, 0x0c, 0x18, 0x18, 0x30, 0x30, 0x60, 0x60, 0xc0, 0xc0, 0x00, 0x00], [0x3c, 0x3c, 0x66, 0x66, 0x6e, 0x6e, 0x7e, 0x7e, 0x76, 0x76, 0x66, 0x66, 0x3c, 0x3c, 0x00, 0x00], [0x18, 0x18, 0x38, 0x38, 0x78, 0x78, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x00, 0x00], [0x3c, 0x3c, 0x66, 0x66, 0x06, 0x06, 0x0c, 0x0c, 0x18, 0x18, 0x30, 0x30, 0x7e, 0x7e, 0x00, 0x00], [0x3c, 0x3c, 0x66, 0x66, 0x06, 0x06, 0x1c, 0x1c, 0x06, 0x06, 0x66, 0x66, 0x3c, 0x3c, 0x00, 0x00], [0x1c, 0x1c, 0x3c, 0x3c, 0x6c, 0x6c, 0xcc, 0xcc, 0xfe, 0xfe, 0x0c, 0x0c, 0x0c, 0x0c, 0x00, 0x00], [0x7e, 0x7e, 0x60, 0x60, 0x7c, 0x7c, 0x06, 0x06, 0x06, 0x06, 0x66, 0x66, 0x3c, 0x3c, 0x00, 0x00], [0x1c, 0x1c, 0x30, 0x30, 0x60, 0x60, 0x7c, 0x7c, 0x66, 0x66, 0x66, 0x66, 0x3c, 0x3c, 0x00, 0x00], [0x7e, 0x7e, 0x06, 0x06, 0x06, 0x06, 0x0c, 0x0c, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x00, 0x00], [0x3c, 0x3c, 0x66, 0x66, 0x66, 0x66, 0x3c, 0x3c, 0x66, 0x66, 0x66, 0x66, 0x3c, 0x3c, 0x00, 0x00], [0x3c, 0x3c, 0x66, 0x66, 0x66, 0x66, 0x3e, 0x3e, 0x06, 0x06, 0x0c, 0x0c, 0x38, 0x38, 0x00, 0x00], [0x00, 0x00, 0x18, 0x18, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x18, 0x18, 0x00, 0x00], [0x00, 0x00, 0x18, 0x18, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x18, 0x18, 0x30, 0x30], [0x00, 0x00, 0x06, 0x06, 0x18, 0x18, 0x60, 0x60, 0x18, 0x18, 0x06, 0x06, 0x00, 0x00, 0x00, 0x00], [0x00, 0x00, 0x00, 0x00, 0x7e, 0x7e, 0x00, 0x00, 0x7e, 0x7e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00], [0x00, 0x00, 0x60, 0x60, 0x18, 0x18, 0x06, 0x06, 0x18, 0x18, 0x60, 0x60, 0x00, 0x00, 0x00, 0x00], [0x3c, 0x3c, 0x66, 0x66, 0x06, 0x06, 0x0c, 0x0c, 0x18, 0x18, 0x00, 0x00, 0x18, 0x18, 0x00, 0x00], [0x7c, 0x7c, 0xc6, 0xc6, 0xde, 0xde, 0xd6, 0xd6, 0xde, 0xde, 0xc0, 0xc0, 0x78, 0x78, 0x00, 0x00], [0x3c, 0x3c, 0x66, 0x66, 0x66, 0x66, 0x7e, 0x7e, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x00, 0x00], [0x7c, 0x7c, 0x66, 0x66, 0x66, 0x66, 0x7c, 0x7c, 0x66, 0x66, 0x66, 0x66, 0x7c, 0x7c, 0x00, 0x00], [0x1e, 0x1e, 0x30, 0x30, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x30, 0x30, 0x1e, 0x1e, 0x00, 0x00], [0x78, 0x78, 0x6c, 0x6c, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x6c, 0x6c, 0x78, 0x78, 0x00, 0x00], [0x7e, 0x7e, 0x60, 0x60, 0x60, 0x60, 0x78, 0x78, 0x60, 0x60, 0x60, 0x60, 0x7e, 0x7e, 0x00, 0x00], [0x7e, 0x7e, 0x60, 0x60, 0x60, 0x60, 0x78, 0x78, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x00, 0x00], [0x3c, 0x3c, 0x66, 0x66, 0x60, 0x60, 0x6e, 0x6e, 0x66, 0x66, 0x66, 0x66, 0x3e, 0x3e, 0x00, 0x00], [0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x7e, 0x7e, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x00, 0x00], [0x3c, 0x3c, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x3c, 0x3c, 0x00, 0x00], [0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x66, 0x66, 0x3c, 0x3c, 0x00, 0x00], [0xc6, 0xc6, 0xcc, 0xcc, 0xd8, 0xd8, 0xf0, 0xf0, 0xd8, 0xd8, 0xcc, 0xcc, 0xc6, 0xc6, 0x00, 0x00], [0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x7e, 0x7e, 0x00, 0x00], [0xc6, 0xc6, 0xee, 0xee, 0xfe, 0xfe, 0xd6, 0xd6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0x00, 0x00], [0xc6, 0xc6, 0xe6, 0xe6, 0xf6, 0xf6, 0xde, 0xde, 0xce, 0xce, 0xc6, 0xc6, 0xc6, 0xc6, 0x00, 0x00], [0x3c, 0x3c, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x3c, 0x3c, 0x00, 0x00], [0x7c, 0x7c, 0x66, 0x66, 0x66, 0x66, 0x7c, 0x7c, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x00, 0x00], [0x78, 0x78, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xdc, 0xdc, 0x7e, 0x7e, 0x00, 0x00], [0x7c, 0x7c, 0x66, 0x66, 0x66, 0x66, 0x7c, 0x7c, 0x6c, 0x6c, 0x66, 0x66, 0x66, 0x66, 0x00, 0x00], [0x3c, 0x3c, 0x66, 0x66, 0x70, 0x70, 0x3c, 0x3c, 0x0e, 0x0e, 0x66, 0x66, 0x3c, 0x3c, 0x00, 0x00], [0x7e, 0x7e, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x00, 0x00], [0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x3c, 0x3c, 0x00, 0x00], [0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x3c, 0x3c, 0x3c, 0x3c, 0x18, 0x18, 0x00, 0x00], [0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xd6, 0xd6, 0xfe, 0xfe, 0xee, 0xee, 0xc6, 0xc6, 0x00, 0x00], [0xc3, 0xc3, 0x66, 0x66, 0x3c, 0x3c, 0x18, 0x18, 0x3c, 0x3c, 0x66, 0x66, 0xc3, 0xc3, 0x00, 0x00], [0xc3, 0xc3, 0x66, 0x66, 0x3c, 0x3c, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x00, 0x00], [0xfe, 0xfe, 0x0c, 0x0c, 0x18, 0x18, 0x30, 0x30, 0x60, 0x60, 0xc0, 0xc0, 0xfe, 0xfe, 0x00, 0x00], [0x3c, 0x3c, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x3c, 0x3c, 0x00, 0x00], [0xc0, 0xc0, 0x60, 0x60, 0x30, 0x30, 0x18, 0x18, 0x0c, 0x0c, 0x06, 0x06, 0x03, 0x03, 0x00, 0x00], [0x3c, 0x3c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x3c, 0x3c, 0x00, 0x00], [0x10, 0x10, 0x38, 0x38, 0x6c, 0x6c, 0xc6, 0xc6, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00], [0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0xfe], [0x18, 0x18, 0x18, 0x18, 0x0c, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00], [0x00, 0x00, 0x00, 0x00, 0x3c, 0x3c, 0x06, 0x06, 0x3e, 0x3e, 0x66, 0x66, 0x3e, 0x3e, 0x00, 0x00], [0x60, 0x60, 0x60, 0x60, 0x7c, 0x7c, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x7c, 0x7c, 0x00, 0x00], [0x00, 0x00, 0x00, 0x00, 0x3c, 0x3c, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x3c, 0x3c, 0x00, 0x00], [0x06, 0x06, 0x06, 0x06, 0x3e, 0x3e, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x3e, 0x3e, 0x00, 0x00], [0x00, 0x00, 0x00, 0x00, 0x3c, 0x3c, 0x66, 0x66, 0x7e, 0x7e, 0x60, 0x60, 0x3c, 0x3c, 0x00, 0x00], [0x1c, 0x1c, 0x30, 0x30, 0x7c, 0x7c, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x00, 0x00], [0x00, 0x00, 0x00, 0x00, 0x3e, 0x3e, 0x66, 0x66, 0x66, 0x66, 0x3e, 0x3e, 0x06, 0x06, 0x3c, 0x3c], [0x60, 0x60, 0x60, 0x60, 0x7c, 0x7c, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x00, 0x00], [0x18, 0x18, 0x00, 0x00, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x0c, 0x0c, 0x00, 0x00], [0x0c, 0x0c, 0x00, 0x00, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x78, 0x78], [0x60, 0x60, 0x60, 0x60, 0x66, 0x66, 0x6c, 0x6c, 0x78, 0x78, 0x6c, 0x6c, 0x66, 0x66, 0x00, 0x00], [0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x0c, 0x0c, 0x00, 0x00], [0x00, 0x00, 0x00, 0x00, 0xec, 0xec, 0xfe, 0xfe, 0xd6, 0xd6, 0xc6, 0xc6, 0xc6, 0xc6, 0x00, 0x00], [0x00, 0x00, 0x00, 0x00, 0x7c, 0x7c, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x00, 0x00], [0x00, 0x00, 0x00, 0x00, 0x3c, 0x3c, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x3c, 0x3c, 0x00, 0x00], [0x00, 0x00, 0x00, 0x00, 0x7c, 0x7c, 0x66, 0x66, 0x66, 0x66, 0x7c, 0x7c, 0x60, 0x60, 0x60, 0x60], [0x00, 0x00, 0x00, 0x00, 0x3e, 0x3e, 0x66, 0x66, 0x66, 0x66, 0x3e, 0x3e, 0x06, 0x06, 0x06, 0x06], [0x00, 0x00, 0x00, 0x00, 0x7c, 0x7c, 0x66, 0x66, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x00, 0x00], [0x00, 0x00, 0x00, 0x00, 0x3c, 0x3c, 0x60, 0x60, 0x3c, 0x3c, 0x06, 0x06, 0x7c, 0x7c, 0x00, 0x00], [0x30, 0x30, 0x30, 0x30, 0x7c, 0x7c, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x1c, 0x1c, 0x00, 0x00], [0x00, 0x00, 0x00, 0x00, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x3e, 0x3e, 0x00, 0x00], [0x00, 0x00, 0x00, 0x00, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x3c, 0x3c, 0x18, 0x18, 0x00, 0x00], [0x00, 0x00, 0x00, 0x00, 0xc6, 0xc6, 0xc6, 0xc6, 0xd6, 0xd6, 0xfe, 0xfe, 0x6c, 0x6c, 0x00, 0x00], [0x00, 0x00, 0x00, 0x00, 0xc6, 0xc6, 0x6c, 0x6c, 0x38, 0x38, 0x6c, 0x6c, 0xc6, 0xc6, 0x00, 0x00], [0x00, 0x00, 0x00, 0x00, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x3c, 0x3c, 0x18, 0x18, 0x30, 0x30], [0x00, 0x00, 0x00, 0x00, 0x7e, 0x7e, 0x0c, 0x0c, 0x18, 0x18, 0x30, 0x30, 0x7e, 0x7e, 0x00, 0x00], [0x0e, 0x0e, 0x18, 0x18, 0x18, 0x18, 0x70, 0x70, 0x18, 0x18, 0x18, 0x18, 0x0e, 0x0e, 0x00, 0x00], [0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x00, 0x00], [0x70, 0x70, 0x18, 0x18, 0x18, 0x18, 0x0e, 0x0e, 0x18, 0x18, 0x18, 0x18, 0x70, 0x70, 0x00, 0x00], [0x72, 0x72, 0x9c, 0x9c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00], [0x0f, 0x0f, 0x3c, 0x3c, 0xf0, 0xf0, 0xc3, 0xc3, 0x0f, 0x0f, 0x3c, 0x3c, 0xf0, 0xf0, 0x00, 0x00], [0xcf, 0xcf, 0xe7, 0xe7, 0xc3, 0xc3, 0x99, 0x99, 0x81, 0x81, 0x99, 0x99, 0x99, 0x99, 0xff, 0xff], [0xf3, 0xf3, 0xe7, 0xe7, 0xc3, 0xc3, 0x99, 0x99, 0x81, 0x81, 0x99, 0x99, 0x99, 0x99, 0xff, 0xff], [0xe7, 0xe7, 0x99, 0x99, 0xc3, 0xc3, 0x99, 0x99, 0x81, 0x81, 0x99, 0x99, 0x99, 0x99, 0xff, 0xff], [0x8e, 0x8e, 0x71, 0x71, 0xc3, 0xc3, 0x99, 0x99, 0x81, 0x81, 0x99, 0x99, 0x99, 0x99, 0xff, 0xff], [0x99, 0x99, 0xff, 0xff, 0xc3, 0xc3, 0x99, 0x99, 0x81, 0x81, 0x99, 0x99, 0x99, 0x99, 0xff, 0xff], [0xe7, 0xe7, 0xdb, 0xdb, 0xc3, 0xc3, 0x99, 0x99, 0x81, 0x81, 0x99, 0x99, 0x99, 0x99, 0xff, 0xff], [0xe0, 0xe0, 0xc3, 0xc3, 0xc3, 0xc3, 0x90, 0x90, 0x83, 0x83, 0x33, 0x33, 0x30, 0x30, 0xff, 0xff], [0xe1, 0xe1, 0xcf, 0xcf, 0x9f, 0x9f, 0x9f, 0x9f, 0xcf, 0xcf, 0xe1, 0xe1, 0xf3, 0xf3, 0xe7, 0xe7], [0xcf, 0xcf, 0xe7, 0xe7, 0x81, 0x81, 0x9f, 0x9f, 0x87, 0x87, 0x9f, 0x9f, 0x81, 0x81, 0xff, 0xff], [0xf3, 0xf3, 0xe7, 0xe7, 0x81, 0x81, 0x9f, 0x9f, 0x87, 0x87, 0x9f, 0x9f, 0x81, 0x81, 0xff, 0xff], [0xe7, 0xe7, 0x99, 0x99, 0x81, 0x81, 0x9f, 0x9f, 0x87, 0x87, 0x9f, 0x9f, 0x81, 0x81, 0xff, 0xff], [0x99, 0x99, 0xff, 0xff, 0x81, 0x81, 0x9f, 0x9f, 0x87, 0x87, 0x9f, 0x9f, 0x81, 0x81, 0xff, 0xff], [0xcf, 0xcf, 0xe7, 0xe7, 0xc3, 0xc3, 0xe7, 0xe7, 0xe7, 0xe7, 0xe7, 0xe7, 0xc3, 0xc3, 0xff, 0xff], [0xf3, 0xf3, 0xe7, 0xe7, 0xc3, 0xc3, 0xe7, 0xe7, 0xe7, 0xe7, 0xe7, 0xe7, 0xc3, 0xc3, 0xff, 0xff], [0xe7, 0xe7, 0x99, 0x99, 0xc3, 0xc3, 0xe7, 0xe7, 0xe7, 0xe7, 0xe7, 0xe7, 0xc3, 0xc3, 0xff, 0xff], [0x99, 0x99, 0xff, 0xff, 0xc3, 0xc3, 0xe7, 0xe7, 0xe7, 0xe7, 0xe7, 0xe7, 0xc3, 0xc3, 0xff, 0xff], [0x87, 0x87, 0x93, 0x93, 0x99, 0x99, 0x09, 0x09, 0x99, 0x99, 0x93, 0x93, 0x87, 0x87, 0xff, 0xff], [0x8e, 0x8e, 0x31, 0x31, 0x19, 0x19, 0x09, 0x09, 0x21, 0x21, 0x31, 0x31, 0x39, 0x39, 0xff, 0xff], [0xcf, 0xcf, 0xe7, 0xe7, 0xc3, 0xc3, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0xc3, 0xc3, 0xff, 0xff], [0xf3, 0xf3, 0xe7, 0xe7, 0xc3, 0xc3, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0xc3, 0xc3, 0xff, 0xff], [0xe7, 0xe7, 0x99, 0x99, 0xc3, 0xc3, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0xc3, 0xc3, 0xff, 0xff], [0x8e, 0x8e, 0x71, 0x71, 0xc3, 0xc3, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0xc3, 0xc3, 0xff, 0xff], [0x3c, 0x3c, 0xc3, 0xc3, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0xc3, 0xc3, 0xff, 0xff], [0xff, 0xff, 0x39, 0x39, 0x93, 0x93, 0xc7, 0xc7, 0x93, 0x93, 0x39, 0x39, 0xff, 0xff, 0xff, 0xff], [0xc0, 0xc0, 0x99, 0x99, 0x91, 0x91, 0x81, 0x81, 0x89, 0x89, 0x99, 0x99, 0x03, 0x03, 0xff, 0xff], [0xcf, 0xcf, 0xe7, 0xe7, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0xc3, 0xc3, 0xff, 0xff], [0xf3, 0xf3, 0xe7, 0xe7, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0xc3, 0xc3, 0xff, 0xff], [0xe7, 0xe7, 0xdb, 0xdb, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0xc3, 0xc3, 0xff, 0xff], [0x99, 0x99, 0xff, 0xff, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0xc3, 0xc3, 0xff, 0xff], [0xf9, 0xf9, 0xf7, 0xf7, 0x3c, 0x3c, 0x99, 0x99, 0xc3, 0xc3, 0xe7, 0xe7, 0xe7, 0xe7, 0xff, 0xff], [0x3f, 0x3f, 0x3f, 0x3f, 0x03, 0x03, 0x39, 0x39, 0x03, 0x03, 0x3f, 0x3f, 0x3f, 0x3f, 0xff, 0xff], [0xc3, 0xc3, 0x99, 0x99, 0x99, 0x99, 0x93, 0x93, 0x99, 0x99, 0x99, 0x99, 0x93, 0x93, 0x9f, 0x9f], [0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x80, 0x80], [0x18, 0x18, 0x00, 0x00, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x00, 0x00], [0x00, 0x00, 0x0c, 0x0c, 0x3e, 0x3e, 0x6c, 0x6c, 0x3e, 0x3e, 0x0c, 0x0c, 0x00, 0x00, 0x00, 0x00], [0x1c, 0x1c, 0x36, 0x36, 0x30, 0x30, 0x78, 0x78, 0x30, 0x30, 0x30, 0x30, 0x7e, 0x7e, 0x00, 0x00], [0x42, 0x42, 0x3c, 0x3c, 0x66, 0x66, 0x3c, 0x3c, 0x42, 0x42, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00], [0xc3, 0xc3, 0x66, 0x66, 0x3c, 0x3c, 0x18, 0x18, 0x3c, 0x3c, 0x18, 0x18, 0x18, 0x18, 0x00, 0x00], [0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x00, 0x00, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x00, 0x00], [0x3c, 0x3c, 0x60, 0x60, 0x3c, 0x3c, 0x66, 0x66, 0x3c, 0x3c, 0x06, 0x06, 0x3c, 0x3c, 0x00, 0x00], [0x66, 0x66, 0x66, 0x66, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00], [0x7e, 0x7e, 0x81, 0x81, 0x9d, 0x9d, 0xb1, 0xb1, 0x9d, 0x9d, 0x81, 0x81, 0x7e, 0x7e, 0x00, 0x00], [0x1c, 0x1c, 0x24, 0x24, 0x44, 0x44, 0x3c, 0x3c, 0x00, 0x00, 0x7e, 0x7e, 0x00, 0x00, 0x00, 0x00], [0x00, 0x00, 0x33, 0x33, 0x66, 0x66, 0xcc, 0xcc, 0x66, 0x66, 0x33, 0x33, 0x00, 0x00, 0x00, 0x00], [0x3e, 0x3e, 0x06, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00], [0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x7e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00], [0x7e, 0x7e, 0x81, 0x81, 0xb9, 0xb9, 0xa5, 0xa5, 0xb9, 0xb9, 0xa5, 0xa5, 0x81, 0x81, 0x7e, 0x7e], [0x7e, 0x7e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00], [0x3c, 0x3c, 0x66, 0x66, 0x3c, 0x3c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00], [0x18, 0x18, 0x18, 0x18, 0x7e, 0x7e, 0x18, 0x18, 0x18, 0x18, 0x00, 0x00, 0x7e, 0x7e, 0x00, 0x00], [0x78, 0x78, 0x0c, 0x0c, 0x18, 0x18, 0x30, 0x30, 0x7c, 0x7c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00], [0x78, 0x78, 0x0c, 0x0c, 0x18, 0x18, 0x0c, 0x0c, 0x78, 0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00], [0x18, 0x18, 0x30, 0x30, 0x60, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00], [0x00, 0x00, 0x00, 0x00, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x7f, 0x7f, 0x60, 0x60], [0x3e, 0x3e, 0x7a, 0x7a, 0x7a, 0x7a, 0x3a, 0x3a, 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, 0x00, 0x00], [0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00], [0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x30, 0x30], [0x30, 0x30, 0x70, 0x70, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00], [0x38, 0x38, 0x44, 0x44, 0x44, 0x44, 0x38, 0x38, 0x00, 0x00, 0x7c, 0x7c, 0x00, 0x00, 0x00, 0x00], [0x00, 0x00, 0xcc, 0xcc, 0x66, 0x66, 0x33, 0x33, 0x66, 0x66, 0xcc, 0xcc, 0x00, 0x00, 0x00, 0x00], [0x40, 0x40, 0xc6, 0xc6, 0x4c, 0x4c, 0x58, 0x58, 0x32, 0x32, 0x66, 0x66, 0xcf, 0xcf, 0x02, 0x02], [0x40, 0x40, 0xc6, 0xc6, 0x4c, 0x4c, 0x58, 0x58, 0x3e, 0x3e, 0x62, 0x62, 0xc4, 0xc4, 0x0e, 0x0e], [0xc0, 0xc0, 0x23, 0x23, 0x66, 0x66, 0x2c, 0x2c, 0xd9, 0xd9, 0x33, 0x33, 0x67, 0x67, 0x01, 0x01], [0x18, 0x18, 0x00, 0x00, 0x18, 0x18, 0x30, 0x30, 0x60, 0x60, 0x66, 0x66, 0x3c, 0x3c, 0x00, 0x00], [0x30, 0x30, 0x18, 0x18, 0x3c, 0x3c, 0x66, 0x66, 0x7e, 0x7e, 0x66, 0x66, 0x66, 0x66, 0x00, 0x00], [0x0c, 0x0c, 0x18, 0x18, 0x3c, 0x3c, 0x66, 0x66, 0x7e, 0x7e, 0x66, 0x66, 0x66, 0x66, 0x00, 0x00], [0x18, 0x18, 0x66, 0x66, 0x3c, 0x3c, 0x66, 0x66, 0x7e, 0x7e, 0x66, 0x66, 0x66, 0x66, 0x00, 0x00], [0x71, 0x71, 0x8e, 0x8e, 0x3c, 0x3c, 0x66, 0x66, 0x7e, 0x7e, 0x66, 0x66, 0x66, 0x66, 0x00, 0x00], [0x66, 0x66, 0x00, 0x00, 0x3c, 0x3c, 0x66, 0x66, 0x7e, 0x7e, 0x66, 0x66, 0x66, 0x66, 0x00, 0x00], [0x18, 0x18, 0x24, 0x24, 0x3c, 0x3c, 0x66, 0x66, 0x7e, 0x7e, 0x66, 0x66, 0x66, 0x66, 0x00, 0x00], [0x1f, 0x1f, 0x3c, 0x3c, 0x3c, 0x3c, 0x6f, 0x6f, 0x7c, 0x7c, 0xcc, 0xcc, 0xcf, 0xcf, 0x00, 0x00], [0x1e, 0x1e, 0x30, 0x30, 0x60, 0x60, 0x60, 0x60, 0x30, 0x30, 0x1e, 0x1e, 0x0c, 0x0c, 0x18, 0x18], [0x30, 0x30, 0x18, 0x18, 0x7e, 0x7e, 0x60, 0x60, 0x78, 0x78, 0x60, 0x60, 0x7e, 0x7e, 0x00, 0x00], [0x0c, 0x0c, 0x18, 0x18, 0x7e, 0x7e, 0x60, 0x60, 0x78, 0x78, 0x60, 0x60, 0x7e, 0x7e, 0x00, 0x00], [0x18, 0x18, 0x66, 0x66, 0x7e, 0x7e, 0x60, 0x60, 0x78, 0x78, 0x60, 0x60, 0x7e, 0x7e, 0x00, 0x00], [0x66, 0x66, 0x00, 0x00, 0x7e, 0x7e, 0x60, 0x60, 0x78, 0x78, 0x60, 0x60, 0x7e, 0x7e, 0x00, 0x00], [0x30, 0x30, 0x18, 0x18, 0x3c, 0x3c, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x3c, 0x3c, 0x00, 0x00], [0x0c, 0x0c, 0x18, 0x18, 0x3c, 0x3c, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x3c, 0x3c, 0x00, 0x00], [0x18, 0x18, 0x66, 0x66, 0x3c, 0x3c, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x3c, 0x3c, 0x00, 0x00], [0x66, 0x66, 0x00, 0x00, 0x3c, 0x3c, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x3c, 0x3c, 0x00, 0x00], [0x78, 0x78, 0x6c, 0x6c, 0x66, 0x66, 0xf6, 0xf6, 0x66, 0x66, 0x6c, 0x6c, 0x78, 0x78, 0x00, 0x00], [0x71, 0x71, 0xce, 0xce, 0xe6, 0xe6, 0xf6, 0xf6, 0xde, 0xde, 0xce, 0xce, 0xc6, 0xc6, 0x00, 0x00], [0x30, 0x30, 0x18, 0x18, 0x3c, 0x3c, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x3c, 0x3c, 0x00, 0x00], [0x0c, 0x0c, 0x18, 0x18, 0x3c, 0x3c, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x3c, 0x3c, 0x00, 0x00], [0x18, 0x18, 0x66, 0x66, 0x3c, 0x3c, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x3c, 0x3c, 0x00, 0x00], [0x71, 0x71, 0x8e, 0x8e, 0x3c, 0x3c, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x3c, 0x3c, 0x00, 0x00], [0xc3, 0xc3, 0x3c, 0x3c, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x3c, 0x3c, 0x00, 0x00], [0x00, 0x00, 0xc6, 0xc6, 0x6c, 0x6c, 0x38, 0x38, 0x6c, 0x6c, 0xc6, 0xc6, 0x00, 0x00, 0x00, 0x00], [0x3f, 0x3f, 0x66, 0x66, 0x6e, 0x6e, 0x7e, 0x7e, 0x76, 0x76, 0x66, 0x66, 0xfc, 0xfc, 0x00, 0x00], [0x30, 0x30, 0x18, 0x18, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x3c, 0x3c, 0x00, 0x00], [0x0c, 0x0c, 0x18, 0x18, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x3c, 0x3c, 0x00, 0x00], [0x18, 0x18, 0x24, 0x24, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x3c, 0x3c, 0x00, 0x00], [0x66, 0x66, 0x00, 0x00, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x3c, 0x3c, 0x00, 0x00], [0x06, 0x06, 0x08, 0x08, 0xc3, 0xc3, 0x66, 0x66, 0x3c, 0x3c, 0x18, 0x18, 0x18, 0x18, 0x00, 0x00], [0xc0, 0xc0, 0xc0, 0xc0, 0xfc, 0xfc, 0xc6, 0xc6, 0xfc, 0xfc, 0xc0, 0xc0, 0xc0, 0xc0, 0x00, 0x00], [0x3c, 0x3c, 0x66, 0x66, 0x66, 0x66, 0x6c, 0x6c, 0x66, 0x66, 0x66, 0x66, 0x6c, 0x6c, 0x60, 0x60], [0x30, 0x30, 0x18, 0x18, 0x3c, 0x3c, 0x06, 0x06, 0x3e, 0x3e, 0x66, 0x66, 0x3e, 0x3e, 0x00, 0x00], [0x0c, 0x0c, 0x18, 0x18, 0x3c, 0x3c, 0x06, 0x06, 0x3e, 0x3e, 0x66, 0x66, 0x3e, 0x3e, 0x00, 0x00], [0x18, 0x18, 0x66, 0x66, 0x3c, 0x3c, 0x06, 0x06, 0x3e, 0x3e, 0x66, 0x66, 0x3e, 0x3e, 0x00, 0x00], [0x71, 0x71, 0x8e, 0x8e, 0x3c, 0x3c, 0x06, 0x06, 0x3e, 0x3e, 0x66, 0x66, 0x3e, 0x3e, 0x00, 0x00], [0x66, 0x66, 0x00, 0x00, 0x3c, 0x3c, 0x06, 0x06, 0x3e, 0x3e, 0x66, 0x66, 0x3e, 0x3e, 0x00, 0x00], [0x18, 0x18, 0x24, 0x24, 0x3c, 0x3c, 0x06, 0x06, 0x3e, 0x3e, 0x66, 0x66, 0x3e, 0x3e, 0x00, 0x00], [0x00, 0x00, 0x00, 0x00, 0x7e, 0x7e, 0x1b, 0x1b, 0x7f, 0x7f, 0xd8, 0xd8, 0x77, 0x77, 0x00, 0x00], [0x00, 0x00, 0x00, 0x00, 0x3c, 0x3c, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x3c, 0x3c, 0x18, 0x18], [0x30, 0x30, 0x18, 0x18, 0x3c, 0x3c, 0x66, 0x66, 0x7e, 0x7e, 0x60, 0x60, 0x3c, 0x3c, 0x00, 0x00], [0x0c, 0x0c, 0x18, 0x18, 0x3c, 0x3c, 0x66, 0x66, 0x7e, 0x7e, 0x60, 0x60, 0x3c, 0x3c, 0x00, 0x00], [0x18, 0x18, 0x66, 0x66, 0x3c, 0x3c, 0x66, 0x66, 0x7e, 0x7e, 0x60, 0x60, 0x3c, 0x3c, 0x00, 0x00], [0x66, 0x66, 0x00, 0x00, 0x3c, 0x3c, 0x66, 0x66, 0x7e, 0x7e, 0x60, 0x60, 0x3c, 0x3c, 0x00, 0x00], [0x30, 0x30, 0x18, 0x18, 0x00, 0x00, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x0c, 0x0c, 0x00, 0x00], [0x0c, 0x0c, 0x18, 0x18, 0x00, 0x00, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x0c, 0x0c, 0x00, 0x00], [0x18, 0x18, 0x66, 0x66, 0x00, 0x00, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x0c, 0x0c, 0x00, 0x00], [0x00, 0x00, 0x66, 0x66, 0x00, 0x00, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x0c, 0x0c, 0x00, 0x00], [0x60, 0x60, 0xfc, 0xfc, 0x18, 0x18, 0x3c, 0x3c, 0x66, 0x66, 0x66, 0x66, 0x3c, 0x3c, 0x00, 0x00], [0x71, 0x71, 0x8e, 0x8e, 0x00, 0x00, 0x7c, 0x7c, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x00, 0x00], [0x30, 0x30, 0x18, 0x18, 0x00, 0x00, 0x3c, 0x3c, 0x66, 0x66, 0x66, 0x66, 0x3c, 0x3c, 0x00, 0x00], [0x0c, 0x0c, 0x18, 0x18, 0x00, 0x00, 0x3c, 0x3c, 0x66, 0x66, 0x66, 0x66, 0x3c, 0x3c, 0x00, 0x00], [0x18, 0x18, 0x66, 0x66, 0x00, 0x00, 0x3c, 0x3c, 0x66, 0x66, 0x66, 0x66, 0x3c, 0x3c, 0x00, 0x00], [0x71, 0x71, 0x8e, 0x8e, 0x00, 0x00, 0x3c, 0x3c, 0x66, 0x66, 0x66, 0x66, 0x3c, 0x3c, 0x00, 0x00], [0x00, 0x00, 0x66, 0x66, 0x00, 0x00, 0x3c, 0x3c, 0x66, 0x66, 0x66, 0x66, 0x3c, 0x3c, 0x00, 0x00], [0x00, 0x00, 0x18, 0x18, 0x00, 0x00, 0x7e, 0x7e, 0x00, 0x00, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00], [0x00, 0x00, 0x02, 0x02, 0x7c, 0x7c, 0xce, 0xce, 0xd6, 0xd6, 0xe6, 0xe6, 0x7c, 0x7c, 0x80, 0x80], [0x30, 0x30, 0x18, 0x18, 0x00, 0x00, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x3e, 0x3e, 0x00, 0x00], [0x0c, 0x0c, 0x18, 0x18, 0x00, 0x00, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x3e, 0x3e, 0x00, 0x00], [0x18, 0x18, 0x66, 0x66, 0x00, 0x00, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x3e, 0x3e, 0x00, 0x00], [0x00, 0x00, 0x66, 0x66, 0x00, 0x00, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x3e, 0x3e, 0x00, 0x00], [0x0c, 0x0c, 0x18, 0x18, 0x00, 0x00, 0x66, 0x66, 0x66, 0x66, 0x3c, 0x3c, 0x18, 0x18, 0x30, 0x30], [0x60, 0x60, 0x60, 0x60, 0x7c, 0x7c, 0x66, 0x66, 0x66, 0x66, 0x7c, 0x7c, 0x60, 0x60, 0x60, 0x60], [0x00, 0x00, 0x66, 0x66, 0x00, 0x00, 0x66, 0x66, 0x66, 0x66, 0x3c, 0x3c, 0x18, 0x18, 0x30, 0x30]]; + this.height = 16; + for (k in options) { + if (!__hasProp.call(options, k)) continue; + v = options[k]; + this[k] = v; + } + } + + return ImageTextModeFontAmiga; + + })(this.ImageTextModeFont); + + this.ImageTextMode = (function() { + ImageTextMode.VERSION = '0.01'; + + function ImageTextMode(options) { + var k, v; + this.screen = []; + this.palette = new ImageTextModePaletteVGA(); + this.font = new ImageTextModeFont8x16(); + for (k in options) { + if (!__hasProp.call(options, k)) continue; + v = options[k]; + this[k] = v; + } + } + + ImageTextMode.prototype.parseUrl = function(url) { + var content, req; + req = new XMLHttpRequest(); + req.open('GET', url, false); + req.overrideMimeType('text/plain; charset=x-user-defined'); + req.send(null); + content = req.status === 200 || req.status === 0 ? req.responseText : ''; + return this.parse(content); + }; + + ImageTextMode.prototype.unpackShort = function(data) { + var shrt; + shrt = (this.getByteAt(data, 1) << 8) + this.getByteAt(data, 0); + if (shrt < 0) { + shrt += 65536; + } + return shrt; + }; + + ImageTextMode.prototype.unpackLong = function(data) { + var lng; + lng = (((this.getByteAt(data, 0) << 8) + this.getByteAt(data, 1) << 8) + this.getByteAt(data, 2) << 8) + this.getByteAt(data, 3); + if (lng < 0) { + lng += 4294967296; + } + return lng; + }; + + ImageTextMode.prototype.getByteAt = function(data, offset) { + return data.charCodeAt(offset) & 0xFF; + }; + + ImageTextMode.prototype.getWidth = function() { + var max, y, _i, _ref; + max = 0; + for (y = _i = 0, _ref = this.screen.length - 1; 0 <= _ref ? _i <= _ref : _i >= _ref; y = 0 <= _ref ? ++_i : --_i) { + if ((this.screen[y] != null) && this.screen[y].length > max) { + max = this.screen[y].length; + } + } + return max; + }; + + ImageTextMode.prototype.getHeight = function() { + return this.screen.length; + }; + + ImageTextMode.prototype.parsePaletteData = function(data) { + var b, colors, g, i, r, _i; + colors = []; + for (i = _i = 0; _i <= 45; i = _i += 3) { + r = this.getByteAt(data, i); + r = r << 2 | r >> 4; + g = this.getByteAt(data, i + 1); + g = g << 2 | g >> 4; + b = this.getByteAt(data, i + 2); + b = b << 2 | b >> 4; + colors.push([r, g, b]); + } + return this.palette = new ImageTextModePalette({ + colors: colors + }); + }; + + ImageTextMode.prototype.parseFontData = function(data, height) { + var chars, chr, i, j, _i, _j, _ref, _ref1; + if (height == null) { + height = 16; + } + chars = []; + for (i = _i = 0, _ref = data.length / height - 1; 0 <= _ref ? _i <= _ref : _i >= _ref; i = 0 <= _ref ? ++_i : --_i) { + chr = []; + for (j = _j = 0, _ref1 = height - 1; 0 <= _ref1 ? _j <= _ref1 : _j >= _ref1; j = 0 <= _ref1 ? ++_j : --_j) { + chr.push(this.getByteAt(data, i * height + j)); + } + chars.push(chr); + } + return this.font = new ImageTextModeFont({ + chars: chars, + height: height + }); + }; + + ImageTextMode.prototype.renderCanvas = function(canvasElem) { + var bg, canvas, chr, ctx, cx, cy, fg, h, i, j, line, pixel, px, py, w, _i, _j, _k, _l, _ref, _ref1, _ref2, _ref3; + w = this.getWidth() * this.font.width; + h = this.getHeight() * this.font.height; + canvas = document.createElement('canvas'); + canvas.setAttribute('width', w); + canvas.setAttribute('height', h); + ctx = canvas.getContext('2d'); + for (cy = _i = 0, _ref = this.screen.length; 0 <= _ref ? _i < _ref : _i > _ref; cy = 0 <= _ref ? ++_i : --_i) { + if (this.screen[cy] == null) { continue; } - if (pixel.attr != null) { - fg = pixel.attr & 15; - bg = (pixel.attr & 240) >> 4; - } else { - fg = pixel.fg; - bg = pixel.bg; - } - px = cx * this.font.width; - py = cy * this.font.height; - ctx.fillStyle = this.palette.toRgbaString(this.palette.colors[bg]); - ctx.fillRect(px, py, this.font.width, this.font.height); - ctx.fillStyle = this.palette.toRgbaString(this.palette.colors[fg]); - chr = this.font.chars[pixel.ch.charCodeAt(0) & 0xff]; - for (i = _k = 0, _ref2 = this.font.height - 1; 0 <= _ref2 ? _k <= _ref2 : _k >= _ref2; i = 0 <= _ref2 ? ++_k : --_k) { - line = chr[i]; - for (j = _l = 0, _ref3 = this.font.width - 1; 0 <= _ref3 ? _l <= _ref3 : _l >= _ref3; j = 0 <= _ref3 ? ++_l : --_l) { - if (line & (1 << this.font.width - 1 - j)) { - ctx.fillRect(px + j, py + i, 1, 1); + for (cx = _j = 0, _ref1 = this.screen[cy].length; 0 <= _ref1 ? _j < _ref1 : _j > _ref1; cx = 0 <= _ref1 ? ++_j : --_j) { + pixel = this.screen[cy][cx]; + if (pixel == null) { + continue; + } + if (pixel.attr != null) { + fg = pixel.attr & 15; + bg = (pixel.attr & 240) >> 4; + } else { + fg = pixel.fg; + bg = pixel.bg; + } + px = cx * this.font.width; + py = cy * this.font.height; + ctx.fillStyle = this.palette.toRgbaString(this.palette.colors[bg]); + ctx.fillRect(px, py, this.font.width, this.font.height); + ctx.fillStyle = this.palette.toRgbaString(this.palette.colors[fg]); + chr = this.font.chars[pixel.ch.charCodeAt(0) & 0xff]; + for (i = _k = 0, _ref2 = this.font.height; 0 <= _ref2 ? _k < _ref2 : _k > _ref2; i = 0 <= _ref2 ? ++_k : --_k) { + line = chr[i]; + for (j = _l = 0, _ref3 = this.font.width; 0 <= _ref3 ? _l < _ref3 : _l > _ref3; j = 0 <= _ref3 ? ++_l : --_l) { + if (line & (1 << this.font.width - 1 - j)) { + ctx.fillRect(px + j, py + i, 1, 1); + } } } } } - } - canvasElem.setAttribute('width', w); - canvasElem.setAttribute('height', h); - ctx = canvasElem.getContext('2d'); - return ctx.drawImage(canvas, 0, 0); - }; - - ImageTextMode.prototype.toBinaryArray = function(str) { - var buf, bufView, i, strLen; - buf = new ArrayBuffer(str.length * 2); - bufView = new Uint8Array(buf); - i = 0; - strLen = str.length; - while (i < strLen) { - bufView[i] = str.charCodeAt(i); - i++; - } - return buf; - }; - - return ImageTextMode; - -})(); - -this.ImageTextModeXBin = (function(_super) { - var ATTRIBUTE_COMPRESSION, CHARACTER_COMPRESSION, COMPRESSED, COMPRESSION_COUNTER, COMPRESSION_TYPE, FIVETWELVE_CHARS, FONT, FULL_COMPRESSION, NON_BLINK, NO_COMPRESSION, PALETTE; - - __extends(ImageTextModeXBin, _super); - - PALETTE = 1; - - FONT = 2; - - COMPRESSED = 4; - - NON_BLINK = 8; - - FIVETWELVE_CHARS = 16; - - NO_COMPRESSION = 0; - - CHARACTER_COMPRESSION = 64; - - ATTRIBUTE_COMPRESSION = 128; - - FULL_COMPRESSION = 192; - - COMPRESSION_TYPE = 192; - - COMPRESSION_COUNTER = 63; - - function ImageTextModeXBin(options) { - var k, v; - ImageTextModeXBin.__super__.constructor.apply(this, arguments); - this.header = { - width: 0, - height: 0, - fontisze: 0, - flags: 0 + canvasElem.setAttribute('width', w); + canvasElem.setAttribute('height', h); + ctx = canvasElem.getContext('2d'); + return ctx.drawImage(canvas, 0, 0); }; - for (k in options) { - if (!__hasProp.call(options, k)) continue; - v = options[k]; - this[k] = v; - } - } - ImageTextModeXBin.prototype.parse = function(content) { - var fontlength, headerData, offset; - this.screen = []; - headerData = content.substr(0, 11); - if (headerData.length === !11 || !headerData.match('^XBIN\x1a')) { - throw new Error('File is not an XBin'); + ImageTextMode.prototype.toBinaryArray = function(str) { + var buf, bufView, i, strLen; + buf = new ArrayBuffer(str.length * 2); + bufView = new Uint8Array(buf); + i = 0; + strLen = str.length; + while (i < strLen) { + bufView[i] = str.charCodeAt(i); + i++; + } + return buf; + }; + + return ImageTextMode; + + })(); + + this.ImageTextModeXBin = (function(_super) { + var ATTRIBUTE_COMPRESSION, CHARACTER_COMPRESSION, COMPRESSED, COMPRESSION_COUNTER, COMPRESSION_TYPE, FIVETWELVE_CHARS, FONT, FULL_COMPRESSION, NON_BLINK, NO_COMPRESSION, PALETTE; + + __extends(ImageTextModeXBin, _super); + + PALETTE = 1; + + FONT = 2; + + COMPRESSED = 4; + + NON_BLINK = 8; + + FIVETWELVE_CHARS = 16; + + NO_COMPRESSION = 0; + + CHARACTER_COMPRESSION = 64; + + ATTRIBUTE_COMPRESSION = 128; + + FULL_COMPRESSION = 192; + + COMPRESSION_TYPE = 192; + + COMPRESSION_COUNTER = 63; + + function ImageTextModeXBin(options) { + var k, v; + ImageTextModeXBin.__super__.constructor.apply(this, arguments); + this.header = { + width: 0, + height: 0, + fontisze: 0, + flags: 0 + }; + for (k in options) { + if (!__hasProp.call(options, k)) continue; + v = options[k]; + this[k] = v; + } } - this.header.width = this.unpackShort(headerData.substr(5, 2)); - this.header.height = this.unpackShort(headerData.substr(7, 2)); - this.header.fontsize = this.getByteAt(headerData.substr(9, 1)); - this.header.flags = this.getByteAt(headerData.substr(10, 1)); - offset = 11; - if (this.header.flags & PALETTE) { - this.parsePaletteData(content.substr(offset, 48)); - offset += 48; - } - if (this.header.flags & FONT) { - fontlength = this.header.fontsize; - if (this.header.flags & FIVETWELVE_CHARS) { - fontlength *= 512; + + ImageTextModeXBin.prototype.parse = function(content) { + var fontlength, headerData, offset; + this.screen = []; + headerData = content.substr(0, 11); + if (headerData.length !== 11 || !headerData.match('^XBIN\x1a')) { + throw new Error('File is not an XBin'); + } + this.header.width = this.unpackShort(headerData.substr(5, 2)); + this.header.height = this.unpackShort(headerData.substr(7, 2)); + this.header.fontsize = this.getByteAt(headerData.substr(9, 1)); + this.header.flags = this.getByteAt(headerData.substr(10, 1)); + offset = 11; + if (this.header.flags & PALETTE) { + this.parsePaletteData(content.substr(offset, 48)); + offset += 48; + } + if (this.header.flags & FONT) { + fontlength = this.header.fontsize; + if (this.header.flags & FIVETWELVE_CHARS) { + fontlength *= 512; + } else { + fontlength *= 256; + } + this.parseFontData(content.substr(offset, fontlength), this.header.fontsize); + offset += fontlength; + } + if (this.header.flags & COMPRESSED) { + return this._parse_compressed(content.substr(offset)); } else { - fontlength *= 256; + return this._parse_uncompressed(content.substr(offset)); } - this.parseFontData(content.substr(offset, fontlength), this.header.fontsize); - offset += fontlength; - } - if (this.header.flags & COMPRESSED) { - return this._parse_compressed(content.substr(offset)); - } else { - return this._parse_uncompressed(content.substr(offset)); - } - }; + }; - ImageTextModeXBin.prototype._parse_compressed = function(data) { - var attr, ch, counter, info, type, x, y, _results; - x = 0; - y = 0; - this.screen[y] = []; - data = data.split(''); - _results = []; - while (info = data.shift()) { - info = this.getByteAt(info, 0); - if (info === 26) { - break; - } - type = info & COMPRESSION_TYPE; - counter = (info & COMPRESSION_COUNTER) + 1; - ch = null; - attr = null; - _results.push((function() { - var _results1; - _results1 = []; - while (counter-- > 0) { - switch (type) { - case NO_COMPRESSION: - ch = data.shift(); - attr = data.shift(); - break; - case CHARACTER_COMPRESSION: - if (ch == null) { + ImageTextModeXBin.prototype._parse_compressed = function(data) { + var attr, ch, counter, info, type, x, y, _results; + x = 0; + y = 0; + this.screen[y] = []; + data = data.split(''); + _results = []; + while (info = data.shift()) { + info = this.getByteAt(info, 0); + if (info === 26) { + break; + } + type = info & COMPRESSION_TYPE; + counter = (info & COMPRESSION_COUNTER) + 1; + ch = null; + attr = null; + _results.push((function() { + var _results1; + _results1 = []; + while (counter-- > 0) { + switch (type) { + case NO_COMPRESSION: ch = data.shift(); - } - attr = data.shift(); - break; - case ATTRIBUTE_COMPRESSION: - if (attr == null) { attr = data.shift(); - } - ch = data.shift(); - break; - default: - if (ch == null) { + break; + case CHARACTER_COMPRESSION: + if (ch == null) { + ch = data.shift(); + } + attr = data.shift(); + break; + case ATTRIBUTE_COMPRESSION: + if (attr == null) { + attr = data.shift(); + } ch = data.shift(); - } - if (attr == null) { - attr = data.shift(); - } - } - this.screen[y][x] = { - ch: ch, - attr: this.getByteAt(attr, 0) - }; - x++; - if (x === this.header.width) { - x = 0; - y++; - if (y === this.header.height) { - break; + break; + default: + if (ch == null) { + ch = data.shift(); + } + if (attr == null) { + attr = data.shift(); + } } - if (this.screen[y] == null) { - _results1.push(this.screen[y] = []); + this.screen[y][x] = { + ch: ch, + attr: this.getByteAt(attr, 0) + }; + x++; + if (x === this.header.width) { + x = 0; + y++; + if (y === this.header.height) { + break; + } + if (this.screen[y] == null) { + _results1.push(this.screen[y] = []); + } else { + _results1.push(void 0); + } } else { _results1.push(void 0); } - } else { - _results1.push(void 0); } - } - return _results1; - }).call(this)); - } - return _results; - }; - - ImageTextModeXBin.prototype._parse_uncompressed = function(data) { - var attr, ch, i, x, y, _i, _ref, _results; - x = 0; - y = 0; - this.screen[y] = []; - _results = []; - for (i = _i = 0, _ref = data.length - 2; _i <= _ref; i = _i += 2) { - ch = data.substr(i, 1); - if (ch === "\x1a") { - break; + return _results1; + }).call(this)); } - attr = this.getByteAt(data, i + 1); - this.screen[y][x] = { - 'ch': ch, - 'attr': attr - }; - x++; - if (x === this.header.width) { - x = 0; - y++; - if (y === this.header.height) { + return _results; + }; + + ImageTextModeXBin.prototype._parse_uncompressed = function(data) { + var attr, ch, i, x, y, _i, _ref, _results; + x = 0; + y = 0; + this.screen[y] = []; + _results = []; + for (i = _i = 0, _ref = data.length - 2; _i <= _ref; i = _i += 2) { + ch = data.substr(i, 1); + if (ch === "\x1a") { break; } - if (this.screen[y] == null) { - _results.push(this.screen[y] = []); - } else { - _results.push(void 0); - } - } else { - _results.push(void 0); - } - } - return _results; - }; - - ImageTextModeXBin.prototype.getWidth = function() { - return this.header.width; - }; - - ImageTextModeXBin.prototype.getHeight = function() { - return this.header.height; - }; - - return ImageTextModeXBin; - -})(this.ImageTextMode); - -this.ImageTextModeANSI = (function(_super) { - var ANSI_BG, ANSI_BG_INTENSE, ANSI_CSI, ANSI_CUR_DOWN, ANSI_ESC, ANSI_FG, ANSI_FG_INTENSE, ANSI_RESET, ANSI_RETURN, ANSI_SEP, ANSI_TEXT_PROP; - - __extends(ImageTextModeANSI, _super); - - ANSI_ESC = String.fromCharCode(0x1b); - - ANSI_CSI = ANSI_ESC + '['; - - ANSI_TEXT_PROP = 'm'; - - ANSI_RESET = '0'; - - ANSI_FG = '3'; - - ANSI_BG = '4'; - - ANSI_FG_INTENSE = '9'; - - ANSI_BG_INTENSE = '10'; - - ANSI_CUR_DOWN = 'B'; - - ANSI_SEP = ';'; - - ANSI_RETURN = 'A'; - - function ImageTextModeANSI(options) { - var k, v; - ImageTextModeANSI.__super__.constructor.apply(this, arguments); - this.palette = new ImageTextModePaletteANSI; - this.tabstop = 8; - this.linewrap = 80; - for (k in options) { - if (!__hasProp.call(options, k)) continue; - v = options[k]; - this[k] = v; - } - } - - ImageTextModeANSI.prototype.write = function() { - var attr, content, max_x, pixel, prevattr, x, y, _i, _j, _ref, _ref1; - content = "" + ANSI_CSI + "2J"; - for (y = _i = 0, _ref = this.screen.length - 1; 0 <= _ref ? _i <= _ref : _i >= _ref; y = 0 <= _ref ? ++_i : --_i) { - if (this.screen[y] == null) { - content += "\n"; - } - if (this.screen[y] == null) { - continue; - } - for (x = _j = 0, _ref1 = this.getWidth() - 1; 0 <= _ref1 ? _j <= _ref1 : _j >= _ref1; x = 0 <= _ref1 ? ++_j : --_j) { - pixel = this.screen[y][x]; - if (pixel == null) { - pixel = { - ch: ' ', - attr: 7 - }; - } - attr = this.gen_args(pixel.attr); - if (attr !== prevattr) { - content += "" + ANSI_CSI + "0;" + attr + ANSI_TEXT_PROP; - prevattr = attr; - } - content += pixel.ch != null ? pixel.ch : ' '; - max_x = x; - } - } - content += "" + ANSI_CSI + "0m"; - return this.toBinaryArray(content); - }; - - ImageTextModeANSI.prototype.gen_args = function(attr) { - var a, attrs, bg, bl, fg, intense, _i, _len, _ref; - fg = 30 + (attr & 7); - bg = 40 + ((attr & 112) >> 4); - bl = attr & 128 ? 5 : ''; - intense = attr & 8 ? 1 : ''; - _ref = [fg, bg, bl, intense]; - for (_i = 0, _len = _ref.length; _i < _len; _i++) { - a = _ref[_i]; - if (a !== '') { - attrs = a; - } - } - return [fg, bg, bl, intense].join(";"); - }; - - ImageTextModeANSI.prototype.parse = function(content) { - var arg, args, ch, i, _i, _j, _k, _l, _len, _m, _n, _o, _ref, _ref1, _ref2, _ref3, _ref4, _ref5, _ref6, _ref7, _ref8, _results; - this.screen = []; - this.state = 0; - this.x = 0; - this.y = 0; - this.save_x = 0; - this.save_y = 0; - this.attr = 7; - this.argbuf = ''; - content = content.split(''); - _results = []; - while (ch = content.shift()) { - if (this.state === 0) { - switch (ch) { - case "\x1a": - _results.push(this.state = 3); - break; - case "\x1b": - _results.push(this.state = 1); - break; - case "\n": - this.x = 0; - _results.push(this.y++); - break; - case "\r": - break; - case "\t": - i = (this.x + 1) % this.tabstop; - _results.push((function() { - var _results1; - _results1 = []; - while (i-- > 0) { - _results1.push(this.putpixel(' ')); - } - return _results1; - }).call(this)); - break; - default: - _results.push(this.putpixel(ch)); - } - } else if (this.state === 1) { - if (ch !== "[") { - this.putpixel("\x1b"); - this.putpixel("["); - _results.push(this.state = 0); - } else { - _results.push(this.state = 2); - } - } else if (this.state === 2) { - if (ch.match('[A-Za-z]')) { - args = (function() { - var _i, _len, _ref, _results1; - _ref = this.argbuf.split(';'); - _results1 = []; - for (_i = 0, _len = _ref.length; _i < _len; _i++) { - i = _ref[_i]; - _results1.push(parseInt(i)); - } - return _results1; - }).call(this); - switch (ch) { - case "m": - for (_i = 0, _len = args.length; _i < _len; _i++) { - arg = args[_i]; - if (arg === 0) { - this.attr = 7; - } else if (arg === 1) { - this.attr |= 8; - } else if (arg === 5) { - this.attr |= 128; - } else if ((30 <= arg && arg <= 37)) { - this.attr &= 248; - this.attr |= arg - 30; - } else if ((40 <= arg && arg <= 47)) { - this.attr &= 143; - this.attr |= (arg - 40) << 4; - } - } - break; - case "H": - case "f": - this.y = (args[0] || 1) - 1; - this.x = (args[1] || 1) - 1; - if (this.y < 0) { - this.y = 0; - } - if (this.x < 0) { - this.x = 0; - } - break; - case "A": - this.y -= args[0] || 1; - if (this.y < 0) { - this.y = 0; - } - break; - case "B": - this.y += args[0] || 1; - break; - case "C": - this.x += args[0] || 1; - break; - case "D": - this.x -= args[0] || 1; - if (this.x < 0) { - this.x = 0; - } - break; - case "E": - this.y += args[0] || 1; - this.x = 0; - break; - case "F": - this.y -= args[0] || 1; - if (this.y > 0) { - this.y = 0; - } - this.x = 0; - break; - case "G": - this.x = (args[0] || 1) - 1; - break; - case "s": - this.save_x = this.x; - this.save_y = this.y; - break; - case "u": - this.x = this.save_x; - this.y = this.save_y; - break; - case "J": - if (args.length === 0 || args[0] === 0) { - for (i = _j = _ref = this.y + 1, _ref1 = screen.length - 1; _ref <= _ref1 ? _j <= _ref1 : _j >= _ref1; i = _ref <= _ref1 ? ++_j : --_j) { - this.screen[i] = null; - } - for (i = _k = _ref2 = this.x, _ref3 = screen[this.y].length - 1; _ref2 <= _ref3 ? _k <= _ref3 : _k >= _ref3; i = _ref2 <= _ref3 ? ++_k : --_k) { - this.screen[this.y][i] = null; - } - } else if (args[0] === 1) { - for (i = _l = 0, _ref4 = this.y - 1; 0 <= _ref4 ? _l <= _ref4 : _l >= _ref4; i = 0 <= _ref4 ? ++_l : --_l) { - this.screen[i] = null; - } - for (i = _m = 0, _ref5 = this.x; 0 <= _ref5 ? _m <= _ref5 : _m >= _ref5; i = 0 <= _ref5 ? ++_m : --_m) { - this.screen[this.y][i] = null; - } - } else if (args[0] === 2) { - this.x = 0; - this.y = 0; - this.screen = []; - } - break; - case "K": - if (args.length === 0 || args[0] === 0) { - for (i = _n = _ref6 = this.x, _ref7 = this.screen[this.y].length - 1; _ref6 <= _ref7 ? _n <= _ref7 : _n >= _ref7; i = _ref6 <= _ref7 ? ++_n : --_n) { - this.screen[this.y][i] = null; - } - } else if (args[0] === 1) { - for (i = _o = 0, _ref8 = this.x; 0 <= _ref8 ? _o <= _ref8 : _o >= _ref8; i = 0 <= _ref8 ? ++_o : --_o) { - this.screen[this.y][i] = null; - } - } else if (args[0] === 2) { - this.screen[this.y] = null; - } - } - this.argbuf = ''; - _results.push(this.state = 0); - } else { - _results.push(this.argbuf += ch); - } - } else if (this.state === 3) { - break; - } else { - _results.push(this.state = 0); - } - } - return _results; - }; - - ImageTextModeANSI.prototype.putpixel = function(ch) { - if (this.screen[this.y] == null) { - this.screen[this.y] = []; - } - this.screen[this.y][this.x] = { - ch: ch, - attr: this.attr - }; - if (++this.x >= this.linewrap) { - this.x = 0; - return this.y++; - } - }; - - return ImageTextModeANSI; - -})(this.ImageTextMode); - -this.ImageTextModeBin = (function(_super) { - __extends(ImageTextModeBin, _super); - - function ImageTextModeBin(options) { - var k, v; - ImageTextModeBin.__super__.constructor.apply(this, arguments); - this.linewrap = 160; - for (k in options) { - if (!__hasProp.call(options, k)) continue; - v = options[k]; - this[k] = v; - } - } - - ImageTextModeBin.prototype.parse = function(content) { - var attr, ch, i, x, y, _i, _ref; - x = 0; - y = 0; - this.screen[y] = []; - for (i = _i = 0, _ref = content.length - 2; _i <= _ref; i = _i += 2) { - ch = content.substr(i, 1); - if (ch === "\x1a") { - break; - } - attr = this.getByteAt(content, i + 1); - this.screen[y][x] = { - 'ch': ch, - 'attr': attr - }; - x++; - if (x === this.linewrap) { - x = 0; - y++; - this.screen[y] = []; - } - } - if (this.screen[y].length === 0) { - return this.screen.pop(); - } - }; - - return ImageTextModeBin; - -})(this.ImageTextMode); - -this.ImageTextModeIDF = (function(_super) { - __extends(ImageTextModeIDF, _super); - - function ImageTextModeIDF(options) { - var k, v; - ImageTextModeIDF.__super__.constructor.apply(this, arguments); - this.header = { - x0: 0, - x1: 0, - y0: 0, - y1: 0 - }; - for (k in options) { - if (!__hasProp.call(options, k)) continue; - v = options[k]; - this[k] = v; - } - } - - ImageTextModeIDF.prototype.parse = function(content) { - var attr, buffer, ch, eodata, headerData, i, info, len, offset, x, y, _i; - headerData = content.substr(0, 12); - if (headerData.length === !12 || !headerData.match('^\x041.4')) { - throw new Error('File is not an IDF'); - } - this.header.x0 = this.unpackShort(headerData.substr(4, 2)); - this.header.y0 = this.unpackShort(headerData.substr(6, 2)); - this.header.x1 = this.unpackShort(headerData.substr(8, 2)); - this.header.y1 = this.unpackShort(headerData.substr(10, 2)); - eodata = content.length - 48 - 4096; - if (content.substr(content.length - 128, 5) === 'SAUCE') { - eodata -= 128; - } - this.parseFontData(content.substr(eodata, 4096)); - this.parsePaletteData(content.substr(eodata + 4096, 48)); - y = 0; - x = 0; - this.screen[y] = []; - offset = 12; - while (offset < eodata) { - buffer = content.substr(offset, 2); - info = this.unpackShort(buffer); - offset += 2; - len = 1; - if (info === 1) { - len = this.unpackShort(content.substr(offset, 2)) & 255; - offset += 2; - buffer = content.substr(offset, 2); - offset += 2; - } - ch = buffer.substr(0, 1); - attr = this.getByteAt(buffer, 1); - for (i = _i = 1; 1 <= len ? _i <= len : _i >= len; i = 1 <= len ? ++_i : --_i) { + attr = this.getByteAt(data, i + 1); this.screen[y][x] = { 'ch': ch, 'attr': attr }; x++; - if (x > this.header.x1) { + if (x === this.header.width) { + x = 0; + y++; + if (y === this.header.height) { + break; + } + if (this.screen[y] == null) { + _results.push(this.screen[y] = []); + } else { + _results.push(void 0); + } + } else { + _results.push(void 0); + } + } + return _results; + }; + + ImageTextModeXBin.prototype.getWidth = function() { + return this.header.width; + }; + + ImageTextModeXBin.prototype.getHeight = function() { + return this.header.height; + }; + + return ImageTextModeXBin; + + })(this.ImageTextMode); + + this.ImageTextModeANSI = (function(_super) { + var ANSI_BG, ANSI_BG_INTENSE, ANSI_CSI, ANSI_CUR_DOWN, ANSI_ESC, ANSI_FG, ANSI_FG_INTENSE, ANSI_RESET, ANSI_RETURN, ANSI_SEP, ANSI_TEXT_PROP; + + __extends(ImageTextModeANSI, _super); + + ANSI_ESC = String.fromCharCode(0x1b); + + ANSI_CSI = ANSI_ESC + '['; + + ANSI_TEXT_PROP = 'm'; + + ANSI_RESET = '0'; + + ANSI_FG = '3'; + + ANSI_BG = '4'; + + ANSI_FG_INTENSE = '9'; + + ANSI_BG_INTENSE = '10'; + + ANSI_CUR_DOWN = 'B'; + + ANSI_SEP = ';'; + + ANSI_RETURN = 'A'; + + function ImageTextModeANSI(options) { + var k, v; + ImageTextModeANSI.__super__.constructor.apply(this, arguments); + this.palette = new ImageTextModePaletteANSI; + this.tabstop = 8; + this.linewrap = 80; + for (k in options) { + if (!__hasProp.call(options, k)) continue; + v = options[k]; + this[k] = v; + } + } + + ImageTextModeANSI.prototype.write = function() { + var attr, content, max_x, pixel, prevattr, x, y, _i, _j, _ref, _ref1; + content = "" + ANSI_CSI + "2J"; + for (y = _i = 0, _ref = this.screen.length - 1; 0 <= _ref ? _i <= _ref : _i >= _ref; y = 0 <= _ref ? ++_i : --_i) { + if (this.screen[y] == null) { + content += "\n"; + } + if (this.screen[y] == null) { + continue; + } + for (x = _j = 0, _ref1 = this.getWidth() - 1; 0 <= _ref1 ? _j <= _ref1 : _j >= _ref1; x = 0 <= _ref1 ? ++_j : --_j) { + pixel = this.screen[y][x]; + if (pixel == null) { + pixel = { + ch: ' ', + attr: 7 + }; + } + attr = this.gen_args(pixel.attr); + if (attr !== prevattr) { + content += "" + ANSI_CSI + "0;" + attr + ANSI_TEXT_PROP; + prevattr = attr; + } + content += pixel.ch != null ? pixel.ch : ' '; + max_x = x; + } + } + content += "" + ANSI_CSI + "0m"; + return this.toBinaryArray(content); + }; + + ImageTextModeANSI.prototype.gen_args = function(attr) { + var a, attrs, bg, bl, fg, intense, _i, _len, _ref; + fg = 30 + (attr & 7); + bg = 40 + ((attr & 112) >> 4); + bl = attr & 128 ? 5 : ''; + intense = attr & 8 ? 1 : ''; + _ref = [fg, bg, bl, intense]; + for (_i = 0, _len = _ref.length; _i < _len; _i++) { + a = _ref[_i]; + if (a !== '') { + attrs = a; + } + } + return [fg, bg, bl, intense].join(";"); + }; + + ImageTextModeANSI.prototype.parse = function(content) { + var arg, args, ch, i, _i, _j, _k, _l, _len, _m, _n, _o, _ref, _ref1, _ref2, _ref3, _ref4, _ref5, _ref6, _ref7, _ref8, _results; + this.screen = []; + this.state = 0; + this.x = 0; + this.y = 0; + this.save_x = 0; + this.save_y = 0; + this.attr = 7; + this.argbuf = ''; + content = content.split(''); + _results = []; + while (ch = content.shift()) { + if (this.state === 0) { + switch (ch) { + case "\x1a": + _results.push(this.state = 3); + break; + case "\x1b": + _results.push(this.state = 1); + break; + case "\n": + this.x = 0; + _results.push(this.y++); + break; + case "\r": + break; + case "\t": + i = (this.x + 1) % this.tabstop; + _results.push((function() { + var _results1; + _results1 = []; + while (i-- > 0) { + _results1.push(this.putpixel(' ')); + } + return _results1; + }).call(this)); + break; + default: + _results.push(this.putpixel(ch)); + } + } else if (this.state === 1) { + if (ch !== "[") { + this.putpixel("\x1b"); + this.putpixel("["); + _results.push(this.state = 0); + } else { + _results.push(this.state = 2); + } + } else if (this.state === 2) { + if (ch.match('[A-Za-z]')) { + args = (function() { + var _i, _len, _ref, _results1; + _ref = this.argbuf.split(';'); + _results1 = []; + for (_i = 0, _len = _ref.length; _i < _len; _i++) { + i = _ref[_i]; + _results1.push(parseInt(i)); + } + return _results1; + }).call(this); + switch (ch) { + case "m": + for (_i = 0, _len = args.length; _i < _len; _i++) { + arg = args[_i]; + if (arg === 0) { + this.attr = 7; + } else if (arg === 1) { + this.attr |= 8; + } else if (arg === 5) { + this.attr |= 128; + } else if ((30 <= arg && arg <= 37)) { + this.attr &= 248; + this.attr |= arg - 30; + } else if ((40 <= arg && arg <= 47)) { + this.attr &= 143; + this.attr |= (arg - 40) << 4; + } + } + break; + case "H": + case "f": + this.y = (args[0] || 1) - 1; + this.x = (args[1] || 1) - 1; + if (this.y < 0) { + this.y = 0; + } + if (this.x < 0) { + this.x = 0; + } + break; + case "A": + this.y -= args[0] || 1; + if (this.y < 0) { + this.y = 0; + } + break; + case "B": + this.y += args[0] || 1; + break; + case "C": + this.x += args[0] || 1; + break; + case "D": + this.x -= args[0] || 1; + if (this.x < 0) { + this.x = 0; + } + break; + case "E": + this.y += args[0] || 1; + this.x = 0; + break; + case "F": + this.y -= args[0] || 1; + if (this.y > 0) { + this.y = 0; + } + this.x = 0; + break; + case "G": + this.x = (args[0] || 1) - 1; + break; + case "s": + this.save_x = this.x; + this.save_y = this.y; + break; + case "u": + this.x = this.save_x; + this.y = this.save_y; + break; + case "J": + if (args.length === 0 || args[0] === 0) { + for (i = _j = _ref = this.y + 1, _ref1 = screen.length - 1; _ref <= _ref1 ? _j <= _ref1 : _j >= _ref1; i = _ref <= _ref1 ? ++_j : --_j) { + this.screen[i] = null; + } + for (i = _k = _ref2 = this.x, _ref3 = screen[this.y].length - 1; _ref2 <= _ref3 ? _k <= _ref3 : _k >= _ref3; i = _ref2 <= _ref3 ? ++_k : --_k) { + this.screen[this.y][i] = null; + } + } else if (args[0] === 1) { + for (i = _l = 0, _ref4 = this.y - 1; 0 <= _ref4 ? _l <= _ref4 : _l >= _ref4; i = 0 <= _ref4 ? ++_l : --_l) { + this.screen[i] = null; + } + for (i = _m = 0, _ref5 = this.x; 0 <= _ref5 ? _m <= _ref5 : _m >= _ref5; i = 0 <= _ref5 ? ++_m : --_m) { + this.screen[this.y][i] = null; + } + } else if (args[0] === 2) { + this.x = 0; + this.y = 0; + this.screen = []; + } + break; + case "K": + if (args.length === 0 || args[0] === 0) { + for (i = _n = _ref6 = this.x, _ref7 = this.screen[this.y].length - 1; _ref6 <= _ref7 ? _n <= _ref7 : _n >= _ref7; i = _ref6 <= _ref7 ? ++_n : --_n) { + this.screen[this.y][i] = null; + } + } else if (args[0] === 1) { + for (i = _o = 0, _ref8 = this.x; 0 <= _ref8 ? _o <= _ref8 : _o >= _ref8; i = 0 <= _ref8 ? ++_o : --_o) { + this.screen[this.y][i] = null; + } + } else if (args[0] === 2) { + this.screen[this.y] = null; + } + } + this.argbuf = ''; + _results.push(this.state = 0); + } else { + _results.push(this.argbuf += ch); + } + } else if (this.state === 3) { + break; + } else { + _results.push(this.state = 0); + } + } + return _results; + }; + + ImageTextModeANSI.prototype.putpixel = function(ch) { + if (this.screen[this.y] == null) { + this.screen[this.y] = []; + } + this.screen[this.y][this.x] = { + ch: ch, + attr: this.attr + }; + if (++this.x >= this.linewrap) { + this.x = 0; + return this.y++; + } + }; + + return ImageTextModeANSI; + + })(this.ImageTextMode); + + this.ImageTextModeBin = (function(_super) { + __extends(ImageTextModeBin, _super); + + function ImageTextModeBin(options) { + var k, v; + ImageTextModeBin.__super__.constructor.apply(this, arguments); + this.linewrap = 160; + for (k in options) { + if (!__hasProp.call(options, k)) continue; + v = options[k]; + this[k] = v; + } + } + + ImageTextModeBin.prototype.parse = function(content) { + var attr, ch, i, x, y, _i, _ref; + x = 0; + y = 0; + this.screen[y] = []; + for (i = _i = 0, _ref = content.length - 2; _i <= _ref; i = _i += 2) { + ch = content.substr(i, 1); + if (ch === "\x1a") { + break; + } + attr = this.getByteAt(content, i + 1); + this.screen[y][x] = { + 'ch': ch, + 'attr': attr + }; + x++; + if (x === this.linewrap) { x = 0; y++; this.screen[y] = []; } } - } - if (this.screen[y].length === 0) { - return this.screen.pop(); - } - }; - - return ImageTextModeIDF; - -})(this.ImageTextMode); - -this.ImageTextModeADF = (function(_super) { - var COLOR_INDEX; - - __extends(ImageTextModeADF, _super); - - COLOR_INDEX = [0, 1, 2, 3, 4, 5, 20, 7, 56, 57, 58, 59, 60, 61, 62, 63]; - - function ImageTextModeADF(options) { - var k, v; - ImageTextModeADF.__super__.constructor.apply(this, arguments); - this.header = { - version: 0 + if (this.screen[y].length === 0) { + return this.screen.pop(); + } }; - for (k in options) { - if (!__hasProp.call(options, k)) continue; - v = options[k]; - this[k] = v; - } - } - ImageTextModeADF.prototype.parse = function(content) { - var attr, ch, i, x, y, _i, _ref; - this.header.version = this.getByteAt(content, 0); - this.parsePaletteData(content.substr(1, 192)); - this.parseFontData(content.substr(193, 4096)); - x = 0; - y = 0; - this.screen[y] = []; - for (i = _i = 4289, _ref = content.length - 2; _i <= _ref; i = _i += 2) { - ch = content.substr(i, 1); - if (ch === "\x1a") { - break; - } - attr = this.getByteAt(content, i + 1); - this.screen[y][x] = { - 'ch': ch, - 'attr': attr + return ImageTextModeBin; + + })(this.ImageTextMode); + + this.ImageTextModeIDF = (function(_super) { + __extends(ImageTextModeIDF, _super); + + function ImageTextModeIDF(options) { + var k, v; + ImageTextModeIDF.__super__.constructor.apply(this, arguments); + this.header = { + x0: 0, + x1: 0, + y0: 0, + y1: 0 }; - x++; - if (x === 80) { - x = 0; - y++; - this.screen[y] = []; + for (k in options) { + if (!__hasProp.call(options, k)) continue; + v = options[k]; + this[k] = v; } } - if (this.screen[y].length === 0) { - return this.screen.pop(); - } - }; - ImageTextModeADF.prototype.parsePaletteData = function(data) { - var b, colors, g, i, j, r, _i, _len; - colors = []; - for (_i = 0, _len = COLOR_INDEX.length; _i < _len; _i++) { - i = COLOR_INDEX[_i]; - j = i * 3; - r = this.getByteAt(data, j); - r = r << 2 | r >> 4; - g = this.getByteAt(data, j + 1); - g = g << 2 | g >> 4; - b = this.getByteAt(data, j + 2); - b = b << 2 | b >> 4; - colors.push([r, g, b]); - } - return this.palette = new ImageTextModePalette({ - colors: colors - }); - }; - - return ImageTextModeADF; - -})(this.ImageTextMode); - -this.ImageTextModeTundra = (function(_super) { - __extends(ImageTextModeTundra, _super); - - function ImageTextModeTundra(options) { - var k, v; - ImageTextModeTundra.__super__.constructor.apply(this, arguments); - for (k in options) { - if (!__hasProp.call(options, k)) continue; - v = options[k]; - this[k] = v; - } - } - - ImageTextModeTundra.prototype.parse = function(content) { - var bg, ch, colors, command, fg, palidx, rgb, x, y, _i; - colors = [[0, 0, 0]]; - palidx = 1; - x = 0; - y = 0; - fg = 0; - bg = 0; - this.screen[y] = []; - content = content.substr(8).split(''); - while (command = content.shift()) { - if (command === "\x1a") { - break; + ImageTextModeIDF.prototype.parse = function(content) { + var attr, buffer, ch, eodata, headerData, i, info, len, offset, x, y, _i; + headerData = content.substr(0, 12); + if (headerData.length !== 12 || !headerData.match('^\x041.4')) { + throw new Error('File is not an IDF'); } - command = command.charCodeAt(0); - if (command === 1) { - y = this.unpackLong(content.splice(0, 4).join('')); - x = this.unpackLong(content.splice(0, 4).join('')); - if (this.screen[y] == null) { + this.header.x0 = this.unpackShort(headerData.substr(4, 2)); + this.header.y0 = this.unpackShort(headerData.substr(6, 2)); + this.header.x1 = this.unpackShort(headerData.substr(8, 2)); + this.header.y1 = this.unpackShort(headerData.substr(10, 2)); + eodata = content.length - 48 - 4096; + if (content.substr(content.length - 128, 5) === 'SAUCE') { + eodata -= 128; + } + this.parseFontData(content.substr(eodata, 4096)); + this.parsePaletteData(content.substr(eodata + 4096, 48)); + y = 0; + x = 0; + this.screen[y] = []; + offset = 12; + while (offset < eodata) { + buffer = content.substr(offset, 2); + info = this.unpackShort(buffer); + offset += 2; + len = 1; + if (info === 1) { + len = this.unpackShort(content.substr(offset, 2)) & 255; + offset += 2; + buffer = content.substr(offset, 2); + offset += 2; + } + ch = buffer.substr(0, 1); + attr = this.getByteAt(buffer, 1); + for (i = _i = 1; 1 <= len ? _i <= len : _i >= len; i = 1 <= len ? ++_i : --_i) { + this.screen[y][x] = { + 'ch': ch, + 'attr': attr + }; + x++; + if (x > this.header.x1) { + x = 0; + y++; + this.screen[y] = []; + } + } + } + if (this.screen[y].length === 0) { + return this.screen.pop(); + } + }; + + return ImageTextModeIDF; + + })(this.ImageTextMode); + + this.ImageTextModeADF = (function(_super) { + var COLOR_INDEX; + + __extends(ImageTextModeADF, _super); + + COLOR_INDEX = [0, 1, 2, 3, 4, 5, 20, 7, 56, 57, 58, 59, 60, 61, 62, 63]; + + function ImageTextModeADF(options) { + var k, v; + ImageTextModeADF.__super__.constructor.apply(this, arguments); + this.header = { + version: 0 + }; + for (k in options) { + if (!__hasProp.call(options, k)) continue; + v = options[k]; + this[k] = v; + } + } + + ImageTextModeADF.prototype.parse = function(content) { + var attr, ch, i, x, y, _i, _ref; + this.header.version = this.getByteAt(content, 0); + this.parsePaletteData(content.substr(1, 192)); + this.parseFontData(content.substr(193, 4096)); + x = 0; + y = 0; + this.screen[y] = []; + for (i = _i = 4289, _ref = content.length - 2; _i <= _ref; i = _i += 2) { + ch = content.substr(i, 1); + if (ch === "\x1a") { + break; + } + attr = this.getByteAt(content, i + 1); + this.screen[y][x] = { + 'ch': ch, + 'attr': attr + }; + x++; + if (x === 80) { + x = 0; + y++; this.screen[y] = []; } - continue; } - ch = null; - if (command === 2) { - ch = content.shift(); - rgb = this.unpackLong(content.splice(0, 4).join('')); - fg = palidx++; - colors.push([(rgb >> 16) & 0x000000ff, (rgb >> 8) & 0x000000ff, rgb & 0x000000ff]); - } else if (command === 4) { - ch = content.shift(); - rgb = this.unpackLong(content.splice(0, 4).join('')); - bg = palidx++; - colors.push([(rgb >> 16) & 0x000000ff, (rgb >> 8) & 0x000000ff, rgb & 0x000000ff]); - } else if (command === 6) { - ch = content.shift(); - fg = palidx++; - bg = palidx++; - for (_i = 0; _i <= 1; _i++) { + if (this.screen[y].length === 0) { + return this.screen.pop(); + } + }; + + ImageTextModeADF.prototype.parsePaletteData = function(data) { + var b, colors, g, i, j, r, _i, _len; + colors = []; + for (_i = 0, _len = COLOR_INDEX.length; _i < _len; _i++) { + i = COLOR_INDEX[_i]; + j = i * 3; + r = this.getByteAt(data, j); + r = r << 2 | r >> 4; + g = this.getByteAt(data, j + 1); + g = g << 2 | g >> 4; + b = this.getByteAt(data, j + 2); + b = b << 2 | b >> 4; + colors.push([r, g, b]); + } + return this.palette = new ImageTextModePalette({ + colors: colors + }); + }; + + return ImageTextModeADF; + + })(this.ImageTextMode); + + this.ImageTextModeTundra = (function(_super) { + __extends(ImageTextModeTundra, _super); + + function ImageTextModeTundra(options) { + var k, v; + ImageTextModeTundra.__super__.constructor.apply(this, arguments); + for (k in options) { + if (!__hasProp.call(options, k)) continue; + v = options[k]; + this[k] = v; + } + } + + ImageTextModeTundra.prototype.parse = function(content) { + var bg, ch, colors, command, fg, palidx, rgb, x, y, _i; + colors = [[0, 0, 0]]; + palidx = 1; + x = 0; + y = 0; + fg = 0; + bg = 0; + this.screen[y] = []; + content = content.substr(8).split(''); + while (command = content.shift()) { + if (command === "\x1a") { + break; + } + command = command.charCodeAt(0); + if (command === 1) { + y = this.unpackLong(content.splice(0, 4).join('')); + x = this.unpackLong(content.splice(0, 4).join('')); + if (this.screen[y] == null) { + this.screen[y] = []; + } + continue; + } + ch = null; + if (command === 2) { + ch = content.shift(); rgb = this.unpackLong(content.splice(0, 4).join('')); + fg = palidx++; colors.push([(rgb >> 16) & 0x000000ff, (rgb >> 8) & 0x000000ff, rgb & 0x000000ff]); + } else if (command === 4) { + ch = content.shift(); + rgb = this.unpackLong(content.splice(0, 4).join('')); + bg = palidx++; + colors.push([(rgb >> 16) & 0x000000ff, (rgb >> 8) & 0x000000ff, rgb & 0x000000ff]); + } else if (command === 6) { + ch = content.shift(); + fg = palidx++; + bg = palidx++; + for (_i = 0; _i <= 1; _i++) { + rgb = this.unpackLong(content.splice(0, 4).join('')); + colors.push([(rgb >> 16) & 0x000000ff, (rgb >> 8) & 0x000000ff, rgb & 0x000000ff]); + } + } + if (ch == null) { + ch = String.fromCharCode(command); + } + this.screen[y][x] = { + 'ch': ch, + 'fg': fg, + 'bg': bg + }; + x++; + if (x === 80) { + x = 0; + y++; + this.screen[y] = []; } } - if (ch == null) { - ch = String.fromCharCode(command); + if (this.screen[y].length === 0) { + this.screen.pop(); } - this.screen[y][x] = { - 'ch': ch, - 'fg': fg, - 'bg': bg + return this.palette = new ImageTextModePalette({ + colors: colors + }); + }; + + return ImageTextModeTundra; + + })(this.ImageTextMode); + + this.ImageTextModePCBoard = (function(_super) { + __extends(ImageTextModePCBoard, _super); + + function ImageTextModePCBoard(options) { + var k, v; + ImageTextModePCBoard.__super__.constructor.apply(this, arguments); + this.tabstop = 8; + this.linewrap = 80; + this.codes = { + POFF: '', + WAIT: '' }; - x++; - if (x === 80) { - x = 0; - y++; - this.screen[y] = []; + for (k in options) { + if (!__hasProp.call(options, k)) continue; + v = options[k]; + this[k] = v; } } - if (this.screen[y].length === 0) { - this.screen.pop(); - } - return this.palette = new ImageTextModePalette({ - colors: colors - }); - }; - return ImageTextModeTundra; - -})(this.ImageTextMode); - -this.ImageTextModePCBoard = (function(_super) { - __extends(ImageTextModePCBoard, _super); - - function ImageTextModePCBoard(options) { - var k, v; - ImageTextModePCBoard.__super__.constructor.apply(this, arguments); - this.tabstop = 8; - this.linewrap = 80; - this.codes = { - POFF: '', - WAIT: '' - }; - for (k in options) { - if (!__hasProp.call(options, k)) continue; - v = options[k]; - this[k] = v; - } - } - - ImageTextModePCBoard.prototype.parse = function(content) { - var ch, code, i, key, val, _i, _j, _ref, _results; - this.screen = []; - this.state = 0; - this.x = 0; - this.y = 0; - this.attr = 7; - _ref = this.codes; - for (key in _ref) { - val = _ref[key]; - code = new RegExp('@' + key + '@', 'g'); - content.replace(code, val); - } - content = content.split(''); - _results = []; - while (ch = content.shift()) { - if (this.state === 0) { - switch (ch) { - case "\x1a": - _results.push(this.state = 2); - break; - case '@': - _results.push(this.state = 1); - break; - case "\n": - this.x = 0; - _results.push(this.y++); - break; - case "\r": - break; - case "\t": - i = (this.x + 1) % this.tabstop; - _results.push((function() { - var _results1; - _results1 = []; - while (i-- > 0) { - _results1.push(this.putpixel(' ')); - } - return _results1; - }).call(this)); - break; - default: - _results.push(this.putpixel(ch)); - } - } else if (this.state === 1) { - if (ch === 'X') { - this.attr = (parseInt(content.shift(), 16) << 4) + parseInt(content.shift(), 16); - } else if (ch + content.slice(0, 3).join('') === 'CLS@') { - for (_i = 1; _i <= 3; _i++) { - content.shift(); - } - this.screen = []; - } else if (ch + content.slice(0, 3).join('') === 'POS:') { - for (_j = 1; _j <= 3; _j++) { - content.shift(); - } - this.x = content.shift(); - if (content[0] === !'@') { - this.x += content.shift(); - } - this.x--; - content.shift(); - } else { - this.putpixel('@'); - this.putpixel(ch); - } - _results.push(this.state = 0); - } else if (this.state === 2) { - break; - } else { - _results.push(this.state = 0); - } - } - return _results; - }; - - ImageTextModePCBoard.prototype.putpixel = function(ch) { - if (this.screen[this.y] == null) { - this.screen[this.y] = []; - } - this.screen[this.y][this.x] = { - ch: ch, - attr: this.attr - }; - if (++this.x >= this.linewrap) { + ImageTextModePCBoard.prototype.parse = function(content) { + var ch, code, i, key, val, _i, _j, _ref, _results; + this.screen = []; + this.state = 0; this.x = 0; - return this.y++; - } - }; - - return ImageTextModePCBoard; - -})(this.ImageTextMode); - -this.ImageTextModeAVATAR = (function(_super) { - __extends(ImageTextModeAVATAR, _super); - - function ImageTextModeAVATAR(options) { - var k, v; - ImageTextModeAVATAR.__super__.constructor.apply(this, arguments); - this.tabstop = 8; - this.linewrap = 80; - for (k in options) { - if (!__hasProp.call(options, k)) continue; - v = options[k]; - this[k] = v; - } - } - - ImageTextModeAVATAR.prototype.parse = function(content) { - var c, ch, i, _results; - this.screen = []; - this.x = 0; - this.y = 0; - this.attr = 3; - content = content.split(''); - _results = []; - while (ch = content.shift()) { - if (ch === "\x1a") { - break; - } else if (ch === "\n") { - this.x = 0; - _results.push(this.y++); - } else if (ch === "\r") { - continue; - } else if (ch === "\t") { - i = (this.x + 1) % this.tabstop; - _results.push((function() { - var _results1; - _results1 = []; - while (i-- > 0) { - _results1.push(this.putpixel(' ')); + this.y = 0; + this.attr = 7; + _ref = this.codes; + for (key in _ref) { + val = _ref[key]; + code = new RegExp('@' + key + '@', 'g'); + content.replace(code, val); + } + content = content.split(''); + _results = []; + while (ch = content.shift()) { + if (this.state === 0) { + switch (ch) { + case "\x1a": + _results.push(this.state = 2); + break; + case '@': + _results.push(this.state = 1); + break; + case "\n": + this.x = 0; + _results.push(this.y++); + break; + case "\r": + break; + case "\t": + i = (this.x + 1) % this.tabstop; + _results.push((function() { + var _results1; + _results1 = []; + while (i-- > 0) { + _results1.push(this.putpixel(' ')); + } + return _results1; + }).call(this)); + break; + default: + _results.push(this.putpixel(ch)); } - return _results1; - }).call(this)); - } else if (ch.charCodeAt(0) === 12) { - this.screen = []; - this.attr = 3; - _results.push(this.insert = false); - } else if (ch.charCodeAt(0) === 25) { - ch = content.shift(); - i = content.shift().charCodeAt(0); - _results.push((function() { - var _results1; - _results1 = []; - while (i-- > 0) { - _results1.push(this.putpixel(ch)); - } - return _results1; - }).call(this)); - } else if (ch.charCodeAt(0) === 22) { - c = content.shift().charCodeAt(0); - switch (c) { - case 1: - _results.push(this.attr = content.shift().charCodeAt(0) & 0x7f); - break; - case 2: - _results.push(this.attr |= 0x80); - break; - case 3: - this.y--; - if (this.y < 0) { - _results.push(this.y = 0); - } else { - _results.push(void 0); + } else if (this.state === 1) { + if (ch === 'X') { + this.attr = (parseInt(content.shift(), 16) << 4) + parseInt(content.shift(), 16); + } else if (ch + content.slice(0, 3).join('') === 'CLS@') { + for (_i = 1; _i <= 3; _i++) { + content.shift(); + } + this.screen = []; + } else if (ch + content.slice(0, 3).join('') === 'POS:') { + for (_j = 1; _j <= 3; _j++) { + content.shift(); + } + this.x = content.shift(); + if (content[0] !== '@') { + this.x += content.shift(); } - break; - case 4: - _results.push(this.y++); - break; - case 5: this.x--; - if (this.x < 0) { - _results.push(this.x = 0); - } else { - _results.push(void 0); - } - break; - case 6: - _results.push(this.x++); - break; - case 7: - _results.push((function() { - var _i, _ref, _ref1, _results1; - _results1 = []; - for (i = _i = _ref = this.x, _ref1 = screen[this.y].length - 1; _ref <= _ref1 ? _i <= _ref1 : _i >= _ref1; i = _ref <= _ref1 ? ++_i : --_i) { - _results1.push(this.screen[this.y][i] = null); - } - return _results1; - }).call(this)); - break; - case 8: - this.y = content.shift().charCodeAt(0) - 1; - this.x = content.shift().charCodeAt(0) - 1; - if (this.y < 0) { - this.y = 0; - } - if (this.x < 0) { - _results.push(this.x = 0); - } else { - _results.push(void 0); - } - break; - default: - _results.push(void 0); + content.shift(); + } else { + this.putpixel('@'); + this.putpixel(ch); + } + _results.push(this.state = 0); + } else if (this.state === 2) { + break; + } else { + _results.push(this.state = 0); } - } else { - _results.push(this.putpixel(ch)); + } + return _results; + }; + + ImageTextModePCBoard.prototype.putpixel = function(ch) { + if (this.screen[this.y] == null) { + this.screen[this.y] = []; + } + this.screen[this.y][this.x] = { + ch: ch, + attr: this.attr + }; + if (++this.x >= this.linewrap) { + this.x = 0; + return this.y++; + } + }; + + return ImageTextModePCBoard; + + })(this.ImageTextMode); + + this.ImageTextModeAVATAR = (function(_super) { + __extends(ImageTextModeAVATAR, _super); + + function ImageTextModeAVATAR(options) { + var k, v; + ImageTextModeAVATAR.__super__.constructor.apply(this, arguments); + this.tabstop = 8; + this.linewrap = 80; + for (k in options) { + if (!__hasProp.call(options, k)) continue; + v = options[k]; + this[k] = v; } } - return _results; - }; - ImageTextModeAVATAR.prototype.putpixel = function(ch) { - if (this.screen[this.y] == null) { - this.screen[this.y] = []; - } - this.screen[this.y][this.x] = { - ch: ch, - attr: this.attr - }; - if (++this.x >= this.linewrap) { + ImageTextModeAVATAR.prototype.parse = function(content) { + var c, ch, i, _results; + this.screen = []; this.x = 0; - return this.y++; - } - }; + this.y = 0; + this.attr = 3; + content = content.split(''); + _results = []; + while (ch = content.shift()) { + if (ch === "\x1a") { + break; + } else if (ch === "\n") { + this.x = 0; + _results.push(this.y++); + } else if (ch === "\r") { + continue; + } else if (ch === "\t") { + i = (this.x + 1) % this.tabstop; + _results.push((function() { + var _results1; + _results1 = []; + while (i-- > 0) { + _results1.push(this.putpixel(' ')); + } + return _results1; + }).call(this)); + } else if (ch.charCodeAt(0) === 12) { + this.screen = []; + this.attr = 3; + _results.push(this.insert = false); + } else if (ch.charCodeAt(0) === 25) { + ch = content.shift(); + i = content.shift().charCodeAt(0); + _results.push((function() { + var _results1; + _results1 = []; + while (i-- > 0) { + _results1.push(this.putpixel(ch)); + } + return _results1; + }).call(this)); + } else if (ch.charCodeAt(0) === 22) { + c = content.shift().charCodeAt(0); + switch (c) { + case 1: + _results.push(this.attr = content.shift().charCodeAt(0) & 0x7f); + break; + case 2: + _results.push(this.attr |= 0x80); + break; + case 3: + this.y--; + if (this.y < 0) { + _results.push(this.y = 0); + } else { + _results.push(void 0); + } + break; + case 4: + _results.push(this.y++); + break; + case 5: + this.x--; + if (this.x < 0) { + _results.push(this.x = 0); + } else { + _results.push(void 0); + } + break; + case 6: + _results.push(this.x++); + break; + case 7: + _results.push((function() { + var _i, _ref, _ref1, _results1; + _results1 = []; + for (i = _i = _ref = this.x, _ref1 = screen[this.y].length - 1; _ref <= _ref1 ? _i <= _ref1 : _i >= _ref1; i = _ref <= _ref1 ? ++_i : --_i) { + _results1.push(this.screen[this.y][i] = null); + } + return _results1; + }).call(this)); + break; + case 8: + this.y = content.shift().charCodeAt(0) - 1; + this.x = content.shift().charCodeAt(0) - 1; + if (this.y < 0) { + this.y = 0; + } + if (this.x < 0) { + _results.push(this.x = 0); + } else { + _results.push(void 0); + } + break; + default: + _results.push(void 0); + } + } else { + _results.push(this.putpixel(ch)); + } + } + return _results; + }; - return ImageTextModeAVATAR; + ImageTextModeAVATAR.prototype.putpixel = function(ch) { + if (this.screen[this.y] == null) { + this.screen[this.y] = []; + } + this.screen[this.y][this.x] = { + ch: ch, + attr: this.attr + }; + if (++this.x >= this.linewrap) { + this.x = 0; + return this.y++; + } + }; -})(this.ImageTextMode); + return ImageTextModeAVATAR; + + })(this.ImageTextMode); + +}).call(this);