// Generated by CoffeeScript 1.6.3 (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() {} 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; } } 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; } } 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; } } 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 - 1; 0 <= _ref ? _i <= _ref : _i >= _ref; cy = 0 <= _ref ? ++_i : --_i) { if (this.screen[cy] == null) { continue; } 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) { 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); } } } } } 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 }; 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'); } 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 { 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) { ch = data.shift(); } attr = data.shift(); break; case ATTRIBUTE_COMPRESSION: if (attr == null) { attr = data.shift(); } ch = data.shift(); break; default: if (ch == null) { 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; } if (this.screen[y] == null) { _results1.push(this.screen[y] = []); } 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; } 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) { 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) { 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] = []; } } 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 (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) { 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(' ')); } 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; }; 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++; } }; return ImageTextModeAVATAR; })(this.ImageTextMode); }).call(this);