// ==UserScript== // @name Mutik's DotD Script // @namespace tag://kongregate // @description Fork of ForTheGoodOfAll DotD script with new look and strongly optimized js code // @author Mutik // @version 1.1.35 // @grant GM_xmlhttpRequest // @grant GM_setValue // @grant GM_getValue // @grant unsafeWindow // @include http://www.kongregate.com/games/5thPlanetGames/dawn-of-the-dragons* // @include *50.18.191.15/kong/?DO_NOT_SHARE_THIS_LINK* // @hompage http://www.dotdraids.pl // @downloadURL none // ==/UserScript== //best loop atm: for(var i=0, l=obj.length; i= 1) return pretext + interval + ' year' + (interval == 1 ? '' : 's') + posttext; interval = Math.floor(seconds / 2592000); if (interval >= 1) return pretext + interval + ' month' + (interval == 1 ? '' : 's') + posttext; interval = Math.floor(seconds / 86400); if (interval >= 1) return pretext + interval + ' day' + (interval == 1 ? '' : 's') + posttext; interval = Math.floor(seconds / 3600); if (interval >= 1) return pretext + interval + ' hour' + (interval == 1 ? '' : 's') + posttext; interval = Math.floor(seconds / 60); if (interval >= 1) return interval + ' minute' + (interval == 1 ? '' : 's') + posttext; return Math.floor(seconds) + ' second' + (seconds == 1 ? '' : 's') + posttext; }; window.isNumber = function (n) { return !isNaN(parseFloat(n)) && isFinite(n); }; window.SRDotDX = { version: { major: "1.1.35", minor: 'Mutik\'s DotD Extension' }, c: function (ele) { function Cele(ele) { this._ele = ele; this.ele = function() {return this._ele}; this.set = function(param) {for (var attr in param) if (param.hasOwnProperty(attr)) this._ele.setAttribute(attr,param[attr]); return this}; this.text = function(text) {this._ele.appendChild(document.createTextNode(text)); return this}; this.html = function(text,overwrite) {this._ele.innerHTML = overwrite ? text : (this._ele.innerHTML + text); return this}; this.on = function(event,func,bubble) {this._ele.addEventListener(event, func, bubble); return this}; this.del = function() {this._ele.parentNode.removeChild(this._ele); return null}; this.attach = function(method,dele) { if (typeof dele === 'string') dele = document.getElementById(dele); if (!(dele instanceof Node)) throw 'Invalid attachment element specified'; else if (!/^(?:to|before|after)$/i.test(method)) throw 'Invalid append method specified'; else if (method === 'to') dele.appendChild(this._ele); else if (method === 'before') dele.parentNode.insertBefore(this._ele, dele); else if (dele.nextSibling === null) dele.parentNode.appendChild(this._ele); else dele.parentNode.insertBefore(this._ele, dele.nextSibling); return this }; } if (typeof ele === 'string') ele = ele.charAt(0) === '#' ? document.getElementById(ele.substring(1)) : document.createElement(ele); if (ele instanceof Node) return new Cele(ele); throw 'Invalid element type specified'; }, util: { isArrEq: function(a,b) { if(a.length !== b.length) return false; var ca = a.slice().sort().join(","); var cb = b.slice().sort().join(","); return ca === cb; }, getChatLinks: function() { var obj, out = '

'; for(var i = 0; i < SRDotDX.linksHistory.length; i++) { obj = SRDotDX.linksHistory[i]; out += '('+(new Date(obj.t).toLocaleTimeString())+') '+obj.u+': '+obj.m+'
'; } out += '

'; var x = window.open(); x.document.open(); x.document.write(out); x.document.close(); }, getChatNumber: function() { var cont = document.getElementsByClassName('chat_room_template'), ele; for (var i = 0; i < cont.length; i++) { ele = cont[i].getAttribute('style'); if (ele == null || ele == '') return i; } return 1; }, getQueryVariable: function(v,s) { var query = String(s || window.location.search.substring(1)); if (query.indexOf('?') > -1) query = query.substring(query.indexOf('?') + 1); var vars = query.split('&'); var i = vars.length; while(i--) { var pair = vars[i].split('='); if (decodeURIComponent(pair[0]) == v) return decodeURIComponent(pair[1]); } return ''; }, getRaidFromUrl: function(url) { var r = {id: 0, boss: '', hash: '', diff: 0, sid: 1}, cnt = 0, i; var reg = /[?&]([^=]+)=([^?&]+)/ig, p = url.replace(/&/gi, '&').replace(/kv_&/gi, '&kv_').replace(/http:?/gi, ''); while ((i = reg.exec(p)) != null) { switch (i[1]) { case 'kv_raid_id': case 'raid_id': r.id = parseInt(i[2]); cnt++; break; case 'kv_difficulty': case 'difficulty': r.diff = parseInt(i[2]); cnt++; break; case 'kv_raid_boss': case 'raid_boss': r.boss = i[2]; cnt++; break; case 'kv_hash': case 'hash': r.hash = i[2]; cnt++; break; case 'kv_serverid': case 'serverid': r.sid = parseInt(i[2]); cnt++; break; } } if (cnt < 4) return null; return r; }, getGameRoomNumber: function() { if(typeof holodeck == 'object' && typeof holodeck.chatWindow == 'function') return parseInt(holodeck.chatWindow()._rooms_by_type.game._room.name.slice(-2)); //var rooms = document.getElementsByClassName('room_name'), i = rooms.length; //while(i--) if(!rooms[i-1].innerHTML.indexOf('Dawn of the Dragons')) return parseInt(rooms[i-1].innerHTML.slice(-2)); return 0; }, getShortNum: function(num) { if (isNaN(num) || num < 0) return num; if (num >= 1000000000000) return (num / 1000000000000).toPrecision(4) + 't'; if (num >= 1000000000) return (num / 1000000000).toPrecision(4) + 'b'; if (num >= 1000000) return (num / 1000000).toPrecision(4) + 'm'; if (num >= 1000) return (num / 1000).toPrecision(4) + 'k'; return num + '' }, getShortNumMil: function(num) { if (isNaN(num) || num < 0) return num; if (num >= 1000000) return (num / 1000000).toPrecision(4) + 't'; if (num >= 1000) return (num / 1000).toPrecision(4) + 'b'; return num.toPrecision(4) + 'm' }, objToUriString: function(obj) { if (typeof obj == 'object') { var str = ''; for (var i in obj) str += encodeURIComponent(i) + '=' + encodeURIComponent(obj[i]) + '&'; str = str.substring(0, str.length - 1); return str } return ''; }, extEcho: function(msg) { var cn = SRDotDX.util.getChatNumber(); var cw = document.getElementsByClassName('chat_message_window')[cn]; var p = cw.getElementsByTagName('p'); var m; if(p.length > 0 && p[p.length-1].className.indexOf('script') >= 0) { m = p[p.length-1].getElementsByClassName('message')[0]; m.innerHTML = m.innerHTML + '
' + msg; } else { m = SRDotDX.c('div').ele(); var mi = SRDotDX.c('div').attach('to',m).ele(); var mi2 = SRDotDX.c('p').set({class: 'script'}).attach('to',mi).ele(); SRDotDX.c('span').set({class: 'username DotDeXtension'}).html("DotDeXtension",true).attach('to',mi2); SRDotDX.c('span').set({class: 'separator'}).html(": ",true).attach('to',mi2); SRDotDX.c('span').set({class: 'message', name: 'SRDotDX_DotDeXtension'}).html('
'+msg,true).attach('to',mi2); SRDotDX.c('span').set({class: 'clear'}).attach('to',mi2); var div = cw.lastChild; if(div) div.appendChild(mi); else cw.appendChild(m); } setTimeout(SRDotDX.gui.scrollChat, 100, cn); }, serialize: function(obj) { var str = []; for (var p in obj) if (obj[p] != null)str.push(encodeURIComponent(p) + "=" + encodeURIComponent(obj[p])); return str.join("&"); }, stringFormat: function() { var s = arguments[0]; for (var i = 0; i < arguments.length - 1; i++) { var reg = new RegExp("\\{" + i + "\\}", "gm"); s = s.replace(reg, arguments[i + 1]); } return s; } }, config: (function() { var tmp, reqSave = false; try {tmp = JSON.parse(GM_getValue('SRDotDX', '{}'));} catch (e) {tmp = {};reqSave = true } //Raids tab vars tmp.filterSearchStringR = typeof tmp.filterSearchStringR == 'string' ? tmp.filterSearchStringR : ''; tmp.fltIncVis = typeof tmp.fltIncVis == 'boolean' ? tmp.fltIncVis : false; tmp.fltExclFull = typeof tmp.fltExclFull == 'boolean' ? tmp.fltExclFull : false; tmp.fltShowAll = typeof tmp.fltShowAll == 'boolean' ? tmp.fltShowAll : false; //Options tab vars tmp.importFiltered = typeof tmp.importFiltered == 'boolean' ? tmp.importFiltered : true; tmp.hideRaidLinks = typeof tmp.hideRaidLinks == 'boolean' ? tmp.hideRaidLinks : false; tmp.hideBotLinks = typeof tmp.hideBotLinks == 'boolean' ? tmp.hideBotLinks : false; tmp.hideVisitedRaids = typeof tmp.hideVisitedRaids == 'boolean' ? tmp.hideVisitedRaids : false; tmp.hideVisitedRaidsInRaidList = typeof tmp.hideVisitedRaidsInRaidList == 'boolean' ? tmp.hideVisitedRaidsInRaidList : false; tmp.markMyRaidsVisted = typeof tmp.markMyRaidsVisted == 'boolean' ? tmp.markMyRaidsVisted : false; tmp.markImportedVisited = typeof tmp.markImportedVisited == 'boolean' ? tmp.markImportedVisited : false; tmp.FPXLandOwnedCount = typeof tmp.FPXLandOwnedCount == 'object' ? tmp.FPXLandOwnedCount : [0, 0, 0, 0, 0, 0, 0, 0, 0]; tmp.prettyPost = typeof tmp.prettyPost == 'boolean' ? tmp.prettyPost : false; tmp.clearRMB = typeof tmp.clearRMB == 'boolean' ? tmp.clearRMB : false; tmp.useMaxRaidCount = typeof tmp.useMaxRaidCount == 'boolean' ? tmp.useMaxRaidCount : false; tmp.maxRaidCount = !(typeof tmp.maxRaidCount === 'undefined') ? tmp.maxRaidCount : 3000; tmp.autoImportPaste = typeof tmp.autoImportPaste == 'boolean' ? tmp.autoImportPaste : false; tmp.confirmForLargePaste = typeof tmp.confirmForLargePaste == 'boolean' && tmp.confirmPasteSize ? tmp.confirmForLargePaste : false; tmp.confirmPasteSize = typeof tmp.confirmPasteSize == 'number' ? tmp.confirmPasteSize : 1000; tmp.showStatusOverlay = typeof tmp.showStatusOverlay == 'boolean' ? tmp.showStatusOverlay : false; tmp.confirmDeletes = typeof tmp.confirmDeletes == 'boolean' ? tmp.confirmDeletes : true; tmp.autoPostPaste = typeof tmp.autoPostPaste == 'boolean' ? tmp.autoPostPaste : false; tmp.whisperTo = typeof tmp.whisperTo == 'string' ? tmp.whisperTo : ''; tmp.formatLinkOutput = typeof tmp.formatLinkOutput == 'boolean' ? tmp.formatLinkOutput : false; tmp.linkShowFs = typeof tmp.linkShowFs == 'boolean' ? tmp.linkShowFs : false; tmp.linkShowAp = typeof tmp.linkShowAp == 'boolean' ? tmp.linkShowAp : false; tmp.unvisitedRaidPruningMode = typeof tmp.unvisitedRaidPruningMode == 'number' ? tmp.unvisitedRaidPruningMode : 1; tmp.selectedRaids = typeof tmp.selectedRaids == 'string' ? tmp.selectedRaids : ''; tmp.pastebinUrl = typeof tmp.pastebinUrl == 'string' ? tmp.pastebinUrl : ''; tmp.bckColor = typeof tmp.bckColor == 'string' ? tmp.bckColor : 'fff'; tmp.lastImported = typeof tmp.lastImported == 'number' ? tmp.lastImported : (new Date().getTime() - 1728000000); tmp.hideKongForum = typeof tmp.hideKongForum == 'boolean' ? tmp.hideKongForum : false; tmp.hideGameDetails = typeof tmp.hideGameDetails == 'boolean' ? tmp.hideGameDetails : false; tmp.hideGameTitle = typeof tmp.hideGameTitle == 'boolean' ? tmp.hideGameTitle : true; tmp.chatFilterString = typeof tmp.chatFilterString == 'string' ? tmp.chatFilterString : ''; tmp.filterSearchStringC = typeof tmp.filterSearchStringC == 'string' ? tmp.filterSearchStringC : ''; tmp.chatSize = typeof tmp.chatSize == 'number' ? tmp.chatSize : 300; tmp.sbEnable = typeof tmp.sbEnable == 'boolean' ? tmp.sbEnable : true; tmp.sbSlim = typeof tmp.sbSlim == 'boolean' ? tmp.sbSlim : false; tmp.sbRightSide = typeof tmp.sbRightSide == 'boolean' ? tmp.sbRightSide : false; tmp.formatLinks = typeof tmp.formatLinks == 'boolean' ? tmp.formatLinks : false; tmp.slimKongBar = typeof tmp.slimKongBar == 'boolean' ? tmp.slimKongBar : false; tmp.kongUser = typeof tmp.kongUser == 'string' ? tmp.kongUser : 'Guest'; tmp.kongAuth = typeof tmp.kongAuth == 'string' ? tmp.kongAuth : '0'; tmp.kongId = typeof tmp.kongId == 'string' ? tmp.kongId : '0'; tmp.kongMsg = typeof tmp.kongMsg == 'boolean' ? tmp.kongMsg : false; tmp.hideGameTab = typeof tmp.hideGameTab == 'boolean' ? tmp.hideGameTab : false; tmp.hideAccTab = typeof tmp.hideAccTab == 'boolean' ? tmp.hideAccTab : false; tmp.dotdxTabName = typeof tmp.dotdxTabName == 'string' ? tmp.dotdxTabName : 'Raids'; tmp.themeNum = typeof tmp.themeNum == 'number' ? tmp.themeNum : 1; tmp.fontNum = typeof tmp.fontNum == 'number' ? tmp.fontNum : 0; tmp.ignMode = typeof tmp.ignMode == 'number' ? tmp.ignMode : 1; tmp.hideScrollBar = typeof tmp.hideScrollBar == 'boolean' ? tmp.hideScrollBar : false; tmp.hideWChat = typeof tmp.hideWChat == 'boolean' ? tmp.hideWChat : false; tmp.leftWChat = typeof tmp.leftWChat == 'boolean' ? tmp.leftWChat : false; tmp.removeWChat = typeof tmp.removeWChat == 'boolean' ? tmp.removeWChat : false; tmp.filterChatLinks = typeof tmp.filterChatLinks == 'boolean' ? tmp.filterChatLinks : true; tmp.filterRaidList = typeof tmp.filterRaidList == 'boolean' ? tmp.filterRaidList : false; tmp.newRaidsAtTopOfList = typeof tmp.newRaidsAtTopOfList == 'boolean' ? tmp.newRaidsAtTopOfList : false; tmp.serverMode = typeof tmp.serverMode == 'number' ? tmp.serverMode : 1; tmp.sbConfig = typeof tmp.sbConfig == 'object' ? tmp.sbConfig : [ {"type": "label", "name": "Camps"}, {"type": "btn", "name": "GoC", "cmd": "/camp goc"}, {"type": "btn", "name": "MaM", "cmd": "/camp mam"}, {"type": "btn", "name": "FW", "cmd": "/camp fw"}, {"type": "label", "name": "Tiers"}, {"type": "btn", "name": "Bella", "cmd": "/raid bella"}, {"type": "btn", "name": "Xerk", "cmd": "/raid xerkara"}, {"type": "btn", "name": "Tisi", "cmd": "/raid tisi"}, {"type": "label", "name": "Join"}, {"type": "btn", "name": "Farms", "cmd": "SRDotDX.gui.quickImportAndJoin(\'farm:nnm\',false)"}, {"type": "label", "name": "Utils"}, {"type": "btn", "color": "g", "name": "(Re)Load", "sname": "Reld", "cmd": "SRDotDX.reload()"}, {"type": "btn", "color": "r", "name": "Unload", "sname": "Kill", "cmd": "/kill"}, {"type": "btn", "name": "Room 1", "sname": "CR1", "cmd": "SRDotDX.gui.gotoRoom(1)"}, {"type": "btn", "name": "Room 2", "sname": "CR2", "cmd": "SRDotDX.gui.gotoRoom(2)"}, {"type": "btn", "name": "Room 8", "sname": "CR8", "cmd": "SRDotDX.gui.gotoRoom(8)"}, {"type": "label", "name": "Sheets", "sname": "Help"}, {"type": "btn", "name": "Magic", "sname": "Mag", "cmd": "https://docs.google.com/spreadsheets/d/1O0eVSnzlACP9XJDq0VN4kN51ESUusec3-gD4dKPHRNU"}, {"type": "btn", "name": "Mount", "sname": "Mnt", "cmd": "https://docs.google.com/spreadsheet/ccc?key=0AiSpM5yAo8atdER2NEhHY3VjckRhdWctWV8yampQZUE"}, {"type": "btn", "name": "Gear", "cmd": "https://docs.google.com/spreadsheet/lv?key=0AvP2qXrWcHBxdHpXZkUzTHNGNkVWbjE5c2VEZUNNMUE"}, {"type": "label", "name": "Raids"}, {"type": "jtxt"}, {"type": "btn", "color": "g", "name": "Join", "cmd": "SRDotDX.gui.joinSelectedRaids(true)"}, {"type": "btn", "color": "b", "name": "Import", "sname": "Imp", "cmd": "SRDotDX.gui.importFromServer()"}, {"type": "btn", "color": "y", "name": "RaidBot", "sname": "Bot", "cmd": "SRDotDX.gui.switchBot()"} ]; if (typeof tmp.mutedUsers !== 'object') tmp.mutedUsers = {}; if (typeof tmp.ignUsers !== 'object') tmp.ignUsers = {}; if (typeof tmp.friendUsers !== 'object') tmp.friendUsers = {}; if (typeof tmp.raidList !== 'object') tmp.raidList = {}; if (typeof tmp.filters !== 'object') tmp.filters = [{},{}]; if (typeof tmp.lastFilter !== 'object') tmp.lastFilter = typeof tmp.lastFilter === 'string' ? [tmp.lastFilter, tmp.lastFilter] : ["",""]; if (tmp.filters.length !== 2) { var tmpFlt = [tmp.filters, tmp.filters]; tmp.filters = tmpFlt; } if (tmp.lastImported > (new Date().getTime())) tmp.lastImported = (new Date().getTime() - 1728000000); if (reqSave) GM_setValue('SRDotDX', JSON.stringify(tmp)); // Delete expired raids for (var id in tmp.raidList) { if(tmp.raidList.hasOwnProperty(id)) { if (typeof tmp.raidList[id].magic === "undefined") tmp.raidList[id].magic = [0, 0, 0, 0, 0, 0]; if (typeof tmp.raidList[id].hp === "undefined") tmp.raidList[id].hp = 1.0; if (typeof tmp.raidList[id].sid === "undefined") tmp.raidList[id].sid = 1; if (typeof tmp.raidList[id].cs === "undefined") tmp.raidList[id].cs = 0; if (typeof tmp.raidList[id].fs === "undefined") tmp.raidList[id].fs = 1; if (typeof tmp.raidList[id].ni === "undefined") tmp.raidList[id].ni = false; } } tmp.addRaid = function (hash, id, boss, diff, sid, visited, user, ts, room, magic, hp, cs, fs) { if ((/ /).test(user)) { var reg = new RegExp('[0-9]+|[0-9a-zA-Z_]+', 'g'); room = reg.exec(user); user = reg.exec(user); } if (typeof SRDotDX.config.raidList[id] !== 'object') { var tStamp = typeof ts === 'undefined' || ts === null ? parseInt(new Date().getTime() / 1000) : parseInt(ts); SRDotDX.config.raidList[id] = { hash: hash, id: id, boss: boss, diff: diff, sid: sid, visited: visited, user: user, timeStamp: tStamp, expTime: (typeof SRDotDX.raids[boss] === 'object' ? (SRDotDX.raids[boss].stat === 'H' ? 1 : SRDotDX.raids[boss].duration) : 24) * 3600 + tStamp, room: room === undefined || room === null ? SRDotDX.util.getGameRoomNumber() : parseInt(room), magic: magic === undefined || magic === null ? [0,0,0,0,0,0] : magic, hp: hp === undefined || hp === null ? 1.0 : parseFloat(hp), cs: cs === undefined || cs === null ? 0 : parseInt(cs), fs: fs === undefined || fs === null ? (typeof SRDotDX.raids[boss] === 'object' ? SRDotDX.raids[boss].size : 1) : parseInt(fs), ni: magic === undefined }; SRDotDX.gui.addRaid(id); } return SRDotDX.config.raidList[id] }; tmp.save = function (b) { b = typeof b == 'undefined' ? true : b; GM_setValue('SRDotDX', JSON.stringify(SRDotDX.config)); if(b) setTimeout(SRDotDX.config.save, 60000, true); else console.log('[DotDX] Manual config save invoked'); }; tmp.extSave = function(){SRDotDX.gframe('dotdx.save#'+JSON.stringify({'removeWChat':SRDotDX.config.removeWChat,'leftWChat':SRDotDX.config.leftWChat,'hideWChat':SRDotDX.config.hideWChat}));}; return tmp; })(), linksHistory: [], request: { importLock: false, joinAfterImport: false, fromChat: false, quickBtnLock: true, filterSearchStringT: "", raids: function (isinit, hours) { if (!SRDotDX.gui.joining) { var secs = 15 - parseInt((new Date().getTime() - SRDotDX.config.lastImported) / 1000); if (secs > 0) { SRDotDX.util.extEcho("You can import again in " + secs + " seconds."); return } console.log("[DotDX] Importing raids from raids server ..."); if (!isinit) this.initialize("Requesting raids"); else SRDotDX.request.tries++; var h = hours ? ('&h=' + hours) : ''; SRDotDX.request.req({ eventName: "dotd.getraids", url: "http://mutik.erley.org/download.php?u=" + SRDotDX.config.kongUser + h, method: "GET", headers: {"Content-Type": "application/JSON"}, timeout: 30000 }); } }, poster: function (isInit) { var txt = document.getElementById('DotDX_checkRaidPoster').value, id; if (txt.length < 1) return; if (isNaN(txt)) { var r = SRDotDX.util.getRaidFromUrl(txt); if (r === null) return; id = r.id; } else id = parseInt(txt); console.log("[DotDX] Requesting raid poster info from server..."); if (!isInit) this.initialize("Requesting raid poster data"); else SRDotDX.request.tries++; SRDotDX.request.req({ eventName: "dotd.getposter", url: "http://mutik.erley.org/getposter.php?i=" + id, method: "GET", headers: {"Content-Type": "application/JSON"}, timeout: 30000 }); }, version: function(isInit) { console.log("[DotDX] Requesting available script version from greasyfork..."); if(!isInit) this.initialize("Requesting script version"); else SRDotDX.request.tries++; SRDotDX.request.req({ eventName: "dotd.getversion", url: "https://greasyfork.org/en/scripts/406-mutik-s-dotd-script", method: "GET", //headers: {"Content-Type": "application/JSON"}, timeout: 30000 }); }, initialize: function (str) { SRDotDX.gui.doStatusOutput(str + "...", 3000, true); SRDotDX.request.tries = 0; SRDotDX.request.seconds = 0; SRDotDX.request.complete = false; SRDotDX.request.timer = setTimeout(SRDotDX.request.tick, 1000, str); }, tick: function (str) { if (!SRDotDX.request.complete) { if (SRDotDX.request.seconds > 25) { SRDotDX.gui.doStatusOutput("Request failed.", 3000, true); return; } SRDotDX.request.seconds++; SRDotDX.gui.doStatusOutput(str + " (" + SRDotDX.request.seconds + ")...", 1500, true); SRDotDX.request.timer = setTimeout(SRDotDX.request.tick, 1000, str); } }, complete: false, seconds: 0, timer: 0, tries: 0, req: function (param) { var a = document.createEvent("MessageEvent"); if (a.initMessageEvent) a.initMessageEvent("dotd.req", false, false, JSON.stringify(param), document.location.protocol + "//" + document.location.hostname, 0, window, null); else a = new MessageEvent("dotd.req", {"origin": document.location.protocol + "//" + document.location.hostname, "lastEventId": 0, "source": window, "data": JSON.stringify(param)}); document.dispatchEvent(a); }, init: function () { document.addEventListener("dotd.joinraid", SRDotDX.request.joinRaidResponse, false); document.addEventListener("dotd.getraids", SRDotDX.request.addRaids, false); document.addEventListener("dotd.getposter", SRDotDX.request.getPoster, false); document.addEventListener("dotd.getversion", SRDotDX.request.getVersion, false); delete this.init; }, joinRaid: function (r) { if (typeof r == 'object') { if (!SRDotDX.gui.joining) SRDotDX.request.initialize("Joining " + (!SRDotDX.raids[r.boss] ? r.boss.capitalize().replace(/_/g, ' ') : SRDotDX.raids[r.boss].shortname)); var joinData = 'kongregate_username=' + SRDotDX.config.kongUser + '&kongregate_user_id=' + SRDotDX.config.kongId + '&kongregate_game_auth_token=' + SRDotDX.config.kongAuth; SRDotDX.request.req({ eventName: "dotd.joinraid", url: SRDotDX.util.stringFormat('http://50.18.191.15/kong/raidjoin.php?' + joinData + '&kv_action_type=raidhelp&kv_raid_id={0}&kv_hash={1}&serverid={2}', r.id, r.hash, r.sid), method: "GET", timeout: 30000 }); } }, getPoster: function (e) { var r, data = JSON.parse(e.data); if (data.status != 200) { if (SRDotDX.request.tries >= 3) { SRDotDX.request.complete = true; SRDotDX.gui.doStatusOutput("Raids server busy. Please try again in a moment."); console.log('[DotDX] Raids request failed (url: ' + data.url + ')'); console.log(JSON.stringify(data)); } else { console.log("[DotDX] Raids server unresponsive (status " + data.status + "). Trying again, " + SRDotDX.request.tries + " tries."); } return; } SRDotDX.request.complete = true; try { r = JSON.parse(data.responseText) } catch (ex) { console.log("[DotDX] Checking raid poster request error"); console.log('[DotDX] responseText: ' + data.responseText); return; } document.getElementById('DotDX_whoPosted_Raid').innerHTML = r.r; document.getElementById('DotDX_whoPosted_Time').innerHTML = new Date(r.t * 1000).toLocaleString(); document.getElementById('DotDX_whoPosted_Poster').innerHTML = r.p; }, getVersion: function(e) { var r, data = JSON.parse(e.data); SRDotDX.request.complete = true; var remoteVersion = "Unknown"; if (data.status !== 200) { SRDotDX.gui.doStatusOutput("Greasyfork unresponsive."); console.log('[DotDX] Version request failed (url: ' + data.url + ')'); console.log(JSON.stringify(data)); } else remoteVersion = /([\d\.]+)<.+dd>/.exec(data.responseText)[1]; var d = '' + SRDotDX.version.minor + '
'; d += 'Installed version: ' + SRDotDX.version.major + '
'; d += 'Available version: ' + remoteVersion + '
'; if(SRDotDX.version.major === remoteVersion) d += 'Your script version is up to date.'; else d += 'You can click here to open greasyfork page with script and update.'; SRDotDX.util.extEcho(d); }, addRaids: function(e) { var r, data = JSON.parse(e.data); if (data.status != 200) { if (SRDotDX.request.tries >= 3) { SRDotDX.request.complete = true; SRDotDX.gui.doStatusOutput("Raids server busy. Please try again in a moment."); console.log('[DotDX] Raids request failed (url: ' + data.url + ')'); console.log(JSON.stringify(data)); } else { console.log("[DotDX] Raids server unresponsive (status " + data.status + "). Trying again, " + SRDotDX.request.tries + " tries."); } return; } SRDotDX.request.complete = true; try { r = JSON.parse(data.responseText) } catch (ex) { console.log("[DotDX] Raids importing error or no raids imported"); console.log('[DotDX] responseText: ' + data.responseText); return; } SRDotDX.gui.doStatusOutput("Importing " + r.raids.length + " raids..."); var raid, n = 0, t = 0, i, il, j, jl; var swt = !SRDotDX.config.importFiltered, filter = SRDotDX.c('#DotDX_filters').ele().innerHTML; for(j = 0, jl = r.raids.length; j < jl; ++j) { raid = r.raids[j]; if (swt || filter.indexOf('fltList_' + raid.b + '_' + (raid.d - 1)) < 0) { t++; if (typeof SRDotDX.config.raidList[raid.i] !== 'object') { n++; SRDotDX.config.addRaid(raid.h, parseInt(raid.i), raid.b, parseInt(raid.d), parseInt(raid.s), false, raid.p, raid.t, raid.r, raid.m.split("_").map(function (x) { return parseInt(x) }), parseFloat(raid.hp), raid.cs, raid.fs); } else { SRDotDX.config.raidList[raid.i].magic = raid.m.split("_").map(function(x){return parseInt(x)}); SRDotDX.config.raidList[raid.i].hp = parseFloat(raid.hp); SRDotDX.config.raidList[raid.i].cs = parseInt(raid.cs); SRDotDX.config.raidList[raid.i].fs = parseInt(raid.fs); SRDotDX.config.raidList[raid.i].ni = false; } } } console.log('[DotDX] Import raids from server complete'); var id = r.prune.length > 3 ? r.prune.split("_") : []; //clean chat var chat = document.getElementsByClassName('chat_message_window'), p, pe, d = 0; for(var c = 0, cl = chat.length; c < cl; ++c) { p = chat[c].getElementsByClassName('DotDX_raid'); i = 0; while(pe = p[i++]) if(r.prune.indexOf((/DotDX_raidId_(\d+)/).exec(pe.className)[1]) > -1) pe.parentNode.removeChild(pe); p = chat[c].getElementsByTagName('div'); il = p.length; while(pe = p[i++]) if(pe.empty()) pe.parentNode.removeChild(pe); } //clean db for(i = 0, il = id.length; i < il; ++i) if(SRDotDX.config.raidList[id[i]]) { delete SRDotDX.config.raidList[id[i]]; d++; } console.log('[DotDX] Removing dead raids on import complete'); SRDotDX.gui.selectRaidsToJoin('import response'); SRDotDX.config.lastImported = new Date().getTime(); SRDotDX.util.extEcho('Imported ' + t + ' raids, ' + n + ' new, ' + d + ' pruned.'); if (SRDotDX.request.joinAfterImport) { SRDotDX.gui.selectRaidsToJoin(); SRDotDX.gui.joinSelectedRaids(false); } SRDotDX.gui.doStatusOutput('Imported ' + n + ' new raids, ' + d + ' pruned.', 5000, true); }, joinRaidResponse: function (e) { var data = JSON.parse(e.data); var statustxt = ''; SRDotDX.request.complete = true; SRDotDX.gui.joinRaidComplete++; if (data && data.status === 200 && data.responseText && data.url) { var raidid = SRDotDX.util.getQueryVariable('kv_raid_id', data.url); if (typeof SRDotDX.config.raidList[raidid] === 'object') { SRDotDX.config.raidList[raidid].visited = true; SRDotDX.gui.toggleRaid('visited', raidid, true); SRDotDX.gui.raidListItemUpdate(raidid); if (/successfully (re-)?joined/i.test(data.responseText)) { SRDotDX.gui.joinRaidSuccessful++; statustxt = (SRDotDX.raids[SRDotDX.config.raidList[raidid].boss] ? SRDotDX.raids[SRDotDX.config.raidList[raidid].boss].shortname : SRDotDX.config.raidList[raidid].boss) + " joined successfully."; } else if (/already a member/i.test(data.responseText)) { statustxt = "Join Failed. You are already a member."; } else if (/already completed/i.test(data.responseText)) { SRDotDX.gui.joinRaidDead++; statustxt = "Join failed. Raid is dead."; SRDotDX.gui.deleteRaidFromDB(raidid); } else if (/not a member of the guild/i.test(data.responseText)) { SRDotDX.gui.joinRaidDead++; statustxt = "Join failed. You are not member of that Guild."; SRDotDX.gui.deleteRaidFromDB(raidid); } else if (/(invalid|find) raid (hash|ID)/i.test(data.responseText)) { statustxt = "Join failed. Invalid hash or ID."; SRDotDX.gui.joinRaidInvalid++; SRDotDX.gui.deleteRaidFromDB(raidid); } else { statustxt = 'Join failed. Unknown join response.'; } } else SRDotDX.gui.joinRaidInvalid++; } else { console.log('[DotDX] Request timed out'); SRDotDX.gui.joinRaidInvalid++; statustxt = "Join failed. Timeout."; } if (SRDotDX.gui.joining) { if (SRDotDX.gui.joinRaidComplete >= SRDotDX.gui.joinRaidList.length) { statustxt = "Finished joining. " + SRDotDX.gui.joinRaidSuccessful + " new, " + SRDotDX.gui.joinRaidDead + " dead."; SRDotDX.gui.joinFinish(true); if (SRDotDX.gui.joinRaidSuccessful > 2) SRDotDX.util.extEcho(statustxt); setTimeout(SRDotDX.config.save, 3000, false) } else { statustxt = "Joined " + SRDotDX.gui.joinRaidComplete + " of " + SRDotDX.gui.joinRaidList.length + ". " + SRDotDX.gui.joinRaidSuccessful + " new, " + SRDotDX.gui.joinRaidDead + " dead."; if (SRDotDX.gui.joinRaidIndex < SRDotDX.gui.joinRaidList.length) SRDotDX.request.joinRaid(SRDotDX.gui.joinRaidList[SRDotDX.gui.joinRaidIndex++]); } } else setTimeout(SRDotDX.config.save, 3000, false); if (statustxt !== '') SRDotDX.gui.doStatusOutput(statustxt, 4000, true); } }, getRaidDetailsBase: function (url) { var r = {diff: 0, hash: '', boss: '', id: 0, sid: 0}, i, cnt = 0; var reg = /[?&]([^=]+)=([^?&]+)/ig, p = url.replace(/&/gi, '&').replace(/kv_&/gi, '&kv_'); while ((i = reg.exec(p)) != null) { switch (i[1]) { case 'kv_raid_id': case 'raid_id': r.id = parseInt(i[2]); cnt++; break; case 'kv_difficulty': case 'difficulty': r.diff = parseInt(i[2]); cnt++; break; case 'kv_raid_boss': case 'raid_boss': r.boss = i[2]; cnt++; break; case 'kv_hash': case 'hash': r.hash = i[2]; cnt++; break; case 'kv_serverid': case 'serverid': r.sid = parseInt(i[2]); cnt++; break; } } if (cnt < 4) return false; r.diffLongText = ['Normal', 'Hard', 'Legendary', 'Nightmare'][r.diff - 1]; r.diffShortText = ['N', 'H', 'L', 'NM'][r.diff - 1]; var stats = SRDotDX.raids[r.boss]; if (typeof stats === 'object') { r.name = stats.name; r.shortname = stats.shortname; r.size = stats.size; r.type = stats.type; r.dur = stats.duration; r.durText = stats.dur + "hrs"; r.stat = stats.stat; r.statText = SRDotDX.getStatText(stats.stat); } else { r.name = r.boss[0].toUpperCase() + r.boss.substring(1).replace(/_/g, " "); r.shortname = r.name; r.dur = 48; } return r; }, getTierTxt: function (hp, ppl, ap) { var num = hp / ppl; num = ap ? num / 2 : num; if (num >= 1000000000000) return (num / 1000000000000).toPrecision(3) + 't'; if (num >= 1000000000) return (num / 1000000000).toPrecision(3) + 'b'; if (num >= 1000000) return (num / 1000000).toPrecision(3) + 'm'; if (num >= 1000) return (num / 1000).toPrecision(3) + 'k'; return num + '' }, getRaidDetails: function (url, user, visited, ts, room) { user = user ? user : ''; var rVis = visited ? visited : user == SRDotDX.config.kongUser && SRDotDX.config.markMyRaidsVisted; var r = SRDotDX.util.getRaidFromUrl(url); if (r == null) return null; //if (r && typeof r.diff == 'number' && typeof r.hash == 'string' && typeof r.boss == 'string' && typeof r.id == 'string') { var filter = SRDotDX.c('#DotDX_filters').ele().innerHTML; r.visited = rVis; if (!SRDotDX.config.importFiltered || filter.indexOf('fltList_' + r.boss + '_' + (r.diff - 1)) < 0) { var info = SRDotDX.config.raidList[r.id]; if (typeof info !== 'object') { info = SRDotDX.config.addRaid(r.hash, r.id, r.boss, r.diff, r.sid, r.visited, user, ts, room); if (typeof info === 'object') r.isNew = true; else return null; } else r.isNew = false; r.timeStamp = info.timeStamp; r.visited = info.visited; } r.linkText = function () { var raidInfo = SRDotDX.raids[r.boss]; var txt = '[ ' + ['', 'N', 'H', 'L', 'NM'][this.diff] + ' '; txt += raidInfo ? raidInfo.shortname : r.boss.capitalize().replace(/_/g, ' '); if (SRDotDX.config.linkShowFs) txt += raidInfo ? ', fs:' + SRDotDX.getTierTxt(raidInfo.health[this.diff - 1], raidInfo.size, false) : ''; if (SRDotDX.config.linkShowAp) txt += raidInfo ? ', ap:' + SRDotDX.getTierTxt(raidInfo.health[this.diff - 1], raidInfo.size, true) : ''; txt += (this.visited || r.visited) ? '|★' : ''; txt += ' ]'; return txt }; return r; }, getRaidLink: function (msg, user) { msg = msg.replace(/[\r\n]/g, ''); var m = /^((?:(?!]).)*)((?:(?!<\/?a[ >]).)*(?: ].*)?)$/i.exec(msg); if (m) { var raid = SRDotDX.getRaidDetails(m[3], user); if (raid) { raid.ptext = m[1] ? m[1] : ""; raid.url = m[2].replace(/kv_&/ig, '&kv_'); raid.ntext = m[4] ? m[4] : ""; return raid; } } return null }, getPastebinLink: function (msg, user) { msg = msg.replace(/[\r\n]/g, ''); var m = /^((?:(?!]).)*)?http:\/\/pastebin\.com\/\w{8}((?:(?!<\/?a[ >]).)*(?: ].*)?)$/i.exec(msg); if (m) { var pb = SRDotDX.getPasteDetails(/http:\/\/pastebin\.com\/\w{8}/i.exec(m[0]) + '', user); if (typeof pb != 'undefined') { pb.ptext = m[1] || ''; pb.ntext = m[2] || ''; } return pb; } else return null; }, getStatText: function (stat) { stat = stat.toLowerCase(); var r = ''; if (stat == '?' || stat == 'Unknown') return 'Unknown'; if (stat.indexOf('s') > -1) r = 'Stamina'; if (stat.indexOf('h') > -1) r += (r != '' ? (stat.indexOf('e') > -1 ? ', ' : ' and ') : '') + 'Honor'; if (stat.indexOf('e') > -1) r += (r != '' ? ' and ' : '') + 'Energy'; return r; }, getTimestamp: function () { var date = new Date(); return '(' + ('0' + (new Date().getHours())).slice(-2) + ':' + ('0' + (new Date().getMinutes())).slice(-2) + ')'; }, refreshRaidTab: function () { var el_out = document.getElementById('raid_list'); var el_in1 = document.getElementById('mainRaidsFrame'); var el_in2 = document.getElementById('topRaidPane'); el_out.style.height = (el_in1.offsetHeight - el_in2.offsetHeight - 8) + 'px'; }, isFirefox: navigator.userAgent.indexOf('Firefox') > 0, gui: { setMessagesCount: function () { var num = active_user.unreadWhispersCount() + active_user.unreadShoutsCount(); var ele = document.getElementById('profile_control_unread_message_count'); ele.innerHTML = num; ele.style.display = num == 0 ? 'none' : 'block'; setTimeout(SRDotDX.gui.setMessagesCount, 60000); }, gotoRoom: function (num) { var numInt = parseInt(num); if (isNaN(numInt) || numInt < 1 || numInt > 13) holodeck.chatWindow().activateRoomChooser(); else { var roomObj = JSON.parse('{"type": "game", "xmpp_name": "138636-dawn-of-the-dragons-' + num + '", "name": "Dawn of the Dragons - Room #' + ('0' + num).slice(-2) + '", "id": "138636-dawn-of-the-dragons-' + num + '"}'); holodeck.joinRoom(roomObj); } }, httpCommand: function (url) { window.open(url); }, applySidebarUI: function (mode) { //-1:remove, 0:redraw, 1:create, 2:recreate if(mode == -1 || mode == 2) { document.getElementById('dotdx_sidebar').remove(); if (mode == -1) SRDotDX.gui.chatResize(SRDotDX.config.chatSize), document.getElementsByClassName("links_connect")[0].setAttribute('colspan', '2'); } if(mode > -1) { var sbElemObj, sbElemTxt, i, il; if(mode > 0) { if (mode == 1) document.getElementsByClassName("links_connect")[0].setAttribute('colspan', '3'); if (!SRDotDX.config.sbRightSide) document.getElementById('chat_container').style.marginLeft = "0px"; SRDotDX.c('td').set({id: 'dotdx_sidebar', style: 'width: ' + (SRDotDX.config.sbSlim ? '40' : '70') + 'px'}) .html('
', true) .attach('after', SRDotDX.config.sbRightSide ? 'chat_container_cell' : 'gameholder'); SRDotDX.gui.chatResize(SRDotDX.config.chatSize); } if(mode == 0) { sbElemTxt = '[' + document.getElementById('options_sbConfig').value + ']'; sbElemObj = JSON.parse(sbElemTxt); SRDotDX.config.sbConfig = sbElemObj; SRDotDX.config.save(false); } else sbElemObj = SRDotDX.config.sbConfig; var slim = SRDotDX.config.sbSlim ? " slim" : ""; var sLen = SRDotDX.config.sbSlim ? 0 : 1; var stopper = parseInt((document.getElementById('gameholder').offsetHeight - 36) / 26); var sName = [["Ely","Elyssa"],["Kas","Kasan"]]; var sidebarElemHtml = '
' + sName[SRDotDX.config.serverMode - 1][sLen] + '
', sbCmd = "", sbCls = 'class="'; for(i = 0, il = sbElemObj.length; i < il; ++i) { if (i == stopper) break; if (typeof sbElemObj[i] == 'undefined' || sbElemObj[i] == null) { sidebarElemHtml += '
'; continue } if(sbElemObj[i].type == 'jtxt') { sidebarElemHtml += '
'; continue } if(sbElemObj[i].type == 'label') { sidebarElemHtml += '
'; if (SRDotDX.config.sbSlim) { if (typeof sbElemObj[i].sname == 'undefined') sidebarElemHtml += sbElemObj[i].name.substring(0, 4); else sidebarElemHtml += sbElemObj[i].sname; } else sidebarElemHtml += sbElemObj[i].name; sidebarElemHtml += '
'; continue; } if(typeof sbElemObj[i].cmd != 'undefined') { if (sbElemObj[i].cmd.charAt(0) == '/') sbCmd = 'SRDotDX.gui.chatCommand(\'' + sbElemObj[i].cmd + '\')'; else if (sbElemObj[i].cmd.indexOf('://') > 2) sbCmd = 'SRDotDX.gui.httpCommand(\'' + sbElemObj[i].cmd + '\')'; else sbCmd = sbElemObj[i].cmd.replace("'", "\'"); } if(typeof sbElemObj[i].color != 'undefined') { if (sbElemObj[i].color.charAt(0).toLowerCase() == 'b' && sbElemObj[i].color.toLowerCase() != 'black') sbCls += 'b'; else if (sbElemObj[i].color.charAt(0).toLowerCase() == 'g') sbCls += 'g'; else if (sbElemObj[i].color.charAt(0).toLowerCase() == 'r') sbCls += 'r'; else if (sbElemObj[i].color.charAt(0).toLowerCase() == 'y') sbCls += 'y'; } sidebarElemHtml += ''; sbCmd = ""; sbCls = 'class="'; } SRDotDX.c('#dotdx_sidebar_container').html(sidebarElemHtml, true); } }, toggleSlimSB: function () { if (SRDotDX.config.sbEnable) { this.applySidebarUI(2); this.chatResize(); } }, restoreDefaultSB: function () { document.getElementById('options_sbConfig').value = '{"type":"label","name":"Camps"},\n\ {"type":"btn","name":"GoC","cmd":"/camp goc"},\n\ {"type":"btn","name":"MaM","cmd":"/camp mam"},\n\ {"type":"btn","name":"GD","cmd":"/camp gd"},\n\ {"type":"label","name":"Tiers"},\n\ {"type":"btn","name":"Bella","cmd":"/raid bella"},\n\ {"type":"btn","name":"Xerk","cmd":"/raid xerkara"},\n\ {"type":"btn","name":"Tisi","cmd":"/raid tisi"},\n\ {"type":"label","name":"Join"},\n\ {"type":"btn","name":"Farms","cmd":"SRDotDX.gui.quickImportAndJoin(\'farm:nnm\')"},\n\ {"type":"label","name":"Utils"},\n\ {"type":"btn","color":"g","name":"(Re)Load","sname":"Reld","cmd":"SRDotDX.reload()"},\n\ {"type":"btn","color":"r","name":"Unload","sname":"Kill","cmd":"/kill"},\n\ {"type":"btn","name":"Room 1","sname":"CR1","cmd":"SRDotDX.gui.gotoRoom(1)"},\n\ {"type":"btn","name":"Room 2","sname":"CR2","cmd":"SRDotDX.gui.gotoRoom(2)"},\n\ {"type":"btn","name":"Room 8","sname":"CR8","cmd":"SRDotDX.gui.gotoRoom(8)"},\n\ {"type":"label","name":"Sheets","sname":"Help"},\n\ {"type":"btn","name":"Magic","sname":"Mag","cmd":"https://docs.google.com/spreadsheets/d/1O0eVSnzlACP9XJDq0VN4kN51ESUusec3-gD4dKPHRNU"},\n\ {"type":"btn","name":"Mount","sname":"Mnt","cmd":"https://docs.google.com/spreadsheet/ccc?key=0AiSpM5yAo8atdER2NEhHY3VjckRhdWctWV8yampQZUE"},\n\ {"type":"btn","name":"Gear","cmd":"https://docs.google.com/spreadsheet/lv?key=0AvP2qXrWcHBxdHpXZkUzTHNGNkVWbjE5c2VEZUNNMUE"},\n\ {"type":"label","name":"Raids"},\n\ {"type":"jtxt"},\n\ {"type":"btn","color":"g","name":"Join","cmd":"SRDotDX.gui.joinSelectedRaids(true)"},\n\ {"type":"btn","color":"b","name":"Import","sname":"Imp","cmd":"SRDotDX.gui.importFromServer()"},\n\ {"type":"btn","color":"y","name":"RaidBot","sname":"Bot","cmd":"SRDotDX.gui.switchBot()"}'; SRDotDX.gui.applySidebarUI(0); }, hideWC: function (init) { var offset; if(init) offset = SRDotDX.config.hideWChat ? -265 : 0; else { offset = SRDotDX.config.hideWChat ? 265 : -265; SRDotDX.config.hideWChat = !SRDotDX.config.hideWChat; document.getElementById('hideWCtxt').innerHTML = SRDotDX.config.hideWChat ? 'Show World Chat' : 'Hide World Chat'; SRDotDX.config.extSave(); } var gmWidth = document.getElementById('gameholder').offsetWidth + offset; document.getElementById('gameholder').style.width = gmWidth + "px"; document.getElementById('game').style.width = gmWidth + "px"; this.chatResize(); }, removeWC: function(rly) { if(rly) { SRDotDX.config.removeWChat = true; var li = SRDotDX.c('#wcbutton').ele(); li.parentNode.removeChild(li); if(!SRDotDX.config.hideWChat) { SRDotDX.config.hideWChat = true; this.hideWC(true); } SRDotDX.config.extSave(); } else { SRDotDX.config.removeWChat = false; SRDotDX.c('li').set({id: 'wcbutton', class: 'rate'}).html('' + (SRDotDX.config.hideWChat ? 'Show World Chat' : 'Hide World Chat') + '', false).attach('after', 'quicklinks_play_later_block'); SRDotDX.config.extSave(); setTimeout(activateGame,1000); } }, chatResize: function (chatSize) { var size = chatSize || SRDotDX.config.chatSize; SRDotDX.config.chatSize = size; var gmWidth = document.getElementById('gameholder').offsetWidth; var gmHeight = document.getElementById('gameholder').offsetHeight; var sbWidth = SRDotDX.config.sbEnable ? (SRDotDX.config.sbSlim ? 40 : 70) : 0; var hScroll = SRDotDX.config.hideScrollBar ? SRDotDX.gui.getScrollbarWidth() : 0; var chatWidthInc = size - 300; var chatCorr = chatWidthInc / 75 * 2; var overallWidth = (292 + gmWidth + sbWidth + chatWidthInc) + "px"; document.getElementById('maingame').style.width = overallWidth; document.getElementById('maingamecontent').style.width = overallWidth; document.getElementById('flashframecontent').style.width = overallWidth; document.getElementById('chat_container').style.width = size + "px"; document.getElementById('raid_list').style.width = 282 + hScroll + "px"; document.getElementById('raid_list').style.overflowY = hScroll ? 'scroll' : 'auto'; document.getElementById('chat_tab_pane').style.width = (size - 16) + "px"; document.getElementById('DotDX_chatResizeElems').innerHTML = '#kong_game_ui textarea.chat_input { width: ' + (size - 30) + 'px !important; }\ #kong_game_ui div#chat_raids_overlay { width: ' + (size - 8) + 'px }\ #kong_game_ui div#chat_raids_overlay > span { width: ' + (size - 18 - chatCorr) + 'px }\ #kong_game_ui div.chat_message_window { height: ' + (gmHeight - 254) + 'px !important; width: ' + (size - 18 + hScroll) + 'px; overflow-y: ' + (hScroll ? 'scroll' : 'auto') + '; }\ #kong_game_ui div#chat_rooms_container div.chat_tabpane.users_in_room { width: ' + (size - 22 + hScroll) + 'px }\ div#dotdx_sidebar_container { height: ' + (gmHeight - 5) + 'px; ' + (SRDotDX.config.sbRightSide ? "text-align: left; padding-left: 1px; padding-right: 6px;" : "text-align: left; margin-left: 2px; padding-left: 6px") + ' }'; }, helpBox: function(boxId, magId, raidId, mouseOut) { var boxDiv = document.getElementById(boxId); var magSpan = document.getElementById(magId); var i, il; if(mouseOut) { SRDotDX.gui.CurrentRaidsOutputTimer = setTimeout(function(){document.getElementById('chat_raids_overlay').className = "";}, 1500); if(magSpan) { magSpan.style.maxWidth = "0"; setTimeout(function(){ document.getElementById(magId).innerHTML = "" }, 100); } } else { var info = SRDotDX.config.raidList[raidId], msg = 'Unknown', mWidth = "0", raid; if (typeof info !== 'object') msg = 'Raid not in db (removed?)'; else if (typeof SRDotDX.raids[info.boss] == 'undefined') { msg = '' + info.boss.capitalize().replace(/_/ig, ' ') + ' on ' + ['Normal', 'Hard', 'Legendary', 'Nightmare'][info.diff - 1] + ''; } else { var magE = info.magic.reduce(function(a,b){return a+b;}); raid = SRDotDX.raids[info.boss]; var diff = info.diff - 1; if (magE) { var magI = ""; for (i = 0, il = raid.nd; i < il; ++i) magI += ' '; magSpan.innerHTML = magI; mWidth = (raid.nd * 18 + 10) + "px"; } msg = '' + raid.name + ' on ' + ['Normal', 'Hard', 'Legendary', 'Nightmare'][diff] + '
'; msg += (raid.type === '' ? '' : raid.type + ' | ') + SRDotDX.raidSizes[raid.size].name + ' Raid' + (diff == 3 ? ' | AP' : ''); var size = raid.size < 15 ? 10 : raid.size; var fs = raid.health[diff] / (raid.size == 101 ? 100 : raid.size); if (typeof raid.lt !== 'object') { var epicRatio = SRDotDX.raidSizes[size].ratios; if (size === 15) msg += '
fs: ' + SRDotDX.util.getShortNum(fs) + ' | 65d: ' + SRDotDX.util.getShortNum(fs * epicRatio[0]) + ' | 338d: ' + SRDotDX.util.getShortNum(fs * epicRatio[9]) + ' | 375d: ' + SRDotDX.util.getShortNum(fs * epicRatio[10]); else msg += '
fs: ' + SRDotDX.util.getShortNum(fs) + ' | 1e: ' + SRDotDX.util.getShortNum(fs * epicRatio[0]) + ' | 2e: ' + SRDotDX.util.getShortNum(fs * epicRatio[2]) + ' | 2/3e: ' + SRDotDX.util.getShortNum(fs * epicRatio[3]); //msg += '
2e: ' + epicRatio[2] + ' | 3e: ' + epicRatio[4] + ' | fs: ' + fs; } else if (typeof raid.lt === 'object') { if(raid.lt[0] !== 'u') { var ele = SRDotDX.lootTiers[raid.lt[diff]]; var step = SRDotDX.config.chatSize === 450 ? 6 : (SRDotDX.config.chatSize === 375 ? 5 : 4); var steplow = step - 1; var tiers = ele['tiers']; var epics = ele['epics']; var best = ele['best']; var e = ele['e'] ? 'E' : ''; var text = ''; var tier; for(i = tiers.length-1, il = -1; i > il; --i) { tier = (i % step == steplow ? '' : '' ) + epics[i]+ e + ':' + SRDotDX.util.getShortNumMil(tiers[i]); text = tier + text; } msg += ' \ \ \ \ \ ', false); if (raid.stat === 'H') parentTable.attach('to', 'FPXRaidFilterWhatGuild'); else if (raid.stat === 'ESH') parentTable.attach('to', 'FPXRaidFilterWhatSpecial'); else if (raid.size < 50) parentTable.attach('to', 'FPXRaidFilterWhatSmall'); else if (raid.size === 50) parentTable.attach('to', 'FPXRaidFilterWhatMedium'); else if (raid.size === 100) parentTable.attach('to', 'FPXRaidFilterWhatLarge'); else if (raid.size === 250) parentTable.attach('to', 'FPXRaidFilterWhatEpic'); else if (raid.size === 500) parentTable.attach('to', 'FPXRaidFilterWhatColossal'); else if (raid.size === 800) parentTable.attach('to', 'FPXRaidFilterWhatGigantic'); for(var j = 0; j < 4; ++j) { cb = document.getElementById('cb_filter_' + raid.id + '_' + j); cb.checked = !SRDotDX.config.filters[sm][raid.id][j]; cb.addEventListener("click", function(){ var s = SRDotDX.config.serverMode - 1; var raidId = this.id.substr(10).slice(0,-2); var diffIndex = parseInt(this.id.slice(-1)); SRDotDX.config.filters[s][raidId][diffIndex] = !this.checked; var ele = document.getElementById('DotDX_filters'); var eletxt = ele.innerHTML; var reg = new RegExp('.DotDX_fltChat_' + raidId + '_' + diffIndex + ', ', 'g'); if(SRDotDX.config.filterChatLinks) { if (!this.checked && !reg.test(eletxt)) eletxt = '.DotDX_fltChat_' + raidId + '_' + diffIndex + ', ' + eletxt; else if (this.checked) eletxt = eletxt.replace(reg, ''); } reg = new RegExp('.DotDX_fltList_' + raidId + '_' + diffIndex + ', ', 'g'); if(SRDotDX.config.filterRaidList) { if (!this.checked && !reg.test(eletxt)) eletxt = '.DotDX_fltList_' + raidId + '_' + diffIndex + ', ' + eletxt; else if (this.checked) eletxt = eletxt.replace(reg, ''); } ele.innerHTML = eletxt; var f = SRDotDX.config.filters[s][raidId]; document.getElementById('cb_filter_' + raidId + '_all').checked = !f[0] && !f[1] && !f[2] && !f[3]; SRDotDX.config.save(false); }); } cb = document.getElementById('cb_filter_' + raid.id + '_all'); cb.checked = !(SRDotDX.config.filters[sm][raid.id][0] && SRDotDX.config.filters[sm][raid.id][1] && SRDotDX.config.filters[sm][raid.id][2] && SRDotDX.config.filters[sm][raid.id][3]); cb.addEventListener('click', function(){ var s = SRDotDX.config.serverMode - 1; var raidId = this.id.substr(10).slice(0,-4), reg; var elem = document.getElementById('DotDX_filters'); var ele = elem.innerHTML; var chk = this.checked; for(j = 0; j < 4; ++j) { document.getElementById('cb_filter_' + raidId + '_' + j).checked = chk; SRDotDX.config.filters[s][raidId][j] = !chk; reg = new RegExp('.DotDX_fltChat_' + raidId + '_' + j + ', ', 'g'); if (SRDotDX.config.filterChatLinks) { if (!chk && !reg.test(ele)) ele = '.DotDX_fltChat_' + raidId + '_' + j + ', ' + ele; else if (chk) ele = ele.replace(reg, ''); } reg = new RegExp('.DotDX_fltList_' + raidId + '_' + j + ', ', 'g'); if (SRDotDX.config.filterRaidList) { if (!chk && !reg.test(ele)) ele = '.DotDX_fltList_' + raidId + '_' + j + ', ' + ele; else if (chk) ele = ele.replace(reg, ''); } } elem.innerHTML = ele; SRDotDX.config.save(false); }); } }, toggleFiltering: function () { var sm = SRDotDX.config.serverMode - 1; var rdObj = Object.keys(SRDotDX.raids); var fltObj = Object.keys(SRDotDX.config.filters[sm]); var query = '.DotDX_filter_dummy_0 ', i, il, frcId; if(!SRDotDX.util.isArrEq(rdObj, fltObj)) { for(i = 0, il = rdObj.length; i < il; ++i) if (typeof SRDotDX.config.filters[sm][rdObj[i]] === 'undefined') SRDotDX.config.filters[sm][rdObj[i]] = [false, false, false, false]; for(i = 0, il = fltObj.length; i < il; ++i) if(rdObj.indexOf(fltObj[i]) < 0) delete SRDotDX.config.filters[sm][fltObj[i]]; console.log('[DotDX] Filters array has been altered!'); } if(SRDotDX.config.filterChatLinks) { frcId = '.DotDX_fltChat_' for(i = 0, il = rdObj.length; i < il; ++i) { if (SRDotDX.config.filters[sm][rdObj[i]][0]) query = frcId + rdObj[i] + '_0, ' + query; if (SRDotDX.config.filters[sm][rdObj[i]][1]) query = frcId + rdObj[i] + '_1, ' + query; if (SRDotDX.config.filters[sm][rdObj[i]][2]) query = frcId + rdObj[i] + '_2, ' + query; if (SRDotDX.config.filters[sm][rdObj[i]][3]) query = frcId + rdObj[i] + '_3, ' + query; } } if(SRDotDX.config.filterRaidList) { frcId = '.DotDX_fltList_'; for(i = 0, il = rdObj.length; i < il; ++i) { if (SRDotDX.config.filters[sm][rdObj[i]][0]) query = frcId + rdObj[i] + '_0, ' + query; if (SRDotDX.config.filters[sm][rdObj[i]][1]) query = frcId + rdObj[i] + '_1, ' + query; if (SRDotDX.config.filters[sm][rdObj[i]][2]) query = frcId + rdObj[i] + '_2, ' + query; if (SRDotDX.config.filters[sm][rdObj[i]][3]) query = frcId + rdObj[i] + '_3, ' + query; } } SRDotDX.c('#DotDX_filters').html(query + '{display: none !important}', true); }, switchServer: function () { var sm = SRDotDX.config.serverMode; SRDotDX.config.serverMode = sm === 1 ? 2 : 1; this.toggleFiltering(); this.createFilterTab(); this.applySidebarUI(0); SRDotDX.c('#raidsBossFilter').ele().value = SRDotDX.config.lastFilter[SRDotDX.config.serverMode - 1]; this.updateFilterTxt(SRDotDX.config.lastFilter[SRDotDX.config.serverMode - 1], true); //var grObj = {room: holodeck._chat_window._rooms_by_type["guild"]._room}; //holodeck._chat_window.leftRoom(grObj); //holodeck._chat_window.bootstrapChat(); SRDotDX.c('#DotDX_serverModeRaids').html('#kong_game_ui p.DotDX_sid_' + (SRDotDX.config.serverMode == 2 ? '1' : '2') + ' {display: none !important}', true); this.scrollChat(); SRDotDX.config.save(false); }, applyKongBar: function() { var styleElem = SRDotDX.c('#DotDX_kongBar'); if(SRDotDX.config.slimKongBar) styleElem.html('#header_logo, #new_nav_wrapper .main_navigation {display:none !important} #header {height:27px !important}',true); else styleElem.html('',true); }, load: function() { if (typeof holodeck._tabs.addTab === 'function' && document.getElementById('chat_rooms_container') !== null) { SRDotDX.c('li').set({class: 'control'}).html(''+(SRDotDX.config.slimKongBar?'Show':'Hide')+'',true).on('click',function(e){e.preventDefault(); e.stopPropagation(); SRDotDX.config.slimKongBar=!SRDotDX.config.slimKongBar; e.target.innerHTML = (SRDotDX.config.slimKongBar?'Show':'Hide'); SRDotDX.gui.applyKongBar(); SRDotDX.config.save(false); return false}).attach('before',document.getElementById('nav_welcome_box').children[5]); SRDotDX.c('style').set({type: "text/css", id: 'DotDX_kongBar'}).attach('to', document.head); SRDotDX.c('style').set({type: "text/css", id: 'SRDotDX_botClass'}).text('.bot{display:' + (SRDotDX.config.hideBotLinks ? 'none !important' : 'block') + '}').attach('to', document.head); SRDotDX.c('style').set({type: "text/css", id: 'SRDotDX_raidClass'}).text('.DotDX_raid {display:' + (SRDotDX.config.hideRaidLinks ? 'none !important' : 'block') + '}').attach('to', document.head); SRDotDX.c('style').set({type: "text/css", id: 'SRDotDX_visitedRaidClass'}).text('.DotDX_visitedRaid{display: ' + (SRDotDX.config.hideVisitedRaids ? 'none !important' : 'block') + '}').attach('to', document.head); SRDotDX.c('style').set({type: "text/css", id: 'DotDX_forum'}).text('div.game_page_wrap {padding-top: 16px; margin-top: 14px !important; background: #333 !important; display: ' + (SRDotDX.config.hideKongForum ? 'none' : 'block') + '}').attach('to', document.head); SRDotDX.c('style').set({type: "text/css", id: 'DotDX_details'}).text('div.game_details_outer {margin-top: 14px !important; width: 900px !important; border: solid 20px #333 !important; display: ' + (SRDotDX.config.hideGameDetails ? 'none' : 'block') + '}').attach('to', document.head); SRDotDX.c('style').set({type: "text/css", id: 'DotDX_filters'}).text('.DotDX_filter_dummy_0 {display: none !important}').attach('to', document.head); SRDotDX.c('style').set({type: "text/css", id: 'DotDX_serverModeRaids'}).text('#kong_game_ui p.DotDX_sid_' + (SRDotDX.config.serverMode == 2 ? '1' : '2') + ' {display: none !important}').attach('to', document.head); SRDotDX.c('style').set({type: "text/css", id: 'DotDX_chatResizeElems'}).text('#kong_game_ui textarea.chat_input { width: 270px !important; }\ #kong_game_ui div#chat_raids_overlay { width: 292px }\ #kong_game_ui div#chat_raids_overlay > span { width: 282px }\ div#dotdx_sidebar_container { ' + (SRDotDX.config.sbRightSide ? "text-align: left; padding-left: 1px" : "text-align: left; margin-left: 2px; padding-left: 6px") + ' }').attach('to', document.head); SRDotDX.gui.applyKongBar(); SRDotDX.gui.toggleFiltering(); var elemPositionFix = ""; if (SRDotDX.isFirefox) { elemPositionFix = " \ #kong_game_ui div#chat_room_tabs div a {padding: 3px 9px 4px 7px}\ #kong_game_ui div#lots_tab_pane ul li.tab div.tab_head {padding: 2px 7px 3px}\ #kong_game_ui span.generic {margin: 2px 6px 0}\ #kong_game_ui div#dotdx_status_div {padding: 5px 6px}\ #kong_game_ui div#chat_window_header div.dotdx_chat_overlay {margin-top: 4px; padding-top: 3px;}\ #kong_game_ui div#chat_raids_overlay {padding: 4px 0}\ #kong_game_ui div.chat_message_window p span.timestamp, #kong_game_ui div.chat_message_window p span.room {vertical-align: baseline}\ #kong_game_ui div.chat_message_window p {padding: 2px 5px 3px}\ #kong_game_ui div#lots_tab_pane ul li.tab.active div.tab_pane #raid_list .raid_list_item {padding: 2px;}\ .raid_list_item a.dotdxRaidListDelete {margin-top: 1px;}\ #kong_game_ui div.chat_message_window p span.ingamename {vertical-align: baseline;} \ "; } else { elemPositionFix = " \ #kong_game_ui div#chat_room_tabs div a {padding: 4px 9px 3px 7px}\ #kong_game_ui div#lots_tab_pane ul li.tab div.tab_head {padding: 3px 7px 2px}\ #kong_game_ui span.generic {margin: 3px 6px 0}\ #kong_game_ui div#dotdx_status_div {padding: 6px 6px 4px}\ #kong_game_ui div#chat_window_header div.dotdx_chat_overlay {margin-top: 3px; padding-top: 4px;}\ #kong_game_ui div#chat_raids_overlay {padding: 5px 0 3px}\ #kong_game_ui div.chat_message_window p span.timestamp, #kong_game_ui div.chat_message_window p span.room {vertical-align: text-top}\ #kong_game_ui div.chat_message_window p {padding: 3px 5px}\ #kong_game_ui div#lots_tab_pane ul li.tab.active div.tab_pane #raid_list .raid_list_item {padding: 3px 2px 1px;}\ #kong_game_ui div.chat_message_window p span.ingamename {vertical-align: top;} \ a.DotDX_RaidLink {vertical-align: middle}\ "; } SRDotDX.c('style').set({type: "text/css"}).text(" \ " + (SRDotDX.config.hideGameTitle ? "ul#gamepage_categories_list, .horizontal_ad, span#kong_game_bf_300x250_2_holder, div#gamespotlight, div#dealspot_banner_holder, div#kong_bumper_preroll_600x400-ad-slot, div#gamepage_header {display:none;} \ div.gamepage_header_outer, div.gamepage_header_inner, div.gamepage_header_outer h1 {height: 0 !important; padding: 0 !important; margin: 0 !important} \ #primarylayout .maincontent {padding: 6px 0 !important} \ " : "") + "div.raid_list_item.hidden, .DotDX_hidden, div.game_page_admindev_controls, div#subwrap, li#quicklinks_facebook, #shim {display:none !important} \ #primarywrap {background-image: none !important; background-color: transparent !important;} \ /* body {background-color: #" + SRDotDX.config.bckColor + " !important} */ \ #maingame { border: 1px solid transparent }\ #maingame .user_connection {margin-right: 10px;}\ div#game { overflow:hidden }\ div.upper_gamepage { background: transparent !important }\ .user_connection #chat_connected_indicator {margin-right: 10px}\ #FPXtt { position:absolute; display:block; } \ #FPXtttop { display:block; height:5px; margin-left:5px; } \ #FPXttcont { display:block; padding:2px 12px 3px 7px; margin-left:5px; background:#666; color:#fff; } \ #FPXttbot {display:block;height:5px;margin-left:5px;} \ .welcome-user>li {background-color: #710000}\ .welcome-user>li:hover {background-color: #423f3e}\ #kong_game_ui ul.main_tabs {height:30px; padding-left:7px}\ #kong_game_ui ul.main_tabs li.tab:first-child { margin-left: 1px; }\ #kong_game_ui ul.main_tabs li.tab a { padding: 6px 6px 4px; margin-top: 6px; border: 1px solid #000; margin-right: 3px; transition: all .3s;}\ #kong_game_ui ul.main_tabs li.tab a.active {margin-top: 5px; padding: 7px 6px 5px; border-radius: 5px 0 5px 0;}\ /*#kong_game_ui div#chat_tab_pane {height: 645px !important}*/ \ #kong_game_ui div#lots_tab_pane {padding: 8px; text-align: left; background-color: #777; height: 644px}\ #kong_game_ui div#lots_tab_pane div#dotdx_shadow_wrapper { width: 282px; border: 1px solid #222; box-shadow: 0 0 12px #111; height: 643px; overflow: hidden; background-color: #ddd;}\ #kong_game_ui div#chat_window { background-color: #fff; border: 1px solid #333; overflow: hidden; box-shadow: 0 0 8px 1px #333; }\ #kong_game_ui div#chat_window_header { height: 69px; box-shadow: 0 0 5px #333; position: relative; background-color: #ddd; }\ #kong_game_ui div#chat_window_header div.room_name_container { border-bottom: 1px solid #aaa; padding: 5px 7px 3px; margin: 0 !important; background-color: #e6e6e6; font-family: \"Trebuchet MS\", Helvetica, sans-serif }\ #kong_game_ui div#chat_window_header div.room_name_container .room_name { font-family: \"Trebuchet MS\", Helvetica, sans-serif; color: #333; text-shadow: 0 0 3px #ccc; }\ #kong_game_ui div.chat_actions_container span.kong_ico { font-size: 12px !important; }\ #kong_game_ui div.chat_actions_container ul.chat_actions_list { right: -1px; padding: 4px 0; border-radius: 5px 0 0 5px; top: 22px; border-color: #777; box-shadow: 0 0 8px #999; min-width: 122px; font-family: \"Trebuchet MS\", Helvetica, sans-serif; font-size: 11px; }\ #kong_game_ui div.chat_actions_container ul.chat_actions_list li { line-height: 20px; padding: 0 10px; border-width: 1px 0; border-color: #fff; border-style: solid; transition: box-shadow .5s;}\ #kong_game_ui .chat_actions_container .chat_actions_list li:hover { background-color: #f0f0f0; border-color: #bbb; color: #333; box-shadow: 0 0 4px #ddd; position: relative; }\ #kong_game_ui div.chat_actions_container span.btn_tools { height: 16px; line-height: initial !important; width: 20px; margin: 2px 3px; } \ #kong_game_ui div#chat_window_header div.dotdx_chat_overlay { border-top: 1px solid #bbb; overflow: hidden; white-space: nowrap; } \ #kong_game_ui div.chat_actions_container select { width: 92px; margin-top: 2px; font-family: \"Trebuchet MS\",Helvetica,sans-serif; font-style: italic; outline: none; background-color: #ddd; margin-right: 2px; } \ #kong_game_ui div#chat_room_tabs div a { margin: 0; background: none; text-decoration: none; font-family: \"Trebuchet MS\",Helvetica,sans-serif; font-size: 11px; font-style: italic; transition: text-shadow .2s; border-right: 1px dotted #aaa; } \ #kong_game_ui div#chat_rooms_container div.chat_tabpane.users_in_room { height: 89px; border: 1px solid #999; border-width: 1px 0; border-bottom-color: #888; box-shadow: inset 0 -2px 6px -4px #444; } \ #kong_game_ui div#chat_raids_overlay { display:none; position: absolute; overflow: hidden; bottom: 488px; left: 3px; background-color: #e0e0e0; font-family: \"Trebuchet MS\", Helvetica, sans-serif; font-size: 11px; border-width: 1px; border-style: solid; border-radius: 2px;}\ #kong_game_ui div#chat_raids_overlay.active { display: block } \ #kong_game_ui div#chat_raids_overlay > span { display: block; margin: 0 auto }\ #kong_game_ui div.chat_controls {border-top: 1px solid #000; position: relative; }\ #kong_game_ui div#lots_tab_pane ul { margin: 0px; padding: 0px; list-style-type: none; position: relative;} \ #kong_game_ui div#lots_tab_pane ul li.tab { float: left; height: 100%; } \ #kong_game_ui div#lots_tab_pane ul li.tab div.tab_head { font-family: \"Trebuchet MS\", Helvetica, sans-serif; font-size: 11px; font-style: italic; cursor: pointer; border-right: 1px dotted #aaa; transition: text-shadow .2s} \ #kong_game_ui div#lots_tab_pane ul li.tab div.tab_pane { display: none; border-top: 1px solid #888; width: 282px; height: 600px; padding-top: 2px;} \ #kong_game_ui div#lots_tab_pane ul li.tab.active div.tab_head { cursor: default; }\ #kong_game_ui div#lots_tab_pane ul li.tab.active div.tab_pane { position: absolute; display: block; left: 0px; }\ #kong_game_ui div#lots_tab_pane ul li.tab.active div.tab_pane #raid_list, \ #kong_game_ui div#lots_tab_pane ul li.tab.active div.tab_pane #paste_list {overflow-y: auto; font-family: \"Trebuchet MS\", Helvetica, sans-serif; font-size: 12px; height: 449px; border-top: 1px solid #aaa; box-shadow: 0 0 3px #ccc; background: -webkit-linear-gradient(left, #fff, #eee); background: -moz-linear-gradient(left, #fff, #eee);} \ #kong_game_ui div#lots_tab_pane ul li.tab.active div.tab_pane #raid_list .raid_list_item {cursor: pointer; position: relative; border-width: 1px 0; border-style: solid; border-top-color: transparent; border-bottom-color: #ddd;} \ #kong_game_ui div#lots_tab_pane ul li.tab.active div.tab_pane #raid_list .raid_list_item.hidden {display:none;} \ a.FPXImportLink, a.FPXDeleteLink { font: normal 10px Arial; border: 1px solid #c0c0c0; color:black; text-decoration:none; cursor:pointer; font-variant: small-caps; display: block; width: 40px; text-align: center; margin-right: 2px; background-color: #fff} \ a.dotdxRaidListDelete { font: 10px \"Trebuchet MS\"; text-decoration: none; cursor: pointer; margin-right: 2px; float:right; display: inline} \ a.DotDX_RaidLink {text-decoration:none;} \ div.DotDX_ListPanel {border-top: 1px dashed #999; margin-top: 2px; padding-top: 2px; }\ div.DotDX_ListPanel > span.raidListContent {font-style: italic} \ #kong_game_ui p.user_count.full { color: crimson; } \ #kong_game_ui div#lots_tab_pane a.pastebinlink {font: normal 11px Verdana; color:#333; text-decoration:none; cursor:pointer;} \ #kong_game_ui div#lots_tab_pane a.pastebinlink:hover { text-decoration: underline; color: black } \ #kong_game_ui div#lots_tab_pane span.pasteright, #kong_game_ui div#lots_tab_pane span.pasteleft {font: normal 11px Verdana; color: #333} \ #kong_game_ui div#lots_tab_pane span.pasteright {float:right; padding-right: 6px} \ #kong_game_ui div#lots_tab_pane span.pasteleft {float:left} \ #kong_game_ui div.chat_message_window { position: relative; margin: 0; } \ #kong_game_ui div.chat_message_window p {border-width: 1px 0; border-style: solid; margin: 0;} \ #kong_game_ui div.chat_message_window p.DotDX_raid, #kong_game_ui div.chat_message_window p.whisper, #kong_game_ui div.chat_message_window p.script { border-top-color: #e5e5e5; }\ #raid_list .raid_list_item.DotDX_N:hover {border-bottom-color: rgb(138, 179, 137); background: -webkit-linear-gradient(top,#CBE7C4,#F3FAF2); background: -moz-linear-gradient(top,#CBE7C4,#F3FAF2);} \ #raid_list .raid_list_item.DotDX_H:hover {border-bottom-color: rgb(173, 173, 104); background: -webkit-linear-gradient(top,#F7F0C8,#FCFBF8); background: -moz-linear-gradient(top,#F7F0C8,#FCFBF8);} \ #raid_list .raid_list_item.DotDX_L:hover {border-bottom-color: rgb(177, 135, 128); background: -webkit-linear-gradient(top,#F3D7D1,#FCF7F7); background: -moz-linear-gradient(top,#F3D7D1,#FCF7F7);} \ #raid_list .raid_list_item.DotDX_NM:hover {border-bottom-color: rgb(169, 154, 187); background: -webkit-linear-gradient(top,#DDD4E2,#F4F0F7); background: -moz-linear-gradient(top,#DDD4E2,#F4F0F7);} \ #kong_game_ui div.chat_message_window div.cntrNotify {border-width: 0px 0px 1px; border-style: solid;}\ #kong_game_ui div.chat_message_window p.whisper {margin:0; border-bottom-color: #A1B4BE; background: -webkit-linear-gradient(top,#DCE8F1,#EFF4F7); background: -moz-linear-gradient(top,#DCE8F1,#EFF4F7); } \ #kong_game_ui div.chat_message_window p.script {border-bottom-color: rgb(165, 165, 165); background: -webkit-linear-gradient(left,#f3f3f3,#fff); background: -moz-linear-gradient(left,#f3f3f3,#fff);} \ #kong_game_ui div.chat_message_window p.script hr { height: 1px; border: 0; background: #ccc; margin: 4px 0 3px; }\ #kong_game_ui div.chat_message_window p.script span { font-family: \"Trebuchet MS\", Helvetica, sans-serif; font-size: 11px} \ #kong_game_ui div.chat_message_window p.script span .title { text-decoration: none; font-size: 12px; font-weight: bold; color: #222 } \ #kong_game_ui div.chat_message_window p.script span.bold {font-weight: bold}\ #kong_game_ui div.chat_message_window p span.separator { margin-right: 0px; display:inline; float: none} \ #kong_game_ui div.chat_message_window p span.username { color: rgb(39, 101, 148); text-decoration: none; cursor: pointer; display:inline; float: none } \ #kong_game_ui div.chat_message_window p span.username.ign { color: rgb(38, 116, 34); }\ #kong_game_ui div.chat_message_window p span.username.is_self { color: rgb(151, 49, 49); }\ #kong_game_ui div.chat_message_window p span.username:hover { text-decoration: underline } \ #kong_game_ui div.chat_message_window p span.timestamp {font-style: italic; font-size: 9px; color: #666;} \ #kong_game_ui div.chat_message_window p span.ingamename {font-style: italic; font-size: 11px; color: #666;} \ #kong_game_ui div.chat_message_window p span.message {line-height: 16px; word-wrap: break-word; display:inline; float: none} \ #kong_game_ui div.chat_message_window p span.message a { text-decoration: none; color: #444; font-style: normal } \ #kong_game_ui div.chat_message_window p span.message a:hover { color: #000; text-shadow: 0 0 6px #888; } \ #kong_game_ui div.chat_message_window p span.message a.chat_link:hover { text-shadow: 0 0 4px #F5C68A; text-decoration: none; } \ #kong_game_ui div.chat_message_window p span.message a.chat_link { color: #946A3D; } \ #kong_game_ui div.chat_message_window p span.message a.reply_link {font-style: italic} \ #kong_game_ui div.chat_message_window p > span.slider {position: absolute; display: inline-block; border: 1px solid #777; border-left: 0; height: 24px; left: -2px; margin-top: -5px; border-radius: 0 5px 5px 0; background: #eee; box-shadow: 0 0 7px #777; transition: max-width .3s; overflow: hidden; white-space: nowrap;}\ #kong_game_ui div.chat_message_window p > span.slider > span.magic, div.raid_list_item span.DotDX_extMagics > span {background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABPAAAAAQCAYAAACYyIGSAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAOvAAADrwBlbxySQAAABh0RVh0U29mdHdhcmUAcGFpbnQubmV0IDQuMC41ZYUyZQAA6mpJREFUeF7EvWWUJMe1rq1mZmauZqpmZmZmZmammYaZnh7oYWZmBg1qxDRiRgssWZLZkm3ZgueLKsm+Psf3uz/O+eFc612RlZWZFRm5Y+/33RWR+ZBYYv+X4CcooayohbKSNoqKamiqmaOuaoqigqb4TlGUChhq+KOt6ommipPY10jsp/rzsQ+hoPAQ2koK6Coqoim2SxSUcFBQRFtR9p0CqgrKZIttceJ7d7GfnihVxediXSWKdJUFVKh21KPbVU9sUxCfH5KjTF+RNon2P3/nH+j1MqZcR+GfnxUeUkBJTUlAAQVlRdR0xfnFuZVVlMX3KqIOymjYqKJqpoaavhoqaiooinr843jZ9akoKuNkpEtGqh3dDY60F5nTm2NKUYIxQRIdtDRU5dfykLhWefnzsfLfF9eqJLYrKol9VEUbquqgqGIgoCW2aYo6qcmhqKQs9lUS51D8Cf9yjv8XdA2N8AsN/7ft95enub9+kntrJ7i7NM7tNSPcXhzmzppR+bZHN0zz+KYVPLl1gWd2LPLsnrU8u38jzx7ayrNHdqKiqYyatmgXHRU5NPWUCWrUZfBsIGd+kc/pL1KoPmqNU5oq5gFq6FqqoSxrZ3VxvQLaasroinbRE9empyK+F2gzNORiVAAfNhfzWXkuxyROpGuoEayqgo2yurAfcX9Uf4KRsC1rBVU8H9ImVNhaorI2+Ur6VIi2a1E0pEfFmCFVPbbqWbDTyIanQ+2YMdEnW1GPmIc00NYykENNU08OdQFb51Yyis4ytvITOqa+JCT+JHqWGWgbhqChY4eaugbqApqa2jilpOFaXIJnbQMB49N4d/Tg1dKGV0MLbmWVOCamYB0QiLlEgom1LSZmphiZmIjSHGNjU6y1FXEU9uqup4jUUIE4cwXqvBVYzFXizj4rPvtwkl9/9S5P3z3GoU29XNnux95mFQZCFClwVCBZT4dCQ31qjI1pNTVm0NKECSsThs0MmTQzoFdHixZ1NepE2+UrKpEibCZRlBGi9BJ9SNfIDH0TC3QEdE1s0DK0FLZvjIahFVpG9mga2At7txH9QgdldX3UdY3Q0BPf6xkKexT3I6ERx6x+JIUTeJatxCl3BLvkdiwjyjH1y8DQPR59p3B0bAPQtvBCw0SCuoGjsBUbVLStMNJUQGqpwEKWMRuKjehPNmJNjTdHu1040WDEvioj1hYa0xamSmeEGkcarTgqtqW6KOJp/F/70P8fZH1NBkVxvf8d7g6BeDgEIbH1x8XWFzsLV1zt/XG28UFPxxgLY3tigrOoL+8iObKA2JAs3OwDMNIXbaapT22wN6XBvvRE+tMd4U97mB91wT6UB3pRLPWg0N+DfD938nzdyP1X+LiR4+tKTFI50/OHOH/1AXef+AWnL7/I8s4brNl8kdWbzrFq03lGZw+xYcfDHDrzLGevv8LJiy8ys3CM7MIO/DQUCdNSJEFHkVx9JcoNlGk0VqbfVJl5axWWrFTYbqfMEScVTjqoctFRjdsuGtyXqPOIs7qwEwM6XC3pComnPqSJlIQsonISKV/MpGFFP7m1LdQUJzM4EUV6cwSFnb3ERiXh6W6CqZk2/hb6uBjrEmJjQJ6HOTV+4lyhNozG2DIZZ8twrPCFkXY0iW2VgVaU+FuS721OprsZSc4mpORtoTHtGPW5B0kqWEbTxlP4Py0UhN9TUNPlIS1DlPQdUDcNRss8Bk3LcLGPDwqizyooqfx0j4Utq+rqoWpqjV1GFpbxKdin52CdlIa2iw+K6jooaYjYJPqrqpbOv/lNFQF/NeGPRAyQ24uAooCH8C+2wsfLPv/r/v+Kqh13iRvbRuHcefKKt1FRtIPavtP4ZQziFT8mfJ2op4gLyuoG2PmVktR0Fp+kMeEzLeR+PP3ALgLXLeHS1opJZiZ60gA0rK1FXYXf/9lGVdVU/4vN/gMqKirC9uYYiOxlRXSraONRSoNmaQ0bpTpkmhKxLkPxz2V58Mp/rteGTNERMcLIYB/TvTVMdJYy3lXJdE81440Z9JWEsaY9mfXdqYyWBTFUGsy67jR6xubI3vguhZvfYWD/Sz+1laiLhobMJ6rL1w0MDDA3N0dDfDYzMsTawhJDA2OMjYS/s7KX11tPVx8T8VlXVwd7CzNhe360RwXzZHs1p719+SAlgV+mJ/NCgJS7rv48GGlnc14800WppFtZsbIgEU+JA1N9fYx1dTFYW0d+cjJWxkYYamvjaG1FYVgYFaGhNIdH0BwWTrKnB152tvjY25IXEEBPejrvPjvP8b3dJMfGEh8dxr0zg1ze18W6yQbaKgvJS00nISKJEL9IfNyCcXXwxdbSDQsTR8yN7bDUMMZU3RALTROsdc2x0bPEUtsMM3UjTEUMMlMTvl7VQEBcr4Cpyk+lfF3Yhr6mOYZaFphoWWEqYKhpIWAu/KLFT9CylMNYQF/sZ6hlLj9GT8NEwIxQbU3CNNWJ11ajSkePM3q1fCU9z1LeDBs0ArnmN8ej1n1sM4hglZYHuzTC6LCvYljPn0ojDaL8nImVOhEjdSYsOYWQAAkRcXGE+bsQ7i/WA12JDHYjOsSdeIGEUA9iw71IiPIhN9aXLa7utFhZM27nwCF3T2YdHFnnLCFM34AsE1MOim21FlZUCxuY9XBjMS6IVT4erHZ0Jk/EwKS01dS1XsLKJoqwiDnsnJKxsIlDz8gPa/t0rB0yiEteJix6Eb+gFvE5joCQHoord6KtrU+IuM9rHB3Y4OXOsxkR3C1O4OH2Qo51FbKuKovNNZmca87g+YZ01oZKaQ70Y427K4UOtlS7u+AWlotXRjsO/onUXnycgKw2PMOyiCzuJTi1Egc3P/ziM0hvasfVyx+fsCgcnCRYiWuWSNyIF7aYYWNFtq0NhdaWVNla0iEwa29JprUz5Xaiba2dCLGSEGvtQpytCyX29jTaWVFjZ4OzqQlB1hZIzU2JMhcx0MSARQsjimxNCLA2wtfehEB3S9xdzPH2tcXFwwpbFwusnSxxdLPD0VyCi4kPQU5JpHn30hG/lurCGSbGj5GT00OiewehDsKne+fgaRdO9egChT2iD9eNklLcia1rIEFR6RRVtTM4uciO/SdYWL+L0roeIlKKCI7PpblvmtS0bOKTszGydkPX1FHwBFu0RWz0domiNlFwHccobGxCsbYOFWUYtrbhoo2CMDfzETxHgr6+rejzVujqWaNvYCN8gR3mps5YivpbW3hgb+OHt3sCUu80UmM7KM2eJ13US+IYgLdrCKGeAYS4emIsftdY8AcTQweMZOcJexT3xl8Qv/ILgkc+pfbwV4xc+SNuI+8K/9+Bib3wq641mMevwr32eVy7H2BTcxXjuPMYxfaTN3aEvNHD1K8+S+u6CzQtnhW8pRzP9GEGt11lfM/DTO17mOn9D7P62G1mRDl78Cb9my/QtWobEzOrWd64lpUrx+nsbqeytpXyasEfy+fIqV4lby8NAyM0BdfTsbQWpcVPMLFG29KeOS9PhiVeLLtLuR0awF5HL0KMPchwCeRCWDCPFoZxNCSKVsFTfMz8kFoF0yE41XafBMIsAkhvmyZ9Ygep22/QsO86W5/7lPmnP+PE819y852veeyDP/OqKK+98Dvmn/gTeTd+T/trf6b85W/IvfcHTkXZERAYjqNfBJKABBKbmuk8uYP+U9vIrsynQPjIxu4BiutayKqsIz6rkC0Lc1xYnmDh7GYO7Fwlx8Fdqzm0Z5Eje9dwZN8Sh/cusn/nPHu3zbJv+xy7Nk1xeNeC2G8VR8X3xw6s49j+tUy7pDDrmsTB+DwuFAm9UFrKpfY23ji6i0/vnefj22f48smLfHBgklfXNPDW6go2JvryxkgErw2EkNzVT2rzEAktXaT3iHoOD1M9PkbRxDj5E2OMbp+haHqU0eVxOtZM0C80TcXkGI3TIxzeN0pS1X0CE0/jn3wdZ+/txOS9TETZu6TUvUZJ76dk1b/BxqN/4uy5v3Lr4jecOvAbVo5/StfwB5RXPcavP/+Uv37zRw5s7mBUxMvy3AARS1yIFDojyN+aAG9rEadMcXHUFzauh7XgTGbGWliZ6goOqcl/eokQsSNBS4NcgUYRS1YJPTGpq02D+FysrUG8KMPE9mARp5P1Dak2MafK3I48awnBVl6Er3iC+oq36Et6gZygB6QEPUea9E2qSl4UPuYevt1PYB21H//oS6SXNeBQchpj5+OohG0mNr/v51r8z5fs9Gby4ytoqxtgw9qtlBZ2k5HcRG5GNzkZnVQn1pAUXydQS2JcFePC/6XElhAdkUNCTBEmVnbom1sJCI5iYYupnTPG1o5YOnshCUnByV/E/fhMIgqq8E9Ix8k3CDtPXyKLaogqqadi3SaqlrfSsH0PjTv3ivUtlK5aIm9yJYVTs2SMTpAyNEHqyCT5C2soWbtMyZr1lK7fTMXWnZh4JhDqFUOGXxxV0njaIjIEf06mPTSVwdhC5jNq6cvrpjQ6l6qQdMpDsskKyiHbP4OkgFzBtfSFL9XHWsQOP3c7MkVMHmtO5/jaRl44O8nb11fx6OERFvsFl0mU4iWxxcLUUPhiLcHZ1PnF6gR+tSqG3y0l8IdNAmsTuDNTIvSLK3nhvmxtSeEvBwr49kgJ354o4W9nyvjb5Vr+draCbw7mI/GS4ij8srWDCyYWNphaivPbivYTcc/CRnAkGwf8Q6LJLaklPi2P1JwyOYIjEolJzmF3iAWnSyKZKUyiJjGMtvQEnkiM5xVnJ952dORjDx/e8Jbwdn8zr9+6wkuXT/LciZ28e3CJJ0Yq+P5XB/j+0/189+Fh/vzOGX7z0jk+u7uXRw/Oc3hNH7PddXRXltFbkUdfTSFDdaWMNNYy1DFEV+sk9hufwWLT6+jt+xyHs18QfuEdYtfeJl34uVWTjWxZP0qP8CNp68+RNLyB0JpurCeuYrL8DqZzL/xshf+5RWiQh2Jl5f8EsmNlIkZRUQk9TRf8Agdxsa7C1jQZfW03DHU8RemKppoV2qp2xKQeJcR9Nc7mtehrSFFWFGJKHK8kSH+EEDNbLa0E6dRkRKwnCJElSzbECPHjIr73EAL8RTMLXldVZ4eCMimKCuiJY2XJu2YhWOttNJl00qLUzZAmYyUqdRXlqBGitstZ65+C6x/ocNWnUu8nIScTHZrmaiQ0GOOcIMi2nz5aVmro2qijZ6GKmr4KGkZCGC+7IK21xCJSH01rNZTkyb2fzqfwkCJJEbZc2eTPRLoJ+xusGIjW4nitMTPJWsymi3qFG+BtqyfaQ0kudv5xrAzqeuZIC/uJ7d9HzOgJEsfPkzl3gfp1V2jeeIPM2YcJ7z2OT+0SzuktWPinYmjr9V/O8d+hpKyEU1Awjes38fLnX7K8dfu/7XNtRRcXRhs50VXOweZCDjTksrcui721WWI9j8OtRZzoruDcSBPXZjrlyb3HNq7gia3zPLV7rTx5p6GrjrqJFgaO6oQ2GXHwsUKSU3xQ01DFwsKYsYVk9n4cSeoBdQx9NdDQEm0qjpPBUFUVY9EWViJQeAqB3WxhyuNNVaSFSEUbqWFtasx8SSa/TI3niHA6AepKGIlj9NV/guVDyjgpqBOoqEWCEP35yprUKOnSpqLLhLopyzr6nDE251kvZ94Id+aWozm9Wob/J4GnaYamuomokxk6Ou44SFoZnXiMmJhM1ES9LM0taGpaoLr9Iyy8D6GtG4Samj7qanpoaxnJk3deLZ34T64h4dwdovaeI3h5F/7j03g2NOGSl499TCw2gUHY+kqxdnbD3EqQUGNjDA0NsdVWwFlXAW99RYKNFEi3VqQnSIEdNYo8e8acT94/xYUjGzi2e5FffnyXVx8t4MyMDqPRiuTaKFBgqE+3lTlTtlasdbRjt5sDV2MknA2z5066I5ejrTngZsROJx3G1VXoVlKiW9h7ubxvKaJtaIqxlSOGVs5YCNJo7RGNtSQSM+cw7NxSkXgXYWwbhp6pF7pmrugL8apn5oyWgSkqmjryZJ1L/jgelatIHNiBd9UCDpl9WEfXYibNwcgjEX3nSHTtAtH61wSeri0q2tb4miuwqdyM4gA1FvK1eGqdO28eTOKj3X58tc+FD9Y6ca9Zmxtdejy5YMPhJiFw8jQ41mhCtN3/O4H3j0SHDMrKynLIkgcy/OOzmZEt9pYeuNsLoeAUhqdjMAHusbjaS7EwdkBP24hwaTJjQytZMbmKurIOIgPSsLNwQ1/HhP4oKZ352cylRLEuOYyVCSGi30tpCfWhOsibsgBPSuSJPDcK/FzJ93Un718SeuGxeTS1r2bXgZucvPAMew7fY3bxJOt33GB23Qlm1x5neMU+puaPc/j002Kf59my+2Fau9eKAFiGVFOJUFkCT1uRPH1lSgyUqBe+aspahWlLFVYJ7HBQ4bCTCkfsVDnvpMYNF3VuOqtzy0WDBQsTVrvZM57ow2RzPUPNY9QONtK+toa1R1fSOjckfruUsXUFTGyYorOnltx8ITL8JPiZ+aKrq4u+IH3WxnrEOZtSF2jFdIID6zIc2ZjtxFKWE7NpzowlOdIfb0dPtD3t4bZU+FuS42HGM6MfsDX7BE91v0V/1nFMHYW9GPrg7pGOpls6+v6FRIUuEBawhJv/GKHxC3hlz2Hkm4iCxk/x4yERIzStHXDIFYKzvo7YghLCU7Nwj4snqLUOx/xijIOj0BVCScva7ufEnwIq6rI/lx7CW1X0B10leQJPlpCSJfMKtRS4IK7zQqwFfsoK4rufknoqYh9ZKYPs2LKuvaQtXSR34RIje16ha/MrlLUeoWrFsyR2ncDQJREjh0QS204RVrYZbVN/NI080TILEMJOgs/MFGErJvBuacAgKRktTy9UTExQFr7HPVJKyWwXjdsn5b78H3b9D8jsujZ0grGIdmF/PawpHKcvcoC64AmKpLP/xFLhBOPpU6KPrRQ2+dN3JYErGInqZKKjjNneSmZ6ysX9z6KnOJzhymg29Gaypj2JweJAhstC2DpSyGRdLJ29g+Svf4WaHYKkb39T3mYaaurCj2qhoqQs92nW1tYYm5jh7+qKl6s7bs6u8uSdg72rIJyGGAghYGUmxLehMUaGBvja2zIQF84Lwu7eyU/kN0VZXG7O5vfDldyqSOFv7bVcai6lzsWFXRnx5AqeUCY7Ji2CwZYWJjvaGRfCc6BEEM+kJJwtzDEV5zU3McXHxpZKPz/6Q0Jws7LAUXznYG5GkIM9LZFRvPbEHME+4fLEXGRYAkf39HF1XxfbF1oYbauiOi+X7KRM4sKTkHqF4+Yoxc7KHQsTJ+E7HLBUN5bDSsMEK00T7PSssNe3wUbLHGux7usRirWmE6bK+nKYqRhgoWaEhew4DREDtH5K0smSd7Iknay00bHDUscWM7FurmWDpbYNVrLPwl/KINtflsSTIUgIsCDh1wPVlUlX1+KYfiV/THmVXkkDd11H6Q3rI946hkZJKS/7bOF520km3LsoVXciW1uNEH8Xgv2d8Qv2Iio9lZi0VGLDPEgIdZcn7aJEGRPuQbTYFhPmKT57inUvIiO8SYsRBF/ixqC1LYnivk7Z2tNlZc0qByeyjIwpMDZlm4srrRZWrHByojTKl9QQN4KczMi2syLf1AxDIyts7TPoH3uRwJAhwSHb0DWUYmaVLOq0kqiEHWTknSO78JYQCSLW+tUzMvUSBoYeaGsbMmBjzaMR/rxWk8nbM/Xs7KoTNlHD3FAHG1aMsHa8l9meavpKM9hTl81bUzVsD/FhpasDG0N8sfUIJ6xpicCKSYJLOogf3otrSCZBeZ1kjO3APyYXvzAhLtZswjsgAu/QKFw8fbAT1+ju7kWSpfBjNlYUifhbYmlOrLmECItwIszjkJon4GOZToBNHoG2uQQ4pONuG4CDpRPRQjC2izawFMLYSU+XajMjjuppMKGrwqyGEvu1VHjYQosiZyNipcIHeZni5mmKvbuJiNGmWLmYYe9hQ0hCNckZrWSWzFCVs4/ajGqaMpspjMmhp26c3NR9JAdOUdkyS0pii7jfGbSd3E9SfgdpxX14BSeTV9HO1MIWEYNOkZGRRVNLm4gxxyiq7SE0LpewxHzcrM0ICIvHShKIo1eEELke6Jg6YW8fRkO2EM1BJcR7ZxLrlUmCdz5ZAWWk+RaQ4pFJhn8WgY6hGOlZi3tmiq6OOcb61kgshfCz8BT+IZxgvwLiI2rJSOhjfmANg/Uj7B2sYK42naiAUGIDY5B6J2JvFYqlqQ+mRhKMDGyR1H+CpOcjMnd+wfG3/86WZ//E8fe/Y+LR37Pw/F+JXnoao+S16AfMYJa2G5uyO0RufJeYPe9jlruZnJFD5I4dpXHpPB3LF2nfeIXwitW4pwwyue8mC8fusXDkLquP3WXV0TvMH77N1L4btM7vxj/Ih4TUUhrbRkjLzCItI4WcghzScysJS+2mrGMrwcktQkPYomNujb6jCzqWdmhb2KFj7YSe8IejoSEcTQrkaGAA9wrDeT0mkmZrT5LsgniksZhmPw/2pyTQ7xRMlHkgEXZRtLvFc7UwmyrBUdLH9lOw5iSDF56m/eR9Jm68yeNf/sCLX33P23+CN/74I8999B0nPv47mz75O0tf/I2JD/9CxWN/JG7fryiwMWRLkj/B4bGkir4yeOMw7ZsXiY+OJVTqR31eJkvrNjM8Psfug3u5ffgAa9cu0zY/w/o7R9m/Y559Avt3znJojyw5t8CJA3NcOT3PuaOzHNg5x77ts+xZO8yFpSH2bJ7m2K5VbO6vY8/GaVZI4qk0d2XQS8LJIl8e64zmjUPLvH1ogU/OreO3z57lq2cu8ubWfu7WRvDRcjX9EmveGAniqUZ/odm6yO+aI617lLT2IfL6J6ga6aV7pRDe88Ns3jbEjsPTXLw4w9lDA9w4P8mVM1Os3zxC6egkqc1vEJH7GEGp9/COuEx87rN4hlwkueAOh3Y8xsP7TrFh62vsPf4td+/9nWNHf8/m9R9T0/oydW0v84fffsXH773F3Rv7uHhkgrbaJMryIslI9Cc2VILU0xJfNwu8JOa42BsJ3qiPpYmOsF9twZvUhIz+zy5RQkdnCkypqvAroav+Lta/V1bkgdBWQ6LMV1IgWmiGIGUV/IT29lPXJUzbjHQR++LMPRgveYFR0W75aeeJSztDVMYeSiovkByZSlxkJrmZBTi3P4Vj7lkcY7ZjHnUADZ/TeKZvIicq8Oda/M+XsqIO8RuFdCUHU5zbwtTYIi31Y1QW9VJd3kBHXhCVxR1kJDfIE3v9vbPUx0eRmpxBYlwx1q5+mDu6YWLjIHyag/Bv3th7heAVX0FQ/gDFGy4LrnOB9P55oio7kabkElPVQlLLEN5R8fQfPUH9pm3Ubt0lsJuGPQdo2HeYul37qNq6k4LlHQSMbyBxZAWZ03MUr15H7uplSpc3U7NzH1peKQQLLlsUlCy0QRR1oSmiz0cKHp1Md3QuvWlVNKfU0ByeQX1wArUBCZT7xZDhm0y6fxr6+rqYGOkhsRNcwMeRwpQAVvXmcnlbJ3f3CHvf0cudfYOs7i+kKCUIfw97nG3M5Ak8NTVV3lkZy6frkvnjnlz+ejifv+xI47lji8zW5pEX4sWze5r4+40WgSa+e6yHvz8YFmUnf7vdyt9Ol+PqJcXJzQd7Z3eha+2wsLHHSnBsS2t7LIXONbewJjQqgeziGkIiE/ENisRW+EFz4RODwuNZkSO0lpOjnDOamppiY2PDptIyvkzL58uYdL5ML+KzjBze37Wd5x+/zdN3r/LSs49x7/oFblw4yfdfHOO7T0/wtw/P8PWHN/nNa9f5lfAXD+9fT2dNOa3lJaJPlopYWMxwWwMTw1PMzi6zYuNVGgd34Tx3HZtdr2D0yB8JuP054fueoHtqjLgoH0Y70lk9nEddSTQhIeEkzh0laPMpLPd9gM7+X2O84Z2frfA/twgd8L9M4Ck8hK6mECK2fdSsfZWYkKNE+S0icSvD0i4aC4sYfL27SMs9xdS535BX8zhetgOCfPqjrKgvhJASkUKI3FJS5XfhUXxpqM9NY0PqhSiMNzIiWc+AEWMTngj04euhfr4xMuCukiJp4ndNhHiQjbwbcNYVwkqJTEdjcvxt6RPicNxZm3EnbRZcdGn2NvsvwkeGGCt9uo1kI9keQttcFecsQaAeCEI2bYdPpQk2/npY+xhi6a6NJNaIzHE7br0azdA+b5yT9eQJPkVBnBUfUpQn70rzhFitNOPCkBUvX03h1QdzvHLZm4F6CU8ddef1Y1I25OuykKpPXbS5/DjZtSspKGLtGUvOhltkn3iNwPWPoJIwhVLqPCa1u4ibvkr91vvkrLlPQP95HCq2YZE5gXlsI6b+mf92XTLIhJ1bdAxNu/Zw9MVXuPfSy/zxL98KkpHzb/vuqs9muTiBNTmRTKcGMxLvT0+UF12CnE9kRDKZFcNQahiDiUGsL0rgUFM+p/truDzdwc2FIbSNNNA21kDfSQO/OnW2PJ2Gi8Tq335ncm0qvU/a4JimiaaJChomWkLE6ggRoyaHp6Ymbdo6PKgoRGJr82/HryvN5lmJPbka6thqamMjBKMMtgoqeAtBHqmoTqayOlXKhvSo6rBRz4QL5nY8bGzFC+L+/65KwhMSG5Z0jalV0yVbUZuYh0QdtG3R0BTEUscDM9sWuvqew97J9d9+v6ltkZC0Z9AzzUZT01J+jJa2HV7NHQQt7iTu1B3irz9D/I2nSb35DFGnruMzNYtPWycepZU4xSZg4eqGsYUlRiY/Je/kYlc2Ak9HATc9BaSGDxFnoUhzgCJrq7TZPhfDqrEaQYTW85uv3uT9N1fz5IV0Lq42Y0ulEl0hijSamTDrYMPJQFfupkt5tTqUL2QOWez37ePJ/PWJRH57Rjjp1d7cCTXkiKEq+9WU6BeBuljYibaBMeb2bjh7x+ATUUpk1ihZFSK4NO9heOQCE+PXKCpaS3BIqxANKRg7R2FoG4iGviXqehbYJbfJR9+lje7m5J0XKJneh6RgBOvoGkyl2f81gWfpjabpvybwrOhNMKErToW+ZB32VunwxUE/fv9kOs/s9uXKrC2nx2x4sE/K7y6E8NvDrry9zoJdNVqMJGuwLtfwn/fH18MZT2chdIUQUhKEQzbiLiHSG20tTXnCTlWQE1nS/F+hpqaGibgOcyNbHKw85KPxAjxiiRCBMdwvRZ6oy0+rpamqh+a6HrpbR5meWKCzeYiYoCxshVibTwwV9UhmqbOVqwUJHBMBaTk1gvHYIDrCBQEO9qYq0PNfEnkeFPi5/zORFxKfR6YQi3NLx9l75A67Dt6hoXU17QPL7Dt2h+Udl6htnaF7YDN7Dz8qSPRdpuYOkVXQSVRyCd5C7AVrKZGgo0SegTKF+ko0if41+XMCb7WdClsdVNglyn0CZ5zUuOyiziVRXnFWx12I7zZPCVtigtjcms6WvbOs2b+GvgMdHH5sgbHjg2y60MjySbF97xRto4U0ptcx7reSIruanxJ4+vpyOFsYIrUzFNdmwXKuC/vL3NhT5s62Enc2FbqxucBFvn0xzYm2cGuK/SzZmXsEDSU9VvUdYc/Ii3RX99CRto51q7dSOP0I/WW3uNb+Pn0F51jX9Agn2h7QUX0e18wB1M0cf7r/InZYxafikZSGhzQEP2kY0sAIYhIy8PALwUX4wpjpPmxzS1AXPkFB8acRzFom5j/Zjpoix32U0RXrRsJuDgeq83KpHV0JzmwWdX+m2pZcLWXy1BXZbq9EheizYWJdluyLC6qicc15Urs2UVF/gMKxh8kbuUfW8POEFO2ibO0LVK59k7DKtQTkT2HmWY2lbzPmnjXoWIQR0tqAR2szXnVV2CYloClxRdnAgLi6PMKLUtEScVBbkDQjIaD/YesyyOzbRsTFiegOOsP6mYpsoT9+jMXMfgZjB+XJun8k8GrCVjKTPcmJ5hFxHwaFTY7Jv++L6KcuL5aWnCC6iiMZropjvjWVucY4RkoDac/xY2VzCjvGihguC2a0IpSuogjqR5ep3PYGjbvfQFv0K0MdHXRFP7MwM0cikeDi4kakNICo4HBy0zKxEcTYVeKLo4MEQwMjrM1shXC3xkS0v8TFiXA3Cd1BAbxSnifsIZEtdSkURPjREB5Emp8TUyL2PDnQRLGdHVtSkyk1M2NdVDAJom91VlfTW1PDZEMDK1uKmCrOozY+Dm878RuWVoLcGmIl/GyQpSVe4jgbU2NsTEQdBOr9/LhzbgIvN3+8PXxJS66iZpMQm/umqa2rYN1EK20VJWQmZBEZlIC/ZzjuToE42HgJPyORJ/EcdKyxUjXBQc8WL0t3XMU2JwM73M0iiQoMITjCHzcHX7GPKVZqgldoCp+pbYmNhqiLwD+Sd7IReDJY6djhqO+Ik56TPGmXFBVBdmYsfhI37HUdsNNzwFTbWp7sMxDnCtLUQKomS+CpkKyhwkW9al5MvEeSYxTj8TP4SqKws3IVPs6CEtcc+vyauZV7gXp1T0I1hSATbShDUGomQX7OBKRkIhWlnwz+zgRLXcjITqIoQUp5iD1FAvFBEuLCvUmL9qHL2oYTbh6ssLOnwtSM3S6urLRzYN7ekUlhCwf9/dkWGMDB6iKihe/zcXEgyN0eTwsTZhycMDd3Fr7DTvi3x0nL3kxgWJcg9sMkpR0kIGIvyTm3hTA8RUb+bZw9R0R/nqC2+SS6or319MzZ6S36Z1UyO1pLmekUNtDfzorBbo4I7nN4135W9LUy3VRGi7CruqIMFgSRP9dRwMcrClgO9cc9JBPftAayN14jtKCd4NIpEjvX4BVdRP7SSTIGNxAcX0hkWhHxpU2ExaZRu7iOgNAoouOTSRF2lW9rRZlAkZU11XZOJDtmk+DSTYbrSnLcF4h1bMHHJhEv++CfRluE1hLpHECjjRUSQwNcdLW5aKDJE4lG1Jmqk6utgpoQzjet1LnrZUBikCkRUWYkH/cj4qgXHt0OgjOaYSkxJ7N6JdUjWygt2U5DWTlpMXFkB0ipyUxl8/gkq/ueoSzoECnOQ6RLuimMG6I0vY/M7F5SsjtJLmpjcMVWdh++xMnT5/D28qS8tIST52/S1D1FRJJoh9I6LEQ/ikorwSc8k6j0Chy9BA+wFsLNPpxoaS6lQhxbWwViaREg7qm/6NueGBs4oa9rg662OV4O/sR5JiIxdyXSNZqp+kmSpSk42krxcUsXuqGZimwhrLovUJuTT01sMDPFgSw0pFGYmshATSMx4WUkhHfibBeOpakrRgbWGGW+gu/ar2h75Av2vfo7Hv30ex589i2rn/wr9guvYrbycRxXvopJzQ3MCg9iJ/yld1gLCUVrCBy6gyQ8n7xRIbqXLtK8/hLdm6/Ruv4K3plTLB5/jPWnH2XdqUdZf+o+i8fuMn/4DmNbjpBbVkBMWgr1zQO0dI6QkFJAfFKyQBxhcdl4xzQgTe0gr2UTdn7x6Ns5YuzujYEQunoOrqL0xMjdjwxHwavDIzkdEcTz/Um8WZ3AiYAQcu1CWRkUj5WFK/FuEaz2iCfVMpxY+1hKbKKZkEYz6R1F2foLlG+7xsLDb3PmpT+w+akveOPrH/n42x94++sfeP1PP3L5i+/Y8fvvOPvX79n4y79Te+cPBK//FEnTNSIsTDnQlMT5DYLnHF4ip7aclKQkkuPiCfP3obKqkLNXH2Z8aJpNK4Y4d/Mqwwtr2Hn7EjsePc+BXStYNVXF0V2d3Dw7wKPXRnn4fDvPPzrH7vV9LK8qYfNiMl0intRn+DNdkcTapiImBVfaONPF3pBk2u3cWR/vzJMdwby5nM354Tp2Jcby3vZ2fv3YAT48OsMjTfE83RDM2doMpgIceaHOnUerfMlu7WNwrI2K7kaSujtJ7etmdKGbzTtGWNzcz/FDMxw6OsoHLy7w9W8P8/Kj0xw7Nkr/qn5KRweJLHqe5NyrTM4+weDwNWHfF0jKvs3dS0/wxrkDHChP55fvvS/ixLOsWPiEvbu/YHnhHeZm3qWg7nGeuH+WZx69xv1rKzm0XE5ptpQSoaXKipLIyxQ+IsQdfw8bEQPMsLeUxb6fEniWJtoiNmkIGf2fXVIUH6JVWYm7ysq8JjTBH4Qe/k5sE8KUJ9VVqRdlstDbkYJDB6qKWKOug1TLhCh9WxLMvdgS/iRVubdJ63icFa33me1+jMGJm0w0ltJamCCQTPbwZ3hMv4B94Xksk+YwKb5ASFwn6ZkVP9fif7601veSlhZHdKwfNSWFNJUPs3JkA7Pjm8nITEYa4kNeegrVxZ2U5XfQ3zVMaUEM6WnxFGTXYuHoip1nIPY+oVgI3WfvFYR/cg0Bme3E1Kxg8NxTrHvuHdIHFknqmKJ8wyFiazpxD4sS+7uw7+XXWXPrHmtuP8Lq2/cYu3Sd/tPnaT98nPpDJ0jdeQjP4fXkHLqApGMlbi1T+IiycnkrdTv2YOqXjn1YCUlxFeSXTzKd28hkaALjwfH0RuUwmFpBf2QWbaK/t4WmUBOSRrlfLOnSVILCKjEy1MfDzoziGD+SwjypzYtiw2gJN3b1sL47l8nqRK7t6GXNQBGlGcJXB7qRFSps0tkKHW1NXhgO4ZPNmXyxOp4/7snjmwsd3Dm8zKbOciYbS/jm4S7+/lgf3704zndvzvHdh0t8/+YKvnt2kL/faMDFww/P4GgkXsLvW9lhY+uIta0DTh4+WNvYYW5hhTQ4gtCYFCzFdzaiva3snTGzshXb0rAS8dPCwkKewLOyssJSfJ6uqOJ2QxcLhaV8sWIT36zczIeHj/DSM/d5+dn7PCl8z/NP3Obpe9f47leX+evHl/nmFzf5/YdP8eWbT/D241eZHRR6TfDC1upCupoqGWqrF3Yxxep1R1nceZ+p63+gYWAHltuew/WJ35Hx6K+onZ2irLGMvOJE4iPdGGyKZbxVlpAPISEriZkbDxh/9i0SHvkEyeXP8dzw3M9W+J9bhBb43yXwFBU1sDfNQ+q9ku1vf0tKxyo0VA1QlI9mECJHCCVZaWIrxNDN+9TMvS0I41r0NWUj8PTRUlRktZIK93R1+PPMBKu9PTFQVv/peOFMZHhIOBYnUxPuT43wZ3dX3tRQI0tskyXwavSVyXU0Er/xk2iXTUuSTYeVTWlVlIk04Zx0haHKRM+/QlWI/DUu+iipKGIWoE1EsyG//3MS3ZMSVLVlo+NkIx5+qvtDwqFZOuhy5342hx4OJLHBHu2fE3iqwrHFhliwpsGGg71GPHvJmT/8bkYQFkP+8lUHrtZq/OJOBMNtETy9z4nHlp1YLjAiVqKLiqibjhACueseZdMv/8oHP/7A9b/9iF/rNpTcCuRJvKD+k5Sve5jS1deIHz6FpGwjZkm9GIZXoe+Z9F+uSXb9tn7+1GzZwfpHhEM9dJSCwRE6ltbzxCtvoSHI/r/uL8NslhBu8bIRQx6UeDvQGuHNaEY041nxNMVHUBYdJgR7AsPFWfQLITGRHsb6glgONRVwbrgRbUsh3qz10LHTxbdWhzUnckQ9/n1qr4ujJYc+i8G3TgNTdz10HfUF9HAR4k8GiY4m7YZ6nKoqkCc3//vxToIgf5abRqvYN1jXAF8hbP0N9HBWUCNQSY0kJW2KVLVpUtNnSduIJxzteMPbmV+kWvPbTlu+KrfluokNa7QNqVXW/jmBpy1EgBs6OhK0dV2xdGynu++k3H7+++87ODnTNPApxrbt6BoEYKDvJ5xnAN7dI8Qcu0r20++Q+OhrTH30ayJvP0PQzuP4Ts3iMTCKS14B9hHRWHp4YSqcmpEQOkZGRnL8NIVW8ecptA+RaKFAg58qLbHmJHlbCWccyJvPNfLWaxu4dziU/R26rEhQpNVbgSIHRUaszNglceLx1EB+u7WAvz9dy4/C7n74IpLvf+HJD+868cOv0vjh02K+ORrCy2F63LdX45CGMu2i7+kamWJu54p3RC4lTQdYu+V1rtz+DVsP/4Kl3e+wfOB9Vm17k/mlZygo3YSDbzEWrmno2QSibeKCTXwDjpn9uBVN0b/lrOhHi9indGAZXo7JP6bQOkegZx8k7MQXbXN3NAydUZMn8CwpD9KmKlyTS+3avLrGm8tTLtRF6VEeqUOevyaVMcZE2qlTL7Y9ttGbr8/7c3/EiC3lOhyq/T9JDXNzM3niLsjbhdrsSDKifEVAE0Lb3EQ+vU9TUxNtbW05dIQNyUotLS35dFjZaDtXO3+kbjFE+KcTKRUISKc8r4m2+n75yLuNIuBWlzYTF5oliJgbTkLE2wvBviU1nIeLElnZ18vt4lQeVKZxIT+erWkRrIgPZiBKSluYL/WCSMhG5JX/nMgr8nenwM+NsKRiIuOLaG5fZGnjOQ6ffJKFpdPklHSwcfclZhYPUlDcxdKG8+w+cI91my9SWTdNbHIFMdnVeGkoEqipRLKuEpn6SuQL9Fip0GeuyrCFCjNifZOjKsvWyuy2V+GkiyrHHdU4I7adc1HDzsUW14BAUlJTmWsu4/jaWk7cX83aZyfZ8WCAofMV7H1lhB33F1jaN8m2oe2szV9PfXgbPq7x/0zgyWzZQPRHE2ND7M0NiXAxoyfegeEUZxZy3TjV4MPjHT6cqXZnKduFnhh7KgNteHT0AWPpC7yx4ZdU5V1l68xu9k0cYc+awyx1beWZkc94rvEXXGh+jE8Xf8uTte8wJYigfVAtqsa2cp+nYmyJfUwCnr4BpKVk4OPlJ0SesxCT4tokXrh5+OMcEUXy+klMw2JRVJM9kkAVHdEXZbYjG8m9y0GFStEX52xVeKTTjVIfa6YLfGlKciffzYwn29z4pEGVNWZKDBgqYSXij+zYlJolcrOnSOleT17TNoq7zlMw/hIhjZcYOfwlK879lozeR5AW78U2qA9zz2p0hBBT1bFGUVkD1+x03POykBTm4ZgQi46TE0o6uth5S/5p23K/7uksX5eNVncxtyRM4kaAuzulQTN0hfWwFFNNe+gAE2kTVIdMkuvdSZxbE9Eu1eRL68nx7aVQOstg8rR8FJ4s6TcU2UX3yAxzHVlM18cxWh5GZ64fnXmBTNYlsHOsiE196YxVhNCT70tPSQQd4ru2iQ30HniVxZMPsDQ2xtrEFEcbG6JjYklKL6O/vYdNM6soLazFxzeOwKAYAqRRODpKRH+0Q+IgwUEIWnMza1Ha0pGUyIwQvk+mJbI7O4nhpjwK00NJTQjE180eqZU538z20urpzs4kEYsE4VsqySApIZz+xkbaKyvpKSqhOjOfobpkqgszqQn2wUfUyVjYpJG2FsY6QjAJjmFioI+ZqLO/OMdCYCA71nUJEhpIqDSUaO8UeqdbyZ3dQPbIdvrbGmirKCM/JZ9YQZ4DvWPwcgkRtuWHjYWHPInnomeHq4E9En17vM3d8BLwtRYCrnAbRUlZ1GQVkRnbi7tpBA6a1jjr2uGiLwiutg3O4liDf4zA07bG4ueRdjY69phpWePh6EJVQwpZmUHkCRLpZeOBtfhetp8sgSc7TipP4KkSLMRWuvDpvRoS7gbuYq5qBblhHSQEV8inIFoYW2GmZ4y9gQXNzpUUaNrIk3+BEUFIA90JSE4jNNCT4IRkgmWj8qQuhAmkJ0dTVF5Iua8GOd5GJLoYEC0xJVYqESTXhyRDI2rNLDgo7HGTEDS7Ja5yHBTi6c7WFdzatpKVbVX0VOTSX5XLcF0xAS42FCdGsZASh5W1J2YW3rR3P0JCylqc3Dtp6XlAZNJVeie+Yv2OvzGz5k+sWv6SibnPKKi4jLNrNQZG7ujrWfJ2V5bwM8HiNwRBry5ix8pJti7Os6K9RvizYibbypnorGXbwiSrqgvoL81huDKPsZRI7mVGC8EWgYmNG/GjGxh+6nW8YsuJ61xLcvccocX9jDz1hujPq/AIjCMqv56CxkGyatqE7y0iJDyWAhtLSmwtqXewotfeklkXaxYdnIm0riHavotwuwa8rBKxNRW2IeJMU+YYaUGJxLoFUiWO9TUyJFtXi5ccNBnSVyXPUJUtNuoYCv9yQnDTx110SI43Iu+gD11/yyPlkWASHg3EMcsScxcTMmqmKS7fRkHyFepK5qnJzOL48gz1IgatH2pn5cA2VlVcEjHoMJV+mygLW09Nxhoa2jdS3rSGko55ZjccoTEpCjPRV/zM1CgW4rZC+KOBySWKGsfpHl9HWU0LkZn1+McUUpRXioNfMhYiXjray0alRjJbv4SbSwR+En/B1XwwM/HA1cYPXR0LeQLPXNh9bmgh1R5JpNmGiP7gjoGeORKncAJ9skmK7GS04WkG6g8R6GpPS0wQ/YVJTLQ0UpWbI2LvEJFhWSQEZODpEk6kbzAmRrY4z71D04nfsO+1v/P7v/3A3378kQ++/Z6VT/yJbe//nQ1PfUXKwNOYFQj+fPZdLDK30te4numEXEKSJ9ExsMHQ0oP6uZMMLl9havNZlg/eIb/7IJuOP8WJK89y9PIz7L/wJJtO3Gdk/VYqmypoEsKye/Nliit6Ka3pIyG1kvDoBKKTsnEOSiKscBSPhCaCcnsJyRvEVMQgUxGfTP2DMHL3xcQnEDNpOLEOEZS7xHAtI4HnG2J4sjSKN5vK6HSKZmdIFi2B+ZzK72G7NJNShxQyXdKpckxjKrCUUe9M0sdOU7r/AVuf/hOnP5Il637k/m9/5NrLb7D31hO8+KfvufKX7zkqyrkPv6XjuW/JuvgbfASfc2s/RoebOT2TVTzYUcWJHF+iAqWkhEqJC5KSnpnKhvWrqS8V/aZniOrsbHYfPcyxWzc4+sodlvasYX68kPAA2VRRC6qLAlg5ns6dhyvZtTmFxppo2moyWVrZxLalPvZvnWLjmmb2b59h38ZpDmya5nR8KmvcfBhzteCRslDe3tjPqZIUrjUW8M7GHn51ZYk3NrbzXLUfLzaHsBQfRZmzK9uibHm8SkJTfSYpwc7kRnsyMdvChYPdzG/oZuW6IebFuW7u7eLsiUHefXyK3326zKvPzrFpVw+Ta7sYX9NFQvHLlOWu46nrt+mtyOLC2bdYW7eHO+ev89E7H/DW86/xyYdfsnt6Pe3hC0yOvMr8xJsMDLxK6+ADZoaKOLdnHWd3r+DsoU5yUz3JT/MhPd6HDSMNrOoqISMuUHAle+xtjLCx1sfOXg9ba20RP7SFjP7PLqlC2y6qqnJP6OwPBb4UXON5oUvHNbQ4KjjyrPhuWlWFYXU1ktU1CFLXkyfwvAR/8TV0ZTT7NXKKrrPYfZeujkv09T4s/M4b5MWmUSJsq0jiSOOqL4lf/ABpzVNkNVyirvASHSFdhEU1/1yL//myvLyGgkwPqooCyUsKoKyklM6aUQpKisR9iGKxN5AioQXqaouYElpturOKotxggoMFJ69OwdjaFnMHF+y8AnGWxiAJiCK6fJiGpaOMnr5P97YjRHcukjW9i+LZbdTtOIVPbDIO3n4EZhWy/eXXmb91j5W3H2H+vuDujz/NrCin7z5K4fGLxAgdKJ3ZgUvPPFat8zh3LeJYOULd7iO07DuEYWgppklt2NZvJWTqKn1FHUwV1LMhs5wVGeUMx+bQ6eBFu7MfdQEJVAcI3xyUSl54Hp7JvZiaGBLgbElFfCDpMVI6KpPZNlXNyXVtdBTF0leWyK6ZGpaGy6gRuj0qyEv4UMEdRZwyFbHn4Rp3HrT78/FiEr/eU8BzB/s4s3mGzcPNnN46yUc3hvj8Vj+f3h/i3E7Zn2T+/PrpMf7+WDd/v9X6cwIvBp+oNKzsRTvaO2Pn7IZ7cLSI7baYCa4amZgldE4ulvaC/zl5YGbjJJ9qGxKTip2d4E+uskdSWMlH38kSeFnxiQR4CI2Uns5vL9zmL8ev8sKdGzz3+E1efPoRnr1/g2cffZinH7nOs7e3cWJTF1+9fY0vP3qFTz7+iI/ffUv4mmW6u1vo6KhmZHqA6dVLrNl6hLnxlSyc+ojxM19R3bMF00d+R9W1B+w4c42eDaKPLw6TUZhCQnI89TXx7FrfTUdTMss7dnLm8FkuPv8i80+9RtXlN8lbvPWzFf7nFqEJ/ncJPFUlI3kCzye4i66NO/8pOv5v0DUwoHHLq5S0P4qtWT7qisaYCweyRlGJRfHdlpxM/n+fNySci4EQ3O/kpvEbOxvmlFWwENt6HHVRVlAhxcGAHtmoO4kBdR4W8qy0vpqGfIqPbKSbsiiVFJSoCHaQj3qTJffGnMWxmqpYSLVFkDVgabP0//7bMojf0jfU4OB1fyZ3+mEXpIeyuiJ6gjQ/OB3JtVkHXn40mNef9+Orz3txs9HnlZc34WurzAtXEgXBcuO3HzXz/lPJfHgzm1MDAWgL0h2Q1Ynv3C2Of/0db/3wI1s//xPGwYUomoahGDdC0tR5enY/TsnqG3jX78BaCDCj6FaMQsow9Ej4Z/1UhHON6+xj/MZN5q/cIH9sirzRadIbWjhw+gwTq9bKheA/9v/HemuED6W+LkKwOtIZ5U99VDDpQUF4e0sJjkwgJCIGX2kwzkJ8BXt5UxgVykBSGPOZoWwrS8bA01AOE6kR6Vt0WTqUJs79f6YW/wPGJvocfCsHh0xtDNxkCTwDOUIMdAkViNPXZr+JMQfL8+UJ0/9+vImRAe9VZFOia0Cwri7+OnpyeChoEKakQbqyDs1qWvRo6HFTOJFXfFz5bZE336/x5+877flNjQ23LBxEYDKkVkmHXEVtIhVk/4JFYGQQhr5xPI5+++jo3vd/TeCZGJvQOfYWJuYlQjgEo6crxUA/EH9B7hMuP07B8+8RsPcCEdefI+Xx1wg8cpmE5U0knr6CmyA/tuER8hF4Nm5uGJuZ/3MEnqW2AvY6CrjqKeBnoECIkQJDaa70pYr7EafGlho1zi2YcnNfBDsaNJmKUaTNR4F8OwXiTBXZYGfJdR833q+N5e/Pd/HD15v4/k9tfP/Hcr7/Qzrf/z6LH/48yY9/u80Pv53j72dDRFvo85K3GquVFTG2tMPW1Y/QzG6WD3zIex//jat3P2fXsZdpGzlPUd02IlIGCU8eYmj2HqWV+3D1a8PUMRl1PXssw8qwiW/EIa0LafW0fESeVXQ15oF5GAlBbOgai6FLJKZuUbhH5uEYmIKetR8aBg7yKbTNQQoMZBhze8yZo7325AZpCxGhyrG1LqyuM+Ptx+LZ0G9JqqcGhYE6PLbsxWfbnHmw7M5E4v9JzMueuSUbUSeza1kiT5acC/RyIT8phPLsGPKTQ/B0dZQnmmTtLntOl56eHoZCRMieexfoEUeQVwJS9xg5LE0cSI7Ow88zjObaXhZm1zIxPEtKbAFqqhoCmvLn423PiOKJ0mSOCWG6s7OF3zXl8lpVmnw03m4hENckhzERF0RvpL8QUX40/LdEXmBMJmFx+WTmtdE7vEU+Am/Dtkt0DmyksG6Iwtph+oa2srzlMjv23GRi5T6SMxuJzqwiMj4ND+GDZNNoE3WVSBIoNlSm0USFLnNV2o2VGbdQYbWNgJUKO1xUOOCsykFHFQ47q3BIrJeFeIj2CaaqJZXG6UoG93Sw86ku6pbC8MjXRJInzjkn5fA7G9l+YRtDa2bJb+olSIgTJ+9aeQJP1o6yZzvK2tTUzBhjUxP5P4MmJkbEhPuzu86Pe30BvDceyM0WXzYXuTKc5ERtqA3bK5/isf6PyKsQvs2qgsGKeQ7t2MLl9XfZvn4bc30rmQnZhrd+OMXu7byw8ddM515B3zMdRV1T+TNBTYKiSC8t5/blm1w7c4m50Umy4pIwN7XCSti3o5Mrdi7uhHfU41hQjIaZJUoa2uhLJCgIoeyopMireRq8Xa7Byy0OJLmaUxjry5lV5WwfzSM73I1yNxPe6bOlSbR1nIYSmoqK4lhFqir3UzNyhuypY8R0bqdh/n2Suu8xf+E3zB77koT6KyR33CWl8TKeGTOo6soSd+ryUYCyqbx2wQFI4yNwionALiIMc1dnEZM0/5mwk42mNtDSxkPqhYOpGbnBYeQHhxPj6U1JXhaF0klWRPYyHVnPWNoYL0z3EyOpJcQhn1D7QjkyfIuFX69gU1kTq/NHKJBO0xA8wIroRgo2vEr5qhtUzgubG5xiVX85y71CdLUn/jNx15UnZbI+genGJLqKwhlfuZqZg08wuXyUQF8/+gaGWN6+g7GJCRE3wilNzWCjiD+1FXWkZpaQkFBEZGQKToLAeTh54ePlT7B/CFK/QCTOTnSnpnGzspKn4uK5XpjBeIeob1kKYVJXQqRuxNta8/XeOXLsbNmXnEirIHtLBRn0NZcyPzzMYHMzQb7eRIeEEif616r2NOI9PRny8SFCEEJjPV30RZsa6sgSeToYCXuVGhuz7O3FiR09BAWFYmHtjLmVsyCY3hRUNdO95TgLW7bSWt1KRU45KTG58qn0vq6RuDkEC1+SioONEGbmznibOiG19cDXQoK3mRtR/uX0D5+ipUycp7aTzvatZCYt4GbogbuhPRJdK1z1bXDRscJcrCcHSIj1ccFC2MY/RuLJkBviy5HJPDozgunPsibIxkzEC1mCz07+vSyJJ5VPoVUlTEOFQg011mqHc9lrHb5WrmQEN5ARXoujlSV2ZuL3RF2dzZzoc6pmSTeOUC1NEtNSiJS6EBCbQFS4VPiUeOKD3EgMcRVwozg/k4auAXIivcmL9CLUQoMACz0C7EyJFHVe4eBIs4UlY7Z2bHRyYYuzhDlXV5a667mzc57LGyZY7KhisauaitRYMiOCyIuLICsmnNzYMCSuKaSk76C85rIg2m+TmnOB/ol3qG75BVduf8sb73/HjoPfUFzzPkVVb2In6cTZvRZDEx8MDG3ZliP6fqA3bSVZzKdEsqYkk5m2GtaOdrFjYZKp9lJy40NojA3hXHIE23OSaSrIJDbQh9ZwIcLS64RoS8LeN5rqy8+QMraZkOJJImtm8I4pI3vtYUYfeQ5JYAJxlf2EphTh6hWAf3QSIdGJDNpbUmlrSYujIz1+gyzGH2Vl+D4a3RoJtCkmxL5Y2EYaSW7pRHtGURLTRryf6O8WdrTZWREkYlGithav66lSIoRzhZoydYJT1op+/4KxKnd8tcm57UvsKSkubfbYZVohqbcn5l4AVgFmpNfNkZI4RVvmw2zvvUJdfgUFicHkRUhwMNalMjSCqrx8Tja8werUa2wdeoKe8Rt0rb9Ny+gh8ttWM9k9jp6oQ6mfCVEWyjjqqxIUHIKvry9+ASHCj5uQkNdEeHYnxcEuRGU14hiUi3NIAU4O4bg5R9CX309eaDIDaVXUhuQidYsmS5TRrgkUR1awWLvE2dkjeFh5YCxsP9g6WMRe2dTgJOLDm2iu2MPy1DsMtx6iKS2ayZwIPG3MRb/LokvcY9nUXnd3Kf72DrjZiv7mEoCFqQSTzMtELD3L+LWvee6rv/P0F98ycuETdJP3YxGxFf2217BKO4mZZTAZlz/ErPsybUmlLHi7ifP24O4cgoWVO2OtExxff5qB6mJmujuFzT3Glv2P8uqzb/DSE6/yzMPPsrR6nsGBPs7uuczJXTfYtfUKASHxhEamEpWYT2RmO+n1a4ivnMQmMA6PzE78CobwE+3mGl+EufAz1qKfmQWGYREqBG5UAgVeGVR7JPPaaB0vlSZwJSqMX4j1/T6JNPnksyW8jntZ7VzLLGTIr4Jq3zI6vMtpDW6kVlpJ2uglGo9/zsIjf+boh99y9vMfOfzBXxjZd47eA8+z68NvuP3bv7L1/a8pe/ADMTe+JXDv+0jnrxPQe4BLG4oZniwWXNKAC+HWzKdKCff3o7G0hKHGGnJEXBobHGR8fI6+jjbWrlnk3FNXGNw9RkxaKHNjEcxORrK9L4WJIsFvSqVs3pzI8EgwZRXxrFs1wOkjG7lxahP3D85xeE0vR/ctMt5WwoHNK1gv4kCLhyutekYcDXHiXGM6JxMDud+SwLksXx6vDeKNLn8eK/fidnkg4yFexNoGkWHrQqXEi6bKZOFHvEgI96RnZTN1kw3kDdXQv6qbg2tLubC5nGeO9fHyuX6evzHIpdP9rNreTuFQNZkDDSI+3aYqZ1b0ixpyhY9754UX2TN8gI76CerKprh89mlOn7zKeGU73Z4t9OXtZLD3cSpLr1NbdIRdi5UcWlPOua2dVBQEkpHiRlaKB331meweKGO+JpmStEhiIwIJ9PPAxsoIS3M9wU20MDP5zz8DL0NorbWqKjwreNCfBHf+UejcN9RUqBX+3N/CCn9jU/y1dRnU1KFSQ4sIDX2CtM3w1bXFy9CVnsS3qC0/xWLvfWYHnmT1zItMbXua3opG6sK8SBPasmd0H+3L56jb+xL5Q2eJXn+J6sIuwsof/7kW//MlJjGS9YPVXN0YSp6IR76CWxdl5+EuYkJHmITbuxJZKnImJDZY8NxEajOSWN8XQn+JK731NRhaWmMgYOnsiYfQJ/F1gxSMrOKJT75i95NvCT39MhHNq2jae5bxq49RvGIJ/5RMPCPjyB5awe1PP+PKx59y/qNPOffRJ+x//S22Pf8SvbcfJ2LzEZIPncW6fBjH+nEsSjpxaF6BXX4HOat3MH3xKrpxLRhkDGLZdhCv1U+RNXKIlvwmpotb6E0vpVP41Dr/GJpcZLohkcqgJEoSKklJacGuZB3mgm+HulqTEyWlKDWUiaYcTqxvZXmgmKmaFObaMlnRkMriYDl1xTJf60dujB8hbrY4WJtzqtCF2/U+3B8JZ/1AOH0FEUxVZbNvupNZ0adLUq1pK3WmJcOaqXovBorceOJoE99ea+SbPdkiFvvK46FPUAT2Ll64efpg7+CCs08QtqI0s7AmOC4Dv9gsjO1cMXb0xsTBA0tHD6LSi+WJO3d3d3ni7h+j8NwkzthYW+Ht5U5/VytP3brBk7cv89xjN+XJO1n5/GO3eOruVb565zqzE93sXF7Fu++9zduf/ok3fvlXtuw8xODUAo197QysXWLp2GVWTa4QPqyX/qF5hmf20NgxR97DHzFz7RUO773KMcFhb5zez61bV9m/byd9TZFcO9JEX3cp128f49KeNZy6eYvxWw8YWLeHoZGOn63wP7cIjfC/HYGngr6WB3Hx+4jNKvunoP6/QfasvOzh3dSueAsvx340laxRFw4jVZCVJ9WVKRLE7/+VwFNRUGSHEONfB/twWYh1x4cUabXTxl84wxErdRoNlOjWV2KNnSa1/mZcDNRjxkuQdQsd+Yi8LHs9rnuqU+FnLk/gVTnpCrGvIB9N55pvjFeM8f/9t3+GopISHUv2rD/jg0+2Kcq6gjiHmHOk25q/ftHHe6+n8vs/NvCn3w9jY6DM/j2tSJ3VOb4ljfaaCP7waR8b15bz0dPljMbrEOCkjTSzCfOqLTg37ySgYy16bmkoqtmjoOfNQ6FtmNbsp3jxGm1bHyGqax/WKaOYxvVjHt+GWXCBvF76ljbCIWxk4uY9Oo+cIGNggqjqepwDgmjo6OTY9dtExyX+2/XIUC6VUOnvTLMQ2sl+voRHxJKeX0R13xD149Nk1dRy4dYt9p+9SPvQpBBoAcT6B9CbHMlCRhhG3sYCRlhH6ZOySZvTbxSgofVfn+8nQ1mVEH5PeWKVaIihhz56noZyxAoCG62vT46uPnsM9Hm7qRLtn59N9a+oSgjjuTBB/g0MiNE3JMJQT0BfnsALV9IgQ0mHfjU9rlja8kmmD79Ktue7jcX88Nwqvr0Uxe9rnbloZ0m3qjblSlqkKWoSLGBmnICJYRyGRnlYe+xkbP5NNDX//ZmJmTk1JBc/i5FZNob6MRjpR4jjogiY3UDItiOE7zhG5OaThC0dIOrsHQK3HiDp/E1S1ywLgrkRq5BwrLx9cBRtrGtgiKYIirJRYbIEnuw5eP8YhZfgYU6kxJSSQHMaPBUYjlBgPkOR3U0a9IarUu+mQJHs5RWWCkSZKXDYzppXEj35ek8+P/xmkR++e0xgFz/+sIfv/17JDz+c4ofvL/L9t1v4/q+H+OHzcf52QMp7sZrsVFbEzM4FR69wUss2c/Oxb3jkyS95+93fcebqm5Q17yApfwH/qGb8IxtxCyxnfPoaqclrsHHLR8PIST6N2yKkCMuICmED1ViElWIWkIexTxpGHgkYucdi6ZvC/P4LrD92k8qhTSSW9qBt4Y2ajg3bqk15ZMiIJ5bFvZXqkOCmQaaXBrd2iOC73ZvXbkfy1m0/aoO1iRV9qThQhy9vx/LBNlfW5+nL741seqydCADmJsb/fN6dbNRdRXok7dUZ8qRdTKgsaSCIXmQQoYH+8oSfTJh4OAbJE3f+QnCYGFjJR9fJSllyTl/bGIm9N55CLJTk1ZIvxElWQrn8+Xda6rpYm7mwKTWcO8XJnK9KprwgmesVqfyhNZ83qjO5XZLM8ZxY+Wi8+YRQRmOD5C+7aAn1lb/oojLQi4iIKJKK24lOLCEzr4WU5FIqirrITiiWJw2So7JIiMgiN1uQzVTZ8O5eYlLKicuvJ1qcw0FVQZ7Ai9FVIk5HiU5bVZrMVWg0VWHCQpVV1qryJN6cwBYnVTbaqbDLUYVtotxio0xqSD0VWb309swwt3OJDQ9vYOdHa6hYHUFQhQnRNfbUrhLX8PkCa24uMb5pnsrmQaKT6vDwz5cn72Qj8KxtbeTJPNlzLEzNzURpjJPElfAAV365IYY/bo7lV6vDeHEkkGO1PsxmudAebY+GRQTaHvEoCWGnZeBJVXQ31y8dpa2qhvrMSrZ0jFAtLcVK2YtC/1puPP4tq7pexC6sEUVDa5Q1NHHIyKWtd4D71+9y5eRFZkenaCwpx8HGQdTDEgtzG+wcXXEOj8Cjvh5dFzfUTcwx8vElQEsVD3VV1tho8PaIKyvz/Qj2ciAlNpBVvdm0VSQI0uNNkLM5F2pdeafagPVWKmioqqGoqk7H4rP0bnmBim336Tj8MXkrX2fuxp9YeeO3xA8+TtLwE+SMPk7ZuqfJm9wvTxzKRgCq6lqhYewm+oEZFk5CkOdHYSGEjKmjHe72tiQlRpMZECzEbwxTF7dRM9IiT9wVhUaSEx5JZnICydkpTEd1MR7eTltQK5tFvyoMaEdqn02wY568LIirJdYjnwC7XALt84Sv76REOkRfaAtzMTXIXkiRvfw2uRvfoWDzO9SvukhnfSHd5fGM18ayuiOdxa5Mxqpj6CkOZaEtlYXZGVasWqK9sYod+w9SkJuLk4UFRmrqmIj7UZSexnRjP1Pja2hrnqSqvoNA3zC8XPxIi40hNrqQ7JRC8rILKctIZKIgj2dSUvmqroTbnRVUZIZRkx+K1FX27CArUm2t2VtdQoMgdeMxUTQIW0sTRO9wUymT3e1kxIbi6yHBxd6ehCApPRlxBNrYcMzLi5PeXvjLXhykq42htpY8kWelo8NZN1dCjY0Y66zB1z8RJ+cA7O3dcXYNIyWjnETRJ1vW7qV53T7yxzdRNL2RnN5N4jqyickcInF5PQl9qwiwluBlZIufmbNoc2EnDsnUN51hZGwvtdm5FCfGM9C7gYrKI0S4V+NlbIe3gL+FMz6mDqxpC+f1KxW8dKmKncOxdOQF4Gpuh5G2BRVxQRwfy2NrRypjOSaE2BvJR9+ZalthqGWJiUCRuhWhGqpEC/SpW3DOUthD1pDgHR74OUuQSsRvuTriaG6Js5ENjiY2TMePsda0mEQtfXJzMylJj6JraJT9x0+yuOsITUNTpBaXCd9fTFF1HdOzS5TEBxHhoI+PkRruJjp4WRjiZWNBuZkFfVbWrHV0EnBmmxD8O0c7aC7IoDghktr0WE4s9PPsoSV2T3Zybt0EF9aP01Oaw0J7JSFhbYJzlGNhHUNG7mFa+x6wcuk39I7/judf/pbf/O47Tl74ltWbvyGn5AFhsYeIT9mPsZlU+B1LUnzc8PdypSrAk3eK43k9OZBGf1da0sOoTAomJyZQCJYgxoTw/7yriHNC4CV4uBAXGoCfaJeE4m5SezbgFZ5LaGU/reeeJXHoEIElY/jldOMtfG3ztaeIrB0nqnKQANn0UTc/3IRAya1pZ9rRmiYHG3ZXH+fe2Gf85onv2FP0K9Id15DoUCu4ZwVJrp0ke5WT4plKlL8vXqJ/F1lZsNnNjngTU1IE93nWQIOPooz4PNOUC+7afFZsyTfOWqyccyDyjjcW8aZo62rJR4+b+ZmQ9otI3KsdGTl8ncKceUpD9rG+8jABEhcslf7PH6hehgZ0NtSyY8Verh55m6WDd1hx9m3W3/gliwuPE5I3QktBBVIfb7ID3LAVccTNTIfj52+x7ejDbNhzlvbh1fSsOk5e3QiJIr7ki1Ka2SWEbAsuDmG42rqQH5TA3u6NrK0YZ/9IJxWRuRxffYIz6y4zkN0l7vUKkgJT0dUzE7zHGH3h/6LdY4gMLqIwpoxa0U/LfaTUCT/QnRGFr50JObGJtETbcLzNDzMrfRJ8TQmRmGGir01+qOjXkgwyp7+gcscv0U+/xsi5v+C+cJ/L731DSOMZnMuuUX3/U4of/gSPUx+w4tXfseOVz1jT1M6xcCn7cwo4vPUE+4+coqevhbxoD6qTfRnua+LeG28zd+hpXvvsU554+xWWts2weGQ7my8fZ/nkQc5evsqlE1cwtvfEzMkPC7dQPGIqCMwbJLxuUfz+OiwjRX8v30hQ9TwBxX1YRUbjmJWDTVwStompOKTl0BxUykBoKe/vmBR8IBCJtScZnuE8nZDHSHA5/eGNHEtv4MMVjWxLbWcoqp3RsBZWJg0xGN1BfNN2mna8y/Ktv7DvjW9oW97O0uPPE16YS8HsenL7x9h98xpzD96m7a0fqbz/HcW7XyGqcw8RdRsZnigg1dIIH209/HS0KRPtnhfgQUZ0GPlhAWybG2dx9WoGBfcfm+xjRtSzdE0jDRv78JW6sbiylvRkd3JTAkgIcyYqzJ2UVFcKy6SkJQcw1FvOqUPref/qZu6uqKMtwoXezBDme0tYHKgjwsKVYntzCowd6RaxeluEI88UhPJYZxZPjBbz2ckRfrk+idc7fHm6M5z5YAnb451ZJzRHv7MlhVnhlGWHkRPvS3NRBK0TVaQOVrB2NIM3Lrawf6lBCPEUtm9v48ShHjZtb2Xfvg4KR8vJ7ykiJPI0+XFV5Ef5khPhyaENK5gamCIquBCpRwrdIn6NN1cL7t3OYMNOKkdv0NR7ke6C3aSIe5EtuPcj+yZ4eFMHu4SfWzXVTX1ZAtWpgWyoTWS6KJImwQvTY0IJCfDG39sdV0fBR6yMsTbXEzL6P7sUKj7EgNC1n6uq8Fex/qPADTVVcoRfCjYxw8nYFEcjEyQ6egxoGpKjbUikjjm+evYiFngwn/wmbQ3PMbjiLFvXPc/C4iGKMtPoaqmme3aWtulJWloqODlWzp6+SrYurWVoZD2Jwg8Hll39uRb/88Ve4kRKZiKt9SkEh3ji5CLia7AfjdEhtFT4snbQn+46KTFhPvg62QqbdWLdaBQHlvKYF/Uzc3LFxE7oGDtHHDz98IpIoHnzcdr2XKK4f4LSfY+QObKWqrU7mLzxGMntAwydvsmqK3epWbuVM7/4hDMffcr5T37JqV98zMVffs7RDz+h/tlXSDp8GenSDozT8nBpHMaxcgD7gl5ca6bJ3nSSbc88j0H6AMZla7EauYHH+ldIGTzEcEU/Y3E5VIs4U5BSib2vbCZcNmWBKVSFZZOf3oZ/Ugvm8S3CjswIcDQjUepKZ34sO7tz2D5Vy3BtGh2lUSyPJdFWHCXaoYyNvYV0FsZQEOtDsKsNDhbGLMdYciDNjtMbilhRH0ZjhBs7RptFPxikMlk2cEKX8ngzKqNNqIszF9xKwoMdpXx9qIDfL6fIR+C5+wTiHp2BvXeI/Hl4Ts5uuPiFYmPviJmlDaGC60li8nAYP4TfhjtYFQxg5uxDSHKhPGHn4eGOk5OjfCqt7LPsT11/fx95Qs9DcOLKskIeu3WRJ25d4oUn7/D2K8/Jp9Hev3GOD567xM0LB1g5P8cjjz3KifMXOXz+PKMLgwwIWxzaeJbuuTkOH73G1jXb6e2doaWpm/aWXjoFMh/5hLozL7N14QCrNqymr6+UdVN1LI7lcOPMALdOdfDwpUl+9fFFfvfrF7i5bR27V24gMbOYurywn63wP7eIGP+/fYmFItoattQJkZJVWY2yENPqWuYoK6ojm86qpKCAmuj4Onq2QmjrUrZiPw1rPiNUMoeBmieq4ntPRQWOOVoIA4lGVQhwM+FM1GWj5B6STYlVxlic014Qb11FZbakBvF9dCCvqKgRJb6v1FWm11yNJn1FOg0eYsREgVVmiqzw1GN7oD6XXJV40k+d2xEGPB+iyflQQyz1tOR1a3PWQ1mUGuJYl2QD3OINUVFRQt9IAwUhjOXTZ8X3WrrqmFpooaKtIupvztJpL3xLLFEXIrmu2IaZNC2+/KCEw/tL+dtfVvDjD6ewN9NlpCsbb2s16utjWTsZw/vvLZIbbc7TJyTMZ+pSEKyPW2QRDs0HUAjvQdEiXIg7Ox5SsRG/74SiQzoK8aPoVe4mZvw86aOnCW3chLR6LT5Va/GqWIOxg4SCDXvou/Yo+ctiv+4xJNGJQgx6Y2BjT3FtPQcvPCx/DpiM0P13dER4UR/qTYCzM9HhwfSNDZOYk0v11CwpFXUkF5Uzv2YNT738uiB0pygpr8ROnNfH3Yu6mBCMpaY/IVqPwCFduu5KWH8wHy2dn6Yhy6Y2Bwc6cfnTHHJP6GOXLcR9nBAhoWYYBRqRYmgoR4G+AbPa+jwjiOTBxnK0NHXko6kURfsHubnwWX0J583MaDA3ocjcjAxTU9KMjXH/eQReiqoW7er63HOx5/MEB77d7sn3r63lh48v8N3JQCEOLdltbEaTijolKlokCPv0FTAzTJPD2CgPS4cVxKY9xuDgfrS0dVES91+W6PXyDxAO4XMcAy4Lp9IoAm8BFsbZctinZSOpasKteRDXqj4c8hpxKGzGMjoFt7ZeAoT48erox9zdA8+wQAxFoFDTNxTiXw1FJRUstBSx1pIl8R6Sv8zCz1ybMFcz0n0siBN2XOKkSKVEgeZANdqTXUkxVyRG2HiEqQKBxgrc8rXj8/ZAvnu2mu//eo3vv3+ZH75fL2ywkR9+XCkwLvAkP3x3nB9//JIf//wU31+O47M8PU5pKGPvE4GzTxKNnZc4d/0Ldh59iVff+DUHT79EWskqYjNFmwhklS8RmTZIdesumlvO4BbYLE/gGXokYuydiolvhkAmJj7p8pF3pmKbqX82lgE5ZAoSNL3tJJ4xJUjCC3AIzMIpMEO0gz3npn35/E4Oe1usiHVXJ0+qRb6XBo9ulvDp/QA+vR3Dn98Jpj9Jn1tHPEl01+D2Ol8+XLZmV5XsTdaKIoA50OHhwdbwMPmUPllCT/Z2ywwh3DITwuVJJdk/PLa2tjg6OhIWFiLEur08QPhJIuUj7swMbeTPwtPVMkRLQ09AV9if7E3HmthYOKGvY0yIbyxhfsn4SiLkyTtHKy9WJYVyJjeOR8pSGIqPIMjdkZN1IsB1FPFZYzYvVaVzoyiRQ9kxbEgJZ0V8iCDeUtrDf5pWmySIRlR2PTEZVYKINJCd20C0IBKB3mEEeoUR5BeJr4MbYeZWpKbXEicEZWpVD17SMOqLkrBReYgQbdFHtJTosFGVo9pUlTlbNV5w02DaWpVJCxUuOKgxb6PCentV1tr+9HKL9aJ0jeoiqGCKjMGNNB8+wPAju5n/xWqyJ6QEN+sK8aGHtEqf9R/20HOym4r5ThIbG5GmleESmidP3plZ/DSiVPZAXVlCTwZZ0lSW0JN4+7JtKJWzEzE8Oh3GF4uR3Oz0Y0uxO6NJzribJwox5466jiUGOhJmKldwes8OxoqqibB2Yy6pjBIvQYJ9OplIX8eHl7+nof8ZvIKHUTZ3RU3PAK+qaqKSU1mcnCVb9MfYzDxykjPx9/DFxNhcPpXWxsYJR09fPKvrMA4KR1/4R9NQQfz1NVg0U+N+hi5XGrzYOFTG5eMbWTHRxVhfBaP9NSwvDrN/RS2bkiW8NeFCkZ4GKho6KGto0735BRpHz1K+4j5VWz9m7bVv2Pzol1Tv/pCk/jtENB0irGoFIUXtWPpFo6Klj6aJGyYepRhJcuXxUlFNjdaxAuoqMunKzWe0sYatdw6REBJEoLDrvoOriY4Ox8HMHP/oYHyTwrEWdmbrLaEusJM0rx4aAhrJEW0U71FLrGsmyVHVdA2vpKdzhMb8eqR26fjbppPoVkNvSC0dwY0MhddRue0t6re9TPueV6ne/ga1W1+mbtsrdG65x8yqDcy0ZDIj4teq1iRWNibQmiMVgiSGxsJYKlP8cBD330T4aSMRiw1EPNET6yWJcaL9e1mY209P13qSBFGLTSkmO6OAWiHwK4oqCfTPoKaqgrGIYO5npvNEcCCv5cRRHCLEurq6/C19Jgba8hjgZaBPl78XU65uZAUFUujkxPrEWFbGRjPX3UFmeDTBvoGib4u47OBEYkQAGXFhFNlbc0UioVbEC5OfR+HJMGNjLfqCmfxttanp2TRUV5Ime4ZVfBoTAz1sXTXOaJcQYk2zbP70Fms/PYidtw9+5WUkN28jrXuG6jW1JDT0EOrkQ6C9B0EOXoRJwsnP3EB55U4qMkqpKmijIjWDgvR2mrovk5+xBn8rCSFO3oQ4ehMsjhko8uejZzv45PlO3rvXyKcPOrm8OYeJugi6snw42JbMqvJQWgU3yffV+efLLGQj8GTTb4cEh4rQVCVdXNdm9XDupV/Cz9YTL2shVuxccLN1xdHSGRdLV7yEz0r3TeIpr0VqDMKFHfsKgRBGVXU5HSLmjm85yNanfsmKCw8YOnCN1sWtFHWPUldbQ15yNHlpMQT7Cb9na4GDlYClNQPid5rNLOmxsGLU3oHVLfWkZxaRkJQlhHWm8JVOdJfnsGuyi8a8VA7PD3B8aZJV3Q1E+njg5h6Bo3MoxqaBVNXdJKPgOrnljzEy/y2Xb/+VO4/9hYUNv2du/Z+ITr1NVvElSqquEBQ6jam5CwFeEsL8Pcn19+BimDcXBZdZ3VDEaH0B1ZkxDNUXMdRSSVdOMqM+EtrEfhE+wp8KMe0i7CO9doiI0h5i6/px8osnc34/cUMHyFhzEZ+0NlzC8gkqFoT/xCOE5baRPrGVyNwyIpMLyK1oY51PGusTZrja+iTri/bR0z7IielHyXPbRJZrO96muXhaJBEjKSZF9MtQby8RI1yYdbdj2dOOOFMr1gr7fCHciNcDjXnKz5DrIUZ8LcTT68ZaDBz2JOFBIG4D9ug66qAteKhpkhFpr4q4MOvK/IXn2HjpfWbWvMLYwmViCsrICZBiY6yNgeyP0Rg3Rue3MbT3LMu37rL7xnXRnks0tE0yU3GAovYlegI9iPP3I9vPB3dDJdSUlTEVXKuqvoWzN55i1frtzMws0jy2hVALVbKLGkmqX0NQziDO9sF4OkqI8/RnV/c6hnPquL7/KkfXHGJjzxIzdUu42cgeOSF76YTgzIKjaWgYInuZRagkikyvCCKFaLMV8cPVSJ9j020MlaQJ27WiMyGCl8b9WG6KEuc3YjDTCR/Bi7S1tAh3MSJH+HGLtJfRirrD5OlXCGq/i3HRNqaufMWVF//Asf0XCVv1Kk4Jo9j7ZeBWt8DY618xvXCeK7FBHEpLZeDyGdpOnad+sIf6DKmwmRDOPv4kL/3yV6w59gIvvPcmB05u4uRTT5K+dQS3xhjsCgOJnuti5vpl9K1dMHR0x9jVFyMBc2k2nkMX6L3+EtPnbpOx6hQhK28SXL8Sj/xqJMWluBQU45RbINYr6A4vYzq2muNlBcLnOWJo4oCNtSd743PYktDIyoQujhR2ky7xYE92CxsyxliTNMym7Bk2ZE8QXbWFohVP0HLuG+Ze+ZFVz39Bzc4jVB28h0dOASElNUzdepK9v/qRjucFHvmBsh0fEtK4C2nxDH5CxEeaGRIqYreXrh75wf5URASSHe5HRUIYUy3lTA53MzI6w4EzZ3jw2SscvnWIpe2rWN64ji1rx0gMc2DVinY6SgJJiPXB18eWxEQ/CnOjub69n5cOTfBgqYPZrGBK/W0pCXCkMUnKQF0OYRZe5Jp6EGPpTbKL8HXJ8by6spoPdvfz14+f5tsPrvPNg+18sTaCJ1oCOJtgz4uNvnwyE8TvT9USJPpQdlooieJ85ZXxpNWnMzLdyY7BCI4vpLB5vpEd25uY2NDJ4pZWhpabWLepgeKeYqLKU2mfe5uilDyCPBwojvFisiqZtuoukiIriQjIIzdexP32KZJLTwibv0Te3F3q975BWeE8PZXbyU5wp782nnFhE+2lqQzVlHBh2woubehgR08FS921lGYkU5KVRV5KJO11ZeSmxyH19UDiaC1k9H92KRLau0PgoOAhf1RTlb/A4vfqqhzU0cJLTx8n2cunDI2x0jciUFuPcX0TivWtCTFwItzcn7Vrn2Sp8lXGx16mpSiXk5NNNFbm8vKbr7DxtXc59PaHbH/4Gqc3DnFpqYc9M61UDW7CxsQQ38Sen2vxP1+cXJ3wDnDHxVPEOIk9To42uIt4MF6YSo7oy94BHiSlBNFZm0G94N5hIc6ERgcxNNhOVIQvJQsbkOYUk1hczvSu/TRNryKne4KimbWMHD3H8Mnr4r53EJyZS+X8eiqXtrH32Vdo23uS0NpOjn/4EaffeFPwvhvMnb/I+ruPMPHI87Q/eJewTTuIOH4WScMgjgXlmGfXYpvThEvRINLmaY68/R6GuROY1m3HYfw6vuteJH7wCC31MzSL/aLSq/AOTsDc0oqMnA6qhf6o940ntWwe2/odmDTswdnOEg9rQwKdhF70dSLOx4nR9hKqBZeaH0ymqyqAsgyh6+vzqM2JId7fkRBXG4JdbbEXfX8mwJid2a6c2Z5HS6YHOZ5mDIi26iqJINpJkzgPbYojjGlMs6El2Z6+FC++2FPCn3bn8OWqOPmb2T0E9/KIzsHKPxJ7dy8cfEORhKXIn4EnS+BJ/MJwymrCISZb8O5YpDvvYxKQRHBGpVyXWVoKLuFgL+AgNNpP02h9vD2RuLrI1728PRgZ7ObBE7d56elHePmZ+7z41F35M/Bev3+Od198lAOHtrJrzwnOPnyTsTWTNHY00LxiF+MHHmVm2yF2HLjF4tb7tE0dp2lwG53to3QJFFx4j9XrrnNv+3YefvgiRflRZKdLaW4T93t8BffuHefepQkqSyOYHCmmp62d47PtghPVk5aR8bMV/ueWh8Tyv0rgKSsLsm2cTN+6X2IhhGZy6xYadvyS6rkb6BoIomntxdCh9+je9TvSizaSPb5IUceLguzOYaThjY4QybnCgbwWGYCrmQnbXOz4TU4o9yszsdNQxdvQgHe3jvL1cC1bLM2FAPbn946mvCEcTaLCQ9ToKFCrp0SbriJDRgqsMFdgm70K1/21aPIz4qUgdV4OUuatUDXezdPHUkdDPp3WxUCT+0G6KKoqoG+nhl+VBXpWGqxc9uSZXwVz7FI4JuZaSDwNeOa9eB75cxCx/ZbC+VhSv8EWryJBJCzVqck2oz1Uh/eeTBWE1phTB6f5/sfruNqZY2+oi6mGCu6C8N4430l5SSRnt0Xw1AlXtrUaUB2hj7qWCUnt67Gq2omSZykP6TujoGKDkpI1CjquPOSWh3LSSizqdhI9fp6s0WPYpA6hFViNUUQzyfNbabr1DDErNiPJrcfEKxADe4n8tfUaOnr0C4c0MDn/z4Tdf0d3mA+Rzo7yEUsJwT60dzSRlJVNZl0z2Y1txObk4x0USkFlLdklFfQMjqKppcNsVxfL7Q0YhRv/hCgTTGONcCk3pO9ZF86/U8qWs3kcvJfDvk+SqX5EF/8eQyxSzLFKtcE+xwnbLHuKDPXlKDUyptzIhD5jY14RYukXgnRfqC7mESEsPi/K5hnhxGb1DagxNqDJwoZWW1taBJwU1JAqq5GkrEGZmiZHTSx4L86Jv22S8P27m/nba0v8bacjn9U7sqClS62aOtlKakQqquImYGVchoVhCSYmBZgalwjy1EdM1itMzv+CnuEzDE09QsfAL3GNfA5zuznMzWuwt2zAxaZF3OM2jDz8RJtLsQiJxTIiFfOgWKyikrAMjcXUOwBjbynRQiD5C1Fp6uSCT309brkZWEoD5NOeZQk8eRJP9iw8YcseskR0iicNkXbMlPlwYCKevYOxjJYE0JrkQbanCYGGCvjqK+ApcNPFnK+6vfnh3VZ++NMIP/xlJz98t5Ufvu/mxx/nBGb44cdFfvi7KP+6zI9/Pc8PN+P5JMeA8zrK2Etj8AquYG7+OU4//Cu2HHrA5v3Psu/0y4yvvkNs9jTFguxVtx8krXieErHe13lKBMxKNA0c0XeJwsAtVv6su3/A2CMeSWwZK/dcoG/9QZZP3SFOiCDn4CxcQrKw9krEKSANdQMHIVBt+N0T+UznGBNqo8ZHj4ezUGHG45sc+P6tYL57PoBfPu7HkzucmK01Jkz01YUyEz7b58buciMCfFwpCPCiI8iPoUAfajOi5CMbjY2NKM+IZn6oRp6okwUH2VBtqVRKuiDu3t7ePz1w39ZX/uZZ2ag72XRaWcJOW1NPPlpYlhzUVP8pkayspIKGmjZuDv4EiiDk5hCIs40P4zGB7EyP5G5xEpcactnQUiKIYCiP9bfww4oO3q3P5vWqVJ4qT+FCfgK70qNYlRjGiDhO9qba2DA/NLX1BUHsICqhmNLqUQKcvfC3llAVJQSfvRueJlZEB0SSXdBNbHoF6dV92Fmb01GVhq2qIr6aioSIexmrp8wuVw0+CNPmL9k6/CZSiwtO6rwu1eQNfw322aqy6KTKCisVpiyUWSlKz9S1BJXMkNTURc2kINnHZ9j88krWvdhJ24EsRo/lsPCggtkX21h9ZoixtQMUV1cQnpSEW3CoPFknm66sq6tNpq8Ffk6mmJsay6fSGor+mhAZz+L+Q2zZ2sN313L4Yn0kVeEOVITYsJApYT63nZHsfiLsc/GxSGdV2QzFfokcqxxnc1ojM5FFlLqFkekdySeTf+LO/q/JSj2Ig0srKvZSNM3FbzbWEZaeSXNtAw0VtbQ1dzHU3ktKRDTGBqaY/TwKz9nVG++sTKS9HTiXlWMRE4u+niGzVtr8blGT482e1BfEsLw4xNWLe3nk1jFu3zzCsYPr2bm6g9E4N16udyLPRBd1PSNUBantOv8O1TPXGT71e+bO/pEV+35JSt/TRNRdJHnwpmjfadSNbOT7qgnyq23lh5lvHVYhA1j4N+FkbklecDi7dg1QVSgIkbWIMf21TF/bSbiXhCBvCT4R/ti4O2Ll5kBAVixOQV4UlDRh6+1CokcLrdJGOgMrSfFoIi+his6ecdp6p6iu6iE5spSihHIKM8soLCkXBK6SHO9mRkJLaQqsY9Xx51kQGD/0InNHn2f59DNsO/MkW07cY9WmPUy3F9CWE0BtijcNQuC25wfTmh9GTbIHFUleWIsYEuNoi526mvyZtLKXgFjKHnMQUEhmXBp5aYVE+ETi5RWPm3MoWzZupn9wmpL8YgrTUzgiSNpvi9L5criKYBdHwr3dsVFT+y8xylfYUayTDZGCzEWLPiMjebuzUjjtF8Sqjg6y4+Jxd3bB3TMcL3dfIsJTqMjLokLsd1H0+1XiONnzvYz1dMg0NOS07G2AOpqY6euxdWGE6Kg0DqxbQW5RFZnpBUz39jPW0kPN8E6m3rxA185mDIysMLGTkL1lPSXrtxMlxEpC9TzR3qHE+kUTLnxCmHs242veIyO+l4y4FqqL11KeOyOuKYPk+D4RO6+KfWIJdw8m3C2ASM9gItycaUj2pyMnkJHCUF47lMfLp8rozQtmIMudjWnJlIU4CeJsyEJUItluwf98Bp7sDbZdWl5Ea6oyqubBLd+dVPqVY29ghIexCd421jhbSZDYeGFrZoefuQeTyQM8bNxOk447nTYl5ES5E5OcSE60B3WNNTRsu0T2quPEtI0QVd1AuOACAU5WxKcmkR4uJViIJF8neyRWVjiLmLzO0ZFZEYf7rG3Z0V3HeGOp8LuJVGen4huSQGlFB83tI3S2dLFxsIkVzeX0VRWSFOLP3sl2cS89cXGNwcouXgirReLTzpCYdZmGrndZvfF3LG39IxUtvyYp53Fyy54iPH4riRkbcJLE4ODkj9TThZgQPyJ93akTttElhNvKoR7SYkJIjw0lPS6UzvpKOutKSQr0wNfZlkAvV/w9XfFwtietaxQnzxDyVm/FJz4HR784ItuWSRjcQtuZe2JbDWHFYxSvOUlq+zrS+5ZoPXWD+Lx6UgsbudjwEkdWn6cvZzXeDjIbSKUkaZCdTXfJdRsiwlb4SsdSEgWPyw5IF33BBz9hk64mZsy52wohbEmrti5PuOlQr6rECUsNfuVrxVfWZrwg6nqh2Zac96PZ8/UELlW2VCxlsunrcbI/FEJorwetG+8LTnqdFXNvcPLQr1h/7w0GT15ixepZOkoyyI+LFuLyJuvuPU1mbhzDlSnU5ReRn5TOSG0pLZUDzPs44ubkSLy7K5oqSiTYC07l54ezs4TikjKmhwfICfYgLCKWGk8NyrtFHxjYJdpliqSYYsrSa8lKzKcmq47KhFIm64fpq17Jxp79dCf2k+6Rhq6mKerqBgKGcsgSeC5W3jT7B9Ndv52h2jYWuyoYr84WfVMbB8HzJjNdeX7Wk94Uf7rLk1nRF058gJ083iQEOZLi44Jj6mVsV7xO34E30XPqFceZ0lm5TvTrXhqLUji1dhvx0dlUWllyVOJI6aPvsnF2D+Ou9uwI9qXw+CVqDp2loSCB6tJsNl18lLvv/ZpXP/wND97/LW989BGvfvZH7rzzFWvvPodTUQQ+zcX0Xr1PkxD4GqKf6VjZoC+4nbF3ECYFq2lZOcGda0c4d2KX/GH5kuJ+YicPiJjQj19JCd4trbhX1uAl+PVcSjOrUxo4mVMq+KToC8JHujmHsSuliAO5w2zLGeNk6SxHstq4UrvAYXH+w4XznKpc5mL9ZgIKthDZdYfMPV8y+tyPrH3jRzZ99iOzl6/ikSh8bmQ0CydP0PfCX+l/8kfyD3xB0MgTuGauwzW1jxR/dxz19fG3MqckQkqAnTWF0VIqBT+RTU1PE31m/XQXx65c4OrLl3n09bscv3iAyYEWwlzs2b9H2EJaEKPthWyeySc/URyTFEBcsBMNxVGc2zbAC5ub2d+dyWRZFJGuloS6WBIfJPxPdwOJ5u6k6JogNbUn3NqXROd4tktseKbQndfbvfj8cDd/fv0sXz+xhgdDkTzfGs4nvd58fbWBX+/LItDbgaRob6obUilNkzIx1khVZQI7JzIYbRY205PO4V0tNE/UsutkP3t29jA+VEi2EOpJoi+Mj+2nPDmOMBFL04MlrKqLZX13OPum8qnLraAsq5ro4HLy0qeJieukNq+FuradQsttY6j/VSrT/YgPs6dbcLGh+kz6agsYLollKMWewSwJp0f6WVlTRklcFO0l6XQ11FFRmEa44KzB/t5CRv9nl0rBcTuF/l5WUea6liYviph4XPiAy+pKHNZUw1VXDxNdfawMZEk8fbJ19JkxsqfY3JMM2zDK1l1hw9pX2Dz/HssrDzKaH0JLVx1bnn2BT/78Le9+8y33P/yIooYqeu3MOGRsyHREvLAvfzI6zvxci//54u3hhJ2bI2aCD/u725MrbMHL35PapHBsnW0IDXXG1duJnMwoSnKiBU+wobQsl4BAJ4wsTam4eJ+Zq3fZc/9xNl99mKb5JRpnl4gormDFradIqa4npbmTsLxi7Lx8CErLIG9wgqjeaWJ7Jjnw1DMsXrrCwOGTjD32FJk7j5Fz8R6ply7iOrWGgKNnkfSswDK7EdPoHIx8IzAMSCa4a4FdD17FKG8a86Y9uI6eIX7/2/itforYTBF340uxdnSVj0qTzRbyiSsQPDCL/KgiQmq3YdNxFLOyJRzFdTub6uFjb0aomzXxUgl1xSnsWszh2LZsEfei2becT3tNOtnxwfg6WhDv54KHjSnWwsdOB5qwvcSbDcNB9JV7kBVhxcJgNiH2wsd66lCVbcV0RwBLo5GcmErg2Hgiv1idwicL8Xw8HYm5rRNmMghuZBtbiJNvoNC/+RiZmGMieLeRqQW2Hv6EZeTgHBqPga24HwMbMctoJjijCjs7W8EBrLERXEU2qEL2PDwXFxdsrKzx9fYU22zlSTxXwRP3bl/mlecfk0+fvXvlFC88dZdHjm7izXvneOnRh5lcuZKe7pXUt3TQ0DnBsrifF17/JaeffY+V+64ydPADGre9QdPcVVoGNlFZN8zg4fusXnmUu4d3U9KxQEi0H5n5sRT2D7J0/SJPvnyNk5cPsLypjanuaFKrxnj32hYuLwp/kNb6sxX+5xbBj/93CTx1VRM8bNtonf6SgPQS6tZ+SP7Ch6y49luCU6txCypl7WPfUtnyGdNHvqBq1Xpy6h8mwHEAHRVx84RQ3qCiytfhXpRFhfIHQWJ/qE/l9xvGaRDGWS1EzPdPneBbIcx/lxvLxuxEPrA147ayAn4PKVKlq0Cj7kN0GSkzaaLCJmsVTriocNdXmT2R+pxL0OfXWer8IV+FDeX6P43qUlLkYpwRT3upoKylgnWUAVnzIoBkmXDmhSDOPXDl7c8yhJh2I7HYkl/8EMe2z7xYddeLnnknSmbscMkQYt9YlYo0c4Yidfni6QDmVuYR42vP7//wJOba2hiL+ukLAWKspExKQhCpobb88dereOFeJIeHzGlNM5LXRxKei6TlAKqJkyh65KJoEICCZSSKJlIU9L1RcEhDIbIfk6ptJE5fJHbsLKEtOwiu3kTZw8+Re+AqNrH56EuEoDWxRFlDSz66S/ZMsOahGSQePv9FEMmgIOqkpKbDYKQ/6UEBGOnp4+FoTXh4KJFR0Vg6CmKcV4Q0LhEFcX8UBfSMjEVns2N9fw+PbZznzqpRTGPM5DCJNcIs1QK3OmukY4YkbzGj7r4T/193/wHc1nmte+OWSErsFSTRCwGCJAACINgJEuy9994pdlIUm0T1TvVuSZZkuUkusizLNbbjGnfHdmLHcWynncRJHPvknJST7vL7v4Cd3HPuzf3PN+d8M5n5MLNmAxt7b+yy1rOeZ+EtPc/KSdsYRfxYFOpGIerzoz0WWRKNqkZDf0TE321EgNUGmRAF4SHcIQDmTbOJ12PVHJdGsyMikpnw0P+1bZQQz0oZupWrsa30wbnSl0ofXxb8A7jTqedYkZqJ6kTma6ycqVDy9VQV2wP9aHATVC8vHCtWYljhjTyqn6jwbqLC+lFGj2BQLwng3E+87Q4ySt7CVvAGMbFHUKp2Ei1b69lOGjGIPHKUGNUMoTFGwoxmolKyibQmEyUALDotRyzTkCQIElxWKQRSBoHRCnSuArQF2Vhba0kd6kDmcPy9gCcLuMHTlTY21JsdrencPJbF5u4knjzTyos3tfPNqxN0OQ305+qxhHw5a627xd79inB+OWTki3fG+eyPB/js31x8/vl9fP7FeWH38MUXO/ni8+fgiz/x2Z+W+fwPJ/jztRy+5QjktlUrUVmz0Cbmsm7b03zj9d9y8Z63OH7zq2w9+DSb9z/Nmrl7GJ2/RlXbPnIrBTHf8QxDw7cg1ReyOlTumZwiJCZdENisv1uEEGQds/uY3HeJwi4BkkfuJL1yiIqOKWLTKpAl5BIrkphvqI6LneH87mtO5kojPAW8QxMyfnRdx3fuVvPFu3Y+fzqRPzzv4EdfM9Ng8yNT78uxISmfXEnnrjElkvAwz8QVbUVJbJqqoyDL6inguVuA9dYVsWexz1OoM5lMpKWlUVVVSXNzMyUlxZ5inrt4p1OYUUUb8PMNJNAvBB/vLwsI7uKdu5Dnfu8l4sVvdQARoTKsRicWcc3uyS9msx2ece6u1OdztrmKs9PdFCfbKcvM5Eh3I9/Ztpa7mgW5E0S4QfhymiyS7a5kNguCXCI+x2hknuPH27PJqeigSIih5o45XPkNpGeUYI+1khkjsLFtlkKBp8XtE6hjBNHXKhluK0bhswL96pUMKHzYFePLb3MFFuUH86vWEP7cEcKnvRF82hHG70qDeEncvw2KVayL9mFJ7s2C1If4rExyywpFwhtg5+nt7LpzmZMPHmDXq7Oc/dFN7Hmnk4vvd7Hj+kamD03Rt6ODni1NtPbUC5FcTriISbksGqUQAFsrhX/m6FBKIwmPCPX8A9fQNchzb32Ln7+9hS+eqOLieBIxcokQ20qO1BoZtxWxIITzluYRgc9nudC5gTX2Yvbl9bPN2UxBUgp5FhvJ0Vru7n+Tor470BvG8I1vJMBaK0SbHlt/D+tm5jm6/zDrhsd44NK9nN6xR4iJUqSRMsJDI4mOUggyEIsmzoxzepjc5SUkyWkEiPW7NUH8aNSXOxdiSTHIyEk201grBF1XDUMDQpRU5JIZr2HUoeK1ciV9UWGYoqX4in3nnvkhO77+aw4+/ilXvvMZE3f+B6N3/IHa7c+iy54ib/hrBKrt+EarCNamIUseRpuzFVvDaaLt7VQ50gTJNHPgyiQRwcEooyIFEdWRU5xBw2A9DWs7yW8sIk34S1l/HWVC4OY2lDEzsgOZIKC5xh4mHF3innWSF9tFR+c4tUJIT8wsMbtpFzfed5lz1+9mfO0ETR0t1BT1kGccYE1SKwsZzey8/Dpn73uBM3c8yKETZ9l78Ci7lvcLYbPIwtQA8135HJipY9e4EGD9hUyL/LymOomRKgvjNTZihO/O15Zybt2A8O0ootwFPJF/8pLbGKgeoiy/krnWBoZ6+igqqmVyeC879hxny+ZFEuPT+KSylH8ryeNf9wzRn5VIQ7GFXIt75sovh1FI0Etx6GXUCR7QJgRlruAJRp2co93tvD7Yzv7eXgqTk3AkGHCYxPmodDSWNJFuMnMkRstTwj92i7wSFRpMbXg4d2miyAr3IyIoEGlYKJtmZsksrOeYOJ+9ixvp7Fykt3MtE72b6J67QO/uvYQqtJ4Cntuy+lrpPjpPx/wBkSvSKckspCClhqaaPXR3n2Nu82O0dx+nY+AWinJnKCmcY2z2CjlZU+w7/RZd7TcJ8VpDaVYxuUlOdCEx6IKFCSwcdcXz5okSnlnOpyfbSL1Nz0u1vYwmFzLsjOTBuj6OOLuIj4r9sittgIJj0XW0+kVyt2aaMnUxuggV6So7WapkTDItBkUCttgsDEoh1KNjWLBN8bHxMk/qFtgUJo7bXMDEQBO33ns/2y/cy8jxe2jbeIDaiUXK1+8nqayMJINS8AEpKr3aE9vy6Ch0cvc4w2o2Cj6wT6dl3BTP/pkBji2OUZqdTm/fKDXto9gziqhsHmRgagsj44uc2DDBtuF24R9W7t47R2SkhtT0epFj83AVLVNQfgfLh3/OuqUfMjIjyPb4G+SUPERl49cprr6HRMe8EGj96ESeMQgctiXohRhOJMlspDbdxq7FaUY7a8lMEmKkKJuKgiy2zI4z2dtIR4UTq05Jmt1EQozAYlscFaObsDnLScgpo2XvKXSJOcQ564jNqqfl8lOsOfsguT37KFhzmKr581Sv2c/49edomN1PUcMgL+/5Mw/v+kDknSrs+hIqs7qw6nM4tOYOdpc+RlncLE32eXI0GeQlpOJQxRAXGYk2JIwNsUrsoSq6/CL4pcDQ7wWGcFtMK+X6+2g2309/5V08dbCYnp9WIisS97xZhTRXgv1oPHWfFJJx1UaBcZKOxHNc7nmNG5cuMTWyhrrNe9nzxPPs2bNA5/BaxmY2Mr5uhswiMx3VhWwfqGGhJZ/64iJ6itpYCvVja3UpxdZEz/AT2+S+fFPE6+ETN5GTV8CowNcRs4/wVZEvInywJWfRufYwxf37GOqc5+Ytl5nsmcCZkktFVg2n527i9q138cD+61yavZ2NTUvYdGmEhSrwD4giICCS0BAFRpWNgbpprpz4HZeOfIvemnLiNFryRC5ZX5vC26ebeXqnk8xYOQMi7voWXOSl6TAlKFjf4J7URUtE2tdJ3PA2QcpGwmVO4aPTHJg4QppBS6jvaqaqXFzediN3nzrH8aFWnty9nScmh7i7xMV4VSHNZ96l+9h3GDvyTTadfYObHv6Qy2ee4ZkH3uAHH/4H77z377z5/X/n1JOvMHb7XaRMdVG8c5nS+SNIVBZ8JeEEiFgIEkIzzOQkZugoLc0VzEz3e/5oKCotxrzzKrZZoXt6+ymsqiCzq5PUrm4cA0NcaF7kfMMszw3Mc7FxiK7MVrYIAf/y0DYeHjjIw30H+MbEaV6YOMXTwyd5ZlDY0CleW3sr311/G6aGC+Rs/A715/+d8Wc+5/xP/sqzv/2C8099nSNPPMnGd/9A6sRuBu58icXn/0zzpd+RNvck1ra7MVUdpTE7mfJkC63ZKWTolWSKWHfFqcmPU+FQStg8Psw3vvUyb370HR785n1sOrXIzs1jDLYUkSuTcPeJTWxuyGJNVRqHBhvoE/ick64nP8/Evi1ruO/AoOCwU6yvTKErI4buDC2pugjP0BrLh7bRLnKzKUyONVziGeu0UmbkTIKc7y6V87Pb1/Mfr1/iL798i99+824e7LDx0eFifnv3IL/ck8MnB1IFT0olMU7EkVlNSV02k0sNnNxexlxfDqePbObhGwdoGK2ic6iS5f29XNjWRG2hTeBxovDdPN5++ZvMDXXiSoon3RxDc04Cs61Wru/N48xUIQ+cnmeyYzPDLdspFcvWklq6mseZ6b+Tke7rdJc7KEyLJT/TIO6ViNXaDFpz9FSna1lscfLCgw+zcWRA5Hkdw5VONqzpFjmxgPr8RNIdViGj/7mvfqGFpoTtW+XDvb6reMLfl0tCI93t68MlP3+SwiREh4WL/BlOpNCICmGFQeHs0SbTEJPP0PxRmtyzN9//Nsfv/jY9CgXFFRU89PKLPP7Jb3niF//GmeeeJyfbSVFKmmdc4vI0GzNtTZSuufOrs/jvv3SxMSgEH4iWBBInOEJ5iZGybBuzzbkoBQYkGOTEiBxRkGNlY2cOGqFxDcLHY/QKZIJ7Vxy+mTV3P0rzjgMiLteQWFiK1mLFkp1L84ZtlI9MMHLyHNktHWTUt1I3KbjBxXtoPHsXBduOsv/6dU4+8TgDF+4ka9seEesHcd7/ANmX7kK38zBZew8Q2z1LVFYJUqfQHC0DtG7cSt/cIvWHbyW0ZjO2mfO4lkRuOXw/JSeep2bv4/QO7hDnn+Ap4Gn0cVTueICsqXOUlI+RMHkX1u79hFeuF1w6EnVYgGe804wELV11BQw057Gm3sjxnYVsWZtLX7OFjsZMKgsycNqMxMoikIX4oxQcfd4cxt7iGI4vZTJUr6ehQE2eNQKnIYCSpFB2L6SwttvGiV2lvLbg5Ltbs/nOfDYnp5v42lwJwWGRBAgfkaw9g7ptkdimcaRd6z2NfPz8A/ELCKSosZUMwcVlBhPS2gkS9l8lKi4ZW3YFccZYT9HO3cBCq1b/vSVeRbGL2ZEuDmxfhzMj2dO1dmpyhNdffMozDt4rzzzCG+L9A2f28vxdZ3j1649z12PvMrPtEC0ta6gX3LOhbTsVQydpOvsuoxeeZ93V3zNy04/oPPIWrdu/Tu/EdraNVrNe5MiS4jryK/uZHq9m07kDvPHhK7z84Te4/42H2XXTXtrnN1Bam8d995/lp0/fwku3HWb51v8PTGLhuyoCk3qcmv5vkdM5xJbbf8Lg8rcwprTQt/wI7VsuUNq5jcnjH7DhzFXaN+6gqfsF9JI2Vq8MRicI/52rfPldfpJwtFJ+fnaBH23oocuo4mtCmJ+L07Gt2Mm/DHbw4HAXe0sK+VgdxREBOu6uO72hXgyH3sCcZAV7pF5c0PrwoMmHVzN9+KgrgDX5Efx1aTWf7VjNcGu4Zyy8GksYvy1cxQdJ3qwKXomhJJyJWwVh7pVy/bUaLj+WQUGLnJP3JnLyvJ3JLVaufS+X47el0r8xhvZlI7KMYLx9vWjKjabHHsLlnQZ++YsjyIL9SdSpCVm58u8FvAixjF7lxX23T/DHP97Me2/0c3VfNNOtMk8BT2rOJXdwH2XbruFXvpMVqWvwKt7OCtcCK+Oq8QpO9HSvvcHexYqibaiHbqVmz0Okumc9fOZfqL3wBObGUcI0cazyD2Kltw+BoRIq+2fp23yI8oE5wvSphLtbSiVWEW5rItTWTmBiG3sLk5nLsjKYahEBa0UhjSYoONRTtFshjuNZugt4q1ZTmeviyRsP8+yRXXx930aeO7qDyNJIj8lroonp0qNqVmJs1ZG/vYBCEfB9F2vImM7A1G1G35OAtEZBeJnYp+TLIt50RJjHZqMj2ahRsSSTs1Wr5ZIrm51p6TxcVsFxAfy74gxsF4LMvZ17+8mICI8pVgpSKXwh1WsVBV7etEjCWF+RiFMkdYtG6unSWJ1iZKEgjubVPp7iXaqXj6fbtlo8I7lkCmn4JMrIOYyareiUSxi1mynMv0B21m4a6h4hO+04ZuNu4nQCVMV28oh1Yp8psVxLkFyITY2BcEsSEXEWJPGJSCwOca8TCRXAm1ZRgFKvIyhagToji2hLApHxRtTOVJTZWf+pgLcSRcAKT0u8jlwr21qSOLepkHs2F7O7I5PpUhO9OQYK4yI9hbsYYe7JLy6EBvHDKgV/fb6Zz39/nM9+v5bP/rqLzz/dxuefn+SLL7by+ReveAp4n3/2Kl980sSfzth4y+HHjd7iNxMziHXWMLjhMb713p85dNOrzO94lMF1l2gaPENBzRYa+06Rnj9FScMOjt3yAcVlu4nU5uEriFeAwibIs50glYMgtTAhHCOMLlpm9rNm80lKBjdQObwZe+kAqRUDyE35RAvhZfyqgHdtLJLfXM/iYKeUXIMv9RY//uO7yXzxzXi+eFksH9Pz+WtZ3LvPQkGML4nRq3h8v4Xv32jh/LDWI/J9fX2JCAsRAiHYU7R2F/Bys5LprsrmtsMT9Hc2kJycTF1dLQ0trdT3jdApSHReXh6JhkxiVVbCQ6I9Lezc5o5JdxFvlc+Xsza7u9K6C3vugl5UmPArQwZWIYrdM9dOOpM8s83eUp3LS51l7GypIddmxmYx01pZyVh1Hov1xdQ7zKTKIoUICmSvy0GT8Et5cKAgGAaU0XEkppd4msu7StupbVpLlYjn9sElmrsXcCVmUlE7Sl5NL5mlLWjF+SYak+kUCUXhs5IJ6Sr26/1pD/dhXeQqRsNW8Zh5FQ+n+vGzoQj+shzJFyOhfCQ+H9etZlzcw8koHyajfagvL2ByromJPd0M7J5j54E97D65nT2Xd7H/toss3TbI3c+NMburmYnZMTpHB8jvK8I1kU1OX5qngKdUyEgxKjhQF8ut3RaGXDpPAVWllFFSlsflk4Nsn8rnz/eV8q3t6Tj0Ku7qTOBMfSwbk0up0SayPruGHZU9HCnqYM+aGe5sXsfFim5662upKCpmODGfpY4JeiuWCU/oIn/tJW4afJ4IcyJxVdVUVdZRMz3K9lsvCIGxjbn+NdQUlRMVIfUU8CI8LfEU6AWJUMSZcM5Poy6tIEyh41ZLMD8fD2CbID02ZRi7k32YShG5QTx7s4jLu7tW0xG1kh6TlO8v6bioD0Ih1+KviGHogR+z983PeO4Xn7P89Gds+9ZnFM/fRXBMEpLEGjQ568T7FELd/lK4g/xeIcx3vc/ykx+J+3cLzrwsdtw0wZ5b17L/nlkaBttEjhE+O9XD/JZx2jqFz7qFZkMpQ/2N9Pa20tbSzGjnoPBxO9mxzXRamhiwNpMV00R//ziLW3dTXdLOzPxmNuzdy6HbzzG3YwP9k2tobRoW5KydLmsDnSIPHD5zKzuXD7Jlxy62bt3MxpkBtkw0s3G0jk39hazvEOKs0kZ3oYnGHCNtubEstiYxUmkWAthMnLhH1/Zu4P37zqIT2KoQsaN1/0vfdY32rK2sqWkgLUkQysFhOlrb2CLyf1f3AfbuP0ipIMujKXZabQlUC/G0pySLvq4mumvT0USHeHJ1uTOemhQT9WYTk0JsWgUvcOjVjDiS6BIxtqO9naoUB+1JFvJi9SSbDMSqYzBGyxjXKHlEEMKblUq6IiUsycNpkn/ZjdY9I60iNIRdc+uZHZ5jw/gSrXPnqTp7jI7tJ2gTPpQ10ky4SkdImJTQCCUh4TIi5HqiDHFUTRxDp3BQ6qyjMn+Jhc3Pcuaen1PomhZx83Om1j/AQNsJRnrPsHTodSY3Pklr2zInb/uQcrFNuauC8pxyLFEmgWkmzJJ4OnPsVJiNVCXGYI020Gixc62yja2OajYWJfJI1Qjj5irSoswogzWe7rSP6XfxtGIjOQoLqnA1ifJ40rRxZMbGUePIIz3exVDhGPEaGzKJHL3UwIRliOdse9grraG1yEqLOPawiOumYeFvo5M0j8/QU5VMQXc7aouaGG00MpWIoWgJEeI+ygSZrhci2D0moiss1NO6aZ1Rz0B9Oee2raWpoZWS6ja0BjMJ9mxMSVkUVDSTV9ZIQmwsBWl28ZyE2BLEXCaPxRjvJLegE0N8D/uPfZfCipsoq70Dk32TyJ1TxJiWyMrfg1TTTnLWEvGJrWS7JrAJ/43Xa0gXPDFJ4GlNVhLdAoc7ytLpLM+gWXCb1uJU2sXnBsEvs+2xOISAs8UJ/9CpRK6XCXF2icqhRVLz6ige3URy7ZAQcbVoE12eMfGmnniL3O69dJ18gNKZMxR2baV8eJmus9cFr9rImZ4PuWvDRzx+/A0s2nxS4iopSa/njsnXOVr3FguuR+hJ3kC6ziqesRCUkQqMAhsNwveOJyhIjTSRHWmnVJZBseEAduf7+IU4WemlRGHdxZ5Hf8DF395M/PoYwmNDkWdFU/K0k4zLduLmYihNPMjJ1qdZP3ZSXG8Oa/ta6Blsondhkc1CaO655SR7l5fZfvQYbRU5nJ1t4cK6NqbqC6gU/KO7pItF8QzvTVlNqxBS7uEnHjVGcmthAR0pyaQLAWyO8MbXPeGV30qMYd64HIIvLhyhcs1+LLFJpCekizyajDkuCbs5nRxTDtkGF3WZdfRm9tCW0UZPaR9TrdPsXLOLA2P72TawleEaIZhj9Oyce5rlDSfJTc6gMK2UPPFs7p+yc9tUHmfXmLCnqslPtdFUkoBdG8GJqWoGhc9GhkYgLz+HVegMqaoeVZQKc2o708NH2TMziEoRSXO1k4LkWI4utHB4tpUTQ/28Pj7Eu8JXbXEqRna8zMa9z3LoyLPccu4F7jjxNY6K/d96/V/49qsf8sSV73H77W9y792v8/D9b1C3e4mDZx5h975HqKtfi5/gowFKBSEG8XxshcROHCctK80TI8ZEi8jbVbQN9lHT0ihyYS6lZfkkpadjz3ISb7PzUN9uHuzfy5PiXr6/eIqPD97Bj5Zu4ruz5/nR5nv48dKdfLL7QT7ZeZ1PdtzPx5vv5eMtV3l+3Tl2NM1ha3uMoqUf0HThN3Tf/VsuvPxrLr7yKzLbhhi8/BHjD/5R4Nhu1tzyH2y/9hGVe/+dvA0fkNbzdZKqTmASfN+hlpMWoyZFK8OmisYijcCullJk1vPYN67z+k9f454Xr3L2ylHW7x5jbqKe6f5qbAILji2NsGmsncnhWta0pNMstERqchx1uSkc3zjE5VML/PAbN3Oqp5wqq5xqqxSrOoxs8f2BIztJj5BQqlGTK42iQStlvTiXxzuS+d1Lp/jLz1/n04/f4S8/epJf37eDnx2o5dEKDZ/szeSPzx/iTy8dpWSmmaLaHMpKM6hvddJe56RSxL0z08LJHSNMinWd9RlUusysGyikpSKVnLRYslLjKM5N5PTyjeQnxYmYNTNULjii08xglZXbN2WycyCXF+/s5/ZD51g/uJ/2pl2kWavFuXcx0LqX/fP3UZgSiz1Bhik+ikyHirQUNcVOE/lZccJfkxkodtGdbKEpx0JOopZ1fV0s9TcLbpJBushZ/+zXjNB2W4XduFpYWARnhZ65PURgk4it3EgpKndLqtAwosV3CkkUUrFUCVsrS2TaVMlw1710b3+Atduvsq6tUeBBnOdPiumNm5k6f5Erzz1D49goJo2WFL8AXDFmKtPt1FnFPVcYvjqL//4rIU5PnPAZmSSIeLuJziIDUy49PU4DkYpoYnVSNHE6kYuUrBH4kW/UivdqgQ0SFMLHs4ZnRPzspXhuC8Ub9hCXlkF8Whpl/YPsv+8hLnzzLarG11I+tUjV9CIj5+6gdPN+Ws9foXDjMheefprTTzxB39nLZOw+iO3UOYqefobUY7eRtPsUucsnSZpaT0F7L+fvvsydd9/G7Ow0a8bHGZicRlm/idqFw/QdvpO28Z2U9m+h7Ma3SBV5yFHaTEZtH5aKPoouvIfjyNvYFh8hqe8oyrIZgpy96OWRggsEoI8KoaEoXfDlArrqHII3yZnpS2SqO5GK3Bhaq1Moy00VWtaKRVy7PDQQhdBM60xhbEqKZEO9nd0tZjqrdORZg8g1BVORGsrmcStDDXquLOXxhNDvb0xYuWOikvmWYibqXPgJrucXHEZAXDphzZNImicIjU8lSPhIaJiESF08SakpmJJTCZcpiHIUESF4c5RST2JKtudPDr1eT6zgbjrhIzqBBeVFLr7/5iP89l/f47H7ztBSV4bRGEt5WTFvvvIs33z+Cb718lO8/sKTnNmxkUsnT/LgQy9z2yM/4fDtb9E1uIaqhiFqhvZQPXIc1+gVcucfoEXws+57/0L71b/SdehFZrbVUV8trmX9SfIrOigV+rC3PY2lxSbGtsywcPYoh65f5rEnTnH2/AIn9nTxrYcucseBXaxtLxY8tvsrL/znvTxFOPfyv2Pufb1XrMKo6aGo9DpxqaXEJopEnlMsSIiE7dd/Tuu+F/DxCcI/IIJVQmjbcmqob3gWaUgJK1f64r/yBk4G+fLzWB1lgljZ47XkZ6cR7evHL7JTeClej78QBhE+YtvVPtTGx/OL6AgmVnjhf8MKBkK8mAhbwaZoL46ohdiKXcnT1pW8k7OK3854cW2njMMzWv76jBBtGQp8vFby8mwkf2nw4+fZqzyt8WILwijfIsOeL8GcGE5hvpwIiS/f/2UZD7xqx9fXW5B4P88yq0JByUYt4fEBrBCkxhwTQps9hNvnbfzlT0dpb8lHIoSHu2gXJJar3e9X3EB82Gp++MEyf/j9Xn7zyQxPntbQWBzlKRDcIK7DPZagwlFK1vp7iBk6R/nCzbjWX8G/eCsr1eJerYrlhhATXvFN+NQepWzPQ1g7DpC88wrZp14g96bXyD0tloefIGffQzh3PohLJP+0dXcQ33sSdcVGwtO6CYwvx1/rZJU8GR+5g9PNhewqSmVDjo3l8ixuXdPG8aFOSjPTSM5wojdZiDcYODE5xDeO7ODJ5SVPy7vnju/i5QtHCK+UEtEkQLJfR0y3Bk2rhszZDOpmmwkI8iNMFkHfqX4qdlRScbCSzPlsNB06omuFGKqMZM7dVSIykmWlih2CCO1QqLiQlspuIcqDAv1QiGRyb3cPd1RUcn9FOefTUtitVrBBEsFiuEgsK7xRCx80C39I8VpNvn8Au7pycAqyHqdTYIpRkSsSdG2SgTyfFaR4r/Bsq/Xy9ewrjVhALtmCUXmQGNkyBuUuctMu0lC5jYCAYEJDVSJJ3UdN2R3UCR93pd6CUbUPeeRGse8GAiRSAmUqQrSxBGsNhOhiCYsxEmqIJyLBirOhDP/wSKKNCcQIUhxpikeZ7iA60YQ0SYiq/1TA+5vl2Iy0ZsayrimFtc0O9valU5wgxyhZLcTxDZ7CnSrwBs/YeYcC/HjZLuE3Rx18/lE/n/9bLp//fpDPPt3H53+e99hnfzn2Zffaf83i8/dr+VlnFK9ovDnq44MsJgFjdjWu6k2cvPB9th59jaGZ2ymu30pe9UZclRuo6TxM65pzLOx+ksMnXsZg6SJMlc5q94DUUXEESBOEmb80mYXwmEx65g9Q0jlHikhEqpRyGsc30zSxl+TCZlSWHLTWPHzDY9hdH8ZPjip482YndfZAahL9+PoZK198O5svnjHyxZMpfPFaFvPuQdxVq+nICeEXj+TwwyNqlmu/nMTCbe6im3v2WbcAcXexMQhCWprtEAmokYJcIXjS08RzrCSnrIKKDfvp666nraEcndyEWhqHv28gQf6heK308hzL3zf478d2F+7c5m6Bp5HFeSaxcLe+0ystjGbaPN1oTwtx9GhTIb2WWIbyXGhUKhziGY9U5noGUvdfvRqN8NcZR7zH5F+1MMqwpRCvzcCcko8tOQ9HdhkF5d2MTC1z6e5vsHv/HRSa0kWC6SGtuNGznUZuFr9tF35qRyL8uVklQRO4CsnKFUQLa5OFcNoczoMp/rxcGcIXWyV8Wh/EPfGrGYzyZlDqw0CUD53h3ozM5VO/WErpRD8DY2NsXZxhZs8CGxYXGF/YSJ0gxAdO9tPZ7SC/Mp/hkSnqW1rEc83A1m4jJDgQpcDjoUwVy1VGzrWbeWrSRoVDyeFOGx8dz+Ovd1czX2ciVWC7eyBhpRA9fekqztYZOOpqJl8aS12MjW1ZtfSZnBTGOMiOMYl8YGMsuZj9BV1sy6yiRdyHxqRKjPZxDs6/TI62mJiGVgw52cgVatJqysg5vIeJsQmGWjvJycghLNTdlTeSMJGPoiQyYnRG5EotamsSGXPThOhN1GvVPFsdS4NZ6RmzVem1gtKQlRTLvEgN9MIscN5fPKsEZQSPDRu4yxyMQhCTILHv2IG3uOvlv3L9w885+MHnLD71O0r23kmwIZEwUx4SaxXGgnWML7/GgXs+5dQDn3H84b+w+faPufbKZzjLc2meaaBuuoGp42swpFqIVMsIk0diTIono0AIjsI0rBlWCivqeOTED8VzF75i0AlCHUq6thK7qoICQwWZ8fVMzq+jvqSJnq4h2rpHGRPkc2R6HZsP72LLsb001vdSaWxgXXIt6bp6Nm/fw6YtW9m6tI7d833sHK9ix5pCJppzmGnPY7Aiic5CE91F4lqrTGxsd7DYlsy23nTWlMbRnOtiy5bNdOfneFrjqUUuUwtBUJw6QoFpiInh9WzYeI7cvD6s5hwKsnPo611mYmovY2v62LdjhlN7RziytQOLINtz04O0VaVjVUqQCr6QmxxDRY6dEoed3iIHmUY1rYXZHF0aYHFsiB1dXTSI519mjqc8wYDLqqfCaSFNEMJmhZIHBSG8W61kVBrGfFwwkqAAz2z26uAgbtZoWD8+z3j3LMM9e8letwO5xUKYRElYuBDlUQqCQqO+fB8aTXBIFIkFmUjc3UDyq3BkDrBm5H7mt7/B2ft+R0/PMdp7z3L8yh+Z3vQAGdYhCrPEvT/4MnvP/ZKsdCF+Nz1Ca+MhynJGKXM1km1II0OXgl0IIktkAmZheUYD48m5rLG4OOHs4uH6Lr4+MsB2WzOZUWaypBZUIVqP7bLuwBAdj1mqJ1VdRJoqjTxxvBxVPFWOFJJidNy1eDuphjz0CpF7IlWoo9Vs1DVyn2KcjjI77aXCxLKsppzOxmI6JmcYasqmuLaQmCQjcUbhazIpUVIpSpWSJCHsF7uz2dQvnr1OzZTVxmadhjkh4BYG2rCLz0mp2ehF/KpjbcTGWaguyCHB4qBjcB3DsyJGNxxh78I6NJp4FKpEpHIhNGoOsXnHN0hKX09G7i5MSfOkOrdgcYzjyFiLTFNDlMKF2VZBckoDWl0aalkkyQJXksU55QlcbS5MYU29i77qLGpddhpE/PRWu+itzKJKiHOrVk6KyUC84AZGYeP7bmLi9B0U1fWTXd5J2cwhnJ0LxCWXYM1to+PUfRTNXyC3ezd1Rx4mq3mBku4dVK0/Td3mm3h4x2vMts/RWTsqRKEOtSKW1858yGML/8amghcFv3qF/U13UZ1RhN2gIU4azYBBTlJUBGdMSrJ02WRr8snQjpBW/X1WBxWz0lsneGmEsBAq1v2SkkNXKT6XjapWjn5QQ/XP80l9IBFZvpSK+rO0tkwzN7rI3FAXM605tOXbRXyW8Mi7b3PvbQe4+81Xuf/9d7n7loPcuK6N09MtLNaVYo1PokOIw03RwZyMXU23OQFJaDCX0k1sEFzFW+QSd5faAw2Jf8+FbtMLzl2TZad5cj8JumTiNUmCE1mJUcYhlWgw6MyY1BbPuIvGSBMJkYkow2LQSOIoc7SQGVdCVVoLa2rGsGhUQlwuMtlYTUFGjRDga2kQ2Hl1PJmjtQYmbBJqMuOZKDOTpA5lvcCk5YEidJIQJFFhxPc8hr58EfXc4yhTxyjRpvJwcR4H5mepy7FQEBok4kBLnfALV4yc6ugoGhRSDpXV4rToWd7xCBsEl549+CgbDj/KXPkch849wR1PfYdLD77Fib3PcuHRbzM68wBbLjzNzPmHmT/5NRYOPcyWvQ/hL+IiUGBMiIjZcFsq6oFDJBQUIB/Zje7gQ8RMLBPrzCW3pJja1hbiExNJd+ViynLi3L6D8ZJ+NtVMcUfvTj7ZeR9vr7+ZI51bOdi2kac33MKnx5/hna2Xma6dFjE6xN6ODXxx/mW2tK1HG5eNteRWsrsep3zxFQbPvsfI0TdZuuVxOvdeZfOVn7Fw5T1S29cxcutLtOx7ldTeB8hsFX7c9giOxvvobyigsy6HXIfgpxGhmKThJMqisNsNDG/t4aXvXOGxb97HHQ/dSH93ERs2DVJXZKXAInJ5aCi3nTvIXbcc5a7LBymuyMAl+JAj3Uq3iMEzh+Z48NJuvnf3fkYLHZSYoskxSAQHiCa3NIdDJ0QeEDFwS6mJkwVG9qQquZKr5Gfnu/j4xix+/42t/OGF3XytLo5j6mCeypHxqztn+Y/HN/HXX7zEZx8+R1ZrMdkjVdgLU8mqL6C3s461a0rpbMthy2IbbS0lIg8WklOZTqrgMikJwt+ac6koS6Ygz8pSeyfP7t7Pkb5WDnVlcXQ8j/4qG1v609jUZeenb2xmuGOEzvJSxroXmBDabGddNxeGZpiqnyczUcSkMQKzRUJGspqcdAO1BQ56RQyOCAzqtuvpFHx+NsNFqS3O00V8z2Svxx+zUm1CRv9zX5t8AzjkF8D2oEDqRL6sU6pZm2ChJ95CnFyFIjJamNB3UrnIG26TeYp6cSERbLLWU7jmGwxO38VhcxLb+uuxqOXErVpNVrzIC40F1FgtZMVE4TLISPbzoy4qkuZoKdkit8cLnvA/fTni9ViUUkx6BZbEONYUGxnL0jGWG0e44KUJIuazhBZITlDTXKRm0t19NE4r8lkEMepoqpZvpO+WqzQcu4Brcj11W3bTtOsAEydv4qbX3+FrP/qQ5Wdeoe3ITTQfv0DR3tP03Ho/1TuPUDy3je13X2Huwq2Y+hZImN1O3MHTxC/uJHtxK4mjc/ScusA9Tz3BB999kye/9gCL6ybYIDhaQ2srzZ2dRLkG0RaMo8vqxursxD5zH0nbnyaxdozKc9/F3reL4qMv03THewzd/T0mb3+NgVOPkrpmG8rCHnQiXnURwTjjlYx3prE4mstMVzJOWxRFmTLyUqUUpclZP5rFVF8unTWZlCTpBZf9soi3NTmKnRWJzObouThoY11vHDnGAIHRIRQ7QtkwameiycTtbXHc36LnjgYjO/ur2TfZyfJoE8FC24ZGu2fy1RGh1BPl7k6rEku5Bonwl1hHOnLBAzRJggtrjYRZi0QO1yATHDwpNcszvJFWqxE8QOPpQqvX6igtFNhxeDMb1g2xpqcJi8hLFSL+RoaHOHl0n2fsu2+/8oxnFtrz+w9y+dxd3Pm1H3P88d+z8c6PGD7yBH2z+5i960M2XvuA0qUnKbv0Hhn73qTv6z+l47VPGT1/lvHFGvqHlkU+3MjJ2RnG58bJTJYyMVHH8JmDZLa18rXbZvnmtQWu377AqW0NDA/209dUxkBFEWUl5V954T/vJfLx/6yA555oQipxYYvfRkXDVeaPv8vwyTtR6AURbdpKbOIgAcFRJKTmk1vVRNP4zVRWPoVRPoz/Ki1e7iLcaj8eFULwCZOOtztKuWusDbNKxhZ5JEMRIUh9VpMtEnalWsrNQoz/Savk8govEld4ewp4UxFebBGi9ESMD1cTVvFa9ko+7PTmDzu9+c49RvQGKR//6Cx+vj7kOSP57GIgn82v5netPuL3b0BuDcZeF0nWuJzum+LZfFmQ1vhI1u2KpWxYSUSkP44cCY6KKBr3CqG3W4/WFY6vxBs/bx+aUyQsFMn4yRsTvPLSHkK8vT3Fu1UrbmC1uD53AS/PHMGnf36Ij3+xl7efTeP6UR3hYV+28PnSVnrMPch/YukavH2CSGtYi6T5ICuFOFuxWuMZG29FZDIrMqcwTVwmf/421B270PYdRNWyheiKSSRFg0gK+ojI68HRuZ7Q5EYCTWUExBbhpy/C11CCb2yFsEpWG8q5c6KLm1qKWS5LZzHbzJ7iFE6JRHijIPL+AnADhF0c6eDB+VEeWBzlib3ref7UHl4+d5hXbzlJdJsSw3Q81g2pxI0lkDaXSf2xFnEt7q6H7olIVuKeiGSFu7igl1K5tZqKIxUY1sSKa4tklyBhZ4UYvd2UwFmjAIjkJK7WN4l93IUU9yQSK8S+N3iW+shIjpeW8bWSMk7qNewSvhEqtvEU8cQ2cd7CJ4QVCnB2pYpnGCvHrJeTnajDKfzLLoS5exv1Ch/PPu591dHLmGJuIs18G/bY82Q7LtNae584d29ucP/+V9fgfi+R6KkqPU5N0aNCAJwSYmgfvsHh+ImEFhAlJ0iqJFD2pQWptZT29xOXlOQZjzDGlYdKiCmlPgZtTjoaVwaK9LR/WMCLifDnlq3NXF8WJDNBLhK/irVVZk/rPE8rPWF/23atnw/nQ3x5PS+KP96Xy+cf1/D5r+v4/JNkPv+Zis9/aRbrEsUyns8/rODP96fzutmfJ4K92O/jTZRSh8bqJCGjnvqus5y//CFDc/cztuEeFnY/JJZXGZ67ytqtj3HX/T+goeE4OkcXEr0L/wglfhEG/CSx4hq/NL9IAdKaFOrHRBKrGyWtdhilrZBz9z3GyXufEcJ2H5Wtg6hNTrG/gVmnF++f0PPnp/O4sV9Jgd6XxkQ/Pnowli+eF/ZqDj96LJWudH9aMoJ4aKeR394Tz6s7o5nKcMfMl/Hznwt47hZ47rHZhloqePzmjaSkOEhNTSUnI5ViIU6mOnIY76umsCDvq+6zsZ4Wdu7x79zH8hVLr5VfzuTnbon3Zeu7QEKDIjHHpJKgTUYrTxC+Y2Qow8p8joMDJVk4ldFcrczm2eFWFhvLMMilhAb6e87NolcxUJjJxtw0glf9rwllsqylpFpSsKQWEqtwt3YxkmDLoLB2gLaBTVQ3T2JTxwoR6yRWpcMYZ0UpM3mKfqmJZoJEXNUZVVTFqTCIeKg0RHHYKuVMUjhdcn9eKA/ms9kwXjT70hHpQ3WoNzUh3nQK7GoP88Y5ni0EaxO1HU3M9rV5WkD1j/aSl9FMSXMPSbZYRofK6Ws1UVCZTLX4vqd9iJaOZso68jwTVZiUEUw61Wwr03OqKY57+828sDaZX+3J8Mw8+5ejLv50JFusSxLXp/G0zquxKzkgtt8i/C4jIoYcaTxFChPZsgTaxHMxCaHtiDOQ7p5hsqiQwdxyGhIzyY1NEUl2kdmuh3hq3feoObEVhcFIRHg0hTW1LB86zGBbBynWZNSCJISHSggLjUQSHkVkRDSxIi/FGkxEiVi1NdYSZkpmxqzh7tpYQVjD/v5c3K3v7EFenvv7t3Xhgb5sTlfyXp+MYkMcoaYUzt/5ex544i+cfPtzmpd/RPH6myjdd5GwRCeavCF6d7/Ejtv/wtY7PmX9ud9w2+2/oXXtK9Rs+B7XBJFIqcn3TEiRXpGCszoVP4FT/iGBBEWGUSDEVZS4D75B/nj7+xHqcqFpbCIoLQ1flUr45GrMigJM8jwSFfl0JJTT3dVDpiOXTFu+x0eSE7KprW5mx8llNh3ewWRBDTvT6qmLK8KqLmHH+jF2zXaya6KG/ePF7BnIZENHKjPNqQyWJzIgbKbJwe7eZPb2p7CjL42dvSmMVsQxURXPWkF8il3ZmEXsGcU9ihG+bhXEv7t9hPKyevJy2plf3EFRXg22hFIykkrJTs2ju/sYFZV9QhQ20NNWTaUQPPYEJdP9lVRkm4hRRKIWvuUe18Vp1QvhH8/Ni43kJBhoFfi5pqGc2rxUjo2NUS0Ec7xOL553DLkiHmtLnKQnJgkfimNGLsirLJzl+FDkwV8W79wz0rZFSvi6Xs9k3xxdDTN0N22hcvYWGi7s9bS0C49UUyKIXIzDSnBoFEHBEhJS4lj3yBby2oupWL9IZv48+27+NWfu/w0bdz1KoXOKXTf+gL0XPqJ6coqi4XIKOmqpFfd4ZvNL9E3cR6a9ny37XmL55I8YHXuQdIEleQmZOL8q5GXpBUYZbPQY8qmWp7LOVM3+1HYOO3uo0mbSpskjX5WEXmCWLlLPByXPcGf3FdoszVTHjpAuyyRZoiVDoiMvNo0UnY2y5HLxG3U4BGbr5fGC9CsYNzdzTTZMb7WDvupk+mqS6a9NoUMI4NGWbCbHu6iqLUIrcnZ8jBJFdBRyhYqWkiTB9dRsHXQx0+lkvcXGZFkDjTXt5BbXkaXS0iCVkhkhIbuwGnNSFq60ZFrL81HHxOMsrMWRlkuCNYP89GRU6hiUajPRcjOmxGZ2H/wuHT03kpM/S2PbcSz2PgzxTUiVBUikWWS5hoQNIhNYESxEpE5grjlGJoScliwhlBuEkG8tz6Es2yF8wEhuqoX64iwaC1LJdxhFTMg8A9YnxqqIUUXTsWaeycvXGT1yjtyKTlx1Q9RscXeZWkda+RA5LfNU7rxC8ZoT5A4fYOza8+KZbsFZN0Xz7svY47ORyqJQSGTiHslQClypzq/mwY0/5WDtdzlW9zoDrgmKRA5KjtORYlDzvLtFmTyaxViFwPZsUvWlSMI2U7f1N0TqB1jpJcNrlRNv3yTyx/6CzDRN2VP56LpV5D6bQem387AeMCNLlmG15mMTOJRiMtPW0MnGqWFOzI+xvreDi489zr5zp9j38HW2XL2HQ0tj3DzXwu6SdA4IjpIqsLW5qp9dGj8W3H/oxOqRypVcEpwjXnDvLIUX2qCVbMsJZbXXSnxWriRstZfgvF5YY3U0TR4kXuMgTp1EnMrKcGkjVSl5Qry7kIWriQqTExWiRBqmQiuJQxtlpshQgyRELTSD4H+hGtJiDXTVLZHtnozEmki+Rsr2JAmXJzO4VBrNlgYHEzV22pwGnjw9x+GRUhJlgURJBKZHB6MsuRn71vdRt96HJvsERTUneL9PxIIzgUxVJLUCS2fqc1nsqyRO8MI0ewpDzTlYNErUoSG07rqPFmFdy9cF1s0wOXqCzbc9y757XuTATc+z2H8X++59ic03P0PLwJ0MH3iIwSMP0rXvPlp330eAWkmw4K1hFhMRjiSichqQtm5A2zyNvmOahNElLKObMSSnkJSRgT4uHq3IV8l9fZRdvgNNrAt1bDZVri4+v/Ayyx2L6BLy0Qi/Wiv4++df+xH3bbkZlVGI3dhMMlMreGDbHVTndqAyZGJ2LVPcfYnqsXuo3PgwyR3ncVSLvHPx29QvP0v22juR1RzF1nsnGWvuID53G/nt56kZOIHJtYUTu7vZvtBGf3s5ZpkEq4iJXHF/SqZr2HxohLfevcaDz9zCuulmqoqTPGNKWgWPdSoUJIoYv/3WU9xx20luvnk75bVO7MkmwZGTOCKOuabExj3berlnuoniRC01NgXZCSL+kuNwVRWyfHQ3x9JV3ObU8ERnCg8KPvDQWDovLGbw47MV/PuVet4ZtdISFcpkVCDf31fIxzf384cXj/PXj7/NZ796j8GRSvLrc+jvdHl+t7u7mLqqFKprMihuL6SvuxlXeQZrBoXg7iygqTUPl8gv9kQNNnFOuwrqeWrbRW4cHeeO0VL+eLmda3srefKeAc6tz+Od55d56/XHOLNvC9/dW8Jydx9Nya3c2D7GG7fdT5JFybbJIfoaCqnNtbJvpJG1jblMi3txz01HGG2qoDBezlbBdx/onmXjYA17ZhpIs2hJTtQLGf3PfS2LvHZPSDhrQiMo0uiY0RtplSsoVmowCSxPkMmJEZggj5ISo1QLDqpFHhmFLEzC2swW+qtPczRSRr/DQk1qHFZpNPGCfxe4Z49PiKbUbzVxkgDiRKzaQoKoM8TQ6R9AjbBiv4CvzuK//3IIDHNGRmA1ajBrZPTkJTJRZmdtpUNw+0iKHAaqBD4PFFjozDVSIbhejuBUMYITGNVRvP7TX3Dl3R9y8zvf5+BLb9K6/xQ5M1vou+kOrr3zPh/99ne88fNfsu3rL7D3+dcZuut+dj3zKte+8z7nXn2LqdNnyV+/n/g1S8R1j6Os6sTaOczGE6d49LmnefD6VWZn19LS0kiHsLmZafYu72Zwapq8mjr8hS8FZw0RVTyHvPtmYtY+hK5+PYa5B0nc9xbO7Y9TNn2K/OFlnF1LZNWNkSEwO71hmJyutZ5CXLLIf2XJRqbb8tgyWsPebeMk56dSWGTFniaeidXI2u4ywfHK2TZcQXeBjURx7YqwIPamR7GnIp6FPD3XDhSxtktPscWPfHMg1RlhNOerqE6WM1quZ0OtkV2NFm4tVXCjOM7lDZ3INSJnqA1INUaiNbFItcJU7tlnBf7r4olLzUJlFbxVF0uUykBkrB15ahXRIk/Gmaye2We1apVnDDy3NkhPSWGqq4XWulLqqwXPKs0nISGOjQtzvP3Gi9x7+RZefOoRTwu85x67xo37D3N6+QBnjt3Grrt+yvyLnzL29l+ZfOZPzAj8XrjlA7ovf5Oq+35A0Y1vU/bGr+kROXzkztN0bNvM5ltfYK5jiLPTa8jIdpGbnchgt5Oa0VGGxlp48tY13He8ja9dGmDXTCnzfTnsnGjm0QM7qGzo/coL/3kvoUv+hy3wvAKQR7hEAAmn0wxSW/8IM8fvxUcIabdwXblCiKHVgbSvPUfTyCNUNT1DRvKNGOWDBK6OJXjFSoYF+X8yIJAzIvBf8vflruZKIcR9PEUf9zECfVZxXCT428NC+YlBy4/CwjwFvCyx70CIe/y7G9giW8GJmJVcTfDhlSwfPupbzZ9vU/H5t5d47vG7mJufESfsxc0n+/nimyV88UAwf9qxShCllUSaAkiqjyCuSIK5PZqhIyZxzm6RLcSb+A0//1U0bdJja5PQuF2Pa0SGNjcEv8jVnsKSThLIfHE0N40m8v2XOpjqs+AnyE6gOP/AFd5ErVrBjcsD/OF3D/Drn2/k9Qfjaa9ViGP/L3H4v5tfsJS8mfN4p47gFZHCDd6qL81fzw2mJiLaTlK7/V6CEvKILJxE2bSMsmE30solIkvmkJXMoC6dJih9DQGOHvwsrfjG13mKdqs1+fjI0/CWmLg6O8Sl0VbOtpZwsrGA5Uonh2pyubG5xDOguiFaws09tdw91ePpNvvimX28dP4wr1w8wcs3H8c4H0/x+UrsA6k03tjG2PURzPn/9R/b/2zuWV0VKSqKjpSh6tVxuyAzLxUUs9GeyBO1Nbw9MEyZMe4f7us298ywaYpons0t4KRMiNiVNxAmjvm3lnh6rxXE+njR35hFnEGOLU5JeUossYJ0ur9zb+Pe1tNCUhzPGnsndbmvkmLbTGvVk0wMfpeEuMp/+Ntf2kpUsiwhOJ9CqzqDj38Qq0UC9A0Ow1ckQb9wCf7CQlQaxmcnaezpYNO+ndjTU9ELsidXKjwt8GLynOgyM/5L4e5vpg33Y297GmeHMjk5lEGzM5YzW0vprf3PY+Z9afU+Psz7+nBZG8APupT84d5sPv9pFV98mMDnv9Dzxcfpwgr5/HsF/P68jbfLI3k+IYA7fL0Y9fZGLkBWYUhEa8klvWyOntmHOHT6PTbu+Qa3Xf85N1/9KZeu/Yxzt7xFRf1RYqwdqBMbCFU7CIhUimvXsDpUJ65d+6WFxRAmvhvZdorWCUHqumZwVHRw/v5naFqzAWdZKxkFDVgzy/GXGJnPC+DeqXA+OGvxTGZx66SK3owg+oTdOKvi8KSenqwgRvJDePq4ib88ncr7+8I42x3AXEGwZ/IVt7mLdm4LCgoiKjISZ6pVCNJcvnZhPaM99VRXlFFbW0tHRztdnR1i2UFFRQWJ+kxPt9hIITbCgiI9BTt3Szv3s/Zgj3/o37vWyoQwTorLwSSEtloW5xkPbzDdyky2nTqTnlDfVbTGaUiRR+EjMG2liP+wQIEtejUGIdjc79148Tdfkgisc7pb1dhSsKQIgRopJzxCikqhRSGSoj4xwzPeXbREKq5JRlh4NLr4JNRyEwk69yy1iQQLn06JUZAWI8ehlWJRRglRpKEyJhpNwCqeKQnmh2VB3BGzmjYh0lyBK4Wo8aYixIsC8T6lsYL8hnImWioYEaLCbjIKsjuGy9FEYV09DYLwzozXsjBTyMLGIhoHyxnqbxExIzBfq/cU8CwqCUOpCtYXaDhUHcuVbhNvrbXyq80O3l1M5lfbUvjDzlTeXGtDIzBFK4/Eoo5kIlPJYlotKeFC2IZpyVYJYWCJxWKUU5FXxLmWt7nQ8DrLTcfJFjGT5TDTV7RW+GAXYSl1ROS0k9bbSrhEEMpouSDvA1isIkakChQyNZFCVIe5m/GLpV4Qi/hYE9IoJUqljhi98Ps4MwpbJvfXxdNjVRAa6J45+8tnIxd5Ydy4ijRxn1Z8tc5bPLu6GAmvthkYiRcCNMnJ+Zf+ygPf/Yyd1/+MsWK9EHG5SFJLSWs7wPb7/03Yn1l/++9o2PkuFRteo2XoUayVRzDXn+L+t74QYjaE0IgwDj+wjraBGuLFcVcH+OMlYtPtf387H2+xXVRrK4bDR1CMj+Or0XomWUlWOdmVVkWLsQC7wKX5tGLxLNtIMaRQVNZIQVEN1eU17Di1j6mltXQn5TFqKSVX6xIi3cWe8Uq2DRayvsvJ5q409g2me1rZbejKYmdfOjs6bZweS2V9g5HBYj0dLjWNGQpK7HIKrXLSExOwC3GfKM41QZyncaUXZdl5zM8fZmR0huLUJuoz5uh1nmFN3q0o5DbCgiPobN1ET9882Wkm8jyzxloxqCVk2dTohU85RAznREXiiIjArogiO1aIoO4iijKSqUg0UpuW4CGtx8S9mGxsZjIvjzi18CEhDp02cbw0C8myaNZqJeyOD0Ea6EeIwIkwcW/dRbwWiYQ7Y2Lob5mlsXSC+uIxahv3kTPcTHi0lsS6Eva+tRuNw0ZIuNRTxEstTaZmQxv7X91E7abzpIjcfOaef2Fp6TitbVtoaT/D5oPvsHDkRew16VTsLKB2bxn184ITbHyeddtfIydjlsGBrWzeehM3XvqI9JgUcuLSKba5KEzMocDsJE9up1WXR6kqlRa1kzZDAc3GfDYmtbFkbSFfJfJHdKyniHdV0c83rQd4tu05es0LVCvLcLpndZRayNUVUG0uJ0NbQElCJ4UJzVRYS0jXm+jUV7E7KJ11PXmMDLfQNTZI79ph+mbWMLhpkY6FWUpzxe9oogRGirwVHSUItpqNfdkkxqrZMpBNjbgfB+IM9LhKqWgeIr+yndncYo4YDQyIXNctYrG6dQ1ZyQ6aS/Pw9QsWsSpFGxOPPSVHEOZCJO7YlWuJjUtGqUklt3Azi5u/KZ7FbVTV3Up+0QFijOWERdqwJrWg0mUTKvBCrowlRORbg0qGVa8gMUaJwz12pCOegdYqrHHuiRk02M1xlGY5WBzpIMU9VpZRjSNORYIQe+YYNSOz2xndcYytjz9LXlUHLpGrSnpEHjx7DVfjGCklfbj6dnsmZysdOUHX7V9n8PRVMmum6Dx0CaVKhVTgvV6hJ1apF2JXgU6Yy1HBldmfCKH/XVqNozhlDlJ1OswyGa+mKrkzUcElIf5j5U5MmjLMhjEc9a8J7jBJdtslfILm0KS/g7XoQ/Spw6g6hBC7mIi6X4PMJfJDupoQeQiRIiekJmdx6sAxke+K2TA+wfzQKBvXzrB1VoiQjRsZXRijZ7SH3T0VPLZnmJ6wEI5lOMjPKmJd/ygj0T4MitzQkGTDlZtPd2YyYynhpMu+/BNLGuCNOdwbq8QbhcgZqwTuuLGnvrmLRG0qeYY84mWJDBd3UJdegDLSKHKjiogwkcvEPZFHaFBL4gkNkhEVrhemIUTw2wB/CQVWG8UOB3EaHTa9nLHsOC61ZbItXs2Qzp+6VDXVSdE8cOM0d5/bRIo6GEloqPCBAJLtSmwXvsfoc79g+xMfk68u4LbSIc6sH2C02cVok4uZ1kKq7HrKk7RkhAeSEBhMvkPN1o0DpCWbadp2L4077qW7bRtVKW0MHXqIyRufYO7ck6zf9xiDhSeYv/Aka88+ztC+B2nuukTbxqu07rmXph1X8FcpCIoVnCfRTGRGGrKCPJSVZWjqq4ntacM8sQb7wlocU+MYk5IxWqzYUtLRp6RR98C9RKvThLAVfCLGSW1GPcnWYlRGF+o4F/p4F0mGTFSCT8ljMlDoBV+MSUcZm43SmIPKPbZl+hiajHGqx24lq+MojsYj2Ou2iBw0jl9sNf4i5pWpCyTUHSO1cjOy+Aaym4+gsjSQ4JzBGR1JplyKOTqCmrZKqmfqaZypI7+vmP6JWsH7tjK61M1akffVkjCkYcGeGUQlgstEuLte3niQG08fYttWgRdlTuYXJphZrKGgMoO+rlrGG/NZ01xEZ4GdhnQjifGCQ6UIbHamMLZxkVN5Opa0YVzL1vLRuV4eaNTy0lQib2xI4YMBkWeVofREBfFKk55f31rHn17bzm/vneKvH77IF7/9KYkWFTlFdvEsdVgT1RTlmQSHz6e42EZBYx7paQ6s2VYGulyUN+VgMauwWTUi/0sxxqu4vaidV85e5pkjx7m+rpV3d1fy13fX8tL9I7xwSyPn9m/nh986xAevPcAP7ljHu8vTQiv18eqhY7x3+UnMcdHsGu/j8MwI043l9JdnsqmvkrGqDB6+5046ygrpqylgT1Ue5/M7uHl+mr66XJpLMklMiBYy+p/72ic3cLfgm9UCS+1Smcg9SnLlcuzRUhRCx+jd+BwRSZQwheBY8ij3mMJhnlZ5/TmdjIaHU66JJssQTZLQZUah2/XCN9wFu/joIBIj/VCH+nreGyNDqdaoKPbzp1Hk4MqAoK/O4r//sibEItMoiBUc2x6n9bQkrcux01uS4sGTNLtRxI2KtgIHfcVJOO0GtEYtZjdXFjnj9m+8xrM//pAzr3yb4qVluk5cpPfSg2x/5lWe+OBHvPjud7jvG0/ywb/+K7c++SgbH3yMY8+/zjd//jGv/ewjcpYOEte6lvyeCYoHJ+mdXWDXyRPcfuUy526+ibm5GYYGetm6bSPHTxxjeHyU+rY2yuqq6ejrwTdB6CBbC6HJTUQ5e5AO3otu+iEcW5/CuuFBEtp3IU8RsVoxSHLzBNaqPkz5DZjcf4jm12HTRuMUWFmdIXJ6bSGP37qBwppS7DnpZDriyE+K9XR13S04/LMXF7i0o4fxyjSSY6TIQwI4kCvjyvYy5mstDNSm0uDSCbyVUGaT0FGqpL8mgW1dDrbVGhgr0nHrUiYn8mVcqLdwsVzkInWMp4in1BmFxXqWCmEx9gwS0zJR25yERqsJDBL8VeR4rTUZmdCbMrlaxJ+F+Dgj+hiR/w0xWEzxFGc7WR5soaY8n772Gk/8Ouw2nj9/E99763XeePV53hVLz2y0rz7HzoU5Ns1tYOuGvfStv5WBiz9h4PG/Mv3cp8yff4ORG5+j6+q7tH3zI9oe/R4V196n98hR2sa7KW4qY+biU9x25F62tHXQOzRASkU3jjzB3WoyuLC9gYt7mzm2oYgTmyvZu7FDcGsHR2b7eOfUERbWHvnKC/95L5Gf/+cFPItuFFfmBSGyLlBX/TXaZm4nLEqKWp+MzpIqkk4aAyPfJdu0D720GW1UI5KgDFZ5RRCy4gau+K7mV4Js/1qQ9v+IiuJyknjA4n2yIFgOg55UQZJ+7UrmewIc9omksbzSh8aV3p6uqn8r4G1TeHHK4M11qxev53rz834f/njam09fzeLzT14lMzNNnLAXtdUF/OjpQv560p8/Nn9ZwNOXR1O2Tk/JWi1lSzoKR7WEyYKIS5aSmBxNjCmUztMm4ltlqDLDkKUGEaT1w9t3pUfcuVuK5QiRcLBNzrcuJPDuQxYmh+LIsMrIMEezYSyLX39yI2+/Wss737BwcEO8IEFfFgfdBOn/tBXYqsYIyx3jhqhUT+u7vxXwVq6KYaXMSWT1Nhp3388K79V4B0WxWmYmwOAi0FyFv7mGmBwhbM0lrFZleLrKekdZ8Y404x0Rj3e4UZjBY/evH/WYu4h3saea2wcbuLSmiTvHOqgqzBfkOIbHds3zwqm9vHx2v6d45y7cvXTuKC/edISkg8nYOpPEffhy1s6VPl+2VvvH1yXulbg2L/F9wdZiYuctPGa3MG62eNa5u6/5CjHobtX5j/Z1m7vFprvV5GlXDleNcXitvMFTxAsW6yJvWEmkEJBRwlIFqY/VSEkWCV7t5+tZ7zGxjXtbd/HO3UIyO+kp7KZJcc5usipEs5ffly3uxPf/2NzfraIw5yyW+LvxXu3vKeJ5+wWyKiD47xbq/gcrLY39+7Zz8sYDuIoLiBCJUWsyEaFSojbqSEr/x11ozcpwHlhfyLW5bG4dyaDQJGey1sTzD8zQWJTwX7ZNcY/7J+LicPhq7hKE9wlHCD9Zb+DXt6Xyx0ec/OXZXP5yTwo/6ZLxgimQW2W+HA7zZVaI2TKxb7Rah1QlSLZ7DJu8XqwlIhF1nKJl+BLDMw8wNnkfTa3nsOfOok/rJio2lwhdKoHROlYHhrMqUMmqINXfzTdEQ6jazobDtzG57SQV7ZO0DS8IElWDs6QFW2YpeeXN2LMqCZAYubk7muMt/jx72Ma7J4x8ci6B9y6kc31OzYGGSE62RXHPrI6f3JHG769Z+OEhKV9fCudQ42pOtEhobGykr6+P0dFRioqKKC/OZ7qriqHabOa7Sjiy0MojFxa5fn4jp/dv4PLly1y9epXbb7+dgwcPYtGnY1BaKc1porywXpCqFDRCdLh92Vc82791nQ0Q4tPdZdY96YVemSjIjJ6QwAj60qxMZiUxkGxCL8htrLCw1as9BbzBShepJj3S8BC8xef/7Ef+q1ehE+vTLbWY9XaR7IoxicQXLYiRSm1ApojBqNcRGaUkMlJOdITAIaUWR3IOMTqHp3VVQVYKod4rseuUxCuisLinlFfLiVVJkQqyLQtYTXaYD19P9ecmw2rSg7zICvCiJNgbV6AXOcJyG0sZqi9kpKWO1q5O2tpKPePH9devoaa6mJyMRFzxMZSZ1bS41KQlyD1dYOPFOVbmVXpaOiapJXTapUxlKdkhkvzpulge6I7jiUETV3rMPDxg5oO1Vm5rMnhm1DLKBTGUhtFsk7GQWk2aRIcxRIYmOBiZ8Msh11pOrf8hz4x+wNasG7nW9jr7mp6kufwQpqQh5Gm1SLIqPKawJKJSqGioqmN8aEyIfRMatSAUCg1aTYy4n3Kc6Tksb93D7s27qausQxatRCZToTPbSHJkc7nO3RU0lr2dWuqtEtTumcm9VhAucMW9lIocsaZQwQMzMexuj2NfmopLaVp0afnc8f4fufb9zyhbeJXorFohrttoWLjO0Qc+5cBdnzJ27Of0nfsZ1Tu/iaZ4AUVuH5qSzQzteYmTz3/O6rAwVvr6CczwZ5W/H+HKaKQGNX5BAf+lgLdaoSC6swvNpk1IOzsFdod7fFQrsaEKs6AOt5CtTKVG+LO7G609IY2Gpi6Gp6bIS3Oy4/RB1i9vJkGTKIi6lYRoB/qoFCE2ctnSm83GrnR6SkwMlRgZrzIxWmFiuMxIT6GeJqeWqlQV5SkqCu0K8qxyypJVHksTsZEicnGSOEeLOF+riJdsk5lz587T3z1AVrIQMNknWOO6hRLLBAG+gfj7Cb9PcnH42M2kRgSRqoggPyUGdVQYY215nvHMUiOjKBXXaA6PwGXSUSuId3N6Ik6HWcSMiXzh6y5pODtF7G+vr6ci2crR8mKq02zUWmLoS1RyMj6cvdZwosW9DHG3yhW+FSrus3tZER7GXXo9LRUzlGX3k5/WQVn1PjpP7hZcYIGpoyco3tQrnoeGiChhUh2hEQpCZWrkyalkDW4gO2+R05d+xk33/ZbRmXsZnnuUXWd/QefUGeyOKspKJ6ju6aZ5oZu5na+wdOBdcl1b2Hr4RU7f83MO3/RD0mIcZBpSPFZgycaVIOJa6aDBWECBJoW2uCIS1TaqFan06Qro1uRSq80UMWfFKI3ngnaIa9IRvlfxLO2GdSzGLtKpqWEyYQ0lug6aTIO0WLqpMYlzyFnPvtID4l42C26VzZbwOpILncQ70wX252HMy0bnykKXnUpCul0IXR3pcQq0CsHloqNQRctoEsI4M1EvsDWLoYYM+oX473cV0ZBdQr8pkX53F9GEeDYJobbFYSUrt1SI6kKKBREPEr4REBT+5WQyMfFYbKn4+gUQFByGXm/BGJeOWlvKxLqHiI0vw5hQJj6nUVF1AIU6GanCRrjAinDxHNQaA8FBoRiFaEwQMWPSKkjQKSgUWLx93RiFSWaqBRGvzMvAIXLtrrlRkevjPIU7k04m9hECTiWjsqGT8nqBe1v2UDu1idyyFspbx+k4dJHWgxewu5rJrJ4gt2snaQ2LuAYOMPzI61ROnKBy9IgHa7RaA/GaeGLVWnEeNk+MadVxXN/2EQ8tfEhL3AzpkXGkuVu0REdzPVnBj7MUfCdDKe6tuOfKYmI0PaS2viT8qwm1/Rr6nPfI6vsjFufjqNJLUDuzCRbXFxAdSpA8lDBNBNEGKTs3rOfk/lPkpmZSVlBHbmYJhelOGsrq6CjOYKTSSXt+Cq2uJM6vbeH8TBsqIdZLjOL+iGftCBIi29+XSqmPWCenPC6Yar03U3ZvVCJfuIecceNPtL+XZ4It91h4nvzlI3hHsjvv2EkTuKMRuVwuEfguiUMSrkUaJeIlROQKkSfUkUZ0UjMq4a8hwXIkEi2hoTLP+wS1hem6THYOVTBSZKQ+QcKWdAv1of601yXR25rDYn8224bFPVCHC10gF3EYSJ5FxlKdFefdP2Tjh/9G8Td+xkTjNt6vqWW2Ps8znptFE0VNlpmaWCk1LjPJ6lByVREkibybJfJZul1L8+a7qU3vxhkQS+foabr2PUDfoYcYOvIwE0v302TbzOiRRxg4+iA9B6/Ts+M6+dkHqZm8RO22u/FXqwgyGgi1JRKZmY5c8Dx1fTX6rlbih/tIXDdOyvYlMg/sJEOIeJVGJ2KiGH2CwOG2VlRxBWgSilGbitAKvq5NKMLoqCQ2qVJ8LkAvlnp7JRpTvlhXJfhjoTCxT3we6rhsJEaRzxxriKvaRl7vMVLqd+Mo3UBs9jTSrClUaZMYM8cxpg+SW7MbS9EMxW1biUkbwJ43JjBGQb3gS60jwgYr6ByrpaQph5LuYkoLUtk01sPwWI3gFQqiggORhQYTGRiIJiwUheAY+/bvZOeerezctcTs7ATz66eZmhPHGmhm6+nDlBUKPEuLFzlBTVK8GpNRjSXRSF5zPfnNrTw/buG+Sg37tMFcdmn5/kQG35u08WKrwBBZANsVgbzeGctvjqbx5oiRP716gE//5RH+/K07+PQXb5Jo1WBPi0UfK8cYryTJrhHH11BQn016jZMUVxotjVm4suOwi+/0RgVxFh0G4esGk4afbb3Mkztv4c1bb+Wd5WG+c7iLX1/p5P1Hhrh9RyOvfW2UT99Z4uqxGX50cYgPl7v53u4DfPf60/z46DVyU4zsmx5isr6EbYOtnlm21zbmsdhdx5buTsZETto+0c94UyndzhQmq/IZqMxksiVfcE2JkNH/3Nc+wRPuSUzHFRKGOiwck9DtGrGMFZYk1o3KDAIvwogKl6CUyogU+TgyIhJpRBQd5lLyRR5NVkRikEnIChVYIrhvQkgQekkginCRb/19RL5dRYjgoqqIUNKFvs/286c6IJCaoJCvzuK//7KZ3LlEhVn4p1IWTWKsVnBjBTajlnDhowa9mthY9zipRtJNBhL0KmLF9kppFHqtkm//4hN++dv/4Ke/+S1P//AnHHnhDW5+83vc9tZ7vPPzX3DijlsY27zI7M6t7Ln1HC//5Ge898mv+PDXv+Wy2KZncRPDG5YYX9rA6Pw8a2bXMb5uHdv3L3PjTae56aZT7Ni5jfmFOZY2L7Ft9yaOndrH1p1zrN88ymqdC19DIf7WRoKco0Q2H0c7epWIltOEVC8TIT5H5E0TZqokXMS+3FGBIbeZuMJWbDUiZxgUgh8JLBOc6abN3dx/dIx6l40cfTTVyXqyRUxU2HVMlNm4tH+Uh4+NM1qeQn6iGl1kCKfL1OyvNzKao2GkKZu7ttVwaNRFZ76ZTpHrR+qyuDicyz09KZxvNHKmXPD7QhXnSpRcrtagEnncXbhTiJyu0sejcU9UIXKzLTufaMGdAtzj4wUGe8w9G61UbyYkVOL5802t1WMSXCE+zoApPg6H1SLyVwa3jDUzMdjCQGetZ1KLLKGZX58e4edPPs6333iF9999i3ffeo13v/0yU9NLDI2sY3Boio6R7XTvfYbRCz9h5JZPGD3xNm2b76Fzz8OMvfYT2peP0/bkdyjfchxXQxGmPBMntk/RefB5uofnqK4ro6KzH1NJJ9M9OeyZKWX7eBGLg04m2zI5tq6dttJEbt63kzev3MWZnXd95YX/vJfIxf+zAp672BQaYMakGcJumBHLNSKAWsX7tTit+7HZZkhN3k5O3C5iI6txz1rrNm8vd2sHL0+xpnDlCm5btYorgkzc4bOatV4+HA0I4GpUNIsyObcK8PiO9yq2rvBBu8Jb2EpCxL7u4tnfxsDbGL2CY9oVXE3w4vlUH35Y58vvd/jz+TecfP+lJXx9VwtCqEIlgjzA14cdVVH8uvar8a6UvhgKw7FUSYgpCiXSGoC2PBzHkAJrbbRYH4WxJZLI5GC8hej1EQLYPVuXuP6/m5cQUxZtIDvbwri2S873njLxqx+n8a8/zeWDNzL5/hspPHyzgYaCKCQB3gT6fFn8+8/HcNuKG1bisyoUe/MSK+VOVvrruGHVV63vhLmLeStDzPinDVI4f+F/7SeuY4W3nxCDIfgKclTa0o1vZAzeISq8QtR4BSvxChIWEC22EaJxlXum2lVc3zTBQ9vW8eCWtVxZN8BdEx1cmezi4cURigTprsjO5PkTy7xw5pCnYPfShWMee/n8sb8X8Iy15v9yDf9PLLYyntQjTp4TYqzfYBTr/u9Fu39kDUJ8vehIwkf4gtvcY1QFfmXB4lkUpOgodCbSVuYgWJBQ97q/fe/e9m/7ZVqfJ87Q9w9/4/+fxcY04Up6Ba9V/n+f5MNrtS/evr5ExsVT3FjH1u3rqairwlWUR5zZJMSgSB7JDhQxGpwFmViTLf+lGPc3cxml7GpMZKE8ngZxHRadHFXIKkEO0nnlsXmSdO7izJfb6oUfForY6Vzlw+gqLw5JVnGLypeH4gN5yh7Ey64wns8M5aLEjwN+qxkX27YJa/b3I0PsK5EpPSaLcbfCS8eQWokpf5B41wBxzj5iklrQ2loIU6cjMWQSKjcSFK3FPzSKVYFh+ATKv7SgL83dIi/EPbvc4n6R9I4ztX6nIKQFyAypSDQWYiwZJDhyibXnEiCJpd/hxWvLBg61RXDnaCiPrJVwa9MqHhlT8+a2WJ5fMvDGopQ31vnyziEl53sCONrgw4ubpHTaVniKdvVCwHd2uotPbZSXFFGan0OFuOdNNeX0tDUyOtjrabq+a+dOjhw5wr59+9iyZQvT09OeYlyqpYCKvDYWZ7dxYN9Rkq0ZaFWxBAeEe4p37lZ47tZ37m6zbjOqkwgPlXomvuhJc4+DZ2fJPWhzuQB6RwKrvbywRkswSCOJCgv5L37jHmMvOMCf8OAgVon7b47J8Yxnl1rQiNnmJNNVhVX8flG6SRC9RFrLHSQlZZNX3ExzxxTOwkaMZkFMLSm4hGjz91qBKioCq05FjPg9jXgfFRmBXCwTosMxBPly2BDAVsMq7P4rcQghlhngRaLfStLEsr+lmPGWMnq6e6nqriQ5Nh67ugiDIlVcq0yQIglx4rh2N0ETfmcRIsjuSiCnoYCW1g4hxEJJEaKowRRFX5KMtU4V2wp0HKzQc7BKz/7KGA5UGThRY6ArReXZPiQomERFGJXxUWx1tpARbUAZJohjcCgaEU99mZNs7XiJg6XnWbUyiKNL9zGx5mnkhePIcluIzq39u0nUOhqr6xjuGaS6pBJ7ajrWRAf5hSXYrQ4y05ycOniCOy/cwdG9h1k3IgSNIY4oiVQQDC0ZGQV8rc3ItTVWXq8K5o0KKV9vNHG1Rs2ddRruqdLyRquWV3MkfCMtmFea9ZxptfBEsgSzs5Tr737Gra9/jql5L9qKSUaPvctN9/2VU1f/xNhNH7H/5d+z/vpHHHn7LxjrNyAv6CK58yI3vfonpu/4VyJSkgk2CZ8R2OATESEw3ItVIlfJBAGVCuK5OsDPg+1eIje6i3gBZjNBKSkCw309BTxZiIHoYL0wA7owI32JTvacO4rZ6EAvYjUxzia+U1JUWsaxKxfpHOwmWuQDebAWVXgCe4fz2NabwZ412axrctCco6cuU0tlmhC3rlgGSs1M1duYb3Ew25Tk2Wa+OYmF1hTa8gxkCp9OE+YQZhO+bRF52hoazh23XmRN/xDF+flYhFhN9rTSSfcUxd2zPccolOwRsVYiriNFxIFWXKNGLqW7qYp9M130lqZRn5tKc7qZNSUuWlJTKMt04Ey2YxWkPNuSQJGfHwvt7WxqbqaooJxSWxr3l+fwjIjFxxJkdBjCPTP7umPN3erubwU8t2UJPzyrN1DhGiTb0USapUrgQDUVa+6k/MhdJOblEm2xExahJFT4ZnCEjHCJmlCJgtBIdytqJ+W9J2hvu8CGnR8InHuCTYe/y57zH3tmnS3NX6ChYguVnT1UTtSzfu9rjM9/ncb2m9khiOWOk79kbO2T2FSJOLR2HBobWXGpZMSm0GRwUWjMplCVQo0Q+O6usjnKJEbiyujXFdCmzSPXWkai2Pf7ced5R3eAxaRDtOum2WE5wsbYncyY19Mdt41e0zZG7bNUxfZRaezhQOFp3hp9iypLGw8ZdxMhYjxapRDkW4M8Jga5XocyNga1MQa9SeQeIbhjpYIXCQzQRkuxCIFUm2NhojmdkYYsskNDKBMibl6pYEQ8vzzxuVSrYUIcd0YQc4vJgiu/DKd7sPxoOZbUApH3clGp9Gj1Jtwz1QUFhXqKeFJZHL1D91NQMk1gkMRjYeFK0jLWodM7UGkTPd1t3S2Rg0PC8fcXPE3grHu4FXcLvASNnM6GMlzWBFTifGPVMjSyKMH5oijNTKG3tQabXolZGe0RnDFi36n9R6ht6aOgvJG2LQeo61tL8+AiFV1rWXvfEzjrRslvmadsYg8GRxklCxep23E3HWceo3zwMPO9u0mNrUIv7qFBpRT810yC1oZcHcl8/3beOvopjcZpUiQ6HBEq4qMj2Ror4610Be9lqQRWi2tS5KNQtiCzXESRMElq28eoUh8hMnY7hvQ2VElFKFOzkcQZBbcTeUPkbokmCq01hraSfCa7mmkqKaTLlU6+wJPK/AIcAjuqMhKZrs9nXX0uO7tKubTQRn22A6vZTndlGtY4E1Hinkaq4oUfxBIULsUcuYr4MG9PS/EIXy/8BR7FhHqREu3taZF3pNEq3guMEjmuQrcatcyKRmoiLEyDJFRHRKh72AKVpwVeWIjgFYoYFLIYZNEaFALng4OkBARFeYp7IcEKdMLndFIt1Q4jiwJfqu1SmoMDSI0JoacjjerWbJoE5kRHBhImYjZKIp5zrIR+l56sWBOVx5/g3I9/gW3wNOVnv8WpxVNUCqxMM5lRrF6FOtifwd4i2oSQrcox0dGUi1U8e7uXN4nRUdTWrhfPxURuQAJdc7d7utO2772fzuXrtA/fjFPfx+CEEIH77qNtz1Xx/b00Lt1DUto0CXnt+Os0BMUbCbXbkGSmIy3IQ1Vbib6nHbMQnUmbFkjft53sk4counSBlJEh9OK+J9iSUWjcceYixlwirBidqUDwo2IMiSUYrKXorSXozIVoE/LE90Vo413oLSI328o8641JFYSnriW5dh8V6y5jrj6IJW8JRWKjEPrjSFOXkMQ3kly6DatrmpyWZRyVS1TM3Ux6yzbs5Qus2z5O8+Z+2tc1kNOWR3FzLj3TzXQON+KyGHGZDCSqozHLwtFESogMDhTcJpgof39PQW9y3VqGxicYmZpmYdN66hprRe5Np669g/Mb+jjRU0hjahwZlhjSbEbsKRbsIhYdOVnYnS5enLDyTH88jzdoOWiXsFkTxKQ0gAV5ALclBPMvkxZ+f4eL86Vynm+U8uHedP7w4kY++8WL/OVH38AYLyfJ/eePTirwIRpVjIw4ofNKazPJa8mjoDaPtDSjZzuViBlLWgIagxJdrByFVspzA0d46sDdfCBy5ie37uEHxxf44PgM7908wNnN43z81BT/dryTb80u8Z29x/jVrmF+um+a1+r38Paa08y1VrO+q5KZ5lLqsmyCo3dxXnDLHYP9LAy0MtdWx0hdIcMVTpE/C1jf18LRgVLm6pwUO81CRv9zX5tM2VxILqA+SopU8C95cAgxgp8NR6k5r3NwMTaH/iidZ/IKg1L9VQFPglQSTUtcCR1hYTSI+14kuGaWyOX21asFfgQjDQ1AEuzHaqE1Vvv4EOK/mjB3HhbbpAnfyRbYXRUS+tVZ/PdfDks8GpG7YgT/dRftkt1//iXoBR6LnCBylTJGhVGYe9zT5HgdCe4JLNxFPa1KcCM9D73/Y37y77/h49/9Bz/7zW/5l3//tadl3Y/FOvfnX4r1r7zzDh/8/Od8+xcf8b1PfsWz//IzHnrvhzz9g5/Q4m4t1llDRXsNVeJZ13S30j83y8LBg2w/d4Fbrl3jvutXOHPmCN39zbgKkkjNiiWnIIai8kR8VJn4qDPwNRThb28jMGuUoOItBORMElyxm5DKXQSXbiLINU5UUq3QYTZCDOkECI0lMeUxUZ/u6ZmwY7CMjvJsGrIEJpqUdDjjmalJpcCqoyrFQINdKzBf6O0z09y9s5fl0UqWugq4UCLnXG0cx9vs7OtJ5fxEBicnXExW2xkvMTFZaGB/sZonhlN5qNPEPbU67qqQc61WyW0VQnOYktElJCHXGolwDyMl8rIhMQldvJVwucBG4VOBweEEhoQRZ7UjNSQSGh6JVCV4hjYWc4KJpEQLWRkZ2MXy0LpJrtbm0+DKENqtkmqrlfWCp92aoOG7E8386KnHee/dt3j/3W/z3tuvMbt4iImZXQwMTdM/uJaxTbcwdfRl1h64i7WbNjO6NEPfzAGapuepGx2grK+DQoFt1aNmHLmhnNjaz8b1xxk6/zCFjZXimeRhTzIxXG9npjOL0cYU1tRaGa5OYc9IM13VRTx/9iL3bj3PxOZLX3nhP+8lNKW7CPc/sS/HOvP28hMWLMTGl59XeUfgu0qC94rVHlvtLcS+l3uMKff3bvtS0K64wcdTxAsThMHd5XSl2N97xUokQpy4x9NxTwLhKz5HiWO6t3Fv67YVK9z73sBAsBdjITcwF+XNsmolt8V687h9Fe/WeAuw9eH3J3356z0xfP7mHJ+9XMhfn0/j109E8/vpVXyUv5ob3MdxH9dThFnJDeIc3J9XCXG7Ksw9yYUXK71X4O0ntlklzlt894+6vrrPxU16Vq/yEeQjmO7MIE5NKzm6Vsb6QbkA8WhBbFZ59nUfP9BHLP+3Y7jNfYxoQwbSjDZuCE3kBl/N/1HAWxGUgL+pmrzZ8//H/m7zcU9OIAThDe5x5NxjeXm5Z5T1/d9staeA99D2tTy4ZYqHt8/ywOZJrm8Y49rCMNfm13DLZB9XxPund83xjQMbeeHINl48vosXTuwWtpMXTu1Bu0EA0bESVgvR+Y/O5f9mSiEQU27K4lGFiqcKXfgJsvWPtvu/WY5Mytsp6Z7WeO5CnLs13X+2nCQVuekJtAkQ81n5X79zm3sf974Gzdcoy3+CVT7/q/vc/xOTSwU5SH7Hc39XeK30LFd6CV8Wll5Tze5dS1TV1wjQShRgpSDMTX6EyJGq1WgE4UtKsxFr0v+Xwt3fzKQMpyZF5Rk8viEnXoiNcM96vcSXMzsqObhU/fdt3TM/2r19yBLiuUycQ/9qH/rEujnhqxuEP+8K9majnxcj4hzbRUyVC8sT26UKswufj5IpBfjGohVArHC3PrMVCcsjOjYZeVwGwdFx+AkyHijER6Agz0HCAiMUnqXbvAOkePsLcy+FrQpWEyAIfdPQHF1j60kvaMCcWkKqqwx9YhYqo0OIRBvW9EL8wnRkKLxYk+7L0VYZm4oC6LOvYHt5KEcbwznaEM7OqnBOtkSwryqITXnimoqCOVwvoSF+BQ7pCnJzcykoKKC6uloQ/SZPEc9dzOvt7WVwcJCRkREmJiaYmprymPu9e5271V5ra6unOOeekCIvrZr+9kl2bt3H4rotJFtyBEnRCNIRRYzC7CncuZeKKL0QhkLYi/XuAl6XIKRDGTbWZSexmOMgWPixu4DnK4TPP/IbX0FofP7Td3GaNPT6VJJza0hMyqG8bpCM7EoKUo3UZRtoLEzyFO+6BxYZnthJSVWPIKHF4pztnm603uIY7ta8/t4rCfISomu1F2qVXJCsUBRC7CkDfCkO9KJH7kP8aoGpq1Zg8l1J3OoVGITNdJYx2NNDbXcTJW3lQtQmIA/NJzpUQ5QQ5hJxDGmIOE5IMEnqMHYfTGVkezaZrS5KOqo8XZY1keGU6yU0mqLpsckYT1OyzqlmNkfNTI6GKaeGcSFWrWqJp8ute58k4eOFMRIOFQ1SEZNMispAZmoSakHqMmRGbul5hxcW3uN8/928e/LfKK+6hcjiIWRl7chLWv5uYYJU9nT1odcJIajRkmRNoq62gZLqegxCKC0ubOT8uVs5cOAoG+Y30Ns3hC05jWhBQCPkgtwVNnAuXUt7Zg45OWX0ZWSR6RL3P7tEkKE8srPLKXEWCzx3er535ZSzK8NKWbYQ1SXN3PfqZxy/+Cv0tRuYveVDzn/jc278+qfsuvYf7Hv8Q8zt+8mfeYLtr3yOrfcolpaj7Lj2G8698yfq9z+OtL4efXsz0twcfKOi8BLC0l2Yc4/nGCSeoUoQzyitwjMB1N/WewuS7O5i68b5qBANEUEqIgMFuQ5UERdjYe/Nx0lJzSDETwhlt/lHER0mZ3HfVk9X2pqGWqQiniODlRyZKuLc+kpOz5dycqaYw+P5QvTbGa1KZNegi5vW13J+qZYLSzWcmClhW18WvUWx1GZqaHaLaOF/6cLcBbxEt4lzswuyv7RuloHuDvTuLqJFQlAK/AsSpN3X159Vq3xFDPhQVSr8zt8Pu8Aurbgu9wxkaUk2httbODjZIER9LNPV4t5nO2kQgrxcYGaqIHmpMUpB0o0UymXsGB9nvzCHIxurPZe0eDu7RUzmxKpRSqNFDEd4TCGR0CcXcREaSqT7n/nwcI4bjWTZ63HEl2KNzcOsz6Fs7+2UbuokSvhRmEJLeJTmy8JdhCCnoZGesfFsDcXEZ2Xjmt5MXdUkXV23Mr/zefbd/AmLu79N7+BJKkvXUy7EdHp5NYVDlaxffpn1e99heuNzbDzwbc8+9dVLmAWmJKosXxXybCTrkmiNKyBdm0K+No1sdYqngJdhLhDYWMdSYhOVtloK01vI02Xx07hbuWQ+QbtuylPA25JwiA3GZQaMiwzE7WIofgd98Yv0W2Yo0rZQGtPG75f/nd8WfId/L3kZqVLcE5FL5e5xaLQalDpBrGO0yIQgSnYkUOVKJscWj1IWiVLcQ61MTkOBjfayJHpqMnCEhNASHU23OEayiO1UgRNpYl2HuPdt0VGU5pUQKddREGuiICIcqyqGZHsmOclZmOMShT/44u8fSEBAkPDL49Q1HSQkROKZwS5IEP+AwBDsjgnCwmM8Y94pVPGedX5+/h5fUkVLiFdEkyJ8ItGgpTInFYP4nGjQkCCEW6xGQVpcDDYh3MqcDlLiY74caF0qQSWPZv7Meerb+jxFvLbROQY2LNM6OEdl6xjdGw/RfeASjRMHyambIqt+hrrF80w++BptBx+mevYCLks5FiF0EzQJHjNpLJQ62r8sTIn7+M1zH9KRsI/kcCX2qGiMQgC3qqQ87tBw1aHFPyAKjTYXbUwVkapxFOa70Zr34B8ah0SdhcZaiSzBidyUglyInXC5lDBpJBK5iGtJGHkCM+0JDqqEiEoSorU8JU74cQzqyDB6CpJZailgW4eI66EqtnQUCQEeiVqhwybErSNJ+HDTAtkN67AX9qCKzyQ0WotJHkGxIRBTdAAxkSHkGiOxivsbHBbpGZIgSviBQeQYiVSIYaUVWbRR4GkMURE6YRrxG2okYSrBd5WEhSqEX8Uik2lRqYwEB8lEDpCJ/KkkIkyNOdHuaWVhNiSRkW/AmSijyiHDaRDP3aKiTeCNxiDxDFDvbgUUFOKHUReGOtwXjThX3dRbpN/+tti3DUfqWjbUNOO0u8fCTCFe5NlskXMqshKokIZSbFZTnBHP8Eg95uhQT9f/CJHXg8IFljnHaNl0D/Xbr9K00z0u3jWSSwYJENwnvX6tp7ts4857xff3ULftHhzl457vggQOhQnMkmRlIi0qQFlbia6jhbjhfiyzkyRtXSLj0B5yz5+i5MrtVD9yLxkzk2j0RtQxsSQ4GkjM7MKU1kJCSiPmjHYSnZ1Ystqx5/Z5liYR69bsbuJT6rBktGJOb8ZorxTvWwhP7EaZMY06a4GM+hPY6zaiSGxGVbSX8IRRZMYmIagbMQifVCS2oUpdg7VgDp29WXxu4dCxSfLbcsksdFDbV0JhSSo7dk2ybbyV5oJ08sT16UUcBwmuGLLal1ARrxKB2SECv8MF5y9t7KakrpOS+k5cVS2k5pbidBWyONTJ43NdHGkppi9b8D2djKQkgXM2C9a0NMw2K0ZbMo/Wq3miw8Dr3Xq+WRHJo65wLmUE82BeOL+/kMYf7rTy+0smTrlCuC1LzhO9CXzvXC9/fHkff3nvfpHj5ejiFJ6CuVwdhdaoRKWL9qyz5iVicVnEtQrOliriIs+GOTcRs0VsoxU5USHh+t67eO7YJX705nu88uDLvHLlYZ4+fJxnl2d5fFsn37p9mV/t6eAH23bx4dmb+c75a7x+7jIv9Bzl3f5D1DttbOuqoD7dzEhNCW2FTsYbKjg2M8JgZSGb+sR9zEliqjSFjU3ZjBbZ6c01s9DgxBQb+ZUM/+e91ppyOWTNZYvORItURbcyhqOGNA7qM9lsdHLCmMfB2HzsAovdHFAWFIjc3VMiMJAyhZX24BDGgoLpcuN3QCBpApfl/gKbBQ8IFtxzleAo7iJegPCV6PBQgt1/uvj6kSy2zf1/oQWe3ZLgGfYl2RxLquBK7h4v7iJellVoLIH1Jvc6s17gvs5jdqMWS5zAP7FPkth397Pf5MZXv8Oj3/sh3/7Fx7zx4Uf8y7/9O2999Akv//QXvCHWvffxr/j+J//O/WKb+979AefffJedDz/NldfewpRsxCK4eoJ7Ygi7kTi7gXRXGvUttcxuWMv63TtoX9NDtsDi5IwEUjJFjrDGkGDVEG/V4SOw30fg/Gp9Af6WavyTuwhMFZY5RKBrRtg0gTkTBGUNIktuJNRSQpDGir/gDb6yeE7N1XNlVzcPHxnhxFwTLmcmT5wY453Li3zzllm2jtTw2sVZTq9vIzMtmbn+Wq4cmODQuhY2D9Vwb7Wcx9ck8eh8Abd1JnK01sjOBivbmpLYVhXPvgotF0siuVYVxQM1kVytjOSeKjl3VUi5UKIkSqUnRHBp92QWwWECJ0SOcOfp8Igvl4Eh4Z4iXlBIGAqliijBudWGeNT6OFQxRiYEVhblZFNeWEhjeRnf2D7Odr2CPqmCHqWW3mglIxFCV0jCWXaoeH95mvdfepb3v/0a7zxxhc41O+ke309n9zhdHUP0969jaGIXHZ1NTM8PMbxtntqedlzFFvIqHTidOrLrFWQ3hePID2HLVDNDc0LznX2KrRe/Rvn6ZUwF1SJ/WOgqSaClII7WAiMLPVWMNVYxP7jE7Joleoc20zp5+isv/Ge94P8Hy3eX554K5JUAAAAASUVORK5CYII=); background-position-y: 0; width: 16px; display: inline-block; height: 16px; margin-right: 2px; margin-top: 4px }\ div.raid_list_item span.DotDX_extMagics > span {margin-top: 0; vertical-align: text-top; margin-right: 1px; } \ div.raid_list_item span.DotDX_extMagics {float:right}\ #kong_game_ui div.chat_message_window p > span.slider > span.magic:first-child { margin-left: 5px; } \ #kong_game_ui div.chat_message_window p > span.slider > span.magic:last-child { margin-right: 5px; } \ #kong_game_ui div.chat_message_window p > span.slider > span.user { display: inline-block; height: 16px; margin-left: 5px; margin-top: 4px; vertical-align: text-top; font-style: italic; cursor: pointer}\ #kong_game_ui div.chat_message_window p > span.slider > span.user:first-child { text-overflow: ellipsis; max-width: 80px; white-space: nowrap; overflow: hidden; padding: 0 3px; font-style: normal; }\ #kong_game_ui div.chat_message_window p > span.slider > span.user:last-child { margin-right: 10px; } \ #kong_game_ui div.chat_message_window p > span.slider > span.user:hover { text-shadow: 0 0 6px #888; } \ #kong_game_ui div.chat_message_window p.emote {font-style: italic; color: #085088; text-align: center;} \ #kong_game_ui div.chat_message_window p.emote span.username, #kong_game_ui div.chat_message_window p.emote span.separator { display: none; } \ #kong_game_ui div.chat_message_window p span.room { color: #666; font-size: 9px;} \ #kong_game_ui div.chat_message_window div.error_msg { background-color: #FFF8E0; margin: 0; padding: 3px 5px; border-bottom: 1px solid #ddd; font-size: 9px; color: #555; } \ #kong_game_ui .chatOverlayMain {border-style: solid; border-color: #C2A71C; border-width: 1px 0; font-family: \"Trebuchet MS\", Helvetica, sans-serif; color: #fff; font-size: 11px; font-weight: normal; text-align: right} \ #kong_game_ui .chatOverlayMain > span {padding: 3px 10px; cursor: pointer;} \ #kong_game_ui .chatOverlayMain > span:hover {background-color: #C2A71C; font-style: italic; color: #555}\ #kong_game_ui textarea.chat_input { height: 30px !important; margin: 0 !important; outline: none; padding: 4px 6px 4px } \ #kong_game_ui div.dotdx_chat_buttons { position: relative; width: 100%; padding: " + (SRDotDX.isFirefox ? "0 0 1px" : "1px 0 0") + "; background-color: #eaeaea; font-family: \"Trebuchet MS\", Helvetica, sans-serif; font-size: 11px; font-style: italic; color: #444; box-shadow: 0 0 6px -2px #333; border-width: 1px 0; border-style: solid; border-color: #888; background: -webkit-linear-gradient(top,#ddd,#f0f0f0); background: -moz-linear-gradient(top,#ddd,#f0f0f0);}\ #kong_game_ui div.dotdx_chat_buttons > span { display: inline-block; padding: 3px 7px; cursor: pointer; transition: text-shadow .2s; }\ #kong_game_ui input.dotdx_chat_filter { border: 1px solid #ccc; padding: 0 4px; display: inline-block; font-family: \"Trebuchet MS\", Helvetica, sans-serif; font-size: 11px; font-style: italic; color: #333; width: 110px; background-color: #f7f7f7; outline: none; }\ #kong_game_ui input.dotdx_chat_filter:focus { background-color: #fff }\ div.dotdx_chat_buttons > span.active { text-shadow: 0 0 4px #aaa }\ div.dotdx_chat_buttons > span:hover { text-shadow: 0 0 4px #888 }\ div.tab_pane p.collapsingCategory { border: 1px solid #999; border-width: 1px 0; margin: 5px 0 0; cursor: pointer; background-color: #ddd; font-family: \"Trebuchet MS\", Helvetica, sans-serif; font-size: 12px; padding: 2px 6px 1px; padding-right: 10px; box-shadow: 0 0 4px #ccc; background: -webkit-linear-gradient(top, #ccc, #eee); background: -moz-linear-gradient(top, #ccc, #eee); transition: all .3s; } \ div.tab_pane p.collapsingCategory:hover { background: -webkit-linear-gradient(top, #ccc, #ddd); background: -moz-linear-gradient(top, #ccc, #ddd); box-shadow: 0 0 4px #bbb;}\ div.tab_pane div.collapsingField { padding-top: 3px; }\ xxx {display:block !important}\ span.DotDX_RaidListVisited {padding: 0 3px; vertical-align: text-bottom} \ span.DotDX_List_diff {display: inline-block; width: 20px; font-weight: bold; padding-left: 2px; vertical-align: text-bottom} \ span.DotDX_List_diff.DotDX_N {color: #00BB00;} \ span.DotDX_List_diff.DotDX_H {color: #DDAA00;} \ span.DotDX_List_diff.DotDX_L {color: #FF0000;} \ span.DotDX_List_diff.DotDX_NM {color: #BB00BB;} \ div.tab_pane input, div.tab_pane select {border: 1px solid #ccc; padding: 1px} \ div.tab_pane input {height: 14px;} \ div.tab_pane select {height: 18px} \ div.tab_pane input[type=\"button\"] {height: 26px; padding: 0 3px; color: #444; border: 1px solid #bbb; background-color: #f7f7f7; outline: none; box-shadow: 0 0 3px #ddd; background: -webkit-linear-gradient(top, #eee, #fff); background: -moz-linear-gradient(top, #eee, #fff); font-family: \"Trebuchet MS\", Helvetica, sans-serif; font-size: 11px; border-radius: 2px; transition: all .3s} \ div.tab_pane input[type=\"button\"].generic:hover {background: -webkit-linear-gradient(top, #fff, #ccc); background: -moz-linear-gradient(top, #fff, #ccc); box-shadow: 0 0 5px #bbb; text-shadow: 0 0 3px #bbb;}\ div.tab_pane input[type=\"button\"].green:hover {background: -webkit-linear-gradient(top, #fff, #b9daaf); background: -moz-linear-gradient(top, #fff, #b9daaf); box-shadow: 0 0 5px #a7ca9c; text-shadow: 0 0 3px #bbb;}\ div.tab_pane input[type=\"button\"].blue:hover {background: -webkit-linear-gradient(top, #fff, #a4c8ee); background: -moz-linear-gradient(top, #fff, #a4c8ee); box-shadow: 0 0 5px #a9d3ff; text-shadow: 0 0 3px #bbb;}\ div.tab_pane input[type=\"button\"].red:hover,\ div.tab_pane input[type=\"button\"][value=\"Cancel\"]:hover {background: -webkit-linear-gradient(top, #fff, #f0a4a4); background: -moz-linear-gradient(top, #fff, #f0a4a4); box-shadow: 0 0 5px #ffbaba; text-shadow: 0 0 3px #bbb;}\ div.tab_pane input.landpmbutton { height: 20px; width: 22px; } \ div.tab_pane input.landpmbuttonhigh { height: 20px; width: 22px; background-color: #82BA00; background: -webkit-linear-gradient(top,#8DC98D,#fff); background: -moz-linear-gradient(top,#8DC98D,#fff); } \ div.tab_pane input.landtxtfield { padding: 2px 0; width: 50px; text-align: center} \ div.tab_pane input.landtxtfieldc { padding: 2px 0; width: 100%; text-align: center } \ div.tab_pane td.landname { padding-top: 3px} \ div.tab_pane input.landsavebutton { height: 20px; width:100% } \ table.raids, table.camps { font-family: \"Trebuchet MS\", Helvetica, sans-serif; font-size: 10px; text-align: center; border-collapse: collapse; margin: 5px auto } \ table.raids td { border: 1px solid #bbb; width: 55px; background-color: #fff; }\ table.camps td { border: 1px solid #bbb; width: 20px; background-color: #fff; }\ table.raids td.ep, table.camps td.ep { text-align: right; width: auto; padding: 0 6px; } \ table.raids th, table.camps th { border: 1px solid #bbb; background-color: #efefef; } \ table.raids tr.head, table.camps tr.head { background-color: #fafafa; } \ table.raids tr.split td, table.camps th { border-bottom-width: 2px; } \ table.raids tr.best td, table.camps td.mark { background-color: #eff4f9; } \ table.camps .tb {border-right-width: 2px} \ table.raids colgroup col.selected { border: 2px solid #5f9ea0; }\ ul#SRDotDX_tabpane_tabs input[type=\"checkbox\"] {display: none}\ ul#SRDotDX_tabpane_tabs input[type=\"checkbox\"] + label {font-family: \"Trebuchet MS\", Helvetica, sans-serif; font-size: 12px; cursor: pointer;}\ ul#SRDotDX_tabpane_tabs input[type=\"checkbox\"] + label:before { content:\"\"; display:inline-block; width:18px; height:14px; position: relative; top: 3px; }\ ul#SRDotDX_tabpane_tabs input[type=\"checkbox\"].generic + label:before { margin-left: 6px }\ ul#SRDotDX_tabpane_tabs input[type=\"radio\"] {display: none}\ ul#SRDotDX_tabpane_tabs input[type=\"radio\"] + label {font-family: \"Trebuchet MS\", Helvetica, sans-serif; font-size: 12px; cursor: pointer;}\ ul#SRDotDX_tabpane_tabs input[type=\"radio\"] + label:before { content:\"\"; display:inline-block; width:16px; height:13px; position: relative; top: 2px; }\ ul#SRDotDX_tabpane_tabs input[type=\"radio\"].generic + label:before { margin-left: 5px }\ ul#SRDotDX_tabpane_tabs input[type=\"text\"].generic { border: 1px dashed transparent; border-bottom-color: #bbb; padding: 0 1px; background-color: transparent; font-family: \"Trebuchet MS\", Helvetica, sans-serif; font-size: 12px; color: #333; outline: none; height: 15px; text-align: center; }\ ul#SRDotDX_tabpane_tabs input[type=\"text\"].generic:hover { border-style: solid; }\ ul#SRDotDX_tabpane_tabs input[type=\"text\"].generic:focus {border-style: solid; border-color: #ccc; background: -webkit-linear-gradient(top,#eee,#fff); background: -moz-linear-gradient(top,#eee,#fff);}\ ul#SRDotDX_tabpane_tabs input[type=\"text\"][disabled].generic { color: #aaa; }\ ul#SRDotDX_tabpane_tabs input[type=\"text\"].color {float: right; margin-right: 6px; width: 40px;}\ input#raidsBossFilter {width: 260px; box-shadow: 0 0 4px -1px #aaa; outline: none; font-family: \"Trebuchet MS\", Helvetica, sans-serif; font-size: 12px; padding: 3px 5px; background: -webkit-linear-gradient(top, #fff, #d1dfee); background: -moz-linear-gradient(top, #fff, #d1dfee); border-color: #aaa; margin: 4px auto; display: block; border-radius: 2px;}\ input#raidsBossFilter:hover, input#raidsBossFilter:focus {background: -webkit-linear-gradient(top, #DFE8F1, #fff); background: -moz-linear-gradient(top, #DFE8F1, #fff);}\ textarea#DotDX_raidsToSpam, textarea#options_sbConfig { border: 1px solid #aaa; width: 254px; margin-left: 6px; margin-top: 5px; margin-bottom: 4px; padding: 3px 7px; resize: none; outline: none; font-size: 10px; font-style: italic; }\ #kong_game_ui div#dotdx_status_div {font-family: \"Trebuchet MS\", Helvetica, sans-serif; font-style: italic; font-size: 11px; margin: 0; border-bottom: 1px solid #aaa; }\ #kong_game_ui div#helpBox { padding: 0; position: absolute; bottom: 8px; overflow: hidden; width: 282px; transition: max-height .5s; border-top-width: 0; border-top-style: solid; font-family: \"Trebuchet MS\",Helvetica,sans-serif; font-size: 12px; font-style: italic;}\ #kong_game_ui div#helpBox > span {display: inline-block; padding: 11px 8px 9px;}\ #kong_game_ui span.generic { display: inline-block; font-family: \"Trebuchet MS\", Helvetica, sans-serif; font-size: 12px; }\ #kong_game_ui span.notice { display: inline-block; font-family: \"Trebuchet MS\", Helvetica, sans-serif; font-size: 10px; font-style: italic; margin: 3px 6px; }\ #kong_game_ui div#dotdx_usercontext { display: none; position: absolute; background-color: #eee; border: 1px solid #888; display: none; box-shadow: 0 0 8px #888; font-family: \"Trebuchet MS\", Helvetica, sans-serif; font-size: 12px; background: -webkit-linear-gradient(top,#e7e7e7,#fff); background: -moz-linear-gradient(top,#e7e7e7,#fff); cursor: pointer;}\ #kong_game_ui div#dotdx_usercontext span { display: inline-block; padding: 3px 6px 2px }\ #kong_game_ui div#dotdx_usercontext span:hover { text-shadow: 0 0 3px #aaa; }\ #kong_game_ui td {vertical-align: middle}\ div#FPXfsOptions span.generic {float:left; clear:both}\ div#FPXfsOptions span.share { font-family: \"Trebuchet MS\", Helvetica, sans-serif; font-size: 10px; margin-right: 10px; margin-right: 5px; display: inline-block; padding-top: 3px; }\ div#FPXfsOptions label { margin-right: 3px; }\ div#dotdx_sidebar_container { margin-top: 0; padding-top: 5px; overflow: hidden; }\ div#dotdx_sidebar_container > button {width: 60px; border: 1px solid #555; margin-bottom: 5px; font-size: 11px; font-family: \"Trebuchet MS\", Helvetica, sans-serif; height: 21px; transition-property: box-shadow, text-shadow, border-color, background; transition-duration: .5s; outline: none; position: relative; z-index: 9;}\ div#dotdx_sidebar_container > button:hover { position: relative; z-index: 40;}\ div#dotdx_sidebar_container > div.label { text-align: center; color: #fff; padding-top: 7px; height: 19px; text-shadow: 0 0 6px #fff; font-family: \"Trebuchet MS\", Helvetica, sans-serif; font-size: 12px; }\ div#dotdx_sidebar_container > div { width: 60px; height: 26px }\ div#dotdx_sidebar_container > input[type=\"text\"] { border: 1px solid #555; margin-bottom: 5px; display: inline-block; font-family: \"Trebuchet MS\", Helvetica, sans-serif; font-size: 11px; font-style: italic; width: 46px; outline: none; height: 13px; text-align: center; position:absolute; z-index:3; padding: 3px 6px; transition: width .5s; }\ div#dotdx_sidebar_container > input[type=\"text\"].slim {width: 16px}\ div#dotdx_sidebar_container > input[type=\"text\"]:hover, div#dotdx_sidebar_container > input[type=\"text\"]:focus { width:250px; text-align: left; }\ div#dotdx_sidebar_container > div#serverButton {cursor: pointer; border: 1px solid #111; text-align: center; height: auto; width: 58px; padding: 4px 0px; box-shadow: 0px 0px 4px #222; margin-bottom: 7px; transition: all .5s ease 0s;}\ div#dotdx_sidebar_container > div#serverButton:hover {border-radius: 5px;} \ div#dotdx_sidebar_container > button.slim, div#dotdx_sidebar_container > div.slim {width: 30px}\ div#dotdx_sidebar_container.slim {width: 32px}\ div#dotdx_sidebar_container > div#serverButton.slim {width: 28px}\ #kong_game_ui div#chat_room_tabs div a, #kong_game_ui div#lots_tab_pane ul li.tab div.tab_head {transition: all .3s;}\ div.raid_list_item > span.DotDX_extState { display: inline-block; width:27px; padding-top: 2px }\ div.raid_list_item > span.DotDX_extInfo { float: right; display:inline; margin-right: 8px; color:#c0c0c0; font-size: 11px }\ div.raid_list_item > br {clear:both}\ div.raid_list_item > span.DotDX_extInfo.failings {color: #ffda8e}\ div.raid_list_item > span.DotDX_extInfo.failingm {color: #ff8080}\ div.raid_list_item > span.DotDX_extInfo.failingh {color: #ff4040}\ #FPXRaidFilterWhatDiv table {max-height: 327px; overflow-y: auto;}\ #FPXRaidFilterWhatDiv table tr td:first-child {text-overflow: ellipsis; white-space: pre; overflow-x: hidden; width: 150px; display: inline-block;}\ #chat_raids_overlay table {margin-top: 2px;}\ #chat_raids_overlay table td {line-height: 13px;}\ #chat_raids_overlay table td.best {text-decoration: underline;}\ #chat_raids_overlay table td:nth-child(odd) {text-align: right; padding-right: 2px; min-width: 18px;}\ #chat_raids_overlay table td:nth-child(even) {width: 45px;}\ " + elemPositionFix).attach("to", document.head); SRDotDX.c('style').set({type: "text/css", id: 'DotDX_themeClass'}).attach('to', document.head); SRDotDX.gui.applyTheme(); SRDotDX.c('style').set({type: "text/css", id: 'DotDX_tabs'}).attach('to', document.head); SRDotDX.c('style').set({type: "text/css", id: 'DotDX_fontClass'}).attach('to', document.head); SRDotDX.gui.applyFontSize(); var link = SRDotDX.c('a').set({href: '#lots_tab_pane', class: ''}).html(SRDotDX.config.dotdxTabName, false).attach('to', SRDotDX.c('li').set({ class: 'tab', id: 'lots_tab' }).attach('after', 'chat_tab').ele()).ele(); var sbTmp = JSON.stringify(SRDotDX.config.sbConfig); sbTmp = sbTmp.slice(1, sbTmp.length - 1).replace(/},/g, "}, ").replace(/l,/g, "l, "); var pane = SRDotDX.c('div').set({id: 'lots_tab_pane'}).html(' \
\
DotDX:
\
\
    \
  • \
    Raids
    \
    \
    \
    \

    Filtering

    \
    \ \ \ \ \
    \
    \ \ \ \ \
    \ \ \
    \
    \
    \
  • \
  • \
    Opts
    \
    \
    \

    Raid Options+

    \ \
    \
    \

    Chat Options+

    \ \
    \
    \

    Interface Options+

    \ \
    \
    \

    Sidebar Options+

    \ \
    \
    \

    Friend Share Options+

    \ \
    \
    \
  • \
  • \
    Share
    \
    \
    \
    \

    Share+

    \
    \
    \ Whisper to
    \ (if "whisper to" field is blank, raids will be posted public) \ \
    \
    \
    \
    \

    Import+

    \ \
    \
    \ \
    \
  • \
  • \
    Filter
    \
    \
    \
    \

    Filtering options+

    \
    \
    \
    \
    \
    \
    \
    \

    Small Raids+

    \
FS:' + SRDotDX.util.getShortNum(fs) + text; } else msg += '
FS:    ' + SRDotDX.util.getShortNum(fs) + ' | Tiers not yet known.'; } else { } } if(magE) magSpan.style.maxWidth = mWidth; document.getElementById(boxId + '_text').innerHTML = msg; if(!(boxDiv.className.indexOf('active') > 0)) boxDiv.className = "active"; clearTimeout(SRDotDX.gui.CurrentRaidsOutputTimer); } }, displayHint: function (hint) { var helpEl = document.getElementById('helpBox'); if(hint) { helpEl.children[0].innerHTML = hint; helpEl.style.maxHeight = '50px'; helpEl.style.borderTopWidth = '1px'; } else { helpEl.style.maxHeight = '0'; helpEl.style.borderTopWidth = '0'; } }, refreshRaidList: function () { document.getElementById('raid_list').innerHTML = ""; for(var i = 0, il = SRDotDX.gui.joinRaidList.length; i < il; ++i) SRDotDX.gui.addRaid(SRDotDX.gui.joinRaidList[i]); }, diffTxt: [['DotDX_U','U'],['DotDX_N','N'],['DotDX_H','H'],['DotDX_L','L'],['DotDX_NM','NM']], addRaid: function (id) { var r = typeof id === 'string' || typeof id === 'number' ? SRDotDX.config.raidList[id] : id; var a = document.getElementById('raid_list'); if (r.boss) { if (a !== null) { var rd = typeof SRDotDX.raids[r.boss] != 'object' ? {shortname: r.boss.capitalize().replace(/_/ig, ' '), duration: 24} : SRDotDX.raids[r.boss]; var url = 'http://www.kongregate.com/games/5thPlanetGames/dawn-of-the-dragons?kv_action_type=raidhelp&kv_difficulty=' + r.diff + '&kv_hash=' + r.hash + '&kv_raid_boss=' + r.boss + '&kv_raid_id=' + r.id + '&kv_serverid=' + r.sid; var hpr = (r.hp * 100).toPrecision(3), fCls = ""; var tlp = ((r.expTime - parseInt(new Date().getTime()/1000)) / (36 * rd.duration)).toPrecision(3); var delta = hpr - tlp; if (delta > 0) { if (delta < 15) fCls = " failings"; else if (delta < 30) fCls = " failingm"; else fCls = " failingh"; } var lii = SRDotDX.c('div').set({ class: 'raid_list_item ' + this.diffTxt[r.diff][0] + (r.visited ? ' DotDX_visitedRaidList' : ''),// + (r.nuked ? ' DotDX_nukedRaidList' : ''), id: 'DotDX_' + r.id, raidid: r.id }).html(' \ ' + this.diffTxt[r.diff][1] + ' \ ' + rd.shortname + ' \ ' + (r.visited ? '★' : '') + (r.fs === 0 ? ' !' : '') + ' \ DEL\ hp/time: ' + hpr + '% / ' + tlp + '%\ ', true); lii.attach('to', a); } } else SRDotDX.gui.deleteRaidFromDB(id); }, toggleRaidListDesc: function (el, mode) { if(mode) { clearTimeout(el.timerout); el.timerin = setTimeout(function(){el.lastElementChild.style.display = "block";}, 500) } else { clearTimeout(el.timerin); el.timerout = setTimeout(function (){el.lastElementChild.style.display = "none";}, 50) } return false; }, errorMessage: function (s, tag) { tag = typeof tag === 'undefined' ? 'b' : tag; SRDotDX.gui.doStatusOutput('<' + tag + '>' + s + '') }, updateMessage: function () { SRDotDX.gui.doStatusOutput(SRDotDX.gui.standardMessage(), false, true) }, postingMessage: function (i, ct) { SRDotDX.gui.doStatusOutput('Posting message ' + i + (typeof ct == 'undefined' ? '' : ' of ' + ct + '...'), false) }, standardMessage: function () { return Object.keys(SRDotDX.config.raidList).length + ' raids in db, ' + SRDotDX.gui.joinRaidList.length + ' selected to join'; }, CurrentStatusOutputTimer: 0, doStatusOutput: function (str, msecs, showInChat) { showInChat = showInChat === undefined ? true : showInChat; msecs = msecs || 4000; var rel = document.getElementById('StatusOutput'); var cel = document.getElementById('dotdx_chat_overlay'); if(rel !== null) rel.innerHTML = str; if(showInChat && cel !== null) cel.innerHTML = str; if(msecs) { if (SRDotDX.gui.CurrentStatusOutputTimer) clearTimeout(SRDotDX.gui.CurrentStatusOutputTimer); SRDotDX.gui.CurrentStatusOutputTimer = setTimeout(function () { var rel = document.getElementById('StatusOutput'); var cel = document.getElementById('dotdx_chat_overlay'); if(rel !== null) rel.innerHTML = SRDotDX.gui.standardMessage(); if(cel !== null) cel.innerHTML = SRDotDX.gui.standardMessage(); }, msecs); } }, toggleDisplay: function (elem, sender, el2) { if (typeof elem == 'undefined') return; var el = document.getElementById(elem); var alls = document.getElementsByName(sender.getAttribute('name')); if (alls.length > 0) { for (var i = 0; i < alls.length; i++) { if (alls[i].nodeName == 'P') alls[i].getElementsByTagName('span')[0].innerHTML = '+'; else alls[i].style.display = 'none'; } el.style.display = 'block'; sender.getElementsByTagName('span')[0].innerHTML = '−'; } else { if (el.style.display == 'none') { el.style.display = 'block'; sender.getElementsByTagName('span')[0].innerHTML = '−'; } else { el.style.display = 'none'; sender.getElementsByTagName('span')[0].innerHTML = '+'; } } if (typeof el2 == 'string') { switch (el2) { case 'raid_list': SRDotDX.refreshRaidTab(); break; case 'share_list': document.getElementById('DotDX_raidsToSpam').style.height = ( 526 - document.getElementById('FPXShare').offsetHeight - document.getElementById('FPXImport').offsetHeight ) + "px"; } } }, Importing: false, deleteRaid: function(ele) { var id = ele.getAttribute('raidid'); SRDotDX.gui.deleteRaidFromDB(id); if(!SRDotDX.gui.joining) SRDotDX.gui.refreshRaidList(); }, deleteRaidFromDB: function(id) { var chat = document.getElementsByClassName('chat_message_window'), p, pe, i; for(var c = 0, ci = chat.length; c < ci; ++c) { p = chat[c].getElementsByClassName('DotDX_raid'); i = 0; while(pe = p[i++]) if(pe.className.indexOf("DotDX_raidId_" + id) > -1) pe.parentNode.removeChild(pe); } if(SRDotDX.config.raidList[id]) delete SRDotDX.config.raidList[id]; }, FPXdeleteAllRaids: function() { if (!SRDotDX.config.confirmDeletes || confirm('This will delete all ' + SRDotDX.config.raidList.length + ' raids stored. Continue? \n (This message can be disabled on the options tab.)')) { for(var id in SRDotDX.config.raidList) if(SRDotDX.config.raidList[id]) delete SRDotDX.config.raidList[id]; var raidlistDIV = document.getElementById('raid_list'); while (raidlistDIV.hasChildNodes()) raidlistDIV.removeChild(raidlistDIV.lastChild); localStorage.removeItem('raidList'); SRDotDX.gui.updateMessage(); console.log('[SRDotDX] Delete all raids finished.'); } }, chatCommand: function (text) { var elems = document.getElementsByClassName('chat_input'); var txt = [], i = elems.length; while (i--) { txt[i] = elems[i].value; elems[i].value = text; } holodeck.activeDialogue().sendInput(); i = txt.length; while (i--) elems[i].value = txt[i]; }, FPXdoWork: function (param1, whisper) { var elems = document.getElementsByClassName('chat_input'); if (whisper && whisper != '') param1 = '/w ' + whisper + ' ' + param1; var txt = [], i = elems.length; while (i--) { txt[i] = elems[i].value; elems[i].value = param1; } holodeck.activeDialogue().sendInput(); i = txt.length; while (i--) elems[i].value = txt[i]; }, FPXformatRaidOutput: function (url) { var pre = ''; //user && room ? '['+room+'|'+user+'] ' : ''; if (!SRDotDX.config.formatLinkOutput) return pre + url; var r = SRDotDX.getRaidDetailsBase(url); return pre + r.shortname + ' ' + r.diffShortText + ' ' + url; }, isPosting: false, FPXTimerArray: [], FPXStopPosting: function () { SRDotDX.gui.endSpammingRaids(); console.log('[DotDX] Spamming raids to chat... [cancelled]'); SRDotDX.util.extEcho('Raid posting cancelled'); }, endSpammingRaids: function () { for(var i = 0, il = SRDotDX.gui.FPXTimerArray.length; i < il; ++i) clearTimeout(SRDotDX.gui.FPXTimerArray[i]); SRDotDX.gui.isPosting = false; document.getElementById('PostRaidsButton').value = 'Post'; document.getElementById('dotdx_share_post_button').value = 'Post Links to Chat'; document.getElementById('dotdx_share_post_button').value = 'Friend Share links'; SRDotDX.gui.doStatusOutput('Posting raids finished'); SRDotDX.gui.FPXTimerArray = []; SRDotDX.config.save(false); }, prepareSpammingRaids: function () { SRDotDX.gui.isPosting = true; document.getElementById('PostRaidsButton').value = 'Cancel'; document.getElementById('dotdx_share_post_button').value = 'Cancel'; document.getElementById('dotdx_friend_post_button').value = 'Cancel'; SRDotDX.gui.doStatusOutput('Posting raids started', false); }, spamRaidsToFriends: function () { SRDotDX.gui.prepareSpammingRaids(); var userList = [[],[],[],[],[]], keys = Object.keys(SRDotDX.config.friendUsers); for(var k = 0, kl = keys.length; k < kl; ++k) for(var i = 0; i < 5; ++i) if(SRDotDX.config.friendUsers[keys[k]][i]) userList[i].push(keys[k]); console.log('[DotDX] Spamming raids to friends... [started]'); var linkList = document.getElementById('DotDX_raidsToSpam').value; if(linkList.length > 100) { document.getElementById('DotDX_raidsToSpam').value = ''; var patt = new RegExp('http...www.kongregate.com.games.5thPlanetGames.dawn.of.the.dragons.[\\w\\s\\d_=&]+[^,]', 'ig'); var link, ct = 0, sel = 4, r, rs; i = 0; var timer = 500, ttw = 3050; while ((link = patt.exec(linkList)) && SRDotDX.gui.isPosting) { link = typeof link !== "string" ? link[0] : link; r = SRDotDX.util.getRaidFromUrl(link); rs = SRDotDX.raids[r.boss].size; if (r.boss === 'serpina') sel = 0; else if (rs < 26) sel = 1; else if (rs === 50) sel = 2; else if (rs === 100) sel = 3; if(userList[sel].length > 0) { for(var u = 0, ul = userList[sel].length; u < ul; ++u) { (function (p1, p2) { return SRDotDX.gui.FPXTimerArray[i] = setTimeout(function () { if (!SRDotDX.gui.isPosting) return; SRDotDX.gui.FPXdoWork(SRDotDX.gui.FPXformatRaidOutput(p1), p2); ++ct; SRDotDX.gui.postingMessage(ct, i); }, timer); })(link, userList[sel][u]); timer += ttw; i++; } } } } SRDotDX.gui.FPXTimerArray[SRDotDX.gui.FPXTimerArray.length] = setTimeout(function () { SRDotDX.gui.endSpammingRaids(); console.log('[DotDX] Spamming raids to friends... [stopped]'); }, timer); }, FPXspamRaids: function () { SRDotDX.gui.prepareSpammingRaids(); console.log('[DotDX] Spamming raids to chat... [started]'); var linkList = document.getElementById('DotDX_raidsToSpam').value; if (linkList.length > 100) { document.getElementById('DotDX_raidsToSpam').value = ''; var patt = new RegExp('http...www.kongregate.com.games.5thPlanetGames.dawn.of.the.dragons.[\\w\\s\\d_=&]+[^,]', 'ig'); var link, ct = 0, i = 0; var timer = 500, ttw = 3050; var total = linkList.split(patt).length - 1; while ((link = patt.exec(linkList)) && SRDotDX.gui.isPosting) { (function (p1) { return SRDotDX.gui.FPXTimerArray[i] = setTimeout(function () { if (!SRDotDX.gui.isPosting) return; SRDotDX.gui.FPXdoWork(SRDotDX.gui.FPXformatRaidOutput(p1), SRDotDX.config.whisperTo); ++ct; SRDotDX.gui.postingMessage(ct, total); }, timer); })(link); timer += ttw; i++; } } SRDotDX.gui.FPXTimerArray[SRDotDX.gui.FPXTimerArray.length] = setTimeout(function() { SRDotDX.gui.endSpammingRaids(); console.log('[DotDX] Spamming raids to chat... [stopped]'); }, timer); }, quickImportAndJoin: function(joinStr, imp) { SRDotDX.gui.updateFilterTxt(joinStr, false, true); SRDotDX.request.quickBtnLock = false; if(imp) { SRDotDX.request.joinAfterImport = true; SRDotDX.gui.importFromServer(); } else SRDotDX.gui.joinSelectedRaids(); }, importFromServer: function () { var h = Math.ceil(((new Date).getTime() - SRDotDX.config.lastImported) / 3600000); SRDotDX.util.extEcho('Importing raids from server'); SRDotDX.request.raids(false, h); }, sortRaids: function () { var raidArray = [], i, sortFunc; var selectedSort = document.getElementById('FPXRaidSortSelection').value; var selectedDir = document.getElementById('FPXRaidSortDirection').value; var raidlistDIV = document.getElementById('raid_list'); var raidList = raidlistDIV.childNodes; console.log('[SRDotDX] Sorting started ' + selectedSort + ' : ' + selectedDir); i = raidList.length; while (i--) raidArray.push(SRDotDX.config.raidList[raidList[i].getAttribute('raidid')]); switch (selectedSort) { case 'Id': if (selectedDir == 'asc') sortFunc = function (a, b) { if (!(typeof a.id === 'undefined' || typeof b.id === 'undefined') && a.id > b.id) return -1; return 1; }; else sortFunc = function (a, b) { if (!(typeof a.id === 'undefined' || typeof b.id === 'undefined') && a.id < b.id) return -1; return 1; }; break; case 'Time': if (selectedDir == 'asc') sortFunc = function (a, b) { if (!(typeof a.timeStamp === 'undefined' || typeof b.timeStamp === 'undefined') && a.timeStamp > b.timeStamp) return -1; return 1; }; else sortFunc = function (a, b) { if (!(typeof a.timeStamp === 'undefined' || typeof b.timeStamp === 'undefined') && a.timeStamp < b.timeStamp) return -1; return 1; }; break; case 'Name': if (selectedDir == 'asc') sortFunc = function (a, b) { a = SRDotDX.raids[a.boss]; b = SRDotDX.raids[b.boss]; //console.log(a + ' : ' + b + ' : ' + (typeof a === 'undefined') + ' : ' + (typeof b === 'undefined')); if (!(typeof a === 'undefined' || typeof b === 'undefined') && a.name > b.name) return -1; return 1; }; else sortFunc = function (a, b) { a = SRDotDX.raids[a.boss]; b = SRDotDX.raids[b.boss]; if (!(typeof a === 'undefined' || typeof b === 'undefined') && a.name < b.name) return -1; return 1; }; break; case 'Diff': if (selectedDir == 'asc') sortFunc = function (a, b) { if (a.diff > b.diff) return -1; return 1 }; else sortFunc = function (a, b) { if (a.diff < b.diff) return -1; return 1 }; break; } try { raidArray.sort(sortFunc) } catch (e) { console.log('[SRDotDX] Sorting error: ' + e); return } raidlistDIV = document.getElementById('raid_list'); if(raidlistDIV !== null) while(raidlistDIV.hasChildNodes()) raidlistDIV.removeChild(raidlistDIV.lastChild); i = raidArray.length; while (i--) SRDotDX.gui.addRaid(raidArray[i]); //SRDotDX.gui.FPXFilterRaidListByName(); console.log('[SRDotDX] Sorting finished'); }, joinRaidList: [], postRaidList: [], updateFilterTimeout: 0, filterSearchStringC: "", filterSearchStringR: "", updateFilterContext: true, includeDiff: function(str, dv) { var diff = isNaN(parseInt(dv)) ? ({'n': 1, 'h': 2, 'l': 3, 'nm': 4, 'nnm': 0})[dv] || 5 : parseInt(dv); var out = ""; var string = str.toString(); switch(diff) { case 0: out = string.replace(/,|$/g, '_1,') + string.replace(/,|$/g, '_4,'); break; case 1: case 2: case 3: case 4: out = string.replace(/,|$/g, '_' + diff + ','); break; default: for(var i = 1; i < 5; ++i) out += string.replace(/,|$/g, '_' + i + ','); break; } return out.slice(0, -1); }, updateFilterTxt: function(txt, fromRT, quick) { clearTimeout(this.updateFilterTimeout); var foundRaids = [], field, rf, i, il; if(txt !== "") { var searchArray = txt.split(/\s?\|\s?|\sor\s|\s?,\s?/ig); var keys = Object.keys(SRDotDX.raids); for(i = 0, il = searchArray.length; i < il; ++i) { field = searchArray[i].toLowerCase().split(':'); if (field[0] !== "") { if(typeof SRDotDX.searchPatterns[field[0]] !== 'undefined') foundRaids.push(this.includeDiff(SRDotDX.searchPatterns[field[0]], field[1])); else if(typeof SRDotDX.raids[field[0]] !== 'undefined') foundRaids.push(this.includeDiff(field[0], field[1])); else { for(var k = 0, kl = keys.length; k < kl; ++k) { rf = (SRDotDX.raids[keys[k]].name + ':' + SRDotDX.raids[keys[k]].shortname + ':' + SRDotDX.raids[keys[k]].type).toLowerCase(); if (rf.indexOf(field[0]) >= 0) foundRaids.push(this.includeDiff(keys[k], field[1])); } } } } } var finalSearchString = foundRaids.length === 0 ? "" : "," + foundRaids.toString() + ","; if(fromRT) { SRDotDX.config.lastFilter[SRDotDX.config.serverMode - 1] = txt; SRDotDX.config.filterSearchStringR = finalSearchString; } else if(quick) SRDotDX.request.filterSearchStringT = finalSearchString; else { var filterInputs = document.getElementsByClassName('dotdx_chat_filter'); for (i = 0, il = filterInputs.length; i < il; ++i) if(filterInputs[i].value !== txt) filterInputs[i].value = txt; SRDotDX.config.chatFilterString = txt; SRDotDX.config.filterSearchStringC = finalSearchString; } if(quick) { SRDotDX.gui.selectRaidsToJoin('quick'); SRDotDX.config.save(false) } else this.updateFilterTimeout = setTimeout(function(){SRDotDX.gui.selectRaidsToJoin();SRDotDX.config.save(false)}, 300); }, selectRaidsToJoin: function(from) { if(SRDotDX.request.quickBtnLock) { if(!SRDotDX.gui.joining) SRDotDX.gui.joinRaidList.length = 0; SRDotDX.gui.updateFilterContext = document.getElementById('chat_tab').firstChild.className === 'active'; var searchString = from && from === 'quick' ? SRDotDX.request.filterSearchStringT : (SRDotDX.gui.updateFilterContext && SRDotDX.config.chatFilterString !== "" ? SRDotDX.config.filterSearchStringC : SRDotDX.config.filterSearchStringR); var r, filter = SRDotDX.c('#DotDX_filters').ele().innerHTML, server = SRDotDX.config.serverMode, keys = Object.keys(SRDotDX.config.raidList); for(var k = 0, kl = keys.length; k < kl; ++k) { r = SRDotDX.config.raidList[keys[k]]; if (SRDotDX.config.fltShowAll || (r.sid === server && ((!SRDotDX.config.fltExclFull || r.fs > 0) && (SRDotDX.config.fltIncVis || !r.visited)) && filter.indexOf('fltList_' + r.boss + '_' + (r.diff - 1)) < 0 && (searchString == "" || searchString.indexOf("," + r.boss + "_" + r.diff + ",") >= 0) )) SRDotDX.gui.joinRaidList.push(r); } if (!SRDotDX.gui.joining) { SRDotDX.gui.updateMessage(); SRDotDX.gui.refreshRaidList(); } } }, pushRaidToJoinQueue: function(id) { var searchString = SRDotDX.gui.updateFilterContext && SRDotDX.config.chatFilterString !== "" ? SRDotDX.config.filterSearchStringC : SRDotDX.config.filterSearchStringR; var r, filter = SRDotDX.c('#DotDX_filters').ele().innerHTML; r = SRDotDX.config.raidList[id]; if(typeof r === 'object') { if (SRDotDX.config.fltShowAll || (r.sid === server && ((!SRDotDX.config.fltExclFull || r.fs > 0) && (SRDotDX.config.fltIncVis || !r.visited)) && filter.indexOf('fltList_' + r.boss + '_' + (r.diff - 1)) < 0 && (searchString == "" || searchString.indexOf("," + r.boss + "_" + r.diff + ",") >= 0) )) SRDotDX.gui.joinRaidList.push(r); } }, joining: false, joinRaidIndex: 0, joinRaidComplete: 0, joinRaidSuccessful: 0, joinRaidDead: 0, joinRaidInvalid: 0, joinSelectedRaids: function(fromChat) { if (!this.joining) { this.joining = true; this.joinRaidIndex = 0; this.joinRaidComplete = 0; this.joinRaidSuccessful = 0; this.joinRaidDead = 0; this.joinRaidInvalid = 0; if (SRDotDX.gui.joinRaidList.length == 0) { this.joinFinish(true); return } SRDotDX.c("#AutoJoinVisibleButton").ele().value = 'Cancel'; SRDotDX.c("#AutoImpJoinVisibleButton").ele().value = 'Cancel'; console.log('[DotDX] Joining ' + SRDotDX.gui.joinRaidList.length + ' raids'); while(SRDotDX.gui.joinRaidIndex < Math.min(20, SRDotDX.gui.joinRaidList.length)) SRDotDX.request.joinRaid(SRDotDX.gui.joinRaidList[SRDotDX.gui.joinRaidIndex++]); } else if(!fromChat) this.joinFinish(); }, joinFinish: function(recalc) { this.joining = false; SRDotDX.request.quickBtnLock = true; SRDotDX.c("#AutoJoinVisibleButton").ele().value = 'Join'; SRDotDX.c("#AutoImpJoinVisibleButton").ele().value = 'Import & Join'; if (recalc) this.selectRaidsToJoin('joining finish'); }, refreshFriends: function() { var content = "", ff, i, il, f = false, friend; var parentDiv = SRDotDX.c('#FPXfsOptions'); var friends = Object.keys(SRDotDX.config.friendUsers); parentDiv.html('User
', true); for(i = 0, il = friends.length; i < il; ++i) { content += (f ? '
' : '') + '' + friends[i] + '' + '' + '' + '' + '' + ''; f = true; } parentDiv.html('
' + content + '
', false); for(i = 0, il = friends.length; i < il; ++i) { ff = SRDotDX.config.friendUsers[friends[i]]; SRDotDX.c('#fs:' + friends[i] + ':' + 0).on('click',SRDotDX.gui.fsEleClick).ele().checked = ff[0]; SRDotDX.c('#fs:' + friends[i] + ':' + 1).on('click',SRDotDX.gui.fsEleClick).ele().checked = ff[1]; SRDotDX.c('#fs:' + friends[i] + ':' + 2).on('click',SRDotDX.gui.fsEleClick).ele().checked = ff[2]; SRDotDX.c('#fs:' + friends[i] + ':' + 3).on('click',SRDotDX.gui.fsEleClick).ele().checked = ff[3]; SRDotDX.c('#fs:' + friends[i] + ':' + 4).on('click',SRDotDX.gui.fsEleClick).ele().checked = ff[4]; /*for (i = 0; i < 5; i++) SRDotDX.c('#fs:' + friends[i] + ':' + i).on('click', function (e) { SRDotDX.gui.fsEleClick(e) }).ele().checked = ff[i];*/ } }, DeleteRaids: function() { if(!this.joining) { console.log('[DotDX] Erasing visible raids ...'); var rn = SRDotDX.gui.joinRaidList.length; if(rn > 0 && (!SRDotDX.config.confirmDeletes || confirm('This will delete ' + rn + ' raids. Continue? \n (This message can be disabled on the options tab.)'))) { for(var i = 0; i < rn; ++i) SRDotDX.gui.deleteRaidFromDB(SRDotDX.gui.joinRaidList[i].id); SRDotDX.gui.doStatusOutput(i + ' raids deleted'); SRDotDX.gui.selectRaidsToJoin(); console.log('[DotDX] Erasing complete'); } } }, GetDumpText: function() { var dumptext = ""; var pre = "http://www.kongregate.com/games/5thPlanetGames/dawn-of-the-dragons?kv_action_type=raidhelp"; var raid; for(var i = 0, il = SRDotDX.gui.joinRaidList.length; i < il; ++i) { raid = SRDotDX.gui.joinRaidList[i]; dumptext += pre + '&kv_raid_id=' + raid.id + '&kv_difficulty=' + raid.diff + '&kv_raid_boss=' + raid.boss + '&kv_hash=' + raid.hash + '&kv_serverid=' + raid.sid + ', '; } return dumptext; }, RaidAction: function(f) { switch(f) { case 'share': SRDotDX.gui.DumpRaidsToShare(true); break; case 'post': if (SRDotDX.gui.isPosting) SRDotDX.gui.FPXStopPosting(); else { SRDotDX.gui.DumpRaidsToShare(); SRDotDX.gui.FPXspamRaids(); } break; case 'post_share': if (SRDotDX.gui.isPosting) SRDotDX.gui.FPXStopPosting(); else SRDotDX.gui.FPXspamRaids(); break; case 'post_friend': if (SRDotDX.gui.isPosting) SRDotDX.gui.FPXStopPosting(); else SRDotDX.gui.spamRaidsToFriends(); break; case 'delete': SRDotDX.gui.DeleteRaids(); break; } }, DumpRaidsToShare: function(b) { document.getElementById('DotDX_raidsToSpam').value = SRDotDX.gui.GetDumpText(); SRDotDX.gui.doStatusOutput('Copied ' + SRDotDX.gui.joinRaidList.length + ' raid links to share tab.'); console.log('[DotDX] Dumped ' + SRDotDX.gui.joinRaidList.length + ' to share'); if(b) { var e = document.getElementById('lots_tab_pane').getElementsByTagName('li'); var i = e.length; while (i--) if (e[i].getAttribute('class').indexOf('active') > -1) e[i].className = e[i].className.replace(/ active$/g, ''); (document.getElementById('FPXShareTab').parentNode).className += ' active'; } }, BeginDeletingExpiredUnvisitedRaids: function() { SRDotDX.gui.cleanRaidsDB(); setInterval(SRDotDX.gui.cleanRaidsDB, 600000) }, cleanRaidsDB: function() { var now = parseInt(new Date().getTime()/1000); var r, cnt = 0, keys = Object.keys(SRDotDX.config.raidList); for(var k = 0, kl = keys.length; k < kl; ++k) { r = SRDotDX.config.raidList[keys[k]]; if(now >= r.expTime || (r.ni && (now-r.timeStamp)/3600 > 3)) { SRDotDX.gui.deleteRaidFromDB(keys[k]); cnt++; } } var chat = document.getElementsByClassName('chat_message_window'), p, pe, i; for(var c = 0, cl = chat.length; c < cl; ++c) { p = chat[c].getElementsByTagName('div'); i = 0; while(pe = p[i++]) if(pe.empty()) pe.parentNode.removeChild(pe); } if(cnt > 0) { SRDotDX.gui.doStatusOutput(cnt + ' expired raids removed from db.'); console.log('[DotDX] Number of expired raids removed: ' + cnt); SRDotDX.gui.selectRaidsToJoin('prune'); } }, switchBot: function() { //console.log('[SRDotDX] Bot button clicked'); var chkBot = document.getElementById('SRDotDX_options_hideBotLinks'); chkBot.checked = !SRDotDX.config.hideBotLinks; SRDotDX.config.hideBotLinks = chkBot.checked; SRDotDX.c('#SRDotDX_botClass').html('.bot {display: ' + (chkBot.checked ? 'none !important' : 'block') + '}', true); SRDotDX.gui.scrollChat(); }, scrollChat: function() { var els = document.getElementsByClassName('chat_message_window'); var i = SRDotDX.util.getChatNumber(); if(els && i) els[i].scrollTop = els[i].scrollHeight; }, getScrollbarWidth: function() { var scrollDiv = SRDotDX.c('div').set({id: "DotDX_scrollMeasure", style: "width:100px;height:100px;overflow:scroll;position:absolute;top:-9999px;"}).attach('to', document.body).ele(); var scrollbarWidth = scrollDiv.offsetWidth - scrollDiv.clientWidth; document.body.removeChild(document.getElementById('DotDX_scrollMeasure')); return scrollbarWidth; }, applyFontSize: function(num) { var n = typeof num === 'number' ? num : SRDotDX.config.fontNum, s1, s2, mod = ''; //console.log("[DotDX] apply font size with id: " + n); SRDotDX.config.fontNum = n; switch(n) { case 1: s1 = 12; s2 = 10; mod = '; vertical-align: top;'; break; case 2: s1 = 10; s2 = 8; break; default: s1 = 11; s2 = 9; break; } SRDotDX.c('#DotDX_fontClass').html('\ #kong_game_ui div.chat_message_window p span.message, #kong_game_ui div.chat_message_window p span.separator, #kong_game_ui div.chat_message_window p span.username {font-size: ' + s1 + 'px}\ #kong_game_ui div.chat_message_window p span.room, #kong_game_ui div.chat_message_window p span.timestamp {font-size: ' + s2 + 'px' + mod + '}\ ', true); }, applyTabs: function() { document.getElementById('lots_tab').firstChild.innerHTML = SRDotDX.config.dotdxTabName; var elems = ["#DotDX_Dummy"]; if(SRDotDX.config.hideGameTab) elems.push("#kong_game_ui li#game_tab"); if(SRDotDX.config.hideAccTab) elems.push("#kong_game_ui li#accomplishments_tab"); SRDotDX.c('#DotDX_tabs').html(elems.join(", ") + ' { display: none !important }', true); }, applyTheme: function(num) { var n = typeof num == 'number' ? num : SRDotDX.config.themeNum; //console.log("[DotDX] apply theme with id: " + n); var c, check, radio; SRDotDX.config.themeNum = n; switch(n) { case 1: check = 'iVBORw0KGgoAAAANSUhEUgAAABAAAAAcCAYAAABoMT8aAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAAYdEVYdFNvZnR3YXJlAHBhaW50Lm5ldCA0LjAuM4zml1AAAAJxSURBVEhL7VRLaxNRGL1QEIVs9AckDamZZPLOvDMzicZEjBltY5qnisFFKbgRVLoQEf0JVkShTUVQCl2oG9GNS0FcuXDpD3DrxneP3x0mfdimTXHjwoHDMN/cc+a73z1nmCAImVgs9joej39NJBLYAau07kM0Gu0EAoH9bHBR8W02m4WqqtB1fSg0TYMkSUgmkx+JI3l0xujLvzg5l8vBsizYtr0FvG6apiuSSqV4J8c8OmO8Pf4Fviifz6NQKGwLLmQYBtLpNEig5NHXBfiC7YgDcPH/ArsI/NUpbPTBMAx8wAWIsy5AxW8DJ/IFw8DfcyfKsvyTOi56dMYcx1nhWyCL/un9LeAC5XL5Xa1WEz06Y61Wa5zwst1uf+l0OtgBq7TmfbPZrDYajTGPzvacRup0jpAURdHnChDxzahpNNMZXCsWMJ+NfDoz7r/l8/n2cYEfo6RRz0i4YlpYadTxYrKClYOHPueCwXMj+SCXlXBZ1vG828SSU8Mj8sNsaAKq3x/c5ES7cASWTaahOydywbwk46qi41Wvi351CovUxUw48l0WonOhUGhsTcCkF8clBTOVMkqyCps/0/0GiTw728YikR9YeVwSIjAPR6/Tb+2AO0QuwAdUVXXcrVaozRbun3ZwPiPjdqmE5cY0+tT2gmFiNhKBFouDTmCzlblAMZPFPA2zf3IST2p1PO02sDxdd8lLioZeWIBFpzA0TIaqoRwWcS+Zcvf68BQRnSk8VhX0JsKwaBa7plHXdBwVRNxJpdE/4WBBN3CR9mzxmdCQR0qjQaSKGMNNql+g/ZqK6iZxb2nkJAqOIStrtX81jYz9Bt6mjYTW51PyAAAAAElFTkSuQmCC'; radio = 'iVBORw0KGgoAAAANSUhEUgAAAA0AAAAaCAYAAABsONZfAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAAYdEVYdFNvZnR3YXJlAHBhaW50Lm5ldCA0LjAuM4zml1AAAAI+SURBVDhPxZJNiBJhGMeHTgXdOrR0CUFdCTR1VscZW3W+Vs0P/JhZv2fVERSLukRBCEUHCRb6gKgg6tQlunrpVHSOztG9aLtsHQxcyv8+E22HcldvO/DjfWGe//M87/P8GfqO6Lp+PJ/P++m82Wg03vV6vXG/3//ZarW2isXiiP5dyGazvkwmc1LTtGPMH0GKgt92u90dEuBfOp3Oj0Kh8DKVSp2n8zRDgrPlcvkNZf1lmib2w/pPlUZUUWHocq1er08Mw8A8KpXKWJKkoSV6TZWwKCR6z6TT6S1qEYuSSCTGTDwe/04PxKKoqrrDRCKRD4qiYFFCodAnRhCEZyScRqNRzMOK83g8I0YUxUowGNwmMebhdru/yrI8YOhhZ3ief+z3+yeBQAD74fV6J9TaUxpckcnlcidoGDGWZZ9Tpm8+n29KYA8Knjqdzi/UzRMSVCmeZajXozT/UzSZVcp0dXl5+ZXD4fhst9u3bTbbR5fL9YJ2c92qYAnIdkuHaNh2s4lmrYYWYW4YMNvtgw1bL5Vgrq3hYiSKy6KIS5IIs6TBaDRmG7ak69igjQ84DnfOreIeLXOT53FFFFBb12cbNpNMwqQF3o3F8FBV/zLkWBhaEYVZho1LMprBEO7T+Yha3GOTW0FrXQMln2HYmIhqgMNtas2qYAkeyDJucT5UCzkr+H/DEpAFHgbL4kZIwJDEgxU/upk4EpTgAMPyiNCZVFQUs1lo6QwUSUI4HJ5vWEoCjqbIBbnf98MyrL60C6YGOtWmdTvcAAAAAElFTkSuQmCC'; c = ['#333', '#ddd', '#404040', '#fff', '#792c2c', '#333', '#101010', '0 0 5px #202020', '#333', '0 0 10px #000', '#ccc', '#eee', '0 0 4px #555', '#000', '#444', '0 0 5px #888', '#fff', '#792c2c', '0 0 12px #fff', '#fff', '#000', 'top,#aa4141,#5c2828', '0 0 5px #aaa;', '#555', '#000', '0 -2px 6px -3px #000', '#fff', '0 0 4px #000;', '#ccc', '#ddd', 'none', '#000', '0 0 5px 1px #222', '#444', '#fff', '#000', '#333', '0 0 8px #000', '#ccc', '#222', '#111', '#fff', '0 0 4px #111', '#333', '#ddd', '#111', '#444', '#3a3a3a', '#111', 'none', '#111', 'none', '#111', 'none', '#111', 'none', '#404040', '#60cc60', '#60cc60', '0 0 5px #00aa1a', '#d6c96a', '#d6c96a', '0 0 5px #7e7400', '#e47070', '#e47070', '0 0 5px #aa0000', '#c28ee6', '#c28ee6', '0 0 5px #9000ff', '#000', 'top,#404040,#404040', '#000', 'top,#2a2a2a,#492c2c', '#78bcfa', '0 0 4px #000', '#6dc97c', '#ec6666', '#f8b60d', '0 0 5px #000', '#ccc', '#fff', '0 0 6px #999', '#aaa', '#bbb', '#dfa160', '#ffb261', '0 0 4px #9b5812', '#000', '#404040', '0 0 6px #111', '#eee', '#000', '0 0 3px #101010', '0 0 5px #000', 'top,#303030,#444', '#1a1a1a', '#000', '0 0 8px #fff', '#ddd', '#101010', '0 0 3px #000', '0 0 5px #202020', 'top,#3a3a3a,#555', '#eee', '#000', '0 0 5px #000', '0 0 10px #111', 'top,#303030,#404040', '', '', '', 'top,#303030,#406785', '', '', '', 'top,#303030,#306638', '', '', '', 'top,#303030,#693434', '', '', '', 'top,#303030,#887E35', '#eaeaea', '0 0 5px #000', '#e0e0e0', '#101010', '0 0 5px #000', '0 0 5px #202020', 'top,#303030,#444', '', '', 'top,#2a2a2a,#222', '#eee', '#111', '0 0 5px #000', '0 0 4px #303030', 'top,#333,#555', '0 0 6px #101010', 'top,#2a2a2a,#404040', '#eee', '#1a1a1a', '0 0 5px #000', '0 0 5px #222', 'top,#333,#4a4a4a', '0 0 6px #111', '', 'top, #2a2a2a, #333', '0 0 6px #111', '', 'top,#2a2a2a,#426B44', '0 0 6px #111', '', 'top,#2a2a2a,#40668d', '0 0 6px #111', '', 'top,#2a2a2a,#612525', '#e0e0e0', '#101010', '0 0 5px #000', '0 0 8px #101010', 'top,#303030,#723434', 'top,#202020,#4d2424', '#eee', '0 0 4px #000', '#e0e0e0', '#888', 'top,#444,#555', '#eee', '#000', '0 0 5px #000', '0 0 6px #111', 'left,#303030,#303030', '', '#aaa', '#000', '0 0 5px #000', 'top,#444,#444', '#606060', '#101010', '#e5e5e5', '#f5f5f5', '0 0 6px #c0c0c0', '#eee', '#d83737', '0 0 3px #000', 'top,#404040,#556d52', 'top,#404040,#746c56', 'top,#404040,#664040', 'top,#404040,#604c70', '#00bb00', '#dbb32e', '#d13c3c', '#d16ad1', '#eee', '0 0 6px #000', '#101010', '0 0 5px #000', 'top,#2a2a2a,#3a3a3a', '#777', '#e0e0e0', '0 0 5px #000', '#f0f0f0', '0 0 8px #000', '#e0e0e0', '0 0 5px #000', '#000', '#3a3a3a', '#303030', '#000', '#202020', '', '#552727', '#686868', '#303030', '#c0c0c0', '', '#111', '#222', '#e0e0e0', '#fff', '0 0 6px #999', '#ffda8e', '#ff8080', '#ff4040', '#ccc', '#2a2a2a']; break; default: check = 'iVBORw0KGgoAAAANSUhEUgAAAA4AAAAcCAYAAABRVo5BAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAAYdEVYdFNvZnR3YXJlAHBhaW50Lm5ldCA0LjAuM4zml1AAAAC4SURBVDhPnZNRCsQgDAW9pPfxuCKICCIiyC62RPIksnEDU2zMlH7kGefc5xYzax5uas5ba19xjKEGxN67GhBba2pArLWqAbGUogbEnLMaEFNKakCMMaoBMYSgBkTvvRoQb3nEv0v64i/Wr94UiFIKToAopYDDZ0CUUkDMez4DIt/8PQkE7y2Rbz6905nfU3+JfPN3eDJoZon79hO8z++XKCVg7xEgSik4AaKUghMg3vKI83GLMcZ8AZMOnRQ6c3RxAAAAAElFTkSuQmCC'; radio = 'iVBORw0KGgoAAAANSUhEUgAAAA0AAAAaCAYAAABsONZfAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAAYdEVYdFNvZnR3YXJlAHBhaW50Lm5ldCA0LjAuM4zml1AAAAFpSURBVDhP1VJNi4IAEPV3durU1V/QJTAIT3WQopvRD4ggCTKrQ8d+gwkRlB+RKBHhW96sxUrrurdlBx7DvHnjqPOUr3E+nzGbzdDr9dBsNiWzJp9LirFYLNDpdLDdbnE6ncBgZk2e/Vz6GavVCsPhEEmSIMuyN5BnnzoZCIIA7XYbURTh8XiUgn3qqFcsy8Jms8H9fq8EddQr3W4Xh8MBt9utEtRRr2iahjAM5b2rQB31smm/3yOO40pQJ5t4h+VyicvlUgnqqJeDcqXnebK+DOxT9zo0/3+/38fxeITv+28gz/7rTs+Yz+fQdV1ewXVdcQMza/Ls59Ji8ImTyURsQ+8xsyafS97jnxh2vV5jPB5LrjQs/dVqtVCr1VCv1yWzJl9qWMdx0Gg0oKrqC6xt2y43rGmahYEnRqNRuWG5/rsh8qWGZcMwjMLAYDAQ/kfD8oN3ux2m06lk1r8y7PV6RZqmkv/SsIryAXc40Mw81bSxAAAAAElFTkSuQmCC'; c = ['#404040', '#303030', '#e0e0e0', '#000', '#f0f0f0', '#ccc', '#6a6a6a', '0 0 4px #707070', '#ddd', '0 0 5px #333', '#666', '#222', '0 0 3px #ccc', '#aaa', '#e6e6e6', '0 0 5px #888', '#000', '#f5f5f5', '0 0 5px #999', '#000', '#888', 'top,#fff,#ddd', '0 0 5px #555;', '#f6f6f6', '#888', '0 -2px 6px -4px #444', '#222', '', '#777', '#888', 'underline', '#888', '0 0 6px #999', '#fff', '#000', '#777', '#fff', '0 0 8px #999', '#4b4b4b', '#f0f0f0', '#bbb', '#333', '0 0 4px #ddd', '#fff', '#222', '#d0d0d0', '#fff', '#f7f7f7', '#8ab389', 'top,#cbe7c4,#f3faf2', '#adad68', 'top,#f7f0c8,#fcfbf8', '#b18780', 'top,#f3d7d1,#FCF7F7', '#a99abb', 'top,#ddd4e2,#f4f0f7', '#fff', '', '', '0 0 5px #aaa', '', '', '0 0 5px #aaa', '', '', '0 0 5px #aaa', '', '', '0 0 5px #aaa', '#c0c0c0', 'top,#f0f0f0,#fff', '#a1b4be', 'top,#dce8f1,#eff4f7', '#276594', 'none', '#267422', '#973131', '#085088', 'none', '#444', '#000', '0 0 6px #888', '#666', '#666', '#946a3d', '#946a3d', '0 0 4px #f5Cc68Aa', '#777', '#eee', '0 0 7px #777', '#000', '#606060', '0 0 3px #707070', '0 0 4px #ccc', 'top,#fff,#ddd', '#808080', '#707070', '0 0 4px #909090', '#111', '#707070', '0 0 5px #aaa', '0 0 5px #808080', 'top,#f5f5f5,#dadada', '#fff', '#444', '0 0 10px #eee', '0 0 7px #222', 'top,#999,#555', '#000', '0 0 10px #fff', '0 0 7px #1c3a61', 'top,#dcf0fd,#6794b2', '#000', '0 0 10px #fff', '0 0 7px #3d6425', 'top,#effde5,#618d4f', '#000', '0 0 10px #fff', '0 0 7px #412222', 'top,#ffefef,#aa5858', '#000', '0 0 10px #fff', '0 0 7px #807823', 'top,#fffbe0,#c9b41d', '#101010', '0 0 8px #fff', '#333', '#707070', '0 0 6px #999', '0 0 5px #808080', 'top,#f5f5f5,#dadada', '', '', 'top,#f5f5f5,#fff', '#222', '#999', '0 0 4px #ccc', '0 0 4px #ccc', 'top,#ccc,#eee', '0 0 4px #bbb', 'top,#ccc,#ddd', '#444', '#aaa', '', '0 0 3px #ddd', 'top, #eee, #fff', '0 0 5px #bbb', '0 0 3px #bbb', 'top,#fff,#ccc', '0 0 5px #a7ca9c', '0 0 3px #bbb', 'top, #fff, #b9daaf', '0 0 5px #a9d3ff', '0 0 3px #bbb', 'top, #fff, #a4c8ee', '0 0 5px #ffbaba', '0 0 3px #bbb', 'top,#fff,#f0a4a4', '#222', '#aaa', '', '0 0 4px -1px #aaa', 'top,#fff,#d1dfee', 'top, #dfe8f1,#fff', '#333', '', '#bbb', '#ccc', 'top,#eee,#fff', '#444', '#aaa', '1px 1px 2px #ddd', '0 0 4px #ccc', 'left,#fff,#eee', '0 0 3px #ddd', '#aaa', '#aaa', '0 0 3px #ccc', 'top,#f5f5f5,#f6f6f6', '#fff', '#e0e0e0', '#111', '#111', '0 0 8px #777', '#000', '#bd0000', '0 0 2px #ff8e8e', 'top,#d8ecd3,#f5f5f5', 'top,#faf4d2,#f5f5f5', 'top,#fae4df,#f5f5f5', 'top,#e9dcf3,#f5f5f5', '#00bb00', '#dbb32e', '#d13c3c', '#d16ad1', '#000', '0 0 6px #808080', '#808080', '0 0 5px #aaa', 'top,#d0d0d0,#f0f0f0', '#ccc', '#222', '', '', '0 0 4px #ccc', '', '', '#bbb', '#fff', '', '#bbb', '#efefef', '#fafafa', '#eff4f9', '#5f9ea0', '#eff4f9', '#606060', 'none', '#202020', '#ddd', '#e0e0e0', '#fff', '0 0 6px #999', '#b97c00', '#c82929', '#b10000', '', '']; break; } SRDotDX.c('#DotDX_themeClass').html('\ #maingame, #quicklinks li, div.game_page_wrap, div#kong_game_ui, #kong_game_ui .tabpane {background-color:' + c[0] + ' !important;}\ #kong_game_ui ul.main_tabs li.tab a, div#serverButton {color:' + c[1] + '; background-color:' + c[2] + '; border-color:' + c[95] + ';}\ #kong_game_ui ul.main_tabs li.tab a.active, div#serverButton:hover {color:' + c[3] + '; background-color:' + c[4] + '; border-color:' + c[96] + '; text-shadow:' + c[97] + ';}\ #kong_game_ui div#chat_tab_pane, div#dotdx_sidebar_container, #kong_game_ui div#lots_tab_pane, #kong_game_ui ul.main_tabs {background-color:' + c[5] + ' !important;}\ #kong_game_ui div#chat_window, #kong_game_ui div#lots_tab_pane div#dotdx_shadow_wrapper {border-color:' + c[6] + '; box-shadow:' + c[7] + ';}\ #kong_game_ui div#chat_window_header, #kong_game_ui div#lots_tab_pane div#dotdx_shadow_wrapper {background-color:' + c[8] + ';}\ #kong_game_ui div#chat_window_header {box-shadow:' + c[9] + ';}\ #kong_game_ui div#chat_window_header div.dotdx_chat_overlay {border-color:' + c[175] + ';}\ #kong_game_ui div#chat_window_header div.room_name_container, #kong_game_ui div#dotdx_status_div, #kong_game_ui .panel_handle a, #kong_game_ui #accomplishments_pane_title {color:' + c[10] + ';}\ #kong_game_ui div#chat_window_header div.room_name_container .room_name, #kong_game_ui div#chat_window_header div.dotdx_chat_overlay > span, #kong_game_ui div#dotdx_status_div span, #kong_game_ui div#chat_room_tabs div a, #kong_game_ui div#lots_tab_pane ul li.tab div.tab_head {color:' + c[11] + '; text-shadow:' + c[12] + ';}\ #kong_game_ui div#chat_window_header div.room_name_container, #kong_game_ui div#chat_room_tabs div a, #kong_game_ui div#dotdx_status_div, #kong_game_ui div#lots_tab_pane ul li.tab div.tab_head {border-color:' + c[13] + '; background-color:' + c[14] + ';}\ #kong_game_ui div#chat_room_tabs div a:hover, #kong_game_ui div#lots_tab_pane ul li.tab div.tab_head:hover {text-shadow:' + c[15] + '}\ #kong_game_ui div#chat_room_tabs div.active a, #kong_game_ui div#lots_tab_pane ul li.tab.active div.tab_head {color:' + c[16] + '; background-color:' + c[17] + '; text-shadow:' + c[18] + ';}\ #kong_game_ui div.chat_actions_container span.btn {color:' + c[19] + ' !important; border-color:' + c[20] + '; background:-webkit-linear-gradient(' + c[21] + '); background:-moz-linear-gradient(' + c[21] + ');}\ #kong_game_ui div.chat_actions_container span.kong_ico.btn_target:active {text-shadow:' + c[22] + ';}\ #kong_game_ui div#chat_rooms_container div.chat_tabpane.users_in_room, #kong_game_ui div#lots_tab_pane ul li.tab div.tab_pane { background-color:' + c[23] + '; border-color:' + c[24] + ';}\ #kong_game_ui div#chat_rooms_container div.chat_tabpane.users_in_room { box-shadow: inset ' + c[25] + ';}\ #kong_game_ui .user_row .username, #kong_game_ui div#lots_tab_pane ul { color:' + c[26] + '; text-shadow:' + c[27] + ';}\ #kong_game_ui .user_row.away .username {color:' + c[28] + ';}\ #kong_game_ui .user_row .guild-name {color:' + c[29] + ';}\ #kong_game_ui .user_row .username {text-decoration:' + c[30] + ';}\ #kong_game_ui div.chat_controls {border-color:' + c[31] + '; box-shadow:' + c[32] + ';}\ #kong_game_ui div.chat_controls, #kong_game_ui textarea.chat_input {background-color:' + c[33] + ';}\ #kong_game_ui textarea.chat_input {color:' + c[34] + ';}\ #kong_game_ui div.chat_actions_container ul.chat_actions_list {border-color:' + c[35] + '; background-color:' + c[36] + '; box-shadow:' + c[37] + ';}\ #kong_game_ui div.chat_actions_container ul.chat_actions_list li {border-color:' + c[36] + '; color:' + c[38] + ';}\ #kong_game_ui div.chat_actions_container ul.chat_actions_list li:hover {background-color:' + c[39] + '; border-color:' + c[40] + '; color:' + c[41] + '; box-shadow:' + c[42] + ';}\ #kong_game_ui div.chat_message_window {background-color:' + c[43] + '; color:' + c[44] + ';}\ #kong_game_ui div.chat_message_window p {border-bottom-color:' + c[45] + '; border-top-color:' + c[46] + ';}\ #kong_game_ui div.chat_message_window p.even {background-color:' + c[47] + ';}\ #kong_game_ui div.chat_message_window p.DotDX_raid, #kong_game_ui div.chat_message_window p.whisper, #kong_game_ui div.chat_message_window p.script {border-top-color:' + c[56] + ';}\ #kong_game_ui div.chat_message_window p.DotDX_diff_1 {border-bottom-color:' + c[48] + '; background: -webkit-linear-gradient(' + c[49] + '); background: -moz-linear-gradient(' + c[49] + ');} \ #kong_game_ui div.chat_message_window p.DotDX_diff_2 {border-bottom-color:' + c[50] + '; background: -webkit-linear-gradient(' + c[51] + '); background: -moz-linear-gradient(' + c[51] + ');} \ #kong_game_ui div.chat_message_window p.DotDX_diff_3 {border-bottom-color:' + c[52] + '; background: -webkit-linear-gradient(' + c[53] + '); background: -moz-linear-gradient(' + c[53] + ');} \ #kong_game_ui div.chat_message_window p.DotDX_diff_4 {border-bottom-color:' + c[54] + '; background: -webkit-linear-gradient(' + c[55] + '); background: -moz-linear-gradient(' + c[55] + ');} \ #kong_game_ui div.chat_message_window p span.message a {color:' + c[79] + '}\ #kong_game_ui div.chat_message_window p span.message a:hover {color:' + c[80] + '; text-shadow:' + c[81] + ';}\ #kong_game_ui div.chat_message_window p.DotDX_diff_1 span.message a {color:' + c[57] + '; text-shadow:' + c[74] + ';}\ #kong_game_ui div.chat_message_window p.DotDX_diff_1 span.message a:hover {color:' + c[58] + '; text-shadow:' + c[59] + ';}\ #kong_game_ui div.chat_message_window p.DotDX_diff_2 span.message a {color:' + c[60] + '; text-shadow:' + c[74] + ';}\ #kong_game_ui div.chat_message_window p.DotDX_diff_2 span.message a:hover {color:' + c[61] + '; text-shadow:' + c[62] + ';}\ #kong_game_ui div.chat_message_window p.DotDX_diff_3 span.message a {color:' + c[63] + '; text-shadow:' + c[74] + ';}\ #kong_game_ui div.chat_message_window p.DotDX_diff_3 span.message a:hover {color:' + c[64] + '; text-shadow:' + c[65] + ';}\ #kong_game_ui div.chat_message_window p.DotDX_diff_4 span.message a {color:' + c[66] + '; text-shadow:' + c[74] + ';}\ #kong_game_ui div.chat_message_window p.DotDX_diff_4 span.message a:hover {color:' + c[67] + '; text-shadow:' + c[68] + ';}\ #kong_game_ui div.chat_message_window p.script {border-bottom-color:' + c[69] + '; background: -webkit-linear-gradient(' + c[70] + '); background: -moz-linear-gradient(' + c[70] + ');}\ #kong_game_ui div.chat_message_window p.whisper {border-bottom-color:' + c[71] + '; background: -webkit-linear-gradient(' + c[72] + '); background: -moz-linear-gradient(' + c[72] + '); }\ #kong_game_ui div.chat_message_window p span.username, #kong_game_ui div.chat_message_window p.script span.emph {color:' + c[73] + '; text-shadow:' + c[74] + ';}\ #kong_game_ui div.chat_message_window p span.username.ign {color:' + c[75] + ';}\ #kong_game_ui div.chat_message_window p.sent_whisper span.username, #kong_game_ui div.chat_message_window p span.username.is_self, #kong_game_ui div.chat_message_window p.script span.emph {color:' + c[76] + ';}\ #kong_game_ui div.chat_message_window p.emote {color:' + c[77] + '; text-shadow:' + c[78] + ';}\ #kong_game_ui div.chat_message_window p span.room {color:' + c[82] + ';}\ #kong_game_ui div.chat_message_window p span.timestamp, #kong_game_ui div.chat_message_window p span.ingamename {color:' + c[83] + ';}\ #kong_game_ui div.chat_message_window p span.message a.reply_link {color:' + c[79] + '}\ #kong_game_ui div.chat_message_window p span.message a.reply_link:hover {color:' + c[80] + '; text-shadow:' + c[81] + ';}\ #kong_game_ui div.chat_message_window p span.message a.chat_link {color:' + c[84] + ';}\ #kong_game_ui div.chat_message_window p span.message a.chat_link:hover {color:' + c[85] + '; text-shadow:' + c[86] + ';}\ #kong_game_ui div.chat_message_window p > span.slider {border-color:' + c[87] + '; background:' + c[88] + '; box-shadow:' + c[89] + ';}\ #kong_game_ui div#chat_raids_overlay {color:' + c[90] + '; border-color:' + c[91] + '; box-shadow:' + c[92] + '; text-shadow:' + c[93] + '; background: -webkit-linear-gradient(' + c[94] + '); background: -moz-linear-gradient(' + c[94] + ');}\ div#dotdx_sidebar_container > button {color:' + c[98] + '; border-color:' + c[99] + '; text-shadow:' + c[100] + '; box-shadow:' + c[101] + '; background: -webkit-linear-gradient(' + c[102] + '); background: -moz-linear-gradient(' + c[102] + ');}\ div#dotdx_sidebar_container > button:hover {color:' + c[103] + '; border-color:' + c[104] + '; text-shadow:' + c[105] + '; box-shadow:' + c[106] + '; background: -webkit-linear-gradient(' + c[107] + '); background: -moz-linear-gradient(' + c[107] + ');}\ div#dotdx_sidebar_container > button.b:hover {color:' + c[108] + '; text-shadow:' + c[109] + '; box-shadow:' + c[110] + '; background: -webkit-linear-gradient(' + c[111] + '); background: -moz-linear-gradient(' + c[111] + ');}\ div#dotdx_sidebar_container > button.g:hover {color:' + c[112] + '; text-shadow:' + c[113] + '; box-shadow:' + c[114] + '; background: -webkit-linear-gradient(' + c[115] + '); background: -moz-linear-gradient(' + c[115] + ');}\ div#dotdx_sidebar_container > button.r:hover {color:' + c[116] + '; text-shadow:' + c[117] + '; box-shadow:' + c[118] + '; background: -webkit-linear-gradient(' + c[119] + '); background: -moz-linear-gradient(' + c[119] + ');}\ div#dotdx_sidebar_container > button.y:hover {color:' + c[120] + '; text-shadow:' + c[121] + '; box-shadow:' + c[122] + '; background: -webkit-linear-gradient(' + c[123] + '); background: -moz-linear-gradient(' + c[123] + ');}\ div#dotdx_sidebar_container > div.label {color:' + c[124] + '; text-shadow:' + c[125] + ';}\ div#dotdx_sidebar_container > input[type=\"text\"] {color:' + c[126] + '; border-color:' + c[127] + '; text-shadow:' + c[128] + '; box-shadow:' + c[129] + '; background: -webkit-linear-gradient(' + c[130] + '); background: -moz-linear-gradient(' + c[130] + ');}\ div#dotdx_sidebar_container > input[type=\"text\"]:hover, div#dotdx_sidebar_container > input[type=\"text\"]:focus {color:' + c[131] + '; border-color:' + c[132] + '; background: -webkit-linear-gradient(' + c[133] + '); background: -moz-linear-gradient(' + c[133] + ');}\ #kong_game_ui div.tab_pane p.collapsingCategory {color:' + c[134] + '; border-color:' + c[135] + '; text-shadow:' + c[136] + '; box-shadow:' + c[137] + '; background: -webkit-linear-gradient(' + c[138] + '); background: -moz-linear-gradient(' + c[138] + ');}\ #kong_game_ui div.tab_pane p.collapsingCategory:hover {box-shadow:' + c[139] + '; background: -webkit-linear-gradient(' + c[140] + '); background: -moz-linear-gradient(' + c[140] + ');}\ #kong_game_ui div.tab_pane input[type=\"button\"] {color:' + c[141] + '; border-color:' + c[142] + '; text-shadow:' + c[143] + '; box-shadow:' + c[144] + '; background: -webkit-linear-gradient(' + c[145] + '); background: -moz-linear-gradient(' + c[145] + ');} \ #kong_game_ui div.tab_pane input[type=\"button\"].generic:hover {box-shadow:' + c[146] + '; text-shadow:' + c[147] + '; background: -webkit-linear-gradient(' + c[148] + '); background: -moz-linear-gradient(' + c[148] + ');}\ #kong_game_ui div.tab_pane input[type=\"button\"].green:hover, #kong_game_ui div.tab_pane input.landpmbuttonhigh {box-shadow:' + c[149] + '; text-shadow:' + c[150] + '; background: -webkit-linear-gradient(' + c[151] + '); background: -moz-linear-gradient(' + c[151] + ');}\ #kong_game_ui div.tab_pane input[type=\"button\"].blue:hover {box-shadow:' + c[152] + '; text-shadow:' + c[153] + '; background: -webkit-linear-gradient(' + c[154] + '); background: -moz-linear-gradient(' + c[154] + ');}\ #kong_game_ui div.tab_pane input[type=\"button\"].red:hover, #kong_game_ui div.tab_pane input[type=\"button\"][value=\"Cancel\"]:hover {box-shadow:' + c[155] + '; text-shadow:' + c[156] + '; background: -webkit-linear-gradient(' + c[157] + '); background: -moz-linear-gradient(' + c[157] + ');}\ #kong_game_ui input#raidsBossFilter {color:' + c[158] + '; border-color:' + c[159] + '; text-shadow:' + c[160] + '; box-shadow:' + c[161] + '; background: -webkit-linear-gradient(' + c[162] + '); background: -moz-linear-gradient(' + c[162] + ');}\ #kong_game_ui input#raidsBossFilter:hover, input#raidsBossFilter:focus {background: -webkit-linear-gradient(' + c[163] + '); background: -moz-linear-gradient(' + c[163] + ');}\ ul#SRDotDX_tabpane_tabs input[type="text"].generic {color:' + c[164] + '; text-shadow:' + c[165] + '; border-bottom-color:' + c[166] + ';}\ ul#SRDotDX_tabpane_tabs input[type="text"].generic:focus {border-color:' + c[167] + '; background: -webkit-linear-gradient(' + c[168] + '); background: -moz-linear-gradient(' + c[168] + ');}\ textarea#DotDX_raidsToSpam, textarea#options_sbConfig {color:' + c[169] + '; border-color:' + c[170] + '; text-shadow:' + c[171] + '; box-shadow:' + c[172] + '; background: -webkit-linear-gradient(' + c[173] + '); background: -moz-linear-gradient(' + c[173] + ');}\ #kong_game_ui span.notice {text-shadow:' + c[174] + ';}\ #kong_game_ui ul#SRDotDX_tabpane_tabs input[type="checkbox"] + label:before {background: url(data:image/png;base64,' + check + ') 0 0 no-repeat}\ #kong_game_ui ul#SRDotDX_tabpane_tabs input[type="checkbox"]:checked + label:before {background: url(data:image/png;base64,' + check + ') 0 -14px no-repeat}\ #kong_game_ui ul#SRDotDX_tabpane_tabs input[type="radio"] + label:before {background: url(data:image/png;base64,' + radio + ') 0 0 no-repeat}\ #kong_game_ui ul#SRDotDX_tabpane_tabs input[type="radio"]:checked + label:before {background: url(data:image/png;base64,' + radio + ') 0 -13px no-repeat}\ #kong_game_ui div#lots_tab_pane ul li.tab.active div.tab_pane #raid_list {border-top-color:' + c[176] + '; box-shadow:' + c[177] + '; background: -webkit-linear-gradient(' + c[178] + '); background: -moz-linear-gradient(' + c[178] + ');}\ #kong_game_ui div#lots_tab_pane ul li.tab.active div.tab_pane #raid_list .raid_list_item {border-top-color:' + c[179] + '; border-bottom-color:' + c[180] + ';}\ a.DotDX_RaidLink {color:' + c[181] + ';}\ a.DotDX_RaidLink:hover {color:' + c[182] + '; text-shadow:' + c[183] + ';}\ a.dotdxRaidListDelete {color:' + c[184] + ';}\ a.dotdxRaidListDelete:hover {color:' + c[185] + '; text-shadow:' + c[186] + ';}\ #raid_list .raid_list_item.DotDX_N:hover {background: -webkit-linear-gradient(' + c[187] + '); background: -moz-linear-gradient(' + c[187] + ');}\ #raid_list .raid_list_item.DotDX_H:hover {background: -webkit-linear-gradient(' + c[188] + '); background: -moz-linear-gradient(' + c[188] + ');}\ #raid_list .raid_list_item.DotDX_L:hover {background: -webkit-linear-gradient(' + c[189] + '); background: -moz-linear-gradient(' + c[189] + ');}\ #raid_list .raid_list_item.DotDX_NM:hover {background: -webkit-linear-gradient(' + c[190] + '); background: -moz-linear-gradient(' + c[190] + ');}\ span.DotDX_List_diff.DotDX_N {color:' + c[191] + ';}\ span.DotDX_List_diff.DotDX_H {color:' + c[192] + ';}\ span.DotDX_List_diff.DotDX_L {color:' + c[193] + ';}\ span.DotDX_List_diff.DotDX_NM {color:' + c[194] + ';}\ #kong_game_ui div#helpBox { color:' + c[195] + '; box-shadow:' + c[196] + '; border-top-color:' + c[197] + '; text-shadow:' + c[198] + '; background: -webkit-linear-gradient(' + c[199] + '); background: -moz-linear-gradient(' + c[199] + ');}\ #kong_game_ui div.chat_message_window p.script hr {background:' + c[200] + ';}\ #kong_game_ui div.chat_message_window p.script span .title {color:' + c[201] + '; text-shadow:' + c[202] + ';}\ #kong_game_ui div.chat_message_window p.script span .title:hover {color:' + c[203] + '; text-shadow:' + c[204] + ';}\ table.raids, table.camps {color:' + c[205] + '; text-shadow:' + c[206] + ';} \ table.raids td, table.camps td {border-color:' + c[207] + '; background:' + c[208] + ';}\ table.raids td.ep, table.camps td.ep {background:' + c[209] + ';} \ table.raids th, table.camps th {border-color:' + c[210] + '; background-color:' + c[211] + ';} \ table.raids tr.head, table.camps tr.head {background:' + c[212] + ';} \ table.raids tr.best td {background:' + c[213] + ';} \ table.raids colgroup col.selected {border-color:' + c[214] + ';}\ table.camps td.mark {background:' + c[215] + ';} \ div.raid_list_item > span.DotDX_extInfo {color:' + c[216] + '; text-shadow:' + c[217] + ';}\ #maingame, div.game_page_wrap {border-color:' + c[218] + ';}\ body {background-color:' + c[219] + ' !important}\ #quicklinks li a, #quicklinks li.rate {color:' + c[220] + '}\ #quicklinks li a:hover {color:' + c[221] + '; text-shadow:' + c[222] + ';}\ div.raid_list_item > span.DotDX_extInfo.failings {color:' + c[223] + ';}\ div.raid_list_item > span.DotDX_extInfo.failingm {color:' + c[224] + ';}\ div.raid_list_item > span.DotDX_extInfo.failingh {color:' + c[225] + ';}\ div.cntrNotify {color:' + c[226] + '; background-color:' + c[227] + '; border-bottom-color:' + c[45] + ';}\ ', true); }, createFilterTab: function () { var sm = SRDotDX.config.serverMode - 1; var rdObj = Object.keys(SRDotDX.raids); var i, il, raid, parentTableId = '', parentTable = '', cb; var sectionID = ['Guild','Special','Small','Medium','Large','Epic','Colossal','Gigantic']; for(i = 0; i < 8; ++i) document.getElementById('FPXRaidFilterWhat' + sectionID[i]).innerHTML = ''; for(i = 0, il = rdObj.length; i < il; ++i) { raid = SRDotDX.raids[rdObj[i]]; parentTableId = 'FPX_options_cbs_' + raid.id; parentTable = SRDotDX.c('tr').set({id: parentTableId}).html(' \
' + raid.name + '
\ \ \ \ \ \ \
\

Medium Raids+

\ \ \ \ \ \ \
\
\

Large Raids+

\ \ \ \ \ \ \
\
\

Epic Raids+

\ \ \ \ \ \ \
\
\

Colossal Raids+

\ \ \ \ \ \ \
\
\

Gigantic Raids+

\ \ \ \ \ \ \
\
\

Guild Raids+

\ \ \ \ \ \ \
\
\

World Raids+

\ \ \ \ \ \ \
\ \ \ \ \
  • \
    Util
    \
    \
    \

    Land Calculator+

    \
    \
    \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \
    Cornfield Stable
    BarnStore
    PubInn
    SentryFort
    Castle
    \
    \
    \
    \
    \

    Who posted my raid?+

    \
    \ Raid link or id: \ \
    \ Raid:
    \ Time:
    \ Poster:
    \
    \
    \
    \
  • \ \ \
    Help message
    \ \ ', false).attach('to', 'kong_game_ui').ele(); SRDotDX.c('style').set({type: "text/css", id: 'DotDX_colors'}).text(' \ .DotDX_filter_dummy_0 {display: none !important} \ ').attach('to', document.head); //pane.style.height = document.getElementById('chat_tab_pane').style.height; var e = pane.getElementsByClassName('tab_head'); for(var i = 0, il = e.length; i < il; ++i) { e[i].addEventListener('click', function () { if (!/\bactive\b/i.test(this.className)) { var e = document.getElementById("lots_tab_pane").getElementsByTagName("li"); for(var i = 0, il = e.length; i < il; ++i) if(e[i].getAttribute("class").indexOf("active") > -1) e[i].className = e[i].className.replace(/ active$/g, ""); this.parentNode.className += ' active'; } }); } holodeck._tabs.addTab(link); SRDotDX.gui.applyTabs(); //Set up custom chat size SRDotDX.gui.hideWC(true); //Chat raids overlay div SRDotDX.c('div').set({id: 'chat_raids_overlay'}).html('', true).attach("to", 'chat_tab_pane'); //Sidebar elements generator if (SRDotDX.config.sbEnable) SRDotDX.gui.applySidebarUI(1); //spam tab var FPXimpSpam = SRDotDX.c('#DotDX_raidsToSpam'); var FPXSpamText = 'Paste raid links here to share or import\n\nLinks must be comma (,) separated.'; FPXimpSpam.ele().value = FPXSpamText; FPXimpSpam.on('blur', function(){if(this.value === '') this.value = FPXSpamText}); FPXimpSpam.on('focus', function(){if(this.value === FPXSpamText) this.value = ''}); //chat global listener var chat_window = document.getElementById('chat_rooms_container'); chat_window.addEventListener('click', SRDotDX.gui.chatWindowMouseDown, true); chat_window.addEventListener('contextmenu', SRDotDX.gui.chatWindowContextMenu, false); //land tab els = document.FPXLandForm; for(i = 0; i < 9; ++i) els.elements['tf_' + (i + 1)].value = SRDotDX.config.FPXLandOwnedCount[i]; SRDotDX.gui.FPXLandUpdater(); //raid tab var raids_tab = document.getElementById('raids_tab'); raids_tab.addEventListener('click', function () { SRDotDX.gui.refreshRaidList(); }, false); var raidBossFilter = SRDotDX.c('#raidsBossFilter'); raidBossFilter.ele().value = SRDotDX.config.lastFilter[SRDotDX.config.serverMode - 1]; raidBossFilter.on("keyup", function () { SRDotDX.gui.updateFilterTxt(this.value, true); }); var filterIncVis = SRDotDX.c('#dotdx_flt_vis'); filterIncVis.ele().checked = SRDotDX.config.fltIncVis; filterIncVis.on('click', function () { SRDotDX.config.fltIncVis = this.checked; if(!document.getElementById('dotdx_flt_all').checked) SRDotDX.gui.selectRaidsToJoin('checkbox'); }); var filterExclFull = SRDotDX.c('#dotdx_flt_full'); filterExclFull.ele().checked = SRDotDX.config.fltExclFull; filterExclFull.on('click', function () { SRDotDX.config.fltExclFull = this.checked; if(!document.getElementById('dotdx_flt_all').checked) SRDotDX.gui.selectRaidsToJoin('checkbox'); }); var filterShowAll = SRDotDX.c('#dotdx_flt_all'); filterShowAll.ele().checked = SRDotDX.config.fltShowAll; filterShowAll.on('click', function () { SRDotDX.config.fltShowAll = this.checked; SRDotDX.gui.selectRaidsToJoin('checkbox') }); //raidlist global click listener var raid_list = document.getElementById('raid_list'); raid_list.addEventListener('click', function (e) { e.preventDefault(); e.stopPropagation(); return false }, false); raid_list.addEventListener('mousedown', function (e) { SRDotDX.gui.FPXraidListMouseDown(e) }, false); //options tab var optsImportFiltered = SRDotDX.c('#SRDotDX_options_importFiltered'); optsImportFiltered.ele().checked = SRDotDX.config.importFiltered; optsImportFiltered.on('click', function () { SRDotDX.config.importFiltered = this.checked; SRDotDX.config.save(false) }); var optsShowFs = SRDotDX.c('#SRDotDX_options_showFS'); optsShowFs.ele().checked = SRDotDX.config.linkShowFs; optsShowFs.on('click', function () { SRDotDX.config.linkShowFs = this.checked; SRDotDX.config.save(false) }); var optsShowAp = SRDotDX.c('#SRDotDX_options_showAP'); optsShowAp.ele().checked = SRDotDX.config.linkShowAp; optsShowAp.on('click', function () { SRDotDX.config.linkShowAp = this.checked; SRDotDX.config.save(false) }); var optsHideARaids = SRDotDX.c('#SRDotDX_options_hideRaidLinks'); var optsHideBRaids = SRDotDX.c('#SRDotDX_options_hideBotLinks'); var optsHideVRaids = SRDotDX.c('#SRDotDX_options_hideVisitedRaids'); var optsConfirmDeletes = SRDotDX.c('#SRDotDX_options_confirmWhenDeleting'); var optsMarkImportedVisited = SRDotDX.c('#SRDotDX_options_markImportedRaidsVisited'); var optsWhisperTo = SRDotDX.c('#SRDotDX_options_whisperTo'); var optsMarkMyRaidsVisited = SRDotDX.c('#SRDotDX_options_markMyRaidsVisited'); var optsFormatLinkOutput = SRDotDX.c('#SRDotDX_options_formatLinkOutput'); var optsChatSizeNormal = SRDotDX.c('#SRDotDX_options_chatSizeNormal'); optsChatSizeNormal.on('click', function(){SRDotDX.gui.chatResize(300)}); var optsChatSizePlus25 = SRDotDX.c('#SRDotDX_options_chatSizePlus25'); optsChatSizePlus25.on('click', function(){SRDotDX.gui.chatResize(375)}); var optsChatSizePlus50 = SRDotDX.c('#SRDotDX_options_chatSizePlus50'); optsChatSizePlus50.on('click', function(){SRDotDX.gui.chatResize(450)}); switch (SRDotDX.config.chatSize) { case 300: optsChatSizeNormal.ele().checked = true; break; case 375: optsChatSizePlus25.ele().checked = true; break; case 450: optsChatSizePlus50.ele().checked = true; break; default: optsChatSizeNormal.ele().checked = true; break; } var optsChatFontNormal = SRDotDX.c('#SRDotDX_options_fontSizeNormal'); optsChatFontNormal.on('click', function () { SRDotDX.gui.applyFontSize(0) }); var optsChatFontSmaller = SRDotDX.c('#SRDotDX_options_fontSizeSmaller'); optsChatFontSmaller.on('click', function () { SRDotDX.gui.applyFontSize(2) }); var optsChatFontBigger = SRDotDX.c('#SRDotDX_options_chatSizeBigger'); optsChatFontBigger.on('click', function () { SRDotDX.gui.applyFontSize(1) }); switch (SRDotDX.config.fontNum) { case 2: optsChatFontSmaller.ele().checked = true; break; case 1: optsChatFontBigger.ele().checked = true; break; default: optsChatFontNormal.ele().checked = true; break; } var optsChatHideScrollbar = SRDotDX.c('#SRDotDX_options_hideScrollbar'); optsChatHideScrollbar.ele().checked = SRDotDX.config.hideScrollBar; optsChatHideScrollbar.on('click', function () { SRDotDX.config.hideScrollBar = this.checked; SRDotDX.config.save(false); SRDotDX.gui.chatResize(); }); var optsHideKongForum = SRDotDX.c('#options_hideKongForum'); optsHideKongForum.ele().checked = SRDotDX.config.hideKongForum; optsHideKongForum.on('click', function () { SRDotDX.config.hideKongForum = this.checked; SRDotDX.c('#DotDX_forum').html('div.game_page_wrap {padding-top: 16px; margin-top: 14px !important; background: #333 !important; display: ' + (SRDotDX.config.hideKongForum ? 'none' : 'block') + '}', true) }); var optsHideGameDetails = SRDotDX.c('#options_hideGameDetails'); optsHideGameDetails.ele().checked = SRDotDX.config.hideGameDetails; optsHideGameDetails.on('click', function () { SRDotDX.config.hideGameDetails = this.checked; SRDotDX.c('#DotDX_details').html('div.game_details_outer {margin-top: 14px !important; width: 900px !important; border: solid 20px #333 !important; display: ' + (SRDotDX.config.hideGameDetails ? 'none' : 'block') + '}', true) }); var optsHideGameTitle = SRDotDX.c('#options_hideGameTitle'); optsHideGameTitle.ele().checked = SRDotDX.config.hideGameTitle; optsHideGameTitle.on('click', function () { SRDotDX.config.hideGameTitle = this.checked }); var optsTrueMsgCount = SRDotDX.c('#options_trueMsgCount'); optsTrueMsgCount.ele().checked = SRDotDX.config.kongMsg; optsTrueMsgCount.on('click', function () { SRDotDX.config.kongMsg = this.checked }); if (SRDotDX.config.kongMsg) SRDotDX.gui.setMessagesCount(); var optsHideGameTab = SRDotDX.c('#options_hideGameTab'); optsHideGameTab.ele().checked = SRDotDX.config.hideGameTab; optsHideGameTab.on('click', function () { SRDotDX.config.hideGameTab = this.checked; SRDotDX.gui.applyTabs() }); var optsHideAccTab = SRDotDX.c('#options_hideAccTab'); optsHideAccTab.ele().checked = SRDotDX.config.hideAccTab; optsHideAccTab.on('click', function () { SRDotDX.config.hideAccTab = this.checked; SRDotDX.gui.applyTabs() }); var optsDotdxTabName = SRDotDX.c('#options_dotdxTabName'); optsDotdxTabName.ele().value = SRDotDX.config.dotdxTabName; optsDotdxTabName.on('keyup', function () { SRDotDX.config.dotdxTabName = this.value; SRDotDX.gui.applyTabs() }); var optsFormatChatLinks = SRDotDX.c('#options_formatChatLinks'); optsFormatChatLinks.ele().checked = SRDotDX.config.formatLinks; optsFormatChatLinks.on('click', function (){SRDotDX.config.formatLinks = this.checked;}); var optsClearRMB = SRDotDX.c('#options_clearRMB'); optsClearRMB.ele().checked = SRDotDX.config.clearRMB; optsClearRMB.on('click', function (){SRDotDX.config.clearRMB = this.checked;}); var optsChatIgnHide = SRDotDX.c('#SRDotDX_options_ignHide'); optsChatIgnHide.on('click', function(){SRDotDX.config.ignMode = 0}); var optsChatIgnReplace = SRDotDX.c('#SRDotDX_options_ignReplace'); optsChatIgnReplace.on('click', function(){SRDotDX.config.ignMode = 1}); var optsChatIgnAttach = SRDotDX.c('#SRDotDX_options_ignAttach'); optsChatIgnAttach.on('click', function(){SRDotDX.config.ignMode = 2}); switch(SRDotDX.config.ignMode) { case 0: optsChatIgnHide.ele().checked = true; break; case 1: optsChatIgnReplace.ele().checked = true; break; case 2: optsChatIgnAttach.ele().checked = true; break; } var optsChatThemeLightGrey = SRDotDX.c('#theme_lightGrey'); optsChatThemeLightGrey.on('click', function(){SRDotDX.gui.applyTheme(0)}); var optsChatThemeCrimsonBlack = SRDotDX.c('#theme_crimsonBlack'); optsChatThemeCrimsonBlack.on('click', function(){SRDotDX.gui.applyTheme(1)}); switch(SRDotDX.config.themeNum) { case 1: optsChatThemeCrimsonBlack.ele().checked = true; break; case 0: optsChatThemeLightGrey.ele().checked = true; break; } var optsWcLeft = SRDotDX.c('#options_wcLeft'); optsWcLeft.ele().checked = SRDotDX.config.leftWChat; optsWcLeft.on('click', function(){ SRDotDX.config.leftWChat = this.checked; SRDotDX.config.extSave(); }); var optsWcRemove = SRDotDX.c('#options_wcRemove'); optsWcRemove.ele().checked = SRDotDX.config.removeWChat; optsWcRemove.on('click', function(){SRDotDX.gui.removeWC(this.checked)}); //Opts -> Sidebar Options var optsSbEnable = SRDotDX.c('#options_sbEnable'); optsSbEnable.ele().checked = SRDotDX.config.sbEnable; optsSbEnable.on('click', function () { SRDotDX.config.sbEnable = this.checked; SRDotDX.gui.applySidebarUI(this.checked ? 1 : -1); SRDotDX.config.save(false) }); var optsSbRightSide = SRDotDX.c('#options_sbRightSide'); optsSbRightSide.ele().checked = SRDotDX.config.sbRightSide; optsSbRightSide.on('click', function () { SRDotDX.config.sbRightSide = this.checked; SRDotDX.gui.applySidebarUI(2); SRDotDX.config.save(false) }); //var optsCbDisable = SRDotDX.c('#options_cbDisable'); //optsCbDisable.ele().checked = SRDotDX.config.cbDisable; //optsCbDisable.on('click', function(){ SRDotDX.config.cbDisable = this.checked; SRDotDX.config.save(false) }); var optsSlimSB = SRDotDX.c('#options_sbSlim'); optsSlimSB.ele().checked = SRDotDX.config.sbSlim; optsSlimSB.on('click', function () { SRDotDX.config.sbSlim = this.checked; SRDotDX.config.save(false); SRDotDX.gui.toggleSlimSB(); }); optsMarkMyRaidsVisited.ele().checked = SRDotDX.config.markMyRaidsVisted; optsFormatLinkOutput.ele().checked = SRDotDX.config.formatLinkOutput; optsMarkImportedVisited.ele().checked = SRDotDX.config.markImportedVisited; optsWhisperTo.ele().value = SRDotDX.config.whisperTo; optsConfirmDeletes.ele().checked = SRDotDX.config.confirmDeletes; SRDotDX.c('#SRDotDX_colors_background').ele().value = SRDotDX.config.bckColor; optsHideVRaids.ele().checked = SRDotDX.config.hideVisitedRaids; optsHideBRaids.ele().checked = SRDotDX.config.hideBotLinks; if (SRDotDX.config.hideRaidLinks) { optsHideARaids.ele().checked = true; optsHideVRaids.ele().disabled = true; optsHideBRaids.ele().disabled = true; } optsConfirmDeletes.on('click', function(){SRDotDX.config.confirmDeletes = this.checked}); optsMarkImportedVisited.on("click", function(){SRDotDX.config.markImportedVisited = this.checked;}); optsWhisperTo.on("change", function () { console.log("[SRDotDX] Whisper person changed to " + this.value); SRDotDX.config.whisperTo = this.value; }); SRDotDX.c('#SRDotDX_colors_background').on("change", function(){SRDotDX.config.bckColor = this.value;}); optsFormatLinkOutput.on("click", function(){SRDotDX.config.formatLinkOutput = this.checked;}); optsMarkMyRaidsVisited.on("click", function(){SRDotDX.config.markMyRaidsVisted = this.checked;}); optsHideARaids.on("click", function(){ document.getElementById('SRDotDX_options_hideVisitedRaids').disabled = this.checked; document.getElementById('SRDotDX_options_hideSeenRaids').disabled = this.checked; SRDotDX.config.hideRaidLinks = this.checked; SRDotDX.c('#SRDotDX_raidClass').html('.DotDX_raid {display: ' + (this.checked ? 'none !important' : 'block') + '}', true); }, true); optsHideBRaids.on("click", function(){SRDotDX.gui.switchBot()}, true); optsHideVRaids.on("click", function(){ SRDotDX.config.hideVisitedRaids = this.checked; SRDotDX.c('#SRDotDX_visitedRaidClass').html('.SRDotDX_visitedRaid {display: ' + (this.checked ? 'none !important' : 'block') + '}', true); }, true); //CHAT TAB CLICK SCROLL (id=chat_tab, class=chat_message_window) document.getElementById('chat_tab').addEventListener("click", function() { document.getElementById('lots_tab_pane').style.display = 'none'; setTimeout(function(){ var el = document.getElementsByClassName('chat_message_window')[SRDotDX.util.getChatNumber()]; console.log("[DotDX] Scrolling chat window " + el.scrollTop + " : " + el.scrollHeight); el.scrollTop = el.scrollHeight; SRDotDX.gui.selectRaidsToJoin(); }, 50); }, true); //RAIDS TAB CLICK EVENT LISTENER document.getElementById('lots_tab').addEventListener("click", function() { setTimeout(SRDotDX.gui.selectRaidsToJoin, 50) }, true); //FriendShare SRDotDX.gui.refreshFriends(); // Filtering tab SRDotDX.gui.createFilterTab(); var filterChatCb = SRDotDX.c('#SRDotDX_options_perRaidFilterLinks'); filterChatCb.on("click", function () { SRDotDX.config.filterChatLinks = this.checked; SRDotDX.gui.toggleFiltering(); }, true).ele().checked = SRDotDX.config.filterChatLinks; var filterListCb = SRDotDX.c('#SRDotDX_options_perRaidFilterRaidList'); filterListCb.on("click", function () { SRDotDX.config.filterRaidList = this.checked; SRDotDX.gui.toggleFiltering(); }, true).ele().checked = SRDotDX.config.filterRaidList; SRDotDX.c('li').set({class: 'rate'}).html('Reload Game', false).attach('after', 'quicklinks_favorite_block'); if(!SRDotDX.config.removeWChat) SRDotDX.c('li').set({id: 'wcbutton', class: 'rate'}).html('' + (SRDotDX.config.hideWChat ? 'Show World Chat' : 'Hide World Chat') + '', false).attach('after', 'quicklinks_play_later_block'); //Chat buttons overlay div var hd = document.getElementById('chat_window_header').getElementsByClassName('room_name_container')[0].innerHTML; document.getElementById('chat_window_header').getElementsByClassName('room_name_container')[0].innerHTML = hd + '
    DotDX:
    '; setTimeout(SRDotDX.gui.BeginDeletingExpiredUnvisitedRaids, 10000); //SRDotDX.util.updateUser(true); window.userInt = setInterval(function(){ if(typeof active_user == 'object' && active_user.username().toLowerCase() != 'guest') { SRDotDX.config.kongUser = active_user.username(); SRDotDX.config.kongId = active_user.id(); SRDotDX.config.kongAuth = active_user.gameAuthToken(); console.log("[DotDX] Initialized user: " + SRDotDX.config.kongUser + " | " + SRDotDX.config.kongId); clearInterval(window.userInt); } else console.log("[DotDX] User init failed... trying again"); },3000); window.guildInt = setInterval(function(){ if( typeof holodeck == 'object' && typeof holodeck._guildRosters == 'object' && Object.keys(holodeck._guildRosters).length > 0 && typeof holodeck.getGuildRoomForCurrentGameCookie == 'function' && typeof holodeck.getGuildRoomForCurrentGameCookie().guild_id == 'string') { var guildUsers = holodeck._guildRosters[holodeck.getGuildRoomForCurrentGameCookie().guild_id]; console.log("[DotDX] Received guild roster list, number of entries: " + guildUsers.length); clearInterval(window.guildInt); for(var i = 0, il = guildUsers.length; i < il; ++i) if(typeof SRDotDX.config.ignUsers[guildUsers[i].username] === 'undefined') SRDotDX.config.ignUsers[guildUsers[i].username] = guildUsers[i].game_character_name; } else console.log("[DotDX] Guild roster not processed... trying again"); },10000); console.log('[DotDX] DotDeXtension loading complete'); SRDotDX.gui.doStatusOutput('Loaded successfully', 2000, false); setTimeout(function(){delete SRDotDX.gui.load; delete SRDotDX.load},1000); setTimeout(SRDotDX.config.save, 2000); //SRDotDX.c('#shim').del(); } else { setTimeout(SRDotDX.gui.load, 500) } }, fsEleClick: function (e) { e = e || window.event; var el = e.target.id.split(':'); if (el[0] == 'fs') { SRDotDX.config.friendUsers[el[1]][el[2]] = e.target.checked; } }, FPXraidLinkClick: function(id) { if (!SRDotDX.gui.joining) SRDotDX.request.joinRaid(SRDotDX.config.raidList[id]); else SRDotDX.gui.joinRaidList.push(SRDotDX.config.raidList[id]); }, FPXLandButtonHandler: function (ele, name) { var x = name.charAt(name.length - 1), sign = 1; if (name.charAt(3) != 'p')sign = -1; document.FPXLandForm.elements["tf_" + x].value = parseInt(document.FPXLandForm.elements["tf_" + x].value, 10) + (10 * sign); SRDotDX.gui.FPXLandUpdater(); }, FPXLandUpdater: function () { var owned = [0, 0, 0, 0, 0, 0, 0, 0, 0], els = document.FPXLandForm, i = 9; while (i--) owned[i] = parseInt(els.elements['tf_' + (i + 1)].value, 10); var ratio = FPX.LandCostRatio(owned), best = 0, cn; i = 9; while (i--) { cn = document.getElementById('b_' + (i + 1)).className; if (cn.indexOf('landpmbutton ') == -1) document.getElementById('b_' + (i + 1)).className = cn.replace('landpmbuttonhigh', 'landpmbutton'); //document.getElementById('b_'+(i+1)).prevClassName = 'landpmbutton'; if (ratio[i] > ratio[best]) best = i; } cn = document.getElementById('b_' + (best + 1)).className; document.getElementById('b_' + (best + 1)).className = cn.replace('landpmbutton', 'landpmbuttonhigh'); }, FPXLandButtonSave: function () { var els = document.FPXLandForm, i = 9; while (i--) SRDotDX.config.FPXLandOwnedCount[i] = els.elements['tf_' + (i + 1)].value; SRDotDX.config.save(false); SRDotDX.gui.doStatusOutput('Land count saved!'); }, FPXraidListMouseDown: function (e) { e.preventDefault(); e.stopPropagation(); var classtype = e.target.className; e = e || window.event; if (e.which == 1) { switch (classtype) { case 'dotdxRaidListDelete': SRDotDX.gui.deleteRaid(e.target.parentNode); break; case 'DotDX_RaidLink': SRDotDX.gui.FPXraidLinkClick(e.target.parentNode.getAttribute("raidid")); break; } } }, chatWindowContextMenu: function (e) { e = e || window.event; var clickedClass = e.target.className.split(" "), nick = ""; console.log('[DotDX] Chat window menu [' + e.target.className + ']'); if (clickedClass[0] === 'username' && clickedClass[1] === 'chat_message_window_username') { nick = e.target.getAttribute('dotdxname'); var frTxt = SRDotDX.config.friendUsers[nick]?'unFriend':'Friend'; var uMenu = document.getElementById(clickedClass[clickedClass.length - 1]); if(uMenu !== null) { uMenu.innerHTML = '' + nick + '' + frTxt + 'SlapMute'; uMenu.style.maxWidth = "220px"; } e.preventDefault(); e.stopPropagation(); } else if(clickedClass[0] === 'chat_input' && SRDotDX.config.clearRMB) { e.target.value = ''; e.preventDefault(); e.stopPropagation(); } return false; }, chatWindowMouseDown: function (e) { e = e || window.event; var clickedClass = e.target.className.split(" "), nick = ""; console.log('[DotDX] Chat window (' + e.which + ') [' + e.target.className + ']'); if(e.which === 1) { switch(clickedClass[0]) { case 'username': if(clickedClass[1] === 'chat_message_window_username') { e.preventDefault(); e.stopPropagation(); nick = e.target.getAttribute('dotdxname'); console.log("[DotDX] Whisp to user with nick [" + nick + "]"); holodeck.chatWindow().insertPrivateMessagePrefixFor(nick); } break; case 'chatRaidLink': e.preventDefault(); e.stopPropagation(); var raid = clickedClass[1].split("|"); var rObj = {id: raid[0], hash: raid[1], boss: raid[2], diff: raid[3], sid: raid[4]}; if (!SRDotDX.gui.joining) SRDotDX.request.joinRaid(rObj); else SRDotDX.gui.joinRaidList.push(rObj); break; case 'user': e.preventDefault(); e.stopPropagation(); var classTokens = clickedClass[1].split("_"); switch (classTokens[1]) { case 'slap': var num = Math.round((Math.random() * (SRDotDX.slapSentences.length - 1))); SRDotDX.gui.FPXdoWork('*' + SRDotDX.slapSentences[num].replace(//g, classTokens[2]) + '*'); break; case 'mute': SRDotDX.config.mutedUsers[classTokens[2]] = true; SRDotDX.config.save(false); break; case 'friend': if (typeof SRDotDX.config.friendUsers[classTokens[2]] == 'object') delete SRDotDX.config.friendUsers[classTokens[2]]; else SRDotDX.config.friendUsers[classTokens[2]] = [false, false, false, false, true]; SRDotDX.config.save(false); SRDotDX.gui.refreshFriends(); break; case 'name': holodeck.showMiniProfile(classTokens[2]); break; } e.target.parentNode.style.maxWidth = "0"; } return false; } }, raidListItemUpdate: function (id) { var ele = document.getElementById('DotDX_' + id); var r = SRDotDX.config.raidList[id]; if(ele !== null && typeof r === 'object') ele.children[2].innerHTML = (r.visited ? '★' : ''); }, raidListItemRemoveById: function (id) { var ele = document.getElementById('DotDX_' + id); if(ele !== null) ele.parentNode.removeChild(ele); }, toggleCSS: function (p) { if (p) { var ele = document.getElementById(p.id); if(ele !== null) { document.head.removeChild(ele); SRDotDX.c("style").set({ type: "text/css", id: p.id }).text(p.cls).attach("to", document.head); } } }, toggleRaid: function (type, id, tog) { var d = document.getElementsByClassName("DotDX_raidId_" + id); if (typeof SRDotDX.config.raidList[id] === 'object') { var raid = SRDotDX.config.raidList[id]; raid = SRDotDX.getRaidDetails("&kv_difficulty=" + raid.diff + "&kv_hash=" + raid.hash + "&kv_raid_boss=" + raid.boss + "&kv_raid_id=" + raid.id); } for(var i = 0, il = d.length; i < il; ++i) { if (tog && d[i].className.indexOf('DotDX_' + type + 'Raid') < 0) d[i].className += ' DotDX_' + type + 'Raid'; else if (!tog && d[i].className.indexOf('DotDX_' + type + 'Raid') >= 0) d[i].className = d[i].className.replace(new RegExp('DotDX_' + type + 'Raid( |$)', 'i'), ''); if (typeof raid == 'object') d[i].getElementsByTagName('a')[0].innerHTML = raid.linkText(); } } }, searchPatterns: { z1: ['kobold', 'scorp', 'ogre'], z2: ['rhino', 'alice', 'lurker'], z3: ['4ogre', 'squid', 'batman', 'drag', 'tainted'], z4: ['bmane', '3dawg', 'hydra', 'sircai', 'tyranthius'], z5: ['ironclad', 'zombiehorde', 'stein', 'bogstench', 'nalagarst'], z6: ['gunnar', 'nidhogg', 'kang', 'ulfrik', 'kalaxia'], z7: ['maraak', 'erakka_sak', 'wexxa', 'guilbert', 'bellarius'], z8: ['hargamesh', 'grimsly', 'rift', 'sisters', 'mardachus'], z9: ['mesyra', 'nimrod', 'phaedra', 'tenebra', 'valanazes'], "z1_9": ['kobold', 'scorp', 'ogre', 'rhino', 'alice', 'lurker', '4ogre', 'squid', 'batman', 'drag', 'tainted', 'bmane', '3dawg', 'hydra', 'sircai', 'tyranthius', 'ironclad', 'zombiehorde', 'stein', 'bogstench', 'nalagarst', 'gunnar', 'nidhogg', 'kang', 'ulfrik', 'kalaxia', 'maraak', 'erakka_sak', 'wexxa', 'guilbert', 'bellarius', 'hargamesh', 'grimsly', 'rift', 'sisters', 'mardachus', 'mesyra', 'nimrod', 'phaedra', 'tenebra', 'valanazes'], "z9.5": ['pumpkin', 'jacksrevenge1'], "z9.7": ['hellemental', 'shadow'], z10: ['krugnug', 'tomb_gargoyle', 'leonine_watcher', 'centurion_marius', 'caracalla'], z14: ['zugen', 'gulkinari', 'verkiteia', 'cannibal_barbarians'], z15: ['korxun', 'xerkara', 'shaar', 'nereidon', 'drulcharus'], z16: ['bad_blood','way_warden','draconic_dreams','doppelganger'], farm: ['maraak', 'erakka_sak', 'wexxa', 'guilbert', 'bellarius', 'drag', 'tainted', 'ogre', 'scorp', 'baroness'], flute: ['kobold', 'scorp', 'ogre', 'rhino', 'alice', 'lurker', '4ogre', 'squid', 'batman', 'drag', 'tainted', 'harpy', 'spider', 'djinn', 'evilgnome', 'basilisk', 'roc', 'gladiators', 'chimera', 'crabshark', 'gorgon', 'warewolfpack', 'blobmonster', 'giantgolem'], tower: ['thaltherda', 'hurkus', 'malleus', 'yydians_sanctuary', 'clockwork_dragon', 'krxunara', 'karkata', 'corrupted_wilds', 'marble_colossus'], small: ['kobold', 'rhino', 'bmane', '4ogre', 'serpina', 'dragons_lair', 'gunnar', 'hargamesh', 'ironclad', 'krugnug', 'maraak', 'thaltherda', 'zugen', 'nereidon', 'mestr_rekkr_rematch', 'ghostly_alchemist', 'master_ninja_bakku','valtrias','bad_blood'], medium: ['alice', 'erakka_sak', 'grimsly', '3dawg', 'scorp', 'nidhogg', 'tomb_gargoyle', 'squid', 'tisiphone', 'zombiehorde', 'baroness', 'hurkus', 'gulkinari', 'korxun', 'drunken_ragunt', 'shadow', 'rudaru_the_axe_master','doppelganger'], large: ['ogre', 'batman', 'hydra', 'kang', 'leonine_watcher', 'lurker', 'rift', 'stein', 'wexxa', 'teremarthu', 'zralkthalat', 'malleus', 'verkiteia', 'drulcharus', 'gigantomachy', 'green_killers', 'yule_present_bearer','clockwork_giant'], epic: ['bogstench', 'centurion_marius', 'drag', 'tainted', 'guilbert', 'pumpkin', 'jacksrevenge1', 'mesyra', 'nimrod', 'phaedra', 'sircai', 'sisters', 'ulfrik', 'frogmen_assassins', 'burbata', 'yydians_sanctuary', 'grundus', 'shaar', 'tuxargus', 'nylatrix', 'rannveig', 'valley_of_death', 'murgrux_the_mangler', 'marble_colossus'], colossal: ['bellarius', 'caracalla', 'kalaxia', 'tyranthius', 'mardachus', 'nalagarst', 'tenebra', 'valanazes', 'siculus', 'ruzzik', 'cannibal_barbarians', 'vortex_abomination', 'xerkara', 'keron', 'clockwork_dragon', 'krxunara', 'hellemental', 'kanehuar_yachu', 'karkata', 'thratus_abomination', 'way_warden'], gigantic: ['imryx', 'trekex', 'gataalli_huxac', 'kessov_fort', 'corrupted_wilds','draconic_dreams'], glyph: ['maraak', 'erakka_sak', 'wexxa', 'guilbert', 'bellarius'], goblin: ['master_ninja_bakku', 'green_killers'], citadel: ['thaltherda', 'hurkus', 'malleus', 'yydians_sanctuary', 'clockwork_dragon', 'krxunara', 'karkata', 'corrupted_wilds', 'marble_colossus'], festival: ['vortex_abomination', 'drunken_ragunt', 'mestr_rekkr_rematch', 'valley_of_death', 'green_killers', 'murgrux_the_mangler'], aquatic: ['dirthax', 'frogmen_assassins', 'lurker', 'nidhogg', 'crabshark', 'squid', 'thaltherda', 'nereidon', 'krxunara', 'trekex', 'paracoprion', 'bog_bodies','karkata'], beastman: ['bmane', 'burbata', 'frogmen_assassins', 'batman', 'war_boar', 'hargamesh', 'hurkus', 'krugnug', 'malleus', 'scorp', 'ruzzik', 'squid', 'korxun', 'shaar', 'nereidon', 'drulcharus', 'trekex'], beasts: ['lurker', 'rhino', '3dawg', 'nidhogg', 'hydra', 'kang', 'wexxa', 'karkata', 'nrlux', 'spider', 'basilisk', 'chimera', 'doomglare', 'roc', 'crabshark', 'dirthax', 'nrlux', 'paracoprion', 'corrupted_wilds'], bludheim: ['gunnar', 'nidhogg', 'kang', 'ulfrik', 'kalaxia'], colosseum: ['gladiators', 'serpina', 'crabshark', 'tisiphone', 'chimera', 'green_killers', 'marble_colossus'], construct: ['cedric', 'erakka_sak', 'giantgolem', 'leonine_watcher', 'tomb_gargoyle', 'stein', 'yydians_sanctuary', 'clockwork_dragon', 'clockwork_giant', 'thratus_abomination', 'marble_colossus'], demon: ['apoc_demon', '3dawg', 'tyranthius', 'lunacy', 'salome', 'sircai', 'blobmonster', 'malchar', 'zralkthalat', 'krxunara', 'adrastos', 'hellemental','valtrias'], dragon: ['bellarius', 'corrupterebus', 'dragons_lair', 'echidna', 'drag', 'kalaxia', 'krykagrius', 'mardachus', 'mesyra', 'nalagarst', 'nimrod', 'phaedra', 'rhalmarius_the_despoiler', 'tainted', 'tenebra', 'thaltherda', 'tisiphone', 'grundus', 'valanazes', 'verkiteia', 'winter_kessov', 'xerkara', 'nereidon', 'drulcharus', 'keron', 'tuxargus', 'nylatrix', 'clockwork_dragon', 'imryx', 'draconic_dreams'], giant: ['gigantomachy', 'gataalli_huxac', 'kanehuar_yachu','clockwork_giant'], human: ['agony', 'rhino', 'gladiators', 'baroness', 'warewolfpack', 'alice', 'cannibal_barbarians', 'guilbert', 'gunnar', 'pumpkin', 'jacksrevenge1', 'lunacy', 'slaughterers', 'ulfrik', 'mestr_rekkr_rematch', 'rannveig', 'adrastos', 'legion_of_darkness', 'yule_present_bearer', 'bad_blood'], magical: ['djinn', 'grimsly', 'hargamesh', 'fairy_prince', 'rift', 'sisters', 'vortex_abomination', 'grundus', 'shadow', 'bog_bodies', 'corrupted_wilds','way_warden', 'doppelganger'], ogre: ['ogre', '4ogre', 'felendis', 'zugen', 'korxun', 'drunken_ragunt', 'valley_of_death', 'murgrux_the_mangler'], orc: ['darhednal', 'rudaru_the_axe_master', 'green_killers'], qwiladrian: ['gulkinari', 'teremarthu', 'vortex_abomination'], ryndor: ['bmane', '3dawg', 'hydra', 'sircai', 'tyranthius'], siege: ['echidna', 'ulfrik', 'yydians_sanctuary', 'drunken_ragunt', 'kessov_fort'], undead: ['agony', 'bogstench', 'serpina', 'ironclad', 'malleus', 'nalagarst', 'stein', 'siculus', 'zombiehorde', 'caracalla', 'centurion_marius', 'ghostly_alchemist'], underground: ['maraak', 'erakka_sak', 'wexxa', 'guilbert', 'bellarius', 'spider', 'tomb_gargoyle', 'leonine_watcher', 'centurion_marius', 'caracalla', 'dragons_lair', 'kang', '3dawg', 'lurker', 'salome', 'stein', 'imryx'] }, shortcuts: { bb: { n: 'bb', bn: 'BB', desc: 'Briseis\' Blessing [magic]' }, bok: { n: 'bok', bn: 'BoK', desc: 'Book of Knowledge [consumable]' }, bsi: { n: 'bsi', bn: 'BSI', desc: 'Battle Strength Index
    (Base Attack + Base Defense) / Level' }, ck: { n: 'ck', bn: 'CK', desc: 'Chryseis\' Kiss [magic]' }, dah: { n: 'dah', bn: 'Dah', desc: 'Dahrizon [general]' }, dl: { n: 'dl', bn: 'DL', desc: 'Dragons Lair [raid]' }, gg: { n: 'gg', bn: 'GG', desc: 'Golden Garden [equip]'}, gid: { n: 'gid', bn: 'GID', desc: 'Greater Impending Doom [magic]' }, gl: { n: 'gl', bn: 'GL', desc: 'Greenleaf [equip]'}, il: { n: 'il', bn: 'IL', desc: 'Insanity Laughs [magic]' }, lsi: { n: 'lsi', bn: 'LSI', desc: 'Leveling Speed Index
    (Base Stamina * 2 + Base Energy) / Level' }, mach: { n: 'mach', bn: 'Mach', desc: 'Machaon the Healer [general]' }, nm: { n: 'nm', bn: 'NM', desc: 'Nightmare [difficulty]' }, pc: { n: 'pc', bn: 'PC', desc: 'Planet Coins [currency]' }, perc: { n: 'perc', bn: 'perc', desc: 'Perception [stat]' }, qm: { n: 'qm', bn: 'QM', desc: 'Quicken Mind [magic]' }, sock: { n: 'sock', bn: 'SoCK', desc: 'Sword of Conquered Kingdoms [equip]' }, sor: { n: 'sor', bn: 'SoR', desc: 'Shield of Ryndor [equip]' }, sp: { n: 'sp', bn: 'SP', desc: 'Stat Points [stat]' }, wr: { n: 'wr', bn: 'WR', desc: 'World Raid [raid]' } }, raids: { adrastos: {name: 'Adrastos of the Kavala ', shortname: 'Adrastos', id: 'adrastos', type: 'Human, Demon', stat: 'H', size: 101, nd: 5, duration: 192, health: [5000000000, 6250000000, 8750000000, 10000000000, 0, 0], lt: ['keron', 'keron', 'keron', 'keron']}, agony: {name: 'Agony', shortname: 'Agony', id: 'agony', type: 'Undead, Human', stat: 'H', size: 101, nd: 5, duration: 168, health: [700000000, 875000000, 1120000000, 1400000000, 0, 0]}, apoc_demon: {name: 'Apocolocyntosised Demon', shortname: 'Apoc', id: 'apoc_demon', type: 'Demon', stat: 'H', size: 50, nd: 3, duration: 144, health: [500000000, 750000000, 1000000000, 2000000000, 0, 0], lt: ['apoc', 'apoc', 'apoc', 'apoc']}, djinn: {name: 'Al-Azab', shortname: 'Azab', id: 'djinn', type: 'Magical Creature', stat: 'H', size: 100, nd: 4, duration: 168, health: [55000000, 68750000, 88000000, 110000000, 0, 0]}, spider: {name: 'Arachna', shortname: 'Arachna', id: 'spider', type: 'Underground, Beast', stat: 'H', size: 50, nd: 3, duration: 144, health: [22000000, 27500000, 35200000, 44000000, 0, 0]}, rhino: {name: 'Ataxes', shortname: 'Ataxes', id: 'rhino', type: 'Human, Beast', stat: 'S', size: 10, nd: 2, duration: 120, health: [2000000, 2500000, 3200000, 4000000, 0, 0]}, gladiators: {name: 'Batiatus Gladiators ', shortname: 'Gladiators', id: 'gladiators', type: 'Colosseum, Human', stat: 'H', size: 10, nd: 2, duration: 120, health: [12000000, 15000000, 19200000, 24000000, 0, 0]}, bellarius: {name: 'Bellarius the Guardian', shortname: 'Bellarius', id: 'bellarius', type: 'Dragon, Underground', stat: 'S', size: 500, nd: 6, duration: 96, health: [900000000, 1125000000, 1440000000, 1800000000, 0, 0]}, bad_blood: {name: 'Bad Blood', shortname: 'Bad Blood', id: 'bad_blood', type: 'Human', stat: 'S', size:30, nd:4, duration:48, health: [8000000000,16000000000,24000000000,32000000000,0,0], lt: ['u','u','u','u']}, baroness: {name: 'The Baroness', shortname: 'Baroness', id: 'baroness', type: 'Human', stat: 'S', size: 50, nd: 3, duration: 60, health: [68000000, 85000000, 108800000, 136000000, 0, 0]}, werewolfpack: {name: 'The Black Moon Pack', shortname: 'Black Moon', id: 'werewolfpack', type: 'Human', stat: 'H', size: 50, nd: 3, duration: 144, health: [135000000, 168750000, 216000000, 270000000, 0, 0]}, alice: {name: 'Bloody Alice', shortname: 'Alice', id: 'alice', type: 'Human', stat: 'S', size: 50, nd: 3, duration: 120, health: [15000000, 18750000, 24000000, 30000000, 0, 0]}, bog_bodies: {name: 'The Bog Bodies', shortname: 'Bodies', id: 'bog_bodies', type: 'Magical Creature, Aquatic', stat: 'H', size:101, nd:5, duration:192, health: [3750000000,7500000000,11250000000,15000000000,0,0], lt: ['keron', 'keron', 'keron', 'keron']}, bogstench: {name: 'Bogstench', shortname: 'Bogstench', id: 'bogstench', type: 'Undead', stat: 'S', size: 250, nd: 5, duration: 96, health: [450000000, 562500000, 720000000, 900000000, 0, 0]}, '4ogre': {name: 'Briareus the Butcher', shortname: 'Briareus', id: '4ogre', type: 'Ogre', stat: 'S', size: 10, nd: 2, duration: 72, health: [4500000, 5625000, 7200000, 9000000, 0, 0]}, bmane: {name: 'Bloodmane', shortname: 'Bloodmane', id: 'bmane', type: 'Beastman, Ryndor', stat: 'S', size: 10, nd: 2, duration: 72, health: [7000000, 8750000, 11200000, 14000000, 0, 0]}, burbata: {name: 'Burbata the Spine-Crusher', shortname: 'Burbata', id: 'burbata', type: 'Beastman', stat: 'S', size: 250, nd: 5, duration: 96, health: [1000000000, 2000000000, 3500000000, 5000000000, 0, 0], lt: ['z10', 'z10', 'z10', 'z10']}, cannibal_barbarians: {name: 'Cannibal Barbarians', shortname: 'Cannibals', id: 'cannibal_barbarians', type: 'Human', stat: 'S', size: 500, nd: 6, duration: 128, health: [60000000000, 90000000000, 180000000000, 240000000000, 0, 0], lt: ['canib', 'canib', 'canib', 'canib']}, cedric: {name: 'Cedric the Smashable', shortname: 'Cedric', id: 'cedric', type: 'Construct', stat: 'ESH', size: 90000, nd: 0, duration: 24, health: ['Unlimited', 'Unlimited', 'Unlimited', 'Unlimited', 'Unlimited', 'Unlimited']}, caracalla: {name: 'Caracalla', shortname: 'Caracalla', id: 'caracalla', type: 'Undead, Underground', stat: 'S', size: 500, nd: 6, duration: 128, health: [50000000000, 75000000000, 150000000000, 200000000000, 0, 0], lt: ['cara', 'cara', 'cara', 'cara']}, harpy: {name: 'Celeano', shortname: 'Celeano', id: 'harpy', type: '', stat: 'H', size: 10, nd: 2, duration: 120, health: [3000000, 3750000, 4800000, 6000000, 0, 0]}, centurion_marius: {name: 'Centurion Marius', shortname: 'Marius', id: 'centurion_marius', type: 'Undead, Underground', stat: 'S', size: 250, nd: 5, duration: 96, health: [10000000000, 12000000000, 16000000000, 40000000000, 0, 0], lt: ['z10', 'z10', 'z10', 'z10']}, kobold: {name: 'Chieftain Horgrak', shortname: 'Horgrak', id: 'kobold', type: '', stat: 'S', size: 10, nd: 2, duration: 168, health: [150000, 187500, 240000, 300000, 0, 0]}, clockwork_dragon: {name: 'Clockwork Dragon', shortname: 'Clock Dragon', id: 'clockwork_dragon', type: 'Construct, Dragon', stat: 'S', size: 500, nd: 6, duration: 128, health: [70000000000, 140000000000, 210000000000, 280000000000], lt: ['clock', 'clock', 'clock', 'clock']}, clockwork_giant: {name: 'Clockwork Giant',shortname: 'Clockwork Giant',id: 'clockwork_giant', type: 'Construct, Giant', stat: 'H', size:100, nd:4, duration:12, health: [5000000000,10000000000,15000000000,20000000000,0,0], lt: ['cwg','cwg','cwg','cwg']}, corrupterebus: {name: 'Corrupted Erebus', shortname: 'Cbus', id: 'corrupterebus', type: 'Dragon', stat: 'ESH', size: 90000, nd: 0, duration: 96, health: ['Unlimited', 'Unlimited', 'Unlimited', 'Unlimited', 'Unlimited', 'Unlimited']}, corrupted_wilds: {name: 'Corrupted Wilds',shortname: 'Wilds',id: 'corrupted_wilds', type: 'Magical Creature, Beast', stat: 'S', size:800, nd:6, duration:128, health: [325000000000,650000000000,975000000000,1300000000000,0,0], lt: ['wlds','wlds','wlds','wlds']}, serpina: {name: 'Countess Serpina', shortname: 'Serp', id: 'serpina', type: 'Colosseum, Undead', stat: 'E', size: 15, nd: 2, duration: 5, health: [75000000, 112500000, 150000000, 187500000, 0, 0]}, darhednal: {name: 'Dar\'Hed\'Nal', shortname: 'Dar\'Hed\'Nal', id: 'darhednal', type: 'Orc', stat: 'H', size: 50, nd: 3, duration: 144, health: [500000000, 1000000000, 1500000000, 2000000000, 0, 0], lt: ['keron', 'keron', 'keron', 'keron']}, basilisk: {name: 'Deathglare', shortname: 'Deathglare', id: 'basilisk', type: 'Beast', stat: 'H', size: 50, nd: 3, duration: 144, health: [45000000, 56250000, 72000000, 90000000, 0, 0]}, dirthax: {name: 'Dirthax', shortname: 'Dirthax', id: 'dirthax', type: 'Aquatic, Beast', stat: 'H', size: 100, nd: 4, duration: 168, health: [550000000, 687500000, 880000000, 1100000000, 0, 0]}, doomglare: {name: 'Doomglare', shortname: 'Doomglare', id: 'doomglare', type: 'Beast', stat: 'H', size: 100, nd: 4, duration: 12, health: [500000000, 1250000000, 2000000000, 3000000000, 0, 0], lt: ['keron', 'keron', 'keron', 'keron']}, doppelganger: {name: 'Doppelganger', shortname: 'Doppel', id: 'doppelganger', type: 'Magical Creature', stat: 'S', size:50, nd:5, duration:60, health: [12000000000,24000000000,36000000000,48000000000,0,0], lt: ['u','u','u','u']}, draconic_dreams: {name: 'Draconic Dreams', shortname: 'D.Dreams',id: 'draconic_dreams', type: 'Dragon', stat: 'S', size:800, nd:6, duration:128, health: [500000000000,1000000000000,1500000000000,2000000000000,0,0], lt: ['u','u','u','u']}, dragons_lair: {name: 'Dragons Lair', shortname: 'Lair', id: 'dragons_lair', type: 'Dragon, Underground', stat: 'S', size: 13, nd: 2, duration: 5, health: [100000000, 500000000, 1000000000, 1500000000, 0, 0], lt: ['nDl', 'hDl', 'lDl', 'nmDl']}, drulcharus: {name: 'Drulcharus', shortname: 'Drulcharus', id: 'drulcharus', type: 'Dragon, Beastman', stat: 'S', size: 100, nd: 5, duration: 72, health: [10000000000, 15000000000, 20000000000, 25000000000, 0, 0], lt: ['z15hi', 'z15hi', 'z15hi', 'z15hi']}, drunken_ragunt: {name: 'Drunken Ragunt', shortname: 'Ragunt', id: 'drunken_ragunt', type: 'Siege, Ogre', stat: 'S', size: 50, nd: 5, duration: 60, health: [8500000000, 14450000000, 18700000000, 25500000000, 0, 0], lt: ['rag', 'rag', 'rag', 'rag']}, echidna: {name: 'Echidna', shortname: 'Echidna', id: 'echidna', type: 'Dragon, Siege', stat: 'ESH', size: 90000, nd: 0, duration: 96, health: ['Unlimited', 'Unlimited', 'Unlimited', 'Unlimited', 'Unlimited', 'Unlimited']}, kessov_fort: {name: 'Engines of War', shortname: 'Engines', id: 'kessov_fort', type: 'Siege', stat: 'S', size: 800, nd: 6, duration: 128, health: [300000000000, 600000000000, 900000000000, 1200000000000, 0, 0], lt: ['eow', 'eow', 'eow', 'eow']}, erakka_sak: {name: 'Erakka-Sak', shortname: 'Erakka', id: 'erakka_sak', type: 'Underground, Construct', stat: 'S', size: 50, nd: 3, duration: 60, health: [62000000, 77500000, 99200000, 124000000, 0, 0]}, giantgolem: {name: 'Euphronios', shortname: 'Euphronios', id: 'giantgolem', type: 'Construct', stat: 'H', size: 101, nd: 5, duration: 168, health: [450000000, 562500000, 720000000, 900000000, 0, 0]}, echthros: {name: 'Echthros', shortname: 'Echty', id: 'echthros', type: '', stat: 'ESH', size: 90000, nd: 2, duration: 96, health: ['Unlimited', 'Unlimited', 'Unlimited', 'Unlimited', 'Unlimited', 'Unlimited']}, drag: {name: 'Erebus the Black', shortname: 'Erebus', id: 'drag', type: 'Dragon', stat: 'S', size: 250, nd: 5, duration: 168, health: [150000000, 187500000, 240000000, 300000000, 0, 0]}, frogmen_assassins: {name: 'Frog-Men Assassins', shortname: 'Frog-Men', id: 'frogmen_assassins', type: 'Beastman, Aquatic', stat: 'S', size: 250, nd: 5, duration: 96, health: [16000000000, 24000000000, 32000000000, 64000000000, 0, 0], lt: ['cara', 'cara', 'cara', 'cara']}, felendis: {name: 'Felendis & Shaoquin', shortname: 'Banhammer', id: 'felendis', type: 'Ogre', stat: 'H', size: 100, nd: 4, duration: 168, health: [441823718, 549238221, 707842125, 888007007, 0, 0]}, gataalli_huxac: {name: 'Gataalli Huxac', shortname: 'Gataalli', id: 'gataalli_huxac', type: 'Giant', stat: 'S', size: 800, nd: 6, duration: 128, health: [375000000000, 750000000000, 1125000000000, 1500000000000], lt: ['gat', 'gat', 'gat', 'gat']}, ogre: {name: 'General Grune', shortname: 'Grune', id: 'ogre', type: 'Ogre', stat: 'S', size: 100, nd: 4, duration: 172, health: [20000000, 25000000, 32000000, 40000000, 0, 0]}, korxun: {name: 'General Korxun', shortname: 'Korxun', id: 'korxun', type: 'Beastman, Ogre', stat: 'S', size: 50, nd: 4, duration: 60, health: [8000000000, 12000000000, 16000000000, 20000000000, 0, 0], lt: ['z15lo', 'z15lo', 'z15lo', 'z15lo']}, ghostly_alchemist: {name: 'Ghostly Alchemist', shortname: 'Alchemist', id: 'ghostly_alchemist', type: 'Undead', stat: 'S', size: 25, nd: 4, duration: 48, health: [5000000000, 10000000000, 15000000000, 20000000000], lt: ['alch', 'alch', 'alch', 'alch']}, dreadbloom: {name: 'Giant Dreadbloom', shortname: 'Dreadbloom', id: 'dreadbloom', type: '', stat: 'H', size: 101, nd: 5, duration: 192, health: [900000000, 1125000000, 1440000000, 1800000000, 0, 0]}, gigantomachy: {name: 'Gigantomachy', shortname: 'Gigantomachy', id: 'gigantomachy', type: 'Giant', stat: 'S', size: 100, nd: 5, duration: 72, health: [25000000000, 50000000000, 75000000000, 100000000000], lt: ['gig', 'gig', 'gig', 'gig']}, batman: {name: 'Gravlok the Night-Hunter', shortname: 'Gravlok', id: 'batman', type: 'Beastman', stat: 'S', size: 100, nd: 4, duration: 72, health: [50000000, 62500000, 80000000, 100000000, 0, 0]}, green_killers: {name: 'Green Killers', shortname: 'Killers', id: 'green_killers', type: 'Orc, Goblin, Festival, Colosseum', stat: 'S', size: 100, nd: 4, duration: 48, health: [12500000000, 25000000000, 37500000000, 50000000000, 0, 0], lt: ['gk', 'gk', 'gk', 'gk']}, evilgnome: {name: 'Groblar Deathcap', shortname: 'Groblar', id: 'evilgnome', type: '', stat: 'H', size: 10, nd: 2, duration: 120, health: [6000000, 7500000, 9600000, 12000000, 0, 0]}, grundus: {name: 'Grundus', shortname: 'Grundus', id: 'grundus', type: 'Dragon, Magical Creature', stat: 'H', size: 101, nd: 5, duration: 72, health: [800000000, 1600000000, 4000000000, 12000000000]}, guilbert: {name: 'Guilbert the Mad', shortname: 'Guilbert', id: 'guilbert', type: 'Underground, Human', stat: 'S', size: 250, nd: 5, duration: 96, health: [550000000, 687500000, 880000000, 1100000000, 0, 0]}, gulkinari: {name: 'Gulkinari', shortname: 'Gulkinari', id: 'gulkinari', type: 'Qwiladrian', stat: 'S', size: 50, nd: 4, duration: 60, health: [7500000000, 9375000000, 12000000000, 15000000000, 0, 0], lt: ['gulk', 'gulk', 'gulk', 'gulk']}, gunnar: {name: 'Gunnar the Berserk', shortname: 'Gunnar', id: 'gunnar', type: 'Bludheim, Human', stat: 'S', size: 10, nd: 2, duration: 48, health: [12000000, 15000000, 19200000, 24000000, 0, 0]}, war_boar: {name: 'Hammer', shortname: 'Hammer', id: 'war_boar', type: 'Beastman', stat: 'H', size: 50, nd: 3, duration: 144, health: [220000000, 275000000, 352000000, 440000000, 0, 0]}, hargamesh: {name: 'Hargamesh', shortname: 'Hargamesh', id: 'hargamesh', type: 'Beastman, Magical Creature', stat: 'S', size: 10, nd: 2, duration: 48, health: [18000000, 22500000, 28800000, 36000000, 0, 0]}, grimsly: {name: 'Headmaster Grimsly', shortname: 'Grimsly', id: 'grimsly', type: 'Magical Creature', stat: 'S', size: 50, nd: 3, duration: 60, health: [72000000, 90000000, 115200000, 144000000, 0, 0]}, hellemental: {name: 'Hellemental', shortname: 'Hellemental', id: 'hellemental', type: 'Demon', stat: 'S', size: 500, nd: 6, duration: 128, health: [75000000000, 150000000000, 225000000000, 300000000000, 0, 0], lt: ['hell', 'hell', 'hell', 'hell']}, hurkus: {name: 'Hurkus the Eviscerator', shortname: 'Hurkus', id: 'hurkus', type: 'Beastman', stat: 'S', size: 50, nd: 4, duration: 60, health: [2812500000, 4218750000, 5625000000, 11250000000, 0, 0], lt: ['hurk', 'hurk', 'hurk', 'hurk']}, hydra: {name: 'Hydra', shortname: 'Hydra', id: 'hydra', type: 'Ryndor, Beast', stat: 'S', size: 100, nd: 4, duration: 72, health: [65000000, 81250000, 104000000, 130000000, 0, 0]}, imryx: {name: 'Imryx the Incinerator', shortname: 'Imryx', id: 'imryx', type: 'Underground, Dragon', stat: 'S', size: 800, nd: 6, duration: 128, health: [180000000000, 360000000000, 540000000000, 720000000000, 0, 0], lt: ['imx', 'imx', 'imx', 'imx']}, ironclad: {name: 'Ironclad', shortname: 'Ironclad', id: 'ironclad', type: 'Undead', stat: 'S', size: 10, nd: 2, duration: 48, health: [10000000, 12500000, 16000000, 20000000, 0, 0]}, //0.5/0.625/0.8/1 pumpkin: {name: 'Jack', shortname: 'Jack', id: 'pumpkin', type: 'Human', stat: 'S', size: 250, nd: 6, duration: 48, health: [1000000000, 1500000000, 2000000000, 3000000000], lt: ['njack', 'hjack', 'ljack', 'nmjack']}, jacksrevenge1: {name: 'Jack\'s Revenge', shortname: 'Revenge', id: 'jacksrevenge1', type: 'Human', stat: 'S', size: 250, nd: 6, duration: 48, health: [5000000000, 7500000000, 10000000000, 15000000000], lt: ['njr', 'hjr', 'ljr', 'nmjr']}, kang: {name: 'Kang-Gsod', shortname: 'Kang', id: 'kang', type: 'Bludheim, Underground, Beast', stat: 'S', size: 100, nd: 4, duration: 72, health: [95000000, 118750000, 152000000, 190000000, 0, 0]}, '3dawg': {name: 'Kerberos', shortname: 'Kerberos', id: '3dawg', type: 'Demon, Underground, Ryndor, Beast', stat: 'S', size: 50, nd: 3, duration: 72, health: [35000000, 43750000, 56000000, 70000000, 0, 0]}, keron: {name: 'Keron the Sky-Shaker', shortname: 'Keron', id: 'keron', type: 'Dragon', stat: 'H', size: 101, nd: 6, duration: 192, health: [15000000000, 18750000000, 24000000000, 30000000000, 0, 0], lt: ['keron', 'keron', 'keron', 'keron']}, kessovtowers: {name: 'Kessov Towers', shortname: 'Towers', id: 'kessovtowers', type: 'Siege', stat: 'ESH', size: 90000, nd: 0, duration: 120, health: ['Unlimited', 'Unlimited', 'Unlimited', 'Unlimited', 'Unlimited', 'Unlimited']}, kessovtower: {name: 'Treachery and the Tower', shortname: 'Treachery', id: 'kessovtower', type: 'Siege', stat: 'ESH', size: 90000, nd: 0, duration: 24, health: ['Unlimited', 'Unlimited', 'Unlimited', 'Unlimited', 'Unlimited', 'Unlimited']}, kessovforts: {name: 'Kessov Forts', shortname: 'Forts', id: 'kessovforts', type: 'Siege', stat: 'ESH', size: 90000, nd: 0, duration: 120, health: ['Unlimited', 'Unlimited', 'Unlimited', 'Unlimited', 'Unlimited', 'Unlimited']}, kessovcastle: {name: 'Kessov Castle', shortname: 'Castle', id: 'kessovcastle', type: 'Siege', stat: 'ESH', size: 90000, nd: 0, duration: 144, health: ['Unlimited', 'Unlimited', 'Unlimited', 'Unlimited', 'Unlimited', 'Unlimited']}, kalaxia: {name: 'Kalaxia the Far-Seer', shortname: 'Kalaxia', id: 'kalaxia', type: 'Dragon, Bludheim', stat: 'S', size: 500, nd: 6, duration: 96, health: [800000000, 1000000000, 1280000000, 1600000000, 0, 0]}, kanehuar_yachu: {name: 'Kanehuar Yachu', shortname: 'Kane', id: 'kanehuar_yachu', type: 'Giant', stat: 'S', size: 500, nd: 6, duration: 128, health: [100000000000, 200000000000, 300000000000, 400000000000, 0, 0], lt: ['kane', 'kane', 'kane', 'kane']}, karkata: {name: 'Karkata', shortname: 'Karkata',id: 'karkata', type: 'Aquatic, Beast', stat: 'S', size:500, nd:6, duration:128, health: [95000000000,190000000000,285000000000,380000000000,0,0], lt: ['kark','kark','kark','kark']}, krugnug: {name: 'Krugnug', shortname: 'Krugnug', id: 'krugnug', type: 'Beastman', stat: 'S', size: 25, nd: 4, duration: 48, health: [1000000000, 1500000000, 2000000000, 4000000000, 0, 0], lt: ['z10', 'z10', 'z10', 'z10']}, krxunara: {name: 'Kr\'xunara of the Bloody Waves', shortname: 'Kr\'xunara', id: 'krxunara', type: 'Aquatic, Demon', stat: 'S', size: 500, nd: 6, duration: 128, health: [62500000000, 125000000000, 187500000000, 250000000000], lt: ['krx', 'krx', 'krx', 'krx']}, krykagrius: {name: 'Krykagrius', shortname: 'Kryk', id: 'krykagrius', type: 'Dragon', stat: 'ESH', size: 90000, nd: 0, duration: 72, health: ['Unlimited', 'Unlimited', 'Unlimited', 'Unlimited', 'Unlimited', 'Unlimited']}, legion_of_darkness: {name: 'Legions of Darkness', shortname: 'Darkness', id: 'legion_of_darkness', type: 'Human', stat: 'S', size: 250, nd: 5, duration: 96, health: [20000000000, 40000000000, 60000000000, 80000000000], lt: ['dark', 'dark', 'dark', 'dark']}, leonine_watcher: {name: 'Leonine', shortname: 'Leonine', id: 'leonine_watcher', type: 'Underground, Construct', stat: 'S', size: 100, nd: 5, duration: 48, health: [4000000000, 6000000000, 8000000000, 16000000000, 0, 0], lt: ['z10', 'z10', 'z10', 'z10']}, tyranthius: {name: 'Lord Tyranthius', shortname: 'Tyr', id: 'tyranthius', type: 'Demon, Ryndor', stat: 'S', size: 500, nd: 6, duration: 168, health: [600000000, 750000000, 960000000, 1200000000, 0, 0]}, lunacy: {name: 'Lunatics', shortname: 'Lunatics', id: 'lunacy', type: 'Demon, Human', stat: 'H', size: 50, nd: 3, duration: 144, health: [180000000, 225000000, 288000000, 360000000, 0, 0]}, lurker: {name: 'Lurking Horror', shortname: 'Lurking', id: 'lurker', type: 'Underground, Aquatic, Beast', stat: 'S', size: 100, nd: 4, duration: 120, health: [35000000, 43750000, 56000000, 70000000, 0, 0]}, malleus: {name: 'Malleus Vivorum', shortname: 'Malleus', id: 'malleus', type: 'Beastman, Undead', stat: 'S', size: 100, nd: 5, duration: 72, health: [8000000000, 12000000000, 16000000000, 20000000000, 0, 0], lt: ['mall', 'mall', 'mall', 'mall']}, maraak: {name: 'Maraak the Impaler', shortname: 'Maraak', id: 'maraak', type: 'Underground', stat: 'S', size: 10, nd: 2, duration: 48, health: [15000000, 18750000, 24000000, 30000000, 0, 0]}, marble_colossus: {name: 'Marble Colossus', shortname: 'Colossus', id: 'marble_colossus', type: 'Construct, Colosseum', stat: 'S', size:250, nd:6, duration:84, health: [30000000000,60000000000,90000000000,120000000000,0,0], lt: ['marb','marb','marb','marb']}, mardachus: {name: 'Mardachus the Destroyer', shortname: 'Mardachus', id: 'mardachus', type: 'Dragon', stat: 'S', size: 500, nd: 6, duration: 96, health: [1100000000, 1375000000, 1760000000, 2200000000, 0, 0]}, master_ninja_bakku: {name: 'Master Ninja Bakku', shortname: 'Bakku', id: 'master_ninja_bakku', type: 'Goblin', stat: 'S', size: 25, nd: 4, duration: 48, health: [5500000000, 11000000000, 16500000000, 22000000000, 0, 0], lt: ['bak', 'bak', 'bak', 'bak']}, scorp: {name: 'Mazalu', shortname: 'Mazalu', id: 'scorp', type: 'Beastman', stat: 'S', size: 50, nd: 3, duration: 168, health: [5000000, 6250000, 8000000, 10000000, 0, 0]}, mestr_rekkr_rematch: {name: 'Mestr Rekkr Rematch', shortname: 'Rekkr II', id: 'mestr_rekkr_rematch', type: 'Human', stat: 'S', size: 25, nd: 4, duration: 48, health: [6000000000, 9000000000, 13200000000, 18000000000, 0, 0], lt: ['rekkr', 'rekkr', 'rekkr', 'rekkr']}, mesyra: {name: 'Mesyra the Watcher', shortname: 'Mesyra', id: 'mesyra', type: 'Dragon', stat: 'S', size: 250, nd: 5, duration: 96, health: [1000000000, 1250000000, 1600000000, 2000000000, 0, 0]}, murgrux_the_mangler: {name: 'Murgrux the Mangler', shortname: 'Murgrux', id: 'murgrux_the_mangler', type: 'Ogre, Festival', stat: 'S', size: 250, nd: 5, duration: 48, health: [25000000000, 50000000000, 75000000000, 100000000000, 0, 0], lt: ['murg', 'murg', 'murg', 'murg']}, nalagarst: {name: 'Nalagarst', shortname: 'Nalagarst', id: 'nalagarst', type: 'Dragon, Undead', stat: 'S', size: 500, nd: 6, duration: 98, health: [700000000, 875000000, 1120000000, 1400000000, 0, 0]}, nereidon: {name: 'Nereidon the Sea Slayer', shortname: 'Nereidon', id: 'nereidon', type: 'Dragon, Beastman, Aquatic', stat: 'S', size: 30, nd: 3, duration: 48, health: [6000000000, 9000000000, 12000000000, 15000000000, 0, 0], lt: ['z15lo', 'z15lo', 'z15lo', 'z15lo']}, nidhogg: {name: 'Nidhogg', shortname: 'Nidhogg', id: 'nidhogg', type: 'Bludheim, Aquatic, Beast', stat: 'S', size: 50, nd: 3, duration: 60, health: [52000000, 65000000, 83200000, 104000000, 0, 0]}, nimrod: {name: 'Nimrod the Hunter', shortname: 'Nimrod', id: 'nimrod', type: 'Dragon', stat: 'S', size: 250, nd: 5, duration: 96, health: [1200000000, 1500000000, 1920000000, 2400000000, 0, 0]}, nylatrix: {name: 'Nylatrix', shortname: 'Nylatrix', id: 'nylatrix', type: 'Dragon', stat: 'H', size: 101, nd: 5, duration: 192, health: [2000000000, 2500000000, 3400000000, 4000000000, 0, 0], lt: ['nker', 'hker', 'lker', 'nmker']}, paracoprion: {name: 'Paracoprion', shortname: 'Paracoprion', id: 'paracoprion', type: 'Aquatic, Beast', stat: 'H', size:101, nd:5, duration:192, health: [2000000000,4000000000,6000000000,8000000000,0,0], lt: ['keron', 'keron', 'keron', 'keron']}, phaedra: {name: 'Phaedra the Deceiver', shortname: 'Phaedra', id: 'phaedra', type: 'Dragon', stat: 'S', size: 250, nd: 5, duration: 96, health: [1400000000, 1750000000, 2240000000, 2800000000, 0, 0]}, fairy_prince: {name: 'Prince Obyron', shortname: 'Obyron', id: 'fairy_prince', type: 'Magical Creature', stat: 'H', size: 10, nd: 2, duration: 120, health: [30000000, 37500000, 48000000, 60000000, 0, 0]}, roc: {name: 'Ragetalon', shortname: 'Ragetalon', id: 'roc', type: 'Beast', stat: 'H', size: 100, nd: 4, duration: 168, health: [110000000, 137500000, 176000000, 220000000, 0, 0]}, rannveig: {name: 'Rannveig', shortname: 'Rannveig', id: 'rannveig', type: 'Human', stat: 'E', size: 250, nd: 6, duration: 128, health: [15000000000, 30000000000, 45000000000, 60000000000, 0, 0], lt: ['rann', 'rann', 'rann', 'rann']}, rhalmarius_the_despoiler: {name: 'Rhalmarius the Despoiler', shortname: 'Rhalmarius', id: 'rhalmarius_the_despoiler', type: 'Dragon', stat: 'H', size: 100, nd: 6, duration: 84, health: [500000000, 1250000000, 3125000000, 7812500000, 0, 0]}, tomb_gargoyle: {name: 'Riddler Gargoyle', shortname: 'Riddler', id: 'tomb_gargoyle', type: 'Underground, Construct', stat: 'S', size: 50, nd: 4, duration: 48, health: [2000000000, 3000000000, 4000000000, 8000000000, 0, 0], lt: ['z10', 'z10', 'z10', 'z10']}, rift: {name: 'Rift the Mauler', shortname: 'Rift', id: 'rift', type: 'Magical Creature', stat: 'S', size: 100, nd: 4, duration: 72, health: [125000000, 156250000, 200000000, 250000000, 0, 0]}, rudaru_the_axe_master: {name: 'Rudaru the Axe Master', shortname: 'Rudaru', id: 'rudaru_the_axe_master', type: 'Orc', stat: 'S', size: 50, nd: 4, duration: 48, health: [10500000000, 21000000000, 31500000000, 36750000000, 0, 0], lt: ['rud', 'rud', 'rud', 'rud']}, ruzzik: {name: 'Ruzzik the Slayer', shortname: 'Ruzzik', id: 'ruzzik', type: 'Beastman', stat: 'S', size: 500, nd: 6, duration: 128, health: [55000000000, 82500000000, 165000000000, 220000000000, 0, 0], lt: ['ruzz', 'ruzz', 'ruzz', 'ruzz']}, salome: {name: 'Salome the Seductress', shortname: 'Salome', id: 'salome', type: 'Demon, Underground', stat: 'H', size: 100, nd: 4, duration: 48, health: [666000000, 832500000, 1065600000, 1332000000, 0, 0], lt: ['nSlut', 'hSlut', 'lSlut', 'nmSlut']}, crabshark: {name: 'Scuttlegore', shortname: 'Scuttlegore', id: 'crabshark', type: 'Colosseum, Aquatic, Beast', stat: 'H', size: 100, nd: 4, duration: 168, health: [220000000, 275000000, 352000000, 440000000, 0, 0]}, squid: {name: 'Scylla', shortname: 'Scylla', id: 'squid', type: 'Beastman, Aquatic', stat: 'S', size: 50, nd: 3, duration: 72, health: [25000000, 31250000, 40000000, 50000000, 0, 0]}, shaar: {name: 'Shaar the Reaver', shortname: 'Shaar', id: 'shaar', type: 'Beastman', stat: 'S', size: 250, nd: 6, duration: 96, health: [12000000000, 24000000000, 36000000000, 60000000000, 0, 0], lt: ['z15hi', 'z15hi', 'z15hi', 'z15hi']}, shadow: {name: 'Shadow', shortname: 'Shadow', id: 'shadow', type: 'Magical Creature', stat: 'S', size: 50, nd: 5, duration: 60, health: [10000000000, 17000000000, 25000000000, 35000000000, 0, 0], lt: ['shd', 'shd', 'shd', 'shd']}, sircai: {name: 'Sir Cai', shortname: 'Cai', id: 'sircai', type: 'Demon, Ryndor', stat: 'S', size: 250, nd: 5, duration: 168, health: [350000000, 437500000, 560000000, 700000000, 0, 0]}, sisters: {name: 'Sisters of the Song', shortname: 'Sisters', id: 'sisters', type: 'Magical Creature', stat: 'S', size: 250, nd: 5, duration: 96, health: [600000000, 750000000, 960000000, 1200000000, 0, 0]}, slaughterers: {name: 'Slaughterers Six', shortname: 'Slaughterers', id: 'slaughterers', type: 'Human', stat: 'H', size: 10, nd: 2, duration: 120, health: [24000000, 30000000, 38400000, 48000000, 0, 0]}, stein: {name: 'Stein', shortname: 'Stein', id: 'stein', type: 'Undead, Underground, Construct', stat: 'S', size: 100, nd: 4, duration: 72, health: [80000000, 100000000, 128000000, 160000000, 0, 0]}, siculus: {name: 'Count Siculus\' Phantom', shortname: 'Siculus', id: 'siculus', type: 'Undead', stat: 'S', size: 500, nd: 6, duration: 128, health: [850000000, 1700000000, 2975000000, 4250000000, 0, 0], lt: ['sic', 'sic', 'sic', 'sic']}, tainted: {name: 'Tainted Erebus', shortname: 'Tainted', id: 'tainted', type: 'Dragon', stat: 'S', size: 250, nd: 5, duration: 168, health: [250000000, 312500000, 400000000, 500000000, 0, 0]}, tenebra: {name: 'Tenebra Shadow Mistress', shortname: 'Tenebra', id: 'tenebra', type: 'Dragon', stat: 'S', size: 500, nd: 6, duration: 128, health: [2000000000, 2500000000, 3200000000, 4000000000, 0, 0]}, thaltherda: {name: 'Thaltherda the Sea-Slitherer', shortname: 'Nessie', id: 'thaltherda', type: 'Aquatic, Dragon', stat: 'S', size: 25, nd: 4, duration: 48, health: [3000000000, 4500000000, 6000000000, 7500000000, 0, 0], lt: ['nessy', 'nessy', 'nessy', 'nessy']}, thratus_abomination: {name: 'Thratu\'s Abomination',shortname: 'Abomination',id: 'thratus_abomination', type: 'Construct', stat: 'S', size:500, nd:6, duration:128, health: [90000000000,180000000000,270000000000,360000000000,0,0], lt: ['abo','abo','abo','abo']}, tisiphone: {name: 'Tisiphone the Vengeful', shortname: 'Tisi', id: 'tisiphone', type: 'Dragon, Colosseum', stat: 'E', size: 50, nd: 3, duration: 12, health: [500000000, 2500000000, 5000000000, 7500000000, 0, 0], lt: ['nTisi', 'hTisi', 'lTisi', 'nmTisi']}, teremarthu: {name: 'Teremarthu', shortname: 'Cthullu', id: 'teremarthu', type: 'Qwiladrian', stat: 'S', size: 100, nd: 5, duration: 48, health: [6000000000, 9000000000, 12000000000, 24000000000, 0, 0], lt: ['z10', 'z10', 'z10', 'z10']}, chimera: {name: 'Tetrarchos', shortname: 'Tetrarchos', id: 'chimera', type: 'Colosseum, Beast', stat: 'H', size: 50, nd: 3, duration: 144, health: [90000000, 112500000, 144000000, 180000000, 0, 0]}, gorgon: {name: 'Tithrasia', shortname: 'Tithrasia', id: 'gorgon', type: '', stat: 'H', size: 10, nd: 2, duration: 120, health: [18000000, 22500000, 28800000, 36000000, 0, 0]}, trekex: {name: 'Trekex\'s Amphibious Assault', shortname: 'Trekex', id: 'trekex', type: 'Aquatic, Beastman', stat: 'S', size: 800, nd: 6, duration: 128, health: [250000000000, 500000000000, 750000000000, 1000000000000], lt: ['trex', 'trex', 'trex', 'trex']}, tuxargus: {name: 'Tuxargus', shortname: 'Tuxargus', id: 'tuxargus', type: 'Dragon', stat: 'H', size: 101, nd: 5, duration: 192, health: [2000000000, 2500000000, 3400000000, 4000000000, 0, 0], lt: ['nker', 'hker', 'lker', 'nmker']}, ulfrik: {name: 'Ulfrik', shortname: 'Ulfrik', id: 'ulfrik', type: 'Bludheim, Siege, Human', stat: 'S', size: 250, nd: 5, duration: 96, health: [500000000, 625000000, 800000000, 1000000000, 0, 0]}, valanazes: {name: 'Valanazes the Gold', shortname: 'Valanazes', id: 'valanazes', type: 'Dragon', stat: 'S', size: 500, nd: 6, duration: 128, health: [2400000000, 3000000000, 3840000000, 4800000000, 0, 0]}, valley_of_death: {name: 'Valley of Death', shortname: 'Death Valley', id: 'valley_of_death', type: 'Ogre, Festival', stat: 'S', size: 250, nd: 5, duration: 48, health: [22000000000, 44000000000, 66000000000, 88000000000, 0, 0], lt: ['valley', 'valley', 'valley', 'valley']}, valtrias: {name: 'Valtrias', shortname: 'Valtrias', id: 'valtrias', type: 'Demon', stat: 'S', size:25, nd:4, duration:48, health: [6250000000, 12500000000, 18750000000, 25000000000, 0, 0], lt: ['val','val','val','val']}, blobmonster: {name: 'Varlachleth', shortname: 'Varlachleth', id: 'blobmonster', type: 'Demon', stat: 'H', size: 100, nd: 4, duration: 168, health: [330000000, 412500000, 528000000, 660000000, 0, 0]}, verkiteia: {name: 'Verkiteia', shortname: 'Verkiteia', id: 'verkiteia', type: 'Dragon', stat: 'S', size: 100, nd: 5, duration: 72, health: [11250000000, 14062500000, 18000000000, 22500000000, 0, 0], lt: ['verk', 'verk', 'verk', 'verk']}, vortex_abomination: {name: 'Vortex Abomination', shortname: 'Vortex', id: 'vortex_abomination', type: 'Qwiladrian, Magical Creature', stat: 'S', size: 500, nd: 6, duration: 128, health: [50000000000, 75000000000, 110000000000, 205000000000, 0, 0], lt: ['vort', 'vort', 'vort', 'vort']}, zugen: {name: 'Warlord Zugen', shortname: 'Zugen', id: 'zugen', type: 'Ogre', stat: 'S', size: 25, nd: 4, duration: 48, health: [4000000000, 6000000000, 8000000000, 10000000000, 0, 0], lt: ['zugen', 'zugen', 'zugen', 'zugen']}, way_warden: {name: 'Way Warden', shortname: 'Way Warden', id: 'way_warden', type: 'Magical Creature', stat: 'S', size:500, nd:6, duration:128, health: [115000000000,230000000000,345000000000,460000000000,0,0], lt: ['u','u','u','u']}, wexxa: {name: 'Wexxa the Worm-Tamer', shortname: 'Wexxa', id: 'wexxa', type: 'Underground, Beast', stat: 'S', size: 100, nd: 4, duration: 72, health: [110000000, 137500000, 176000000, 220000000, 0, 0]}, winter_kessov: {name: 'Blood Will Run Cold', shortname: 'Cold Blood', id: 'winter_kessov', type: 'Dragon, Siege', stat: 'ESH', size: 90000, nd: 0, duration: 290, health: ['Unlimited', 'Unlimited', 'Unlimited', 'Unlimited', 'Unlimited', 'Unlimited']}, xessus: {name: 'Xessus of the Grim Wood', shortname: 'Xessus', id: 'xessus', type: '', stat: 'H', size: 100, nd: 4, duration: 48, health: [500000000, 625000000, 800000000, 1000000000, 0, 0], lt: ['nIns', 'hIns', 'lIns', 'nmIns']}, malchar: {name: 'Malchar the Tri-Eyed', shortname: 'Malchar', id: 'malchar', type: 'Demon', stat: 'H', size: 100, nd: 4, duration: 48, health: [500000000, 625000000, 800000000, 1000000000, 0, 0], lt: ['nIns', 'hIns', 'lIns', 'nmIns']}, krasgore: {name: 'Krasgore', shortname: 'Krasgore', id: 'krasgore', type: '', stat: 'H', size: 100, nd: 4, duration: 48, health: [500000000, 625000000, 800000000, 1000000000, 0, 0], lt: ['nIns', 'hIns', 'lIns', 'nmIns']}, nrlux: {name: 'N\'rlux the Devourer', shortname: 'N\'rlux', id: 'nrlux', type: 'Giant Insect, Beast', stat: 'H', size: 100, nd: 6, duration: 48, health: [10000000000, 12500000000, 16000000000, 20000000000, 0, 0], lt: ['lux', 'lux', 'lux', 'lux']}, xerkara: {name: 'Xerkara', shortname: 'Xerkara', id: 'xerkara', type: 'Dragon', stat: 'S', size: 500, nd: 6, duration: 128, health: [65000000000, 113750000000, 143000000000, 260000000000, 0, 0], lt: ['z15hi', 'z15hi', 'z15hi', 'z15hi']}, yule_present_bearer: {name: 'Yule Present Bearer', shortname: 'Present Bearer', id: 'yule_present_bearer', type: 'Human', stat: 'S', size: 100, nd: 5, duration: 48, health: [30000000000, 60000000000, 90000000000, 120000000000, 0, 0], lt: ['yule', 'yule', 'yule', 'yule']}, yydians_sanctuary: {name: 'Yydian\'s Sanctuary', shortname: 'Yydians', id: 'yydians_sanctuary', type: 'Siege, Construct', stat: 'S', size: 250, nd: 5, duration: 96, health: [10000000000, 20000000000, 30000000000, 50000000000, 0, 0], lt: ['yyd', 'yyd', 'yyd', 'yyd']}, zombiehorde: {name: 'Zombie Horde', shortname: 'Zombies', id: 'zombiehorde', type: 'Undead', stat: 'S', size: 50, nd: 3, duration: 60, health: [45000000, 56250000, 72000000, 90000000, 0, 0]}, zralkthalat: {name: 'Z\'ralk\'thalat', shortname: 'Zralk', id: 'zralkthalat', type: 'Demon', stat: 'S', size: 100, nd: 4, duration: 72, health: [8750000000, 13125000000, 17500000000, 35000000000, 0, 0], lt: ['z10', 'z10', 'z10', 'z10']} }, raidSizes: { 10: { name: 'Small', ratios: [0.6, 0.9, 1.2, 1.6, 2.5, 3.5], enames: ['1E6T', '1E8T', '2E', '2/3E', '3E', '3/4E'] }, 13: { name: 'Small' }, 15: { name: 'Small', ratios: [0.45, 0.6, 0.755, 0.9, 1.05, 1.2, 1.35, 1.5, 1.65, 1.8, 1.95], enames: ['65D', '92D', '119D', '146D', '173D', '200D', '227D', '264D', '301D', '338D', '375D'] }, 25: { name: 'Small', ratios: [0.6, 0.9, 1.2, 1.6, 2.5, 3.5], enames: ['1E6T', '1E8T', '2E', '2/3E', '3E', '3/4E'] }, 30: { name: 'Small', ratios: [0.6, 0.9, 1.2, 1.6, 2.5, 3.5], enames: ['1E6T', '1E8T', '2E', '2/3E', '3E', '3/4E'] }, 50: { name: 'Medium', ratios: [0.7, 0.95, 2.05, 3.125, 6.75, 8.5], enames: ['1E6T', '1E8T', '2E', '2/3E', '3E', '3/4E'] }, 100: { name: 'Large', ratios: [0.9, 1.5, 2.2, 3.2, 6.5, 9.0], enames: ['1E6T', '1E8T', '2E', '2/3E', '3E', '3/4E'] }, 101: { name: 'Epic', ratios: [0.225, 0.325, 0.625, 1.775, 4.525, 10.25], enames: ['1E6T', '1E8T', '2E', '2/3E', '3E', '3/4E'] }, 250: { name: 'Epic', ratios: [0.225, 0.325, 0.625, 1.775, 4.525, 10.25], enames: ['1E6T', '1E8T', '2E', '2/3E', '3E', '3/4E'] }, 500: { name: 'Colossal', ratios: [0.45, 0, 0.65, 1.25, 2.5, 9.0], enames: ['1E6T', '1E8T', '2E', '2/3E', '3E', '3/4E'] }, 800: { name: 'Gigantic', enames: ['1E6T', '1E8T', '2E', '2/3E', '3E', '3/4E'] }, 90000: { name: 'World' } }, lootTiers: { u: { tiers: ['Not yet known'], epics: [0], best: 0}, marb: { tiers: [100,200,300,400,500,600,700,800,900,1000,1400,2000], epics: [2,4,6,8,10,12,14,16,18,21,32,43], best: 10, e: false}, abo: { tiers: [200,300,400,500,600,700,800,900,1000,1250,1500,1750,2000,2250,2500,2750,3000,4000,5000,6000,8000,10000,12500,15000,20000], epics: [6,7,8,10,11,12,13,14,17,21,25,29,33,37,41,45,49,53,60,68,76,83,94,105,126], best: 2, e: false }, wlds: { tiers: [750,1000,1500,2000,2500,3000,4000,5000,6000,7000,8000,9000,10000,12500,15000,17500,20000,25000,30000,40000], epics: [5,10,15,22,28,37,42,47,52,57,62,67,72,77,82,87,93,100,107,120], best: 5, e: false }, cwg: { tiers: [100,200,750,1250,1500,2000,2500,3750,5000], epics: [1,2,3,4,5,8,10,12,15], best: 0, e: true }, val: { tiers: [50,100,250,500,750,1000,1250,1500,2000,2500,5000], epics: [1,2,4,17,21,27,35,44,53,61,99], best: 3, e: false}, kark: { tiers: [200,300,400,500,600,700,800,900,1000,1250,1500,1750,2000,2250,2500,2750,3000,4000,5000,6000,8000,10000,12500,15000], epics: [8,9,10,11,12,13,14,15,17,20,24,29,32,36,40,44,48,52,59,66,73,80,90,100], best: 2, e: false}, yule: { tiers: [100,200,300,400,500,750,1000,1500,2000,2500,3000,3500,4000,4500,5000,10000], epics: [0,4,8,10,15,20,30,35,40,50,70,75,80,90,95,125], best: 5, e: true }, eow: { tiers: [100,200,300,500,1000,1500,2000,2500,3000,4000,5000,6000,7000,8000,9000,10000,12500,15000,17500,20000,25000,30000,35000,40000], epics: [1,2,3,5,10,15,22,28,37,42,47,52,57,63,68,73,78,83,88,95,101,108,115,121], best: 8, e: false }, gk: { tiers: [150,250,300,400,500,750,1000,1500,2000,2500,3500,5000], epics: [5,6,9,10,12,14,17,23,30,35,49,67], best: 2, e: false }, murg: { tiers: [150,250,500,750,1000,1500,2000,2500,3000,3500,4000,4500,5000], epics: [0,1,2,5,10,15,31,41,57,67,72,78,87], best: 9, e: false}, valley: { tiers: [150,250,500,750,1000,1500,2000,2500,3000,3500,4000,4500,5000,6500,8000], epics: [0,1,2,5,10,15,21,35,60,63,67,72,76,84,92], best: 8, e: false}, bak: { tiers: [100,200,250,300,400,500,650,800,1000,1250,1500,2000], epics: [3,8,10,11,12,15,18,20,26,30,38,47], best: 5, e: false}, rud: { tiers: [300,500,750,1000,1500], epics: [13,15,17,25,32], best: 1, e: false}, imx: { tiers: [100,150,200,250,300,400,500,750,1000,1250,1500,1750,2000,2500,3000,3500,4000,4500,5000,6000,7000,8000,9000,10000,12500,15000,17500,20000,25000], epics: [16,21,26,32,38,44,51,69,86,118,142,166,191,239,286,330,355,381,408,435,462,489,516,544,592,640,688,736,815], best: 13, e: false}, shd: { tiers: [50,75,100,150,200,250,300,500,750,1000], epics: [1,2,5,8,10,12,14,16,19,25], best: 6, e: false}, hell: { tiers: [200,250,300,500,750,1000,1500,2000,2500,3000,4000,5000,6000,8000,10000], epics: [8,12,16,25,28,34,41,50,58,64,71,77,85,102,120], best: 2, e: false}, kane: { tiers: [200,250,300,500,750,1000,1500,2000,2500,3000,4000,5000,6000,8000,10000,12500,15000], epics: [6,10,14,21,27,30,37,45,54,62,68,75,81,93,110,127,141], best: 3, e: false}, dark: { tiers: [200,300,500,750,1000,1500,2000,2500,3000,4000,5000], epics: [2,4,8,14,18,30,40,50,60,75,85], best: 7, e: false}, gat: { tiers: [1000,1500,2000,2500,3000,4000,5000,6000,7000,8000,9000,10000,12500,15000,17500,20000,25000,30000,40000], epics: [27,48,66,81,94,103,122,132,144,158,176,194,204,209,219,225,242,284,301], best: 2, e: false}, trex: { tiers: [100,150,200,250,300,400,500,750,1000,1250,1500,1750,2000,2500,3000,3500,4000,4500,5000,6000,7000,8000,9000,10000,12500,15000,17500,20000], epics: [21,28,38,44,47,59,68,94,119,147,179,215,250,308,381,431,498,546,557,593,627,661,691,725,790,861,926,980], best: 14, e: false}, alch: { tiers: [100,150,200,250,300,400,500,650,800,1000,1250,1500], epics: [4,6,8,9,11,13,15,17,19,20,25,32], best: 5, e: false}, rann: { tiers: [100,200,300,400,500,600,700,800,900,1000,2000,3000], epics: [12,24,36,48,61,73,85,97,109,122,245,369], best: 9, e: false }, clock: { tiers: [300,400,750,1000,1500,2000,2500,3000,4000,5000,6000,8000,10000], epics: [56,66,94,118,192,226,254,270,290,360,368,400,460], best: 0, e: false}, krx: { tiers: [300,400,750,1000,1500,2000,2500,3000,4000,5000,6000,8000], epics: [56,66,94,118,192,226,254,270,290,360,368,400], best: 0, e: false}, gig: { tiers: [200,300,400,500,750,1000,1500,2000,2500,5000,8000], epics: [36,48,63,76,94,111,146,199,256,400,490], best: 3, e: false}, rekkr: { tiers: [250,300,400,500,720,1000,1500,2500,3500], epics: [10,11,15,18,23,26,34,37,51], best: 2, e: true}, rag: { tiers: [225,310,400,510,750,1000,1500,2500,5000], epics: [11,13,17,19,23,27,37,39,61], best: 2, e: true}, z15lo: { tiers: [225,240,300,400,750,1000,1500,2500,5000], epics: [8,9,14,16,19,23,33,36,48], best: 2, e: true}, z15hi: { tiers: [225,240,300,400,750,1000,1500,2500,5000,8000], epics: [8,9,14,16,19,23,33,60,90,100], best: 2, e: true}, apoc: { tiers: [12,24,36,40,60,80,100,120,140,160,180], epics: [1,2,3,4,5,6,7,8,9,10,11], best: 3, e: true }, cara: { tiers: [400,500,600,700,800,900,1000,1250,1500,1750,2000,2250,2500,2750,3000], epics: [10,11,12,13,14,15,16,20,24,28,32,36,40,44,48], best: 0, e: true }, zugen: { tiers: [120,180,225,240,300,400,750,1000,1500], epics: [8,9,10,11,14,16,19,23,33], best: 4, e: true}, gulk: { tiers: [90,135,150,180,225,300,550,900,1500], epics: [2,5,7,9,11,15,18,22,34], best: 5, e: true }, verk: { tiers: [100,175,250,300,375,450,525,600,900,1500], epics: [3,8,12,13,15,16,18,21,23,36], best: 2, e: true}, canib: { tiers: [250,300,380,480,580,660,900,1500,2000,2800,3500], epics: [12,13,14,17,18,21,23,34,46,68,88], best: 0, e: true}, ruzz: { tiers: [300,400,500,600,700,800,900,1000,1250,1500,1750,2000,2250,2500,2750,3000], epics: [2,5,11,12,13,14,15,16,20,24,28,32,36,40,44,48], best: 2, e: true }, z10: { tiers: [100,200,300,400,500,600,700,800,900,1000], epics: [7,8,9,10,11,12,13,14,15,16], best: 0, e: true }, nmDl: { tiers: [105,135,150,225,300,375,450,525,600,675], epics: [2,4,6,8,10,12,14,16,18,20], best: 2, e: true }, lDl: { tiers: [70,90,100,150,200,250,300,350,400,450], epics: [2,4,6,8,10,12,14,16,18,20], best: 2, e: true }, hDl: { tiers: [35,45,50,75,100,125,150,175,200,225], epics: [2,4,6,8,10,12,14,16,18,20], best: 2, e: true }, nDl: { tiers: [7,9,10,15,20,25,30,35,40,45], epics: [2,4,6,8,10,12,14,16,18,20], best: 2, e: true }, nmTisi: { tiers: [75,105,135,150,225,300,375,450,525,600,675], epics: [1,2,3,4,5,6,7,8,9,10,11], best: 3, e: true }, lTisi: { tiers: [50,70,90,100,150,200,250,300,350,400,450], epics: [1,2,3,4,5,6,7,8,9,10,11], best: 3, e: true }, hTisi: { tiers: [25,35,45,50,75,100,125,150,175,200,225], epics: [1,2,3,4,5,6,7,8,9,10,11], best: 3, e: true }, nTisi: { tiers: [5,7,9,10,15,20,25,30,35,40,45], epics: [1,2,3,4,5,6,7,8,9,10,11], best: 3, e: true }, njack: { tiers: [4,20,24,48,72,96,120,144,168,192], epics: [2,3,4,6,7,8,9,10,11,12], best: 0, e: true}, hjack: { tiers: [6,30,36,72,108,144,180,216,252,288], epics: [2,3,4,6,7,8,9,10,11,12], best: 0, e: true}, ljack: { tiers: [8,40,48,96,144,192,240,288,336,384], epics: [2,3,4,6,7,8,9,10,11,12], best: 0, e: true}, nmjack: { tiers: [12,60,72,144,216,288,360,432,504,576], epics: [2,3,4,6,7,8,9,10,11,12], best: 0, e: true}, hjr: { tiers: [30,150,180,360,750,1500], epics: [8,12,16,27,36,72], best: 0, e: true}, njr: { tiers: [20,100,120,240,500,1000], epics: [8,12,16,27,36,72], best: 0, e: true}, ljr: { tiers: [40,200,240,480,1000,2000], epics: [8,12,16,27,36,72], best: 0, e: true}, nmjr: { tiers: [60,300,360,720,1500,3000], epics: [8,12,16,27,36,72], best: 0, e: true}, yyd: { tiers: [125,175,250,300,375,450,525,625,900,1500], epics: [3,8,12,13,15,16,18,21,23,36], best: 2, e: true}, nessy: { tiers: [120,180,225,240,300,500,750,1000], epics: [9,10,11,12,13,14,17,20], best: 1, e: true}, hurk: { tiers: [90,135,150,180,225,300,550,900], epics: [3,7,10,12,15,19,26,30], best: 2, e: true}, mall: { tiers: [100,150,225,300,375,450,525,600,900], epics: [3,8,11,12,14,16,18,20,24], best: 1, e: true}, nIns: { tiers: [5,7,9,10,15,20,25,30,35,40,45], epics: [1,2,3,4,5,6,7,8,9,10,11], best: 3, e: true}, hIns: { tiers: [6.250,8.750,11.25,12.50,18.75,25,31.25,37.50,43.75,50,56.25], epics: [1,2,3,4,5,6,7,8,9,10,11], best: 3, e: true}, lIns: { tiers: [8,11.20,14.40,16,24,32,40,48,56,64,72], epics: [1,2,3,4,5,6,7,8,9,10,11], best: 3, e: true}, nmIns: { tiers: [10,14,18,20,30,40,50,60,70,80,90], epics: [1,2,3,4,5,6,7,8,9,10,11], best: 3, e: true}, nker: { tiers: [20,28,36,40,60,80,100,120,140,160,180], epics: [1,2,3,4,5,6,7,8,9,10,11], best: 3, e: true}, hker: { tiers: [25,35,45,50,75,100,125,150,175,200,225], epics: [1,2,3,4,5,6,7,8,9,10,11], best: 3, e: true}, lker: { tiers: [32,44.80,57.60,64,96,128,160,192,224,256,288], epics: [1,2,3,4,5,6,7,8,9,10,11], best: 3, e: true}, nmker: { tiers: [40,56,72,80,120,160,200,240,280,320,360], epics: [1,2,3,4,5,6,7,8,9,10,11], best: 3, e: true}, nSlut: { tiers: [6.660,9.324,11.99,13.32,19.98,26.64,33.30,39.96,46.62,53.28,59.94], epics: [1,2,3,4,5,6,7,8,9,10,11], best: 3, e: true}, hSlut: { tiers: [8.325,11.66,14.99,16.65,24.98,33.30,41.63,49.95,58.28,66.60,74.93], epics: [1,2,3,4,5,6,7,8,9,10,11], best: 3, e: true}, lSlut: { tiers: [10.66,14.92,19.18,21.31,31.97,42.62,53.28,63.94,74.59,85.25,95.90], epics: [1,2,3,4,5,6,7,8,9,10,11], best: 3, e: true}, nmSlut: { tiers: [13.32,18.65,23.98,26.64,39.96,53.28,66.60,79.92,93.24,106.6,119.9], epics: [1,2,3,4,5,6,7,8,9,10,11], best: 3, e: true}, sic: { tiers: [400,500,600,700,800,900,1000,2000], epics: [10,11,12,13,14,15,16,32], best: 0, e: true}, vort: { tiers: [200,300,400,500,600,700,800,900,1000,1500,2000,2500,3000,3500], epics: [3,10,14,15,17,18,21,23,32,37,44,52,58,90], best: 1, e: true}, lux: { tiers: [8,17,26,35,45,56,67,78,90,103,116,129,143,157,173,188,202,220,238,255,270,293,311,330,350], epics: [2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26], best: 9, e: true }, keron: { tiers: [8,17,26,35,45,56,67,78,90,103,116,129,143,157,173,188,202,220,238,255,270,293,311,330,350,1000], epics: [2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,30], best: 9, e: true } }, linkNames: { 'prntscr.com': 'LightShot', 'www.youtube.com': 'YouTube', 'i.imgur.com': 'imgur', 'imgur.com': 'imgur', 'docs.google.com': 'Google Docs', 'userscripts.org': 'Script', 'www.dawnofthedragons.com': 'DotD Forum', 'dotd.wikia.com': 'DotD Wiki', 'www.fooby.de': 'DotD Log Analyzer'}, //raidArray: [], camps: { bob: {name: 'Bastion of Blood', time: [120, 96], prefixes: 'Regenerating, Morphling, Vengeful, Chilling', numNodes: 6, nodes: ['bmp', 'gor', 'chi', 'zh', 'sic', 'bob'], mods: ['Speed Run: halved camp timer, +20% guild rep from EoC', 'Hailstorm: +1 prefix, +20% guild exp from EoC', 'Nerfed: -30% player damage, special loot from EoC'], tiers: [[5, 31, 0],[25, 32, 0],[75, 33, 0],[100, 34, 0],[200, 35, 7],[250, 36, 8],[320, 37, 9],[375, 38, 10],[480, 39, 11],[550, 43, 14],[640, 46, 17],[960, 48, 22],[1500, 50, 24],[2400, 53, 26],[2750, 55, 29],[5000, 62, 38],[7000, 64, 42],[10000, 69, 47],[15000, 74, 52]], bmp: {name: 'Black Moon Pack', sname: 'Bmp', type: 'Human, Campaign', size: 25, hp: [6000, 18000], gold: false, tiers: [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0]}, gor: {name: 'Gorgon', sname: 'Gor', type: 'Campaign', size: 50, hp: [12000, 36000], gold: false, tiers: [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0]}, chi: {name: 'Chimera', sname: 'Chi', type: 'Campaign', size: 75, hp: [28000, 84000], gold: false, tiers: [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0]}, zh: {name: 'Zombie Horde', sname: 'ZH', type: 'Campaign, Undead', size: 100, hp: [50000, 150000], gold: false, tiers: [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]}, sic: {name: 'Byron Siculus', sname: 'Sic', type: 'Campaign', size: 100, hp: [50000, 150000], gold: true, tiers: [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]}, bob: {name: 'Bastion of Blood', sname: 'BoB', type: 'Campaign, Undead, Siege', size: 100, hp: [50000, 150000], gold: false, tiers: [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]}}, mam: {name: 'Monsters and Magma', time: [120, 96], prefixes: 'Regenerating, Vengeful, Chilling, Curse', numNodes: 7, nodes: ['wlp', 'tos', 'gol', 'ele', 'gmh', 'wrm', 'imx'], mods: ['Speed Run: halved camp timer, +20% guild rep from EoC', 'Hailstorm: +1 prefix, +20% guild exp from EoC', 'Fatigued: -45% player damage, special loot and +3 slots from EoC', 'Endurance Run: Node timer set to 4h, Molten Troves in EoC'], tiers: [[5, 31, 0],[25, 32, 0],[75, 33, 0],[100, 34, 0],[200, 35, 7],[250, 36, 8],[320, 37, 9],[375, 38, 10],[480, 39, 11],[550, 40, 12],[640, 41, 13],[960, 42, 14],[1500, 43, 15],[2400, 44, 16],[2750, 45, 17],[4500, 58, 24],[5000, 62, 38],[5500, 64, 26],[7000, 64, 42],[7500, 74, 28],[10000, 69, 47],[15000, 74, 52]], wlp: {name: 'Imryx\'s Whelps', sname: 'Wlp', type: 'Dragon, Underground, Campaign', size: 25, hp: [7000, 21000], gold: false, tiers: [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0]}, tos: {name: 'Magma Tossers', sname: 'Tos', type: 'Underground, Construct, Campaign', size: 50, hp: [13000, 39000], gold: false, tiers: [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0]}, gol: {name: 'Magma Golem', sname: 'Gol', type: 'Underground, Construct, Campaign', size: 50, hp: [16000, 48000], gold: true, tiers: [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0]}, ele: {name: 'Magma Elemental', sname: 'Ele', type: 'Underground, Magical Creature, Campaign', size: 75, hp: [30000, 90000], gold: false,tiers: [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0]}, gmh: {name: 'Grt. Magma Horror', sname: 'Gmh', type: 'Campaign, Undead', size: 100, hp: [55000, 165000], gold: false, tiers: [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 1, 0, 1, 1]}, wrm: {name: 'Magma Worm', sname: 'Wrm', type: 'Underground, Campaign', size: 100, hp: [60000, 180000], gold: true, tiers: [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 1, 0, 1, 1]}, imx: {name: 'Imryx the Incinerator', sname: 'Imx', type: 'Dragon, Underground, Campaign', size: 100, hp: [65000, 195000], gold: false, tiers: [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 1, 0, 0]}}, gd: {name: 'The Grey Death', time: [120, 96], prefixes: 'Regenerating, Vengeful, Chilling, Curse', numNodes: 6, nodes: ['crk', 'zrn', 'nun', 'tms', 'crn', 'hrt'], mods: ['Speed Run: halved camp timer, +20% guild rep from EoC', 'Hailstorm: +1 prefix, +20% guild exp from EoC', 'Fatigued: -45% player damage, special loot and +3 slots from EoC'], tiers: [[25, 31, 0],[100, 34, 0],[200, 36, 6],[300, 38, 9],[500, 40, 14],[750, 42, 16],[1000, 45, 18],[2500, 48, 21],[4100, 50, 25],[6500, 58, 29],[6500, 54, 27],[8500, 62, 31],[8500, 63, 32],[10000, 64, 33],[15000, 66, 35],[20000, 68, 37],[30000, 70, 39],[40000, 73, 41]], crk: {name: 'Carshk the Marauder', sname: 'Crk', type: 'Campaign', size: 25, hp: [8000, 25600], gold: false, tiers: [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0]}, zrn: {name: 'Zranras', sname: 'Zrn', type: 'Campaign, Beastman', size: 50, hp: [15000, 48000], gold: false, tiers: [1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 1, 1, 0, 0, 0, 0]}, nun: {name: 'General Nund', sname: 'Nun', type: 'Campaign, Ogre', size: 50, hp: [20000, 50000], gold: false, tiers: [1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 1, 1, 1, 0, 0]}, tms: {name: 'Thurmavus the Ripper', sname: 'Tms', type: 'Campaign, Dragon', size: 100, hp: [75000, 202500], gold: false, tiers: [1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 1]}, crn: {name: 'Craenaestra the Stalker', sname: 'Crn', type: 'Campaign, Dragon', size: 100, hp: [80000, 224000], gold: true, tiers: [1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 1]}, hrt: {name: 'Horthania the Grey', sname: 'Hrt', type: 'Campaign, Dragon', size: 100, hp: [90000, 270000], gold: false, tiers: [1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 1]}}, goc: {name: 'Giants of Chalua', time: [120, 96], prefixes: 'Regenerating, Vengeful, Chilling, Curse', numNodes: 6, nodes: ['mwm', 'bl', 'gh', 'fgs', 'gc', 'ha'], mods: ['Speed Run: halved camp timer, +20% guild rep from EoC', 'Hailstorm: +1 prefix, +20% guild exp from EoC', 'Fatigued: -45% player damage, Boss loot from EoC', 'Endurance Run: Node timer set to 4h, 10 guild tokens in EoC'], tiers: [[25, 32, 0, 0],[150, 34, 0, 0],[250, 35, 7, 0],[480, 39, 11, 0],[640, 41, 16, 0],[960, 42, 18, 1],[1500, 43, 19, 1],[2500, 45, 21, 3],[4750, 48, 25, 4],[5500, 52, 27, 5],[6400, 54, 29, 5],[8750, 56, 31, 6],[10000, 58, 34, 6],[15000, 60, 38, 8],[25000, 64, 44, 9],[30000, 66, 46, 9],[35000, 68, 48, 9],[40000, 70, 50, 9],[50000, 74, 56, 10]], mwm: {name: 'Monkey Warrior Minions', sname: 'MWM', type: 'Human, Campaign', size: 25, hp: [15000, 45000], gold: false, tiers: [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0]}, bl: {name: 'Basileus Lizard', sname: 'BL', type: 'Campaign', size: 50, hp: [25000, 75000], gold: false, tiers: [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0]}, gh: {name: 'Giant Hunter', sname: 'GH', type: 'Giant, Campaign', size: 75, hp: [55000, 165000], gold: false, tiers: [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 0, 0, 0, 0]}, fgs: {name: 'Fire Giant Shaman', sname: 'FGS', type: 'Giant, Campaign', size: 100, hp: [100000, 250000], gold: false, tiers: [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0]}, gc: {name: 'Giant Cook', sname: 'GC', type: 'Giant, Campaign', size: 100, hp: [125000, 312500], gold: true, tiers: [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0]}, ha: {name: 'Hitullpa Aatqui', sname: 'HA', type: 'Giant, Campaign', size: 100, hp: [150000, 375000], gold: false, tiers: [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1]}}, fw: {name: 'The Frozen War', time: [120, 96], prefixes: 'Frighten Mount, Ethereal, Trample, Intimidate, Vulnerable, Vengeful, Chilling, Curse', numNodes: 6, nodes: ['ur', 'fe', 'nsg', 'bsn', 'bsh', 'eiw'], mods: ['Speed Run: halved camp timer, +20% guild rep from EoC', 'Hailstorm: +1 prefix, +20% guild exp from EoC', 'Fatigued: -45% player damage, Extra loot from EoC', 'Endurance Run: Node timer set to 4h, 10 guild tokens in EoC'], tiers: [[25, 32, 0, 0],[150, 34, 0, 0],[250, 35, 7, 0],[480, 39, 11, 0],[640, 41, 16, 0],[960, 42, 18, 1],[1500, 86, 38, 1],[2500, 90, 42, 3],[4750, 96, 50, 4],[5500, 104, 54, 5],[6400, 54, 29, 5],[8750, 112, 62, 6],[10000, 116, 68, 6],[15000, 120, 76, 8],[10000, 112, 62, 6],[15000, 116, 68, 8],[25000, 120, 76, 9],[30000, 132, 92, 9],[35000, 136, 96, 9],[40000, 140, 100, 9],[50000, 150, 112, 9]], ur: {name: 'Ursine Raiders', sname: 'UR', type: 'Aquatic, Human, Campaign', size: 25, hp: [18000, 54000], gold: false, tiers: [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0]}, fe: {name: 'Frost Elemental', sname: 'FE', type: 'Aquatic, Magical Cereature, Campaign', size: 50, hp: [28000, 84000], gold: false, tiers: [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0]}, nsg: {name: 'Northern Sea Giant', sname: 'NSG', type: 'Aquatic, Giant, Campaign', size: 100, hp: [105000, 262500], gold: false, tiers: [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0]}, bsn: {name: 'Konguar, Giant King & Jormungan the Sea-Storm (Normal)', sname: 'BSN', type: 'Aquatic, Dragon, Giant, Campaign', size: 100, hp: [160000, 400000], gold: false, tiers: [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1], epics: [0,0,0,0,0,1,1,1,1,1,1,0,0,0,1,1,1,1,1,1,1]}, bsh: {name: 'Konguar, Giant King & Jormungan the Sea-Storm (Hard)', sname: 'BSH', type: 'Aquatic, Dragon, Giant, Campaign', size: 100, hp: [160000, 400000], gold: false, tiers: [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1], epics: [0,0,0,0,0,1,1,1,2,2,3,0,0,0,3,4,4,5,5,6,6]}, eiw: {name: 'Elvigar the Ice Waver', sname: 'EIW', type: 'Aquatic, Undead, Campaign', size: 100, hp: [170000, 425000], gold: true, tiers: [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1], epics: [0,0,0,0,0,1,1,1,1,1,2,0,0,0,3,4,5,6,7,8,10]}} }, slapSentences: [ 'slaps in the face with a rotten old fish', 'slaps around with a glove', 'slaps around with an armoured glove', 'hacks into \'s computer and slaps up side the head with a rubber chicken', 'slaps around a bit with a wet noddle', 'slaps about the head and shoulders with a rubber chicken', 'slaps \'s face so hard, has to walk backwards from now on', 'slaps some sense into with a red brick', 'slaps with a herring', 'slaps with a fire hose', 'slaps with a huge law suit', 'slaps with a great big, wet, 100% rubber duck', 'slaps with a large dildo' ], reload: function () { SRDotDX.util.extEcho('Reloading, please wait...'); activateGame(); }, gframe: function(msg) { if(typeof document.getElementById('gameiframe') === 'object' && typeof document.getElementById('gameiframe').contentWindow === 'object') document.getElementById('gameiframe').contentWindow.postMessage(msg, '*'); }, fails: 0, load: function () { if (typeof holodeck === 'object' && holodeck.ready && typeof ChatDialogue === 'function' && typeof activateGame === 'function') { ChatDialogue.prototype.sendInput = function () { //workaround for broken raid links - fixing on the fly var b = this._input_node.value.replace(/kv_&/ig, "&kv_"); var a = b.match(/(?:.|\n){1,240}(\b|$)/g); if(a !== null) { var al = a.length - 1, i; if (al < 1 || this._input_node.value.charAt(0) == '/') this._holodeck.processChatCommand(a[0]) && this._holodeck.filterOutgoingMessage(a[0], this._onInputFunction); else { var msg, tout = 50; for(i = 0; i <= al; i++) { msg = (i == 0 ? '' : '... ') + a[i] + (i == al ? '' : '...'); (function (a, b) { return SRDotDX.gui.FPXTimerArray[i] = setTimeout(function(){b._holodeck.filterOutgoingMessage(a,b._onInputFunction)},tout); })(msg, holodeck._active_dialogue); tout += 500; } } } this._input_node.value = ""; }; ChatDialogue.prototype.SRDotDX_emote = function (msg) { var user = holodeck._active_user.chatUsername(); this.displayUnsanitizedMessage(user, '**' + user + ' ' + msg + '**', {class: 'emote'}, {}); }; ChatDialogue.MESSAGE_TEMPLATE = new Template('

    #{timestamp}#{room}#{prefix}#{user}#{ign}: #{message}

    '); Holodeck.prototype.addDotdChatCommand = function (a, b) { a = a.split(','); for (var i = 0; i < a.length; i++) { this._chat_commands[a[i]] || (this._chat_commands[a[i]] = []); this._chat_commands[a[i]].push(b) } }; ChatDialogue.prototype.displayUnsanitizedMessage = function (usr, msg, cls, pfx) { cls || (cls = {}); pfx || (pfx = {}); var active_room, allow_mutes = (active_room = this._holodeck.chatWindow().activeRoom()) && !active_room.canUserModerate(active_room.self()) || pfx.whisper; if (!allow_mutes || !this._user_manager.isMuted(usr)) { var e = !pfx.non_user ? "chat_message_window_username" : "chat_message_window_undecorated_username"; var f = usr == this._user_manager.username(), h = [], rm = ''; var curTs = new Date().getTime().toString(); var kongUsr = usr; if (msg.charAt(0) == '[' && (msg.charAt(2) == '|' || msg.charAt(3) == '|')) { var sp = msg.split(']'); rm = sp[0].split('|')[0] + '] '; usr = sp[0].split('|')[1]; msg = sp[1]; h.push('bot') } var trueUsr = usr; e = [e]; pfx = pfx['private'] ? 'To ' : ''; if (cls['class'] != 'script') this._messages_count % 2 && h.push("even"), this._messages_count++; cls['class'] && h.push(cls['class']); if ((!cls['class'] || cls['class'].indexOf('emote') == -1) && msg.charAt(0) == '*' && msg.charAt(2) != '*') { var msgLen = msg.length; if (msgLen > 5) { msg = '**' + usr + ' ' + (msg.charAt(msgLen - 1) == '*' ? msg.slice(1, msgLen - 1) : msg.slice(1, msgLen)) + '**'; h.push('emote'); } } var rUsr = h.join(' ').indexOf('sent_whisper') > -1 ? this._user_manager.username() : usr; var raid = SRDotDX.getRaidLink(msg, rUsr); if (raid) { h.push('DotDX_raid'); h.push('DotDX_sid_' + raid.sid); h.push('DotDX_diff_' + raid.diff); h.push('DotDX_raidId_' + raid.id); if (raid.visited) h.push('DotDX_visitedRaid'); h.push('DotDX_fltChat_' + raid.boss + '_' + (raid.diff - 1)); msg = raid.ptext + '' + raid.linkText() + '' + raid.ntext; SRDotDX.gui.toggleRaid('visited', raid.id, raid.visited); SRDotDX.gui.joining ? SRDotDX.gui.pushRaidToJoinQueue(raid.id) : SRDotDX.gui.selectRaidsToJoin('chat'); } else { //var linkReg = /((?:ht|(?:t|s)?f)tps?\:(?:\/\/))?((?:[a-z\d\-\_]+?\.)+[a-z]{2,4}\b|\b(?:[1-9]|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])(?:\.(?:[0-9]|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])){3}\b)((?:\/[\w\/\.\-\,\:\%\#\=]+)?(?:\/?\?[\w\-\#\:\?\=\&\.\;]*|\/?\#(?:\w+)?)?\b)?/g; var linkReg = /(?:^|\s|,|;)(((?:ht|(?:t|s)?f)tps?:(?:\/\/))([\w\.\-]{4,}[a-z0-9])([\w\/\?\.\-=&#:;%()]*[\w#;)])?)/g; var links, link, lname, lidx, found = false; while((links = linkReg.exec(msg))) { found = true; console.log('[DotDX] Link found: ' + msg); if(!/kongregate.com/i.test(links[1]) && !/\.\./.test(links[1])){ link = links[1].replace(/&/ig,'&').replace(/ /ig,''); lname = SRDotDX.config.formatLinks ? (SRDotDX.linkNames[links[3]] ? ('['+SRDotDX.linkNames[links[3]]+']') : links[3]) : link; link = '' + lname + ''; linkReg.lastIndex += link.length - links[1].length; lidx = links.index + links.indexOf(links[1]); msg = msg.substring(0, lidx) + link + msg.substring(lidx + links[1].length, msg.length); } } if(found) SRDotDX.linksHistory.push({t:new Date().getTime(), u:usr, m:msg}); } var ign = ''; if (SRDotDX.config.mutedUsers[usr]) h.push('DotDX_hidden'); var fCls = h.join(' '); if (SRDotDX.config.ignUsers[usr] && fCls.indexOf('emote') < 0) { switch(SRDotDX.config.ignMode) { case 2: ign = ' ('+SRDotDX.config.ignUsers[usr]+')'; break; case 1: usr = SRDotDX.config.ignUsers[usr]; e.push('ign'); break; } } var ts = fCls.indexOf('emote') > -1 || fCls.indexOf('script') > -1 ? '' : ('(' + ('0' + (new Date().getHours())).slice(-2) + ':' + ('0' + (new Date().getMinutes())).slice(-2) + ') '); f && e.push('is_self'); usr = ChatDialogue.MESSAGE_TEMPLATE.evaluate({prefix: pfx, user: usr, username: kongUsr, dotdxusr: trueUsr, ign: ign, message: msg, classNames: fCls, userClassNames: e.join(' '), timestamp: ts, room: rm, magId: curTs }); this.insert(usr); } }; ChatRoomGroup.prototype.buildRegularRoomNode = function (a) { var b = new Element("li", {"class": 0 === i % 2 ? "even room" : "odd room"}); b.room = a; var c = (new Element("p", {"class": "name"})).update(a.name); a.premium_only && (active_user.isPremium() || c.addClassName("upsell"), c.addClassName("premium_room_icon spritesite")); b.insert(c); b.insert((new Element("p", {"class": "user_count" + (a.joinable ? "" : " full")})).update(a.total_user_count)); b.insert(new Element("div", {style: "clear:both;"})); return b }; holodeck.addDotdChatCommand("stop", function (deck, text) { if (SRDotDX.gui.isPosting) SRDotDX.gui.FPXStopPosting(); else SRDotDX.util.extEcho('/stop: Links are not being posted. Stop command invalid.'); return false; }); holodeck.addDotdChatCommand("e", function (deck, text) { var s = text.slice(2); if (s != "") holodeck.activeDialogue().SRDotDX_emote(s); else SRDotDX.util.extEcho('/e: Empty message specified'); return false; }); holodeck.addDotdChatCommand("kill", function (deck, text) { document.getElementById("gameiframe").src = ""; SRDotDX.util.extEcho('Game window killed, have a nice chatting.'); return false; }); holodeck.addDotdChatCommand("update", function (deck, text) { SRDotDX.request.version(); return false; }); holodeck.addDotdChatCommand("help", function (deck, text) { var d = "Available chat commands:
    "; d += "/stop /e /kill /update /reload /relaod /rl /reloaf /mute /unmute /mutelist /ign /unign /ignlist /friend /unfriend /script /clear /cls /clearx /clx /getlinks /wikil /import /imp /fs /room /ijoin /join /wiki /guide /manual /slap /sh /camp /perc /citadel /raid /rd /help"; d += '

    You can click here to navigate to script guide for detailed instructions or use /guide and /manual commands.'; SRDotDX.util.extEcho(d); return false; }); holodeck.addDotdChatCommand("reload,relaod,rl,reloaf", function (deck, text) { SRDotDX.reload(); return false; }); holodeck.addDotdChatCommand("mute", function (deck, text) { var s = text.split(" "); if (s.length == 2 && s[1] != "") { SRDotDX.config.mutedUsers[s[1]] = true; SRDotDX.util.extEcho('User "' + s[1] + '" muted. Use the /unmute command to undo, and the /mutelist to see all muted users.'); SRDotDX.config.save(false); } else SRDotDX.util.extEcho('/mute: Invalid parameters specified. The proper syntax is "/mute [username]".'); return false; }); holodeck.addDotdChatCommand("ign", function (deck, text) { var s = text.split(" "); if (s.length == 3 && s[1] != "" && s[2] != "") { SRDotDX.config.ignUsers[s[1]] = s[2]; SRDotDX.util.extEcho(s[1] + '\'s ign "' + s[2] + '" added. Use the /unign command to undo, and the /ignlist to see all users with known ign.'); SRDotDX.config.save(false); } else SRDotDX.util.extEcho('/ign: Invalid parameters specified. The proper syntax is "/ign [kong username] [in game name]".'); return false; }); holodeck.addDotdChatCommand('unmute', function (deck, text) { var s = text.split(' '); if (s.length === 2 && s[1] !== '') { if (s[1] === 'all') { for (var u in SRDotDX.config.mutedUsers) delete SRDotDX.config.mutedUsers[u]; SRDotDX.config.save(false); SRDotDX.util.extEcho('All users unmuted.'); } else if (SRDotDX.config.mutedUsers[s[1]]) { delete SRDotDX.config.mutedUsers[s[1]]; SRDotDX.util.extEcho('User "' + s[1] + '" unmuted.'); SRDotDX.config.save(false); } else SRDotDX.util.extEcho('No muted user "' + s[1] + '" found.'); } else SRDotDX.util.extEcho('/unmute: Invalid parameters specified. The proper syntax is "/unmute [username]". "/unmute all" can be used to unmute all muted users.'); return false; }); holodeck.addDotdChatCommand('unign', function (deck, text) { var s = text.split(' '); if (s.length === 2 && s[1] !== '') { if (s[1] === 'all') { for (var u in SRDotDX.config.ignUsers) delete SRDotDX.config.ignUsers[u]; SRDotDX.config.save(false); SRDotDX.util.extEcho('All users removed from IGN list.'); } else if (SRDotDX.config.ignUsers[s[1]]) { delete SRDotDX.config.ignUsers[s[1]]; SRDotDX.util.extEcho('Removed ' + s[1] + '\'s IGN.'); SRDotDX.config.save(false); } else SRDotDX.util.extEcho('No IGN of user "' + s[1] + '" found.'); } else SRDotDX.util.extEcho('/unign: Invalid parameters specified. The proper syntax is "/unign [username]". "/unign all" can be used to clear IGN list.'); return false; }); holodeck.addDotdChatCommand('mutelist', function (deck, text) { var s = 'List of users currently muted:
    '; var i = 0; for (var u in SRDotDX.config.mutedUsers) { s += u + '
    '; i++ } if (i == 0) s = 'No users currently muted.
    '; s += '
    Use the /mute and /unmute commands to add or remove users on this list.'; SRDotDX.util.extEcho(s); return false; }); holodeck.addDotdChatCommand('ignlist', function (deck, text) { var s = 'List of known users IGN:
    '; if (SRDotDX.config.ignUsers.length === 0) s = 'No users added to IGN list.
    '; else for (var u in SRDotDX.config.ignUsers) s += u + ':' + SRDotDX.config.ignUsers[u] + '
    '; s += '
    Use the /ign and /unign commands to add or remove users on this list.'; SRDotDX.util.extEcho(s); return false; }); holodeck.addDotdChatCommand('script', function (deck, text) { SRDotDX.gui.FPXdoWork('Script link: https://greasyfork.org/scripts/406-mutik-s-dotd-script'); return false; }); holodeck.addDotdChatCommand('clear,cls', function (deck, text) { holodeck.activeDialogue().clear(); return false }); holodeck.addDotdChatCommand('clearx,clx', function (deck, text) { var x = document.getElementsByClassName('script'); var i = x.length; while(i--) x[i].parentNode.removeChild(x[i]); setTimeout(SRDotDX.gui.scrollChat, 50); return false }); holodeck.addDotdChatCommand('wikil', function (deck, text) { SRDotDX.gui.FPXdoWork('http://dotd.wikia.com/wiki/Dawn_of_the_Dragons_Wiki'); return false; }); holodeck.addDotdChatCommand('import,imp', function (deck, text) { SRDotDX.util.extEcho('Importing all raids from server'); SRDotDX.request.raids(); return false; }); holodeck.addDotdChatCommand('friend', function (deck, text) { var s = text.split(" "); if (s.length == 2 && s[1] != "") { if (typeof SRDotDX.config.friendUsers[s[1]] != 'object') { SRDotDX.config.friendUsers[s[1]] = [false, false, false, false, true]; SRDotDX.config.save(false); SRDotDX.gui.refreshFriends(); SRDotDX.util.extEcho('Added ' + s[1] + ' to friends'); } } return false; }); holodeck.addDotdChatCommand('unfriend', function (deck, text) { var s = text.split(" "); if (s[1] == 'all') { for (var u in SRDotDX.config.friendUsers) delete SRDotDX.config.friendUsers[u]; SRDotDX.config.save(false); SRDotDX.gui.refreshFriends(); SRDotDX.util.extEcho('All users removed from friend list.'); } else if (SRDotDX.config.friendUsers[s[1]]) { delete SRDotDX.config.friendUsers[s[1]]; SRDotDX.config.save(false); SRDotDX.gui.refreshFriends(); SRDotDX.util.extEcho('Removed ' + s[1] + ' from friends'); } else SRDotDX.util.extEcho('User "' + s[1] + '" not found on friend list.'); return false; }); holodeck.addDotdChatCommand('fs', function (deck, text) { var cmd = text.split(' '); if (cmd[0] === '/fs' && cmd[1]) { SRDotDX.util.extEcho('Posting raid to friends'); document.getElementById('DotDX_raidsToSpam').value = cmd[1]; SRDotDX.gui.spamRaidsToFriends(); } else SRDotDX.util.extEcho('Wrong syntax. Usage: /fs '); return false; }); holodeck.addDotdChatCommand('room', function (deck, text) { var cmd = text.split(' '); if (cmd[0] === '/room' && cmd[1]) SRDotDX.gui.gotoRoom(cmd[1]); else SRDotDX.gui.gotoRoom(0); return false; }); holodeck.addDotdChatCommand('getlinks', function (deck, text) { SRDotDX.util.getChatLinks(); SRDotDX.util.extEcho('Links opened in new tab'); return false; }); holodeck.addDotdChatCommand('ijoin,join', function (deck, text) { if (text.charAt(1) === 'j') SRDotDX.gui.quickImportAndJoin(text.slice(6)); else SRDotDX.gui.quickImportAndJoin(text.slice(7), true); return false; }); holodeck.addDotdChatCommand('wiki', function (deck, text) { var p = /^\/wiki (.*?)$/i.exec(text); if (p) { window.open('http://dotd.wikia.com/wiki/Special:Search?search=' + p[1]); SRDotDX.util.extEcho('Wiki search opened.'); } else SRDotDX.util.extEcho('/wiki: Invalid parameters specified'); return false; }); holodeck.addDotdChatCommand('guide,manual', function (deck, text) { window.open('https://docs.google.com/document/d/14X0WhnJrISQbxdfQv_scJbG1sUyXdE2g4iMfHmLM0E0/edit'); SRDotDX.util.extEcho('Script guide opened in new tab/window.'); return false; }); holodeck.addDotdChatCommand('slap', function (deck, text) { var p = /^\/slap (.*?)$/i.exec(text); if (p) { var num = Math.round((Math.random() * (SRDotDX.slapSentences.length - 1))); SRDotDX.gui.FPXdoWork('*' + SRDotDX.slapSentences[num].replace(//g, p[1]) + '*'); } else SRDotDX.util.extEcho('/slap: Invalid parameters specified'); return false; }); holodeck.addDotdChatCommand('sh', function (deck, text) { var p = /^\/sh (.*?)$/i.exec(text); if (p) { var fnd1 = p[1].toLowerCase(), fnd2 = p[1].length, found = false, sho; for (i in SRDotDX.shortcuts) { if (SRDotDX.shortcuts.hasOwnProperty(i)) { sho = SRDotDX.shortcuts[i]; if (sho.n.toLowerCase().indexOf(fnd1) > -1 && sho.n.length == fnd2) { SRDotDX.util.extEcho('' + sho.bn + ': ' + sho.desc); found = true; } } } if (!found) SRDotDX.util.extEcho('/sh: Shortcut not found in db'); } else SRDotDX.util.extEcho('/sh: No parameters specified'); return false; }); holodeck.addDotdChatCommand('perc', function (deck, text) { var bok = text.indexOf('bok', 4); var cwp = text.indexOf('cwp', 4); var empty = text.length < 6; var output = ""; if (bok >= 0 || empty) output = "Book of Knowledge Perc. Tiers:
    \ 1 – 3999: Brown/Grey
    \ 4000 – 5999: Brown/Grey/Green
    \ 6000 – 9999: Grey/Green
    \ 10000 – 13999: Grey/Green/Blue
    \ 14000 – 15999: Green/Blue
    \ 16000 – 17999: Green/Blue/Purple
    \ 18000 – 21999: Blue/Purple
    \ 22000 – 23999: Blue/Purple/Orange
    \ 24000 – 29999: Purple/Orange
    \ 30000 - 32999: Orange
    \ 33000 - 35999: Orange/Red (more orange)
    \ 36000 - 49999: Orange/Red (more red)
    \ 50000 - 69999: Orange/Red (even more red)
    \ 70000+ : Red"; if (empty) output += "
    \ -------------------------------------------------
    "; if (cwp >= 0 || empty) output += "Clockwork Parts Perc. Tiers:
    \ 1-1999: 10x Perf. Clockwork Part
    \ 2000-3999: 25x Perf. Clockwork Part
    \ 4000-5999: 40x Perf. Clockwork Part
    \ 6000-7999: 55x Perf. Clockwork Part
    \ 8000-9999: 70x Perf. Clockwork Part
    \ 10000-11999: 85x Perf. Clockwork Part
    \ 12000-13999: 100x Perf. Clockwork Part
    \ 14000-15999: 115x Perf. Clockwork Part
    \ 16000-17999: 130x Perf. Clockwork Part
    \ 18000-19999: 145x Perf. Clockwork Part
    \ 20000-21999: 160x Perf. Clockwork Part
    \ 22000-23999: 175x Perf. Clockwork Part
    \ 24000-25999: 190x Perf. Clockwork Part
    \ 26000-27999: 205x Perf. Clockwork Part
    \ 28000-29999: 220x Perf. Clockwork Part
    \ 30000-32999: 235x Perf. Clockwork Part
    \ 33000-35999: 245x Perf. Clockwork Part
    \ 36000+ : 260x Perf. Clockwork Part"; SRDotDX.util.extEcho(output); return false; }); holodeck.addDotdChatCommand('citadel', function (deck, text) { SRDotDX.util.extEcho("Barrack Book = Grune N Quest
    \ Barrack Scroll 1 = Hydra NM Raid
    \ Barrack Scroll 2 = Research Library book
    \ Barrack Scroll 3 = Rhalmarius the Despoiler NM Raid/Crafting
    \ Barrack Scroll 4 = The New Claw (World Raid) craft
    \ Barrack Scroll 5 = Burbata the Spine-Crusher NM Raid
    \ Barrack Scroll 6 = Temp loot from Hargamesh/Grimsly NM Raids
    \ Barrack Scroll 7 = The Baroness NM Quest
    \ Barrack Scroll 8 = Crafting from Imryx the Incinerator NM Raid
    \ Armorsmith Book = Lurking Horror N Quest
    \ Armorsmith Scroll 1 = Nalagarst NM Raid
    \ Armorsmith Scroll 2 = Research Library 1
    \ Armorsmith Scroll 3 = Dragon's Lair NM Raid
    \ Armorsmith Scroll 4 = Temp loot from Rift/Sisters NM Raid
    \ Armorsmith Scroll 5 = Baroness NM Raid
    \ Weaponsmith Book = Erebus N Quest
    \ Weaponsmith Scroll 1 = Baroness NM Raid
    \ Weaponsmith Scroll 2 = Research Library 1
    \ Weaponsmith Scroll 3 = Dragon's Lair NM Raid
    \ Weaponsmith Scroll 4 = Temp loot from Mardachus NM Raid
    \ Weaponsmith Scroll 5 = Warlord Zugen NM Raid
    \ Alchemist Book = Nalagarst N Quest
    \ Alchemist Scroll 1 = Kalaxia N Quest
    \ Alchemist Scroll 2 = Research Library 5
    \ Alchemist Scroll 3 = The New Claw (World Raid)
    \ Alchemist Scroll 4 = Teremarthu NM Raid
    \ Research Book = Bellarius N Quest
    \ Research Library Scroll 1 = Mardachus NM Raid
    \ Research Library Scroll 2 = Valanazes NM Raid
    \ Research Library Scroll 3 = Teremarthu NM Raid
    \ Research Library Scroll 4 = Z'ralk'thalat NM Raid
    \ Research Library Scroll 5 = Simulacrum of Dahrizon NM Quest
    \ Research Library Scroll 6 = Count Siculus' Phantom N Quest
    \ Pet Emporium Book = Count Siculus' Phantom N Quest
    \ Pet Emporium Scroll 1 = Research Library 4
    \ Pet Emporium Scroll 2 = Cannibal Barbarians NM Raid
    \ Stables Book = Valanazes N Quest
    \ Stables Scroll 1 = Frog-men Assassins NM Raid
    \ Stables Scroll 2 = Research Library 2
    \ Stables Scroll 3 = Mount Chest
    \ Training Ground Book = Teremarthu N Quest
    \ Training Ground Scroll 1 = Research Library 3
    \ Training Ground Scroll 2 = Temporary loot from Z7 NM Raids
    \ Training Ground Scroll 3 = Invasion Rank: Wyrm-Commander
    \ Training Ground Scroll 4 = Invasion Rank: Chief Battlefield Overseer
    \ Training Ground Scroll 5 = Count Siculus' Phantom L&NM Raid
    \ Training Ground Scroll 6 = Thaltherda the Sea-Slitherer NM Raid
    \ Wizard's Tower Book = Ruzzik the Slayer N Quest
    \ Wizard's Tower Scroll 1 = Salome the Seductress NM Raid
    \ Wizard's Tower Scroll 2 = Kalaxia the Far-Seer NM Raid
    \ Wizard's Tower Scroll 3 = Yydian's Sanctuary NM Raid
    \ Wizard's Tower Scroll 4 = Drulcharus NM Raid
    \ Jeweler Book = Krugnug N Quest
    \ Jeweler Scroll 1 = Thaltherda the Sea-Slitherer NM Raid
    \ Jeweler Scroll 2 = Crafting (General/Events)
    \ Jeweler Scroll 3 = Spectral Erebus Raid/Crafting"); return false; }); holodeck.addDotdChatCommand('camp', function(deck, text) { var p = text.split(' '), msg = ''; if (p[1] && SRDotDX.camps.hasOwnProperty(p[1].toLowerCase())) { var camp = SRDotDX.camps[p[1].toLowerCase()]; var num = camp.tiers[0].length, j, jl; msg += '' + camp.name + ''; msg += '
    Camp time: N ' + camp.time[0] + 'h, H ' + camp.time[1] + 'h
    Prefixes: ' + camp.prefixes; msg += '
    ' + (num > 3 ? '' : ''); for(var i = 0, il = camp.numNodes; i < il; ++i) msg += ''; msg += ''; if(num > 3) { for(i = 0, il = camp.tiers.length; i < il; ++i) { msg += ''; for(j = 0, jl = camp.numNodes; j < jl; ++j) msg += camp[camp.nodes[j]].tiers[i] ? '' : ''; } } else { for(i = 0, il = camp.tiers.length; i < il; ++i) { msg += ''; for(j = 0, jl = camp.numNodes; j < jl; ++j) msg += camp[camp.nodes[j]].tiers[i] ? '' : ''; } } msg += '
    DmgCURERE' + camp[camp.nodes[i]].sname + '
    ' + SRDotDX.util.getShortNumMil(camp.tiers[i][0]) + '' + camp.tiers[i][1] + '' + camp.tiers[i][2] + '' + camp.tiers[i][3] + ''+(camp[camp.nodes[j]].epics !== undefined ? camp[camp.nodes[j]].epics[i] : '✓' )+'
    ' + SRDotDX.util.getShortNumMil(camp.tiers[i][0]) + '' + camp.tiers[i][1] + '' + camp.tiers[i][2] + '
    '; var node; for(i = 0, il = camp.numNodes; i < il; ++i) { node = camp[camp.nodes[i]]; msg += (i ? '
    ' : '') + node.sname + ' — ' + node.name + ', FS: N ' + SRDotDX.util.getShortNumMil(node.hp[0] / node.size) + ' / H ' + SRDotDX.util.getShortNumMil(node.hp[1] / node.size); } SRDotDX.util.extEcho(msg); } else SRDotDX.util.extEcho('No campaigns found matching "' + (p[1] ? p[1] : '') + '". Valid values are: ' + Object.keys(SRDotDX.camps).join(', ')); return false; }); holodeck.addDotdChatCommand('raid,rd', function(deck, text) { var p = text.split(' '); if(p[1]) { var msg = '', j, jl; var diff = !isNaN(p[2]) ? p[2] - 1 : -1; var fnd = p[1].toLowerCase(); var keys = Object.keys(SRDotDX.raids); for(var k = 0, kl = keys.length; k < kl; ++k) { var raid = SRDotDX.raids[keys[k]]; if(raid.name.toLowerCase().indexOf(fnd) > -1) { if(msg !== '') msg += '
    '; msg += '' : '_(Raid)">') + raid.name + ''; msg += '
    ' + (raid.type === '' ? '' : raid.type + '
    ') + SRDotDX.raidSizes[raid.size].name + ' Raid (' + (raid.size === 101 ? 100 : raid.size) + ' slots) | ' + raid.duration + 'h'; msg += '
    '; switch(diff) { case 0: msg += ''; break; case 1: msg += ''; break; case 2: msg += ''; break; case 3: msg += ''; break; default: msg += ''; break; } var size = raid.size < 15 ? 10 : raid.size, fs = []; for(j = 0; j < 4; ++j) fs[j] = raid.health[j] / (raid.size == 101 ? 100 : raid.size); msg += ' \ \ \ \ \ \ '; if(typeof raid.lt !== 'object' && raid.id !== 'rhalmarius_the_despoiler' && raid.id !== 'grundus' && raid.size < 10000) { var ratio = SRDotDX.raidSizes[size].ratios; var ename = SRDotDX.raidSizes[size].enames; for (j = 0, jl = ratio.length; j < jl; ++j) if (ratio[j] > 0) msg += ''; } else if (typeof raid.lt === 'object') { var elen = SRDotDX.lootTiers[raid.lt[0]].tiers; var eleh = SRDotDX.lootTiers[raid.lt[1]].tiers; var elel = SRDotDX.lootTiers[raid.lt[2]].tiers; var elenm = SRDotDX.lootTiers[raid.lt[3]].tiers; var epics = SRDotDX.lootTiers[raid.lt[0]].epics; var best = SRDotDX.lootTiers[raid.lt[0]].best; var e = SRDotDX.lootTiers[raid.lt[0]].e ? 'E' : ''; if(typeof elen[0] === 'number') for(j = 0, jl = epics.length; j < jl; ++j) msg += ''; else msg += ''; } msg += '
    NormalHardLegendNMare
    HP' + SRDotDX.util.getShortNum(raid.health[0]) + '' + SRDotDX.util.getShortNum(raid.health[1]) + '' + SRDotDX.util.getShortNum(raid.health[2]) + '' + SRDotDX.util.getShortNum(raid.health[3]) + '
    FS' + SRDotDX.util.getShortNum(fs[0]) + '' + SRDotDX.util.getShortNum(fs[1]) + '' + SRDotDX.util.getShortNum(fs[2]) + '' + SRDotDX.util.getShortNum(fs[3]) + '
    AP' + SRDotDX.util.getShortNum(fs[3] / 2.0) + '
    ' + ename[j] + '' + SRDotDX.util.getShortNum(fs[0] * ratio[j]) + '' + SRDotDX.util.getShortNum(fs[1] * ratio[j]) + '' + SRDotDX.util.getShortNum(fs[2] * ratio[j]) + '' + SRDotDX.util.getShortNum(fs[3] * ratio[j]) + '
    ' + epics[j] + e + '' + SRDotDX.util.getShortNumMil(elen[j]) + '' + SRDotDX.util.getShortNumMil(eleh[j]) + '' + SRDotDX.util.getShortNumMil(elel[j]) + '' + SRDotDX.util.getShortNumMil(elenm[j]) + '
    -' + elen[0] + '' + eleh[0] + '' + elel[0] + '' + elenm[0] + '
    '; } } if (msg != '') SRDotDX.util.extEcho(msg); else SRDotDX.util.extEcho('No raids found matching: ' + p[1]); } else SRDotDX.util.extEcho('/raid: Invalid parameters specified (help)'); return false; }); window.onbeforeunload = function(){SRDotDX.config.save(false)}; SRDotDX.fails = 0; console.log('[DotDX] Core loaded. Loading user interface...'); SRDotDX.gui.load(); SRDotDX.request.init(); setTimeout(function(){delete SRDotDX.load}, 100); } else if(++SRDotDX.fails < 20) { console.log('[DotDX] Missing needed Kong resources (try:' + SRDotDX.fails + '), retrying in 0.75 second...'); setTimeout(SRDotDX.load, 750); } else { console.log('[DotDX] Unable to locate required Kong resources. Loading aborted'); setTimeout(function(){delete SRDotDX}, 1); } } }; console.log('[DotDX] Initialized. Checking for needed Kong resources ...'); SRDotDX.load(); } console.log('[DotDX] Initializing ...'); if (window.top == window.self) { document.addEventListener("dotd.req", function (param) { var p = JSON.parse(param.data); if (p.wrappedJSObject) p = p.wrappedJSObject; p.callback = function (e, r) { this.onload = null; this.onerror = null; this.ontimeout = null; this.event = e; this.status = r.status; this.responseText = r.responseText; var c = document.createEvent("MessageEvent"); if (c.initMessageEvent) c.initMessageEvent(this.eventName, false, false, JSON.stringify(this), document.location.protocol + "//" + document.location.hostname, 1, unsafeWindow, null); else c = new MessageEvent(this.eventName, {"origin": document.location.protocol + "//" + document.location.hostname, "lastEventId": 1, "source": unsafeWindow, "data": JSON.stringify(this)}); document.dispatchEvent(c); }; p.onload = p.callback.bind(p, "load"); p.onerror = p.callback.bind(p, "error"); p.ontimeout = p.callback.bind(p, "timeout"); setTimeout(function () { GM_xmlhttpRequest(p) }, 1); }); var scr = document.createElement('script'); scr.appendChild(document.createTextNode('(' + main + ')()')); document.head.appendChild(scr); } } else if(window.location.host == '50.18.191.15') { window.onmessage = function(e){ var c = e.data.split('#'); if(c[0].indexOf('dotdx') !== -1) { if(c[0] == 'dotdx.save') { GM_setValue('DotDXext', c[1]); console.log("[DotDX] Saved data: "+c[1]); } var conf = JSON.parse(c[1]); if(conf.removeWChat) { if(document.getElementById('swfdiv') !== null) document.getElementById('swfdiv').parentNode.style.left = '0px'; if(document.getElementById('chatdiv') !== null) { var remdiv = document.getElementById('chatdiv').parentNode; remdiv.parentNode.removeChild(remdiv); } } else if(conf.leftWChat && !conf.hideWChat) { if(document.getElementById('chatdiv') !== null) document.getElementById('chatdiv').parentNode.style.left = '0px'; if(document.getElementById('swfdiv') !== null) document.getElementById('swfdiv').parentNode.style.left = '265px'; } else { if(document.getElementById('chatdiv') !== null) document.getElementById('chatdiv').parentNode.style.left = '760px'; if(document.getElementById('swfdiv') !== null) document.getElementById('swfdiv').parentNode.style.left = '0px'; } } }; if (typeof GM_getValue("DotDXext") != 'string') GM_setValue("DotDXext",JSON.stringify({'removeWChat':false,'leftWChat':false,'hideWChat':false})); window.postMessage('dotdx.init#'+GM_getValue('DotDXext'),'*'); console.log("[DotDX] Injected code into GameFrame"); }