diff --git a/docs/www/emulator/assets/css/main.css b/docs/www/emulator/assets/css/main.css new file mode 100644 index 000000000..4bd7676df --- /dev/null +++ b/docs/www/emulator/assets/css/main.css @@ -0,0 +1,117 @@ +html, +body { + margin: 0; + padding: 0; + -webkit-transition: all 0.2s ease-in-out; + transition: all 0.2s ease-in-out; } + html.dark, + body.dark { + background-color: #000; } + html.dark .header .heading, + body.dark .header .heading { + color: #fff; } + +*:focus { + -webkit-box-shadow: none; + box-shadow: none; + outline: none; } + +.container { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-orient: vertical; + -webkit-box-direction: normal; + -ms-flex-direction: column; + flex-direction: column; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + padding: 10px 50px; } + +@media screen and (max-width: 768px) { + .container { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-orient: vertical; + -webkit-box-direction: normal; + -ms-flex-direction: column; + flex-direction: column; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + padding: 10px; } } + +.header { + max-width: 1200px; + margin: 20px 0; } + .header .heading { + font-family: monospace; + font-size: 24px; + line-height: 24px; + font-weight: 200; + text-align: center; + margin: 0; + -webkit-transition: all 0.2s ease-in-out; + transition: all 0.2s ease-in-out; } + .header .heading.mini { + font-size: 14px; + line-height: 14px; + opacity: 0.6; } + .header .light-btn { + position: fixed; + top: 25px; + right: 25px; + width: 40px; + height: 40px; + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + -webkit-box-pack: center; + -ms-flex-pack: center; + justify-content: center; + background-color: #fff; + border: 1px solid #f1c40f; + border-radius: 50%; + color: #f1c40f; + cursor: pointer; + -webkit-transition: all 0.2s ease-in-out; + transition: all 0.2s ease-in-out; } + .header .light-btn:hover { + background-color: #f1c40f; + color: #fff; } + .header .light-btn.dark { + background-color: #000; + color: #f1c40f; } + .header .light-btn.dark:hover { + background-color: #f1c40f; + color: #fff; } + +.screen-container { + max-width: 100%; + background-color: #000; + overflow-x: scroll; + padding: 0 20px; + border: 1px solid #111; } + .screen-container .emulator-screen { + margin: 10px 0; } + .screen-container .emulator-screen .console { + font-family: monospace; + font-size: 16px; + line-height: 18px; + white-space: pre; + min-width: 770px; } + .screen-container input { + margin: 0 0 10px; + width: 100%; } + +.footer { + max-width: 1200px; + margin: 20px 0; } + .footer .info { + font-family: monospace; + font-size: 12px; } diff --git a/docs/www/emulator/assets/css/main.sass b/docs/www/emulator/assets/css/main.sass new file mode 100644 index 000000000..54140e85c --- /dev/null +++ b/docs/www/emulator/assets/css/main.sass @@ -0,0 +1,109 @@ +html, +body + margin: 0 + padding: 0 + transition: all 0.2s ease-in-out + + &.dark + background-color: #000 + + .header + .heading + color: #fff + +// get rid of the input shadow +*:focus + box-shadow: none + outline: none + + +.container + display: flex + flex-direction: column + align-items: center + padding: 10px 50px + +@media screen and (max-width: 768px) + .container + display: flex + flex-direction: column + align-items: center + padding: 10px + + +.header + max-width: 1200px + margin: 20px 0 + + .heading + font-family: monospace + font-size: 24px + line-height: 24px + font-weight: 200 + text-align: center + margin: 0 + transition: all 0.2s ease-in-out + + &.mini + font-size: 14px + line-height: 14px + opacity: 0.6 + + .light-btn + position: fixed + top: 25px + right: 25px + width: 40px + height: 40px + display: flex + align-items: center + justify-content: center + background-color: #fff + border: 1px solid #f1c40f + border-radius: 50% + color: #f1c40f + cursor: pointer + transition: all 0.2s ease-in-out + + &:hover + background-color: #f1c40f + color: #fff + + &.dark + background-color: #000 + color: #f1c40f + + &:hover + background-color: #f1c40f + color: #fff + + +.screen-container + max-width: 100% + background-color: #000 + overflow-x: scroll + padding: 0 20px + border: 1px solid #111 + + .emulator-screen + margin: 10px 0 + + .console + font-family: monospace + font-size: 16px + line-height: 18px + white-space: pre + min-width: 770px + + input + margin: 0 0 10px + width: 100% + + +.footer + max-width: 1200px + margin: 20px 0 + + .info + font-family: monospace + font-size: 12px \ No newline at end of file diff --git a/docs/www/emulator/assets/js/libv86.js b/docs/www/emulator/assets/js/libv86.js new file mode 100644 index 000000000..b38a27277 --- /dev/null +++ b/docs/www/emulator/assets/js/libv86.js @@ -0,0 +1,1186 @@ +;(function(){'use strict';var $jscomp=$jscomp||{};$jscomp.scope={};$jscomp.ASSUME_ES5=!1;$jscomp.ASSUME_NO_NATIVE_MAP=!1;$jscomp.ASSUME_NO_NATIVE_SET=!1;$jscomp.defineProperty=$jscomp.ASSUME_ES5||"function"==typeof Object.defineProperties?Object.defineProperty:function(a,b,c){a!=Array.prototype&&a!=Object.prototype&&(a[b]=c.value)};$jscomp.getGlobal=function(a){return"undefined"!=typeof window&&window===a?a:"undefined"!=typeof global&&null!=global?global:a};$jscomp.global=$jscomp.getGlobal(this); +$jscomp.SYMBOL_PREFIX="jscomp_symbol_";$jscomp.initSymbol=function(){$jscomp.initSymbol=function(){};$jscomp.global.Symbol||($jscomp.global.Symbol=$jscomp.Symbol)};$jscomp.Symbol=function(){var a=0;return function(b){return $jscomp.SYMBOL_PREFIX+(b||"")+a++}}(); +$jscomp.initSymbolIterator=function(){$jscomp.initSymbol();var a=$jscomp.global.Symbol.iterator;a||(a=$jscomp.global.Symbol.iterator=$jscomp.global.Symbol("iterator"));"function"!=typeof Array.prototype[a]&&$jscomp.defineProperty(Array.prototype,a,{configurable:!0,writable:!0,value:function(){return $jscomp.arrayIterator(this)}});$jscomp.initSymbolIterator=function(){}};$jscomp.arrayIterator=function(a){var b=0;return $jscomp.iteratorPrototype(function(){return ba?-b:b}},"es6","es3"); +$jscomp.iteratorFromArray=function(a,b){$jscomp.initSymbolIterator();a instanceof String&&(a+="");var c=0,d={next:function(){if(c\x3c/script>')},goog.appendScriptSrcNode_= +function(a){var b=goog.global.document,c=b.createElement("script");c.type="text/javascript";c.src=a;c.defer=!1;c.async=!1;b.head.appendChild(c)},goog.writeScriptTag_=function(a,b){if(goog.inHtmlDocument_()){var c=goog.global.document;if(!goog.ENABLE_CHROME_APP_SAFE_SCRIPT_LOADING&&"complete"==c.readyState){if(/\bdeps.js$/.test(a))return!1;throw Error('Cannot write "'+a+'" after document load');}var d=goog.IS_OLD_IE_;void 0===b?d?(b=" onreadystatechange='goog.onScriptLoad_(this, "+ ++goog.lastNonModuleScriptIndex_+ +")' ",c.write('')},goog.appendScriptSrcNode_=function(e){var t=goog.global.document,s=t.createElement("script");s.type="text/javascript",s.src=e,s.defer=!1,s.async=!1,t.head.appendChild(s)},goog.writeScriptTag_=function(e,t){if(goog.inHtmlDocument_()){var s=goog.global.document;if(!goog.ENABLE_CHROME_APP_SAFE_SCRIPT_LOADING&&"complete"==s.readyState){if(/\bdeps.js$/.test(e))return!1;throw Error('Cannot write "'+e+'" after document load')}var r=goog.IS_OLD_IE_;return void 0===t?r?(t=" onreadystatechange='goog.onScriptLoad_(this, "+ ++goog.lastNonModuleScriptIndex_+")' ",s.write('")):goog.ENABLE_CHROME_APP_SAFE_SCRIPT_LOADING?goog.appendScriptSrcNode_(e):goog.writeScriptSrcNode_(e):s.write('"),!0}return!1},goog.lastNonModuleScriptIndex_=0,goog.onScriptLoad_=function(e,t){return"complete"==e.readyState&&goog.lastNonModuleScriptIndex_==t&&goog.loadQueuedModules_(),!0},goog.writeScripts_=function(){function e(i){if(!(i in r.written)){if(!(i in r.visited)&&(r.visited[i]=!0,i in r.requires))for(var _ in r.requires[i])if(!goog.isProvided_(_)){if(!(_ in r.nameToPath))throw Error("Undefined nameToPath for "+_);e(r.nameToPath[_])}i in s||(s[i]=!0,t.push(i))}}var t=[],s={},r=goog.dependencies_;for(_ in goog.included_)r.written[_]||e(_);for(var i=0;i>>0),goog.uidCounter_=0,goog.getHashCode=goog.getUid,goog.removeHashCode=goog.removeUid,goog.cloneObject=function(e){var t=goog.typeOf(e);if("object"==t||"array"==t){if(e.clone)return e.clone();t="array"==t?[]:{};for(var s in e)t[s]=goog.cloneObject(e[s]);return t}return e},goog.bindNative_=function(e,t,s){return e.call.apply(e.bind,arguments)},goog.bindJs_=function(e,t,s){if(!e)throw Error();if(2=this.replybuffer.length&&message.Debug("Error in 9p: payloadsize exceeds maximum length"),this.replybuffersize=s+7},Virtio9p.prototype.SendError=function(e,t,s){t=marshall.Marshall(["w"],[s],this.replybuffer,7),this.BuildReply(6,e,t)},Virtio9p.prototype.ReceiveRequest=function(e,t){var s=marshall.Unmarshall2(["w","b","h"],t),r=s[0],i=s[1],_=s[2];switch(i){case 8:r=this.fs.GetTotalSize(),t=this.fs.GetSpace();var a=[16914839];a[1]=this.BLOCKSIZE,a[2]=Math.floor(t/a[1]),a[3]=a[2]-Math.floor(r/a[1]),a[4]=a[2]-Math.floor(r/a[1]),a[5]=this.fs.inodes.length,a[6]=1048576,a[7]=0,a[8]=256,r=marshall.Marshall("wwddddddw".split(""),a,this.replybuffer,7),this.BuildReply(i,_,r),this.SendReply(0,e);break;case 112:case 12:a=marshall.Unmarshall2(["w","w"],t);var o=a[0];s=a[1],message.Debug("[open] fid="+o+", mode="+s),t=this.fids[o].inodeid;var n=this.fs.GetInode(t);message.Debug("file open "+n.name),t=this.fs.OpenInode(t,s),this.fs.AddEvent(this.fids[o].inodeid,function(){message.Debug("file opened "+n.name+" tag:"+_),a[0]=n.qid,a[1]=this.msize-24,marshall.Marshall(["Q","w"],a,this.replybuffer,7),this.BuildReply(i,_,17),this.SendReply(0,e)}.bind(this));break;case 70:a=marshall.Unmarshall2(["w","w","s"],t),s=a[0],o=a[1],t=a[2],message.Debug("[link] dfid="+s+", name="+t),n=this.fs.CreateInode(),r=this.fs.GetInode(this.fids[o].inodeid);var d=this.fs.inodedata[this.fids[o].inodeid];n.mode=r.mode,n.size=r.size,n.symlink=r.symlink;var h=this.fs.inodedata[this.fs.inodes.length]=new Uint8Array(n.size);for(r=0;r>>32-s|0};s||(s=_.bind(this,8)),r||(r=_.bind(this,16)),i||(i=_.bind(this,32))}s&&(this.ports[e].read8=s),r&&(this.ports[e].read16=r),i&&(this.ports[e].read32=i),this.ports[e].device=t},IO.prototype.register_write=function(e,t,s,r,i){if(dbg_assert("number"==typeof e),dbg_assert("object"==typeof t),dbg_assert(!s||"function"==typeof s),dbg_assert(!r||"function"==typeof r),dbg_assert(!i||"function"==typeof i),dbg_assert(s||r||i),DEBUG){var _=function(s){dbg_assert(!1,"Overlapped write"+s+" "+h(e)+" ("+t.name+")")};s||(s=_.bind(this,8)),r||(r=_.bind(this,16)),i||(i=_.bind(this,32))}s&&(this.ports[e].write8=s),r&&(this.ports[e].write16=r),i&&(this.ports[e].write32=i),this.ports[e].device=t},IO.prototype.register_read_consecutive=function(e,t,s,r,i,_){function a(){return s.call(this)|r.call(this)<<8}function o(){return i.call(this)|_.call(this)<<8}function n(){return s.call(this)|r.call(this)<<8|i.call(this)<<16|_.call(this)<<24}dbg_assert(4===arguments.length||6===arguments.length),i&&_?(this.register_read(e,t,s,a,n),this.register_read(e+1,t,r),this.register_read(e+2,t,i,o),this.register_read(e+3,t,_)):(this.register_read(e,t,s,a),this.register_read(e+1,t,r))},IO.prototype.register_write_consecutive=function(e,t,s,r,i,_){function a(e){s.call(this,255&e),r.call(this,e>>8&255)}function o(e){i.call(this,255&e),_.call(this,e>>8&255)}function n(e){s.call(this,255&e),r.call(this,e>>8&255),i.call(this,e>>16&255),_.call(this,e>>>24)}dbg_assert(4===arguments.length||6===arguments.length),i&&_?(this.register_write(e,t,s,a,n),this.register_write(e+1,t,r),this.register_write(e+2,t,i,o),this.register_write(e+3,t,_)):(this.register_write(e,t,s,a),this.register_write(e+1,t,r))},IO.prototype.in_mmap_range=function(e,t){if(e>>>=0,(t=e+(t>>>0))>=this.cpu.memory_size)return!0;for(e&=~(MMAP_BLOCK_SIZE-1);e>>MMAP_BLOCK_BITS];return t(e)|t(e+1)<<8|t(e+2)<<16|t(e+3)<<24},IO.prototype.mmap_write32_shim=function(e,t){var s=this.cpu.memory_map_write8[e>>>MMAP_BLOCK_BITS];s(e,255&t),s(e+1,t>>8&255),s(e+2,t>>16&255),s(e+3,t>>>24)},IO.prototype.mmap_register=function(e,t,s,r,i,_){for(dbg_log("mmap_register addr="+h(e>>>0,8)+" size="+h(t,8),LOG_IO),dbg_assert(0==(e&MMAP_BLOCK_SIZE-1)),dbg_assert(t&&0==(t&MMAP_BLOCK_SIZE-1)),i||(i=this.mmap_read32_shim.bind(this)),_||(_=this.mmap_write32_shim.bind(this)), +e>>>=MMAP_BLOCK_BITS;0>>0,8)+this.get_port_description(e),LOG_IO),s.write32.call(s.device,t)},IO.prototype.port_read8=function(e){var t=this.ports[e];return(t.read8===this.empty_port_read8||LOG_ALL_IO)&&dbg_log("read8 port #"+h(e,4)+this.get_port_description(e),LOG_IO),t=t.read8.call(t.device),dbg_assert(256>t,"8 bit port returned large value: "+h(e)),t},IO.prototype.port_read16=function(e){var t=this.ports[e];return(t.read16===this.empty_port_read16||LOG_ALL_IO)&&dbg_log("read16 port #"+h(e,4)+this.get_port_description(e),LOG_IO),t=t.read16.call(t.device),dbg_assert(65536>t&&0<=t,"16 bit port returned large value: "+h(e)),t},IO.prototype.port_read32=function(e){var t=this.ports[e];return(t.read32===this.empty_port_read32||LOG_ALL_IO)&&dbg_log("read32 port #"+h(e,4)+this.get_port_description(e),LOG_IO),e=t.read32.call(t.device),dbg_assert((0|e)===e),e};var debug_port_list={4:"PORT_DMA_ADDR_2",5:"PORT_DMA_CNT_2",10:"PORT_DMA1_MASK_REG",11:"PORT_DMA1_MODE_REG",12:"PORT_DMA1_CLEAR_FF_REG",13:"PORT_DMA1_MASTER_CLEAR",32:"PORT_PIC1_CMD",33:"PORT_PIC1_DATA",64:"PORT_PIT_COUNTER0",65:"PORT_PIT_COUNTER1",66:"PORT_PIT_COUNTER2",67:"PORT_PIT_MODE",96:"PORT_PS2_DATA",97:"PORT_PS2_CTRLB",100:"PORT_PS2_STATUS",112:"PORT_CMOS_INDEX",113:"PORT_CMOS_DATA",128:"PORT_DIAG",129:"PORT_DMA_PAGE_2",146:"PORT_A20",160:"PORT_PIC2_CMD",161:"PORT_PIC2_DATA",178:"PORT_SMI_CMD",179:"PORT_SMI_STATUS",212:"PORT_DMA2_MASK_REG",214:"PORT_DMA2_MODE_REG",218:"PORT_DMA2_MASTER_CLEAR",240:"PORT_MATH_CLEAR",368:"PORT_ATA2_CMD_BASE",496:"PORT_ATA1_CMD_BASE",632:"PORT_LPT2",744:"PORT_SERIAL4",760:"PORT_SERIAL2",884:"PORT_ATA2_CTRL_BASE",888:"PORT_LPT1",1e3:"PORT_SERIAL3",1008:"PORT_FD_BASE",1010:"PORT_FD_DOR",1012:"PORT_FD_STATUS",1013:"PORT_FD_DATA",1014:"PORT_HD_DATA",1015:"PORT_FD_DIR",1016:"PORT_SERIAL1",3320:"PORT_PCI_CMD",3321:"PORT_PCI_REBOOT",3324:"PORT_PCI_DATA",1026:"PORT_BIOS_DEBUG",1296:"PORT_QEMU_CFG_CTL",1297:"PORT_QEMU_CFG_DATA",45056:"PORT_ACPI_PM_BASE",45312:"PORT_SMB_BASE",35072:"PORT_BIOS_APM"};if(IO.prototype.get_port_description=function(e){return debug_port_list[e]?" ("+debug_port_list[e]+")":""},v86.prototype.run=function(){this.running||(this.bus.send("emulator-started"),this.fast_next_tick())},v86.prototype.do_tick=function(){if(this.stopped)this.stopped=this.running=!1,this.bus.send("emulator-stopped");else{this.running=!0;var e=this.cpu.main_run();0>=e?this.fast_next_tick():this.next_tick(e)}},v86.prototype.stop=function(){this.running&&(this.stopped=!0)},v86.prototype.restart=function(){this.cpu.reset(),this.cpu.load_bios()},v86.prototype.init=function(e){this.cpu.init(e,this.bus),this.bus.send("emulator-ready")},"undefined"!=typeof setImmediate)var fast_next_tick=function(){var e=this;setImmediate(function(){e.do_tick()})},register_tick=function(){};else if("undefined"!=typeof window&&"undefined"!=typeof postMessage){var MAGIC_POST_MESSAGE=43605;fast_next_tick=function(){window.postMessage(MAGIC_POST_MESSAGE,"*")},register_tick=function(){var e=this;window.addEventListener("message",function(t){t.source===window&&t.data===MAGIC_POST_MESSAGE&&e.do_tick()},!1)}}else fast_next_tick=function(){var e=this;setTimeout(function(){e.do_tick()},0)},register_tick=function(){};v86.prototype.fast_next_tick=fast_next_tick,v86.prototype.register_tick=register_tick;var next_tick="undefined"!=typeof document&&"boolean"==typeof document.hidden?function(e){var t=this;4>e||document.hidden?this.fast_next_tick():setTimeout(function(){t.do_tick()},e)}:function(e){var t=this;setTimeout(function(){t.do_tick()},e)};v86.prototype.next_tick=next_tick,v86.prototype.save_state=function(){return this.cpu.save_state()},v86.prototype.restore_state=function(e){return this.cpu.restore_state(e)},v86.microtick="object"==typeof performance&&performance.now?function(){return performance.now()}:Date.now;var v86util=v86util||{};if(v86util.pads=function(e,t){for(e=e?e+"":"";e.lengtht;t++)t&t-1||s++,e[t]=s;v86util.int_log2_byte=function(t){return dbg_assert(0t),e[t]},v86util.int_log2=function(t){dbg_assert(0>>16;if(s){var r=s>>>8;return r?24+e[r]:16+e[s]}return(r=t>>>8)?8+e[r]:e[t]}}(),FloatQueue.prototype.push=function(e){this.length===this.size?this.start=this.start+1&this.size-1:this.length++,this.data[this.end]=e,this.end=this.end+1&this.size-1},FloatQueue.prototype.shift=function(){if(this.length){var e=this.data[this.start];return this.start=this.start+1&this.size-1,this.length--,e}},FloatQueue.prototype.shift_block=function(e){var t=new Float32Array(e);e>this.length&&(e=this.length);var s=this.start+e,r=this.data.subarray(this.start,s);return t.set(r),s>=this.size&&(s-=this.size,t.set(this.data.subarray(0,s),r.length)),this.start=s,this.length-=e,t},FloatQueue.prototype.peek=function(){if(this.length)return this.data[this.start]},FloatQueue.prototype.clear=function(){this.length=this.end=this.start=0},CircularQueue.prototype.add=function(e){this.data[this.index]=e,this.index=(this.index+1)%this.size},CircularQueue.prototype.toArray=function(){return[].slice.call(this.data,this.index).concat([].slice.call(this.data,0,this.index))},CircularQueue.prototype.clear=function(){this.data=[],this.index=0},CircularQueue.prototype.set=function(e){this.data=e,this.index=0};var FPU_C0=256,FPU_C1=512,FPU_C2=1024,FPU_C3=16384,FPU_RESULT_FLAGS=FPU_C0|FPU_C1|FPU_C2|FPU_C3,FPU_STACK_TOP=14336,FPU_PC=768,FPU_RC=3072,FPU_IF=4096,FPU_EX_P=32,FPU_EX_U=16,FPU_EX_O=8,FPU_EX_Z=4,FPU_EX_D=2,FPU_EX_I=1,TWO_POW_63=0x8000000000000000;FPU.prototype.get_state=function(){var e=[];return e[0]=this.st,e[1]=this.stack_empty,e[2]=this.stack_ptr,e[3]=this.control_word,e[4]=this.fpu_dp_selector,e[5]=this.fpu_ip,e[6]=this.fpu_ip_selector,e[7]=this.fpu_dp,e[8]=this.fpu_dp_selector,e[9]=this.fpu_opcode,e},FPU.prototype.set_state=function(e){this.st.set(e[0]),this.stack_empty=e[1],this.stack_ptr=e[2],this.control_word=e[3],this.fpu_ip=e[5],this.fpu_ip_selector=e[6],this.fpu_dp=e[7],this.fpu_dp_selector=e[8],this.fpu_opcode=e[9]},FPU.prototype.fpu_unimpl=function(){if(dbg_trace(),DEBUG)throw"fpu: unimplemented";this.cpu.trigger_ud()},FPU.prototype.stack_fault=function(){this.status_word=64|this.status_word|FPU_EX_I},FPU.prototype.invalid_arithmatic=function(){this.status_word|=FPU_EX_I},FPU.prototype.fcom=function(e){var t=this.get_st0();this.status_word&=~FPU_RESULT_FLAGS,t>e||(this.status_word=e>t?this.status_word|FPU_C0:t===e?this.status_word|FPU_C3:this.status_word|FPU_C0|FPU_C2|FPU_C3)},FPU.prototype.fucom=function(e){this.fcom(e)},FPU.prototype.fcomi=function(e){var t=this.st[this.stack_ptr];this.cpu.flags_changed&=~(1|flag_parity|flag_zero),this.cpu.flags&=~(1|flag_parity|flag_zero),t>e||(this.cpu.flags=e>t?1|this.cpu.flags:t===e?this.cpu.flags|flag_zero:1|this.cpu.flags|flag_parity|flag_zero)},FPU.prototype.fucomi=function(e){this.fcomi(e)},FPU.prototype.ftst=function(e){this.status_word&=~FPU_RESULT_FLAGS,isNaN(e)?this.status_word=this.status_word|FPU_C3|FPU_C2|FPU_C0:0===e?this.status_word|=FPU_C3:0>e&&(this.status_word|=FPU_C0)},FPU.prototype.fxam=function(e){this.status_word&=~FPU_RESULT_FLAGS,this.status_word|=this.sign(0)<<9,this.stack_empty>>this.stack_ptr&1?this.status_word=this.status_word|FPU_C3|FPU_C0:isNaN(e)?this.status_word|=FPU_C0:this.status_word=0===e?this.status_word|FPU_C3:1/0===e||-1/0===e?this.status_word|FPU_C2|FPU_C0:this.status_word|FPU_C2},FPU.prototype.finit=function(){this.control_word=895,this.fpu_opcode=this.fpu_dp=this.fpu_ip=this.status_word=0,this.stack_empty=255,this.stack_ptr=0},FPU.prototype.load_status_word=function(){return-14337&this.status_word|this.stack_ptr<<11},FPU.prototype.set_status_word=function(e){this.status_word=-14337&e,this.stack_ptr=e>>11&7},FPU.prototype.load_tag_word=function(){for(var e=0,t,s=0;8>s;s++)t=this.st[s],this.stack_empty>>s&1?e|=3<<(s<<1):0===t?e|=1<<(s<<1):isFinite(t)||(e|=2<<(s<<1));return e},FPU.prototype.set_tag_word=function(e){for(var t=this.stack_empty=0;8>t;t++)this.stack_empty|=e>>t&e>>t+1&1<t;t++)this.store_m80(e,this.st[this.stack_ptr+t&7]),e+=10;this.finit()},FPU.prototype.frstor=function(e){this.fldenv(e),e+=28;for(var t=0;8>t;t++)this.st[t+this.stack_ptr&7]=this.load_m80(e),e+=10},FPU.prototype.fxtract=function(){this.float64[0]=this.get_st0();var e=((127&this.float64_byte[7])<<4|this.float64_byte[6]>>4)-1023;this.float64_byte[7]=63|128&this.float64_byte[7],this.float64_byte[6]|=240,this.st[this.stack_ptr]=e,this.push(this.float64[0])},FPU.prototype.integer_round=function(e){var t=this.control_word>>10&3;return 0===t?(t=Math.round(e),.5==t-e&&t%2&&t--,t):1===t||3===t&&0>this.stack_ptr&1?(this.status_word&=~FPU_C1,this.stack_empty&=~(1<e),e=e+this.stack_ptr&7,this.stack_empty>>e&1?(this.status_word&=~FPU_C1,this.stack_fault(),this.indefinite_nan):this.st[e]},FPU.prototype.get_st0=function(){return this.stack_empty>>this.stack_ptr&1?(this.status_word&=~FPU_C1,this.stack_fault(),this.indefinite_nan):this.st[this.stack_ptr]},FPU.prototype.load_m80=function(e){var t=this.cpu.safe_read16(e+8),s=this.cpu.safe_read32s(e)>>>0,r=this.cpu.safe_read32s(e+4)>>>0;return e=t>>15,0==(t&=-32769)?0:32767>t?(s+=4294967296*r,e&&(s=-s),s*Math.pow(2,t-16383-63)):(this.float64_byte[7]=127|e<<7,this.float64_byte[6]=240|r>>30<<3&8,this.float64_byte[5]=0,this.float64_byte[4]=0,this.float64_int[0]=0,this.float64[0])},FPU.prototype.store_m80=function(e,t){this.float64[0]=t,t=128&this.float64_byte[7];var s=(127&this.float64_byte[7])<<4|this.float64_byte[6]>>4;if(2047===s){s=32767;var r=0,i=2147483648|(524288&this.float64_int[1])<<11}else 0===s?i=r=0:(s+=15360,r=this.float64_int[0]<<11,i=2147483648|(1048575&this.float64_int[1])<<11|this.float64_int[0]>>>21);dbg_assert(0<=s&&32768>s),this.cpu.safe_write32(e,r),this.cpu.safe_write32(e+4,i),this.cpu.safe_write16(e+8,t<<8|s)},FPU.prototype.load_m64=function(e){var t=this.cpu.safe_read32s(e);return e=this.cpu.safe_read32s(e+4),this.float64_int[0]=t,this.float64_int[1]=e,this.float64[0]},FPU.prototype.store_m64=function(e,t){this.cpu.writable_or_pagefault(e,8),this.float64[0]=this.get_sti(t),this.cpu.safe_write32(e,this.float64_int[0]),this.cpu.safe_write32(e+4,this.float64_int[1])},FPU.prototype.load_m32=function(e){return this.float32_int[0]=this.cpu.safe_read32s(e),this.float32[0]},FPU.prototype.store_m32=function(e,t){this.float32[0]=t,this.cpu.safe_write32(e,this.float32_int[0])},FPU.prototype.sign=function(e){return this.st8[(this.stack_ptr+e&7)<<3|7]>>7},FPU.prototype.dbg_log_fpu_op=function(e,t){},FPU.prototype.fwait=function(){},FPU.prototype.op_D8_reg=function(e){this.dbg_log_fpu_op(216,e);var t=e>>3&7;e=this.get_sti(7&e);var s=this.get_st0();switch(t){case 0:this.st[this.stack_ptr]=s+e;break;case 1:this.st[this.stack_ptr]=s*e;break;case 2:this.fcom(e);break;case 3:this.fcom(e),this.pop();break;case 4:this.st[this.stack_ptr]=s-e;break;case 5:this.st[this.stack_ptr]=e-s;break;case 6:this.st[this.stack_ptr]=s/e;break;case 7:this.st[this.stack_ptr]=e/s;break;default:dbg_assert(!1)}},FPU.prototype.op_D8_mem=function(e,t){this.dbg_log_fpu_op(216,e),e=e>>3&7,t=this.load_m32(t);var s=this.get_st0();switch(e){case 0:this.st[this.stack_ptr]=s+t;break;case 1:this.st[this.stack_ptr]=s*t;break;case 2:this.fcom(t);break;case 3:this.fcom(t),this.pop();break;case 4:this.st[this.stack_ptr]=s-t;break;case 5:this.st[this.stack_ptr]=t-s;break;case 6:this.st[this.stack_ptr]=s/t;break;case 7:this.st[this.stack_ptr]=t/s;break;default:dbg_assert(!1)}},FPU.prototype.op_D9_reg=function(e){this.dbg_log_fpu_op(217,e);var t=7&e;switch(e>>3&7){case 0:e=this.get_sti(t),this.push(e);break;case 1:e=this.get_sti(t),this.st[this.stack_ptr+t&7]=this.get_st0(),this.st[this.stack_ptr]=e;break;case 2:switch(t){case 0:break;default:dbg_log(t),this.fpu_unimpl()}break;case 3:this.fpu_unimpl();break;case 4:switch(e=this.get_st0(),t){case 0:this.st[this.stack_ptr]=-e;break;case 1:this.st[this.stack_ptr]=Math.abs(e);break;case 4:this.ftst(e);break;case 5:this.fxam(e);break;default:dbg_log(t),this.fpu_unimpl()}break;case 5:this.push(this.constants[t]);break;case 6:switch(e=this.get_st0(),t){case 0:this.st[this.stack_ptr]=Math.pow(2,e)-1;break;case 1:this.st[this.stack_ptr+1&7]=this.get_sti(1)*Math.log(e)/Math.LN2,this.pop();break;case 2:this.st[this.stack_ptr]=Math.tan(e),this.push(1);break;case 3:this.st[this.stack_ptr+1&7]=Math.atan2(this.get_sti(1),e),this.pop();break;case 4:this.fxtract();break;case 5:this.st[this.stack_ptr]=e%this.get_sti(1);break;case 6:this.stack_ptr=this.stack_ptr-1&7,this.status_word&=~FPU_C1;break;case 7:this.stack_ptr=this.stack_ptr+1&7,this.status_word&=~FPU_C1;break;default:dbg_assert(!1)}break;case 7:switch(e=this.get_st0(),t){case 0:t=this.get_sti(1);var s=Math.trunc(e/t);this.st[this.stack_ptr]=e%t,this.status_word&=~(FPU_C0|FPU_C1|FPU_C3),1&s&&(this.status_word|=FPU_C1),2&s&&(this.status_word|=FPU_C3),4&s&&(this.status_word|=FPU_C0),this.status_word&=~FPU_C2;break;case 1:this.st[this.stack_ptr+1&7]=this.get_sti(1)*Math.log(e+1)/Math.LN2,this.pop();break;case 2:this.st[this.stack_ptr]=Math.sqrt(e);break;case 3:this.st[this.stack_ptr]=Math.sin(e),this.push(Math.cos(e));break;case 4:this.st[this.stack_ptr]=this.integer_round(e);break;case 5:this.st[this.stack_ptr]=e*Math.pow(2,this.truncate(this.get_sti(1)));break;case 6:this.st[this.stack_ptr]=Math.sin(e);break;case 7:this.st[this.stack_ptr]=Math.cos(e);break;default:dbg_assert(!1)}break;default:dbg_assert(!1)}},FPU.prototype.op_D9_mem=function(e,t){switch(this.dbg_log_fpu_op(217,e),e>>3&7){case 0:e=this.load_m32(t),this.push(e);break;case 1:this.fpu_unimpl();break;case 2:this.store_m32(t,this.get_st0());break;case 3:this.store_m32(t,this.get_st0()),this.pop();break;case 4:this.fldenv(t);break;case 5:this.control_word=this.cpu.safe_read16(t);break;case 6:this.fstenv(t);break;case 7:this.cpu.safe_write16(t,this.control_word);break;default:dbg_assert(!1)}},FPU.prototype.op_DA_reg=function(e){this.dbg_log_fpu_op(218,e);var t=e>>3&7;switch(e&=7,t){case 0:this.cpu.test_b()&&(this.st[this.stack_ptr]=this.get_sti(e),this.stack_empty&=~(1<>3&7,t=this.cpu.safe_read32s(t);var s=this.get_st0();switch(e){case 0:this.st[this.stack_ptr]=s+t;break;case 1:this.st[this.stack_ptr]=s*t;break;case 2:this.fcom(t);break;case 3:this.fcom(t),this.pop();break;case 4:this.st[this.stack_ptr]=s-t;break;case 5:this.st[this.stack_ptr]=t-s;break;case 6:this.st[this.stack_ptr]=s/t;break;case 7:this.st[this.stack_ptr]=t/s;break;default:dbg_assert(!1)}},FPU.prototype.op_DB_reg=function(e){this.dbg_log_fpu_op(219,e);var t=e>>3&7,s=7&e;switch(t){case 0:this.cpu.test_b()||(this.st[this.stack_ptr]=this.get_sti(s),this.stack_empty&=~(1<>3&7){case 0:t=this.cpu.safe_read32s(t),this.push(t);break;case 2:e=this.integer_round(this.get_st0()),2147483647>=e&&-2147483648<=e?this.cpu.safe_write32(t,e):(this.invalid_arithmatic(),this.cpu.safe_write32(t,-2147483648));break;case 3:e=this.integer_round(this.get_st0()),2147483647>=e&&-2147483648<=e?this.cpu.safe_write32(t,e):(this.invalid_arithmatic(),this.cpu.safe_write32(t,-2147483648)),this.pop();break;case 5:this.push(this.load_m80(t));break;case 7:this.cpu.writable_or_pagefault(t,10),this.store_m80(t,this.get_st0()),this.pop();break;default:dbg_log(e),this.fpu_unimpl()}},FPU.prototype.op_DC_reg=function(e){this.dbg_log_fpu_op(220,e);var t=e>>3&7,s=7&e;e=this.stack_ptr+s&7,s=this.get_sti(s);var r=this.get_st0();switch(t){case 0:this.st[e]=s+r;break;case 1:this.st[e]=s*r;break;case 2:this.fcom(s);break;case 3:this.fcom(s),this.pop();break;case 4:this.st[e]=r-s;break;case 5:this.st[e]=s-r;break;case 6:this.st[e]=r/s;break;case 7:this.st[e]=s/r;break;default:dbg_assert(!1)}},FPU.prototype.op_DC_mem=function(e,t){this.dbg_log_fpu_op(220,e),e=e>>3&7,t=this.load_m64(t);var s=this.get_st0();switch(e){case 0:this.st[this.stack_ptr]=s+t;break;case 1:this.st[this.stack_ptr]=s*t;break;case 2:this.fcom(t);break;case 3:this.fcom(t),this.pop();break;case 4:this.st[this.stack_ptr]=s-t;break;case 5:this.st[this.stack_ptr]=t-s;break;case 6:this.st[this.stack_ptr]=s/t;break;case 7:this.st[this.stack_ptr]=t/s;break;default:dbg_assert(!1)}},FPU.prototype.op_DD_reg=function(e){this.dbg_log_fpu_op(221,e);var t=e>>3&7;switch(e&=7,t){case 0:this.stack_empty|=1<<(this.stack_ptr+e&7);break;case 2:this.st[this.stack_ptr+e&7]=this.get_st0();break;case 3:0!==e&&(this.st[this.stack_ptr+e&7]=this.get_st0()),this.pop();break;case 4:this.fucom(this.get_sti(e));break;case 5:this.fucom(this.get_sti(e)),this.pop();break;default:dbg_log(t),this.fpu_unimpl()}},FPU.prototype.op_DD_mem=function(e,t){switch(this.dbg_log_fpu_op(221,e),e>>3&7){case 0:e=this.load_m64(t),this.push(e);break;case 1:this.fpu_unimpl();break;case 2:this.store_m64(t,0);break;case 3:this.store_m64(t,0),this.pop();break;case 4:this.frstor(t);break;case 5:this.fpu_unimpl();break;case 6:this.fsave(t);break;case 7:this.cpu.safe_write16(t,this.load_status_word());break;default:dbg_assert(!1)}},FPU.prototype.op_DE_reg=function(e){this.dbg_log_fpu_op(222,e);var t=e>>3&7;e&=7;var s=this.stack_ptr+e&7,r=this.get_sti(e),i=this.get_st0();switch(t){case 0:this.st[s]=r+i;break;case 1:this.st[s]=r*i;break;case 2:this.fcom(r);break;case 3:1===e?(this.fcom(this.st[s]),this.pop()):(dbg_log(t),this.fpu_unimpl());break;case 4:this.st[s]=i-r;break;case 5:this.st[s]=r-i;break;case 6:this.st[s]=i/r;break;case 7:this.st[s]=r/i;break;default:dbg_assert(!1)}this.pop()},FPU.prototype.op_DE_mem=function(e,t){this.dbg_log_fpu_op(222,e),e=e>>3&7,t=this.cpu.safe_read16(t)<<16>>16;var s=this.get_st0();switch(e){case 0:this.st[this.stack_ptr]=s+t;break;case 1:this.st[this.stack_ptr]=s*t;break;case 2:this.fcom(t);break;case 3:this.fcom(t),this.pop();break;case 4:this.st[this.stack_ptr]=s-t;break;case 5:this.st[this.stack_ptr]=t-s;break;case 6:this.st[this.stack_ptr]=s/t;break;case 7:this.st[this.stack_ptr]=t/s;break;default:dbg_assert(!1)}},FPU.prototype.op_DF_reg=function(e){this.dbg_log_fpu_op(223,e);var t=e>>3&7,s=7&e;switch(t){case 4:224===e?this.cpu.reg16[reg_ax]=this.load_status_word():(dbg_log(e),this.fpu_unimpl());break;case 5:this.fucomi(this.get_sti(s)),this.pop();break;case 6:this.fcomi(this.get_sti(s)),this.pop();break;default:dbg_log(t),this.fpu_unimpl()}},FPU.prototype.op_DF_mem=function(e,t){switch(this.dbg_log_fpu_op(223,e),e>>3&7){case 0:t=this.cpu.safe_read16(t)<<16>>16,this.push(t);break;case 1:this.fpu_unimpl();break;case 2:e=this.integer_round(this.get_st0()),32767>=e&&-32768<=e?this.cpu.safe_write16(t,e):(this.invalid_arithmatic(),this.cpu.safe_write16(t,32768));break;case 3:e=this.integer_round(this.get_st0()),32767>=e&&-32768<=e?this.cpu.safe_write16(t,e):(this.invalid_arithmatic(),this.cpu.safe_write16(t,32768)),this.pop();break;case 4:this.fpu_unimpl();break;case 5:e=this.cpu.safe_read32s(t)>>>0,t=this.cpu.safe_read32s(t+4),this.push(e+4294967296*t);break;case 6:this.fpu_unimpl();break;case 7:if(this.cpu.writable_or_pagefault(t,8),(e=this.integer_round(this.get_st0()))=-TWO_POW_63){var s=0|e,r=e/4294967296|0;0===r&&0>e&&(r=-1)}else s=0,r=-2147483648,this.invalid_arithmatic();this.cpu.safe_write32(t,s),this.cpu.safe_write32(t+4,r),this.pop();break;default:dbg_assert(!1)}};var CDROM_SECTOR_SIZE=2048,HD_SECTOR_SIZE=512;IDEDevice.prototype.read_status=function(){if(this.current_interface.buffer){var e=this.current_interface.status;return dbg_log("ATA read status: "+h(e,2),LOG_DISK),e}return 0},IDEDevice.prototype.write_control=function(e){dbg_log("set device control: "+h(e,2)+" interrupts "+(2&e?"disabled":"enabled"),LOG_DISK),4&e&&(dbg_log("Reset via control port",LOG_DISK),this.cpu.device_lower_irq(this.irq),this.master.device_reset(),this.slave.device_reset()),this.device_control=e},IDEDevice.prototype.dma_read_addr=function(){return dbg_log("dma get address: "+h(this.prdt_addr,8),LOG_DISK),this.prdt_addr},IDEDevice.prototype.dma_set_addr=function(e){dbg_log("dma set address: "+h(e,8),LOG_DISK),this.prdt_addr=e},IDEDevice.prototype.dma_read_status=function(){return dbg_log("DMA read status: "+h(this.dma_status),LOG_DISK),this.dma_status},IDEDevice.prototype.dma_write_status=function(e){dbg_log("DMA set status: "+h(e),LOG_DISK),this.dma_status&=~(6&e)},IDEDevice.prototype.dma_read_command=function(){return this.dma_read_command8()|this.dma_read_status()<<16},IDEDevice.prototype.dma_read_command8=function(){return dbg_log("DMA read command: "+h(this.dma_command),LOG_DISK),this.dma_command},IDEDevice.prototype.dma_write_command=function(e){dbg_log("DMA write command: "+h(e),LOG_DISK),this.dma_write_command8(255&e),this.dma_write_status(e>>16&255)},IDEDevice.prototype.dma_write_command8=function(e){dbg_log("DMA write command8: "+h(e),LOG_DISK);var t=this.dma_command;if(this.dma_command=9&e,(1&t)!=(1&e))if(0==(1&e))this.dma_status&=-2;else switch(this.dma_status|=1,this.current_interface.current_command){case 37:case 200:this.current_interface.do_ata_read_sectors_dma();break;case 202:case 53:this.current_interface.do_ata_write_sectors_dma();break;case 160:this.current_interface.do_atapi_dma();break;default:dbg_log("Spurious dma command write, current command: "+h(this.current_interface.current_command),LOG_DISK),dbg_assert(!1)}},IDEDevice.prototype.push_irq=function(){0==(2&this.device_control)&&(dbg_log("push irq",LOG_DISK),this.dma_status|=4,this.cpu.device_raise_irq(this.irq))},IDEDevice.prototype.get_state=function(){var e=[];return e[0]=this.master,e[1]=this.slave,e[2]=this.ata_port,e[3]=this.irq,e[4]=this.pci_id,e[5]=this.ata_port_high,e[6]=this.master_port,e[7]=this.name,e[8]=this.device_control,e[9]=this.prdt_addr,e[10]=this.dma_status,e[11]=this.current_interface===this.master,e[12]=this.dma_command,e},IDEDevice.prototype.set_state=function(e){this.master=e[0],this.slave=e[1],this.ata_port=e[2],this.irq=e[3],this.pci_id=e[4],this.ata_port_high=e[5],this.master_port=e[6],this.name=e[7],this.device_control=e[8],this.prdt_addr=e[9],this.dma_status=e[10],this.current_interface=e[11]?this.master:this.slave,this.dma_command=e[12]},IDEInterface.prototype.device_reset=function(){this.is_atapi?(this.status=0,this.sector=this.error=this.bytecount=1,this.cylinder_low=20,this.cylinder_high=235):(this.status=81,this.sector=this.error=this.bytecount=1,this.cylinder_high=this.cylinder_low=0)},IDEInterface.prototype.push_irq=function(){this.device.push_irq()},IDEInterface.prototype.ata_command=function(e){if(dbg_log("ATA Command: "+h(e)+" slave="+(this.drive_head>>4&1),LOG_DISK),this.buffer)switch(this.current_command=e,this.error=0,e){case 8:dbg_log("ATA device reset",LOG_DISK),this.data_length=this.data_end=this.data_pointer=0,this.device_reset(),this.push_irq();break;case 16:this.status=80,this.cylinder_low=0,this.push_irq();break;case 248:this.status=80,e=this.sector_count-1,this.sector=255&e,this.cylinder_low=e>>8&255,this.cylinder_high=e>>16&255,this.drive_head=240&this.drive_head|e>>24&15,this.push_irq();break;case 39:this.status=80,e=this.sector_count-1,this.sector=255&e,this.cylinder_low=e>>8&255,this.cylinder_high=e>>16&255,this.sector|=e>>24<<8&65280,this.push_irq();break;case 32:case 36:case 41:case 196:this.ata_read_sectors(e);break;case 48:case 52:case 57:case 197:this.ata_write_sectors(e);break;case 144:this.push_irq(),this.error=257,this.status=80;break;case 145:this.status=80,this.push_irq();break;case 160:this.is_atapi&&(this.status=88,this.data_allocate(12),this.data_end=12,this.bytecount=1,this.push_irq());break;case 161:dbg_log("ATA identify packet device",LOG_DISK),this.is_atapi?(this.create_identify_packet(),this.status=88,this.cylinder_low=20,this.cylinder_high=235):this.status=65,this.push_irq();break;case 198:dbg_log("Logical sectors per DRQ Block: "+h(255&this.bytecount),LOG_DISK),this.sectors_per_drq=255&this.bytecount,this.status=80,this.push_irq();break;case 37:case 200:this.ata_read_sectors_dma(e);break;case 53:case 202:this.ata_write_sectors_dma(e);break;case 64:dbg_log("read verify sectors",LOG_DISK),this.status=80,this.push_irq();break;case 218:dbg_log("Unimplemented: get media status",LOG_DISK),this.status=65,this.error=4,this.push_irq();break;case 224:dbg_log("ATA standby immediate",LOG_DISK),this.status=80,this.push_irq();break;case 225:dbg_log("ATA idle immediate",LOG_DISK),this.status=80,this.push_irq();break;case 231:dbg_log("ATA flush cache",LOG_DISK),this.status=80,this.push_irq();break;case 236:if(dbg_log("ATA identify device",LOG_DISK),this.is_atapi){this.status=65,this.error=4,this.push_irq();break}this.create_identify_packet(),this.status=88,this.push_irq();break;case 234:dbg_log("flush cache ext",LOG_DISK),this.status=80,this.push_irq();break;case 239:dbg_log("set features: "+h(255&this.bytecount),LOG_DISK),this.status=80,this.push_irq();break;case 245:dbg_log("security freeze lock",LOG_DISK),this.status=80,this.push_irq();break;case 249:dbg_log("Unimplemented: set max address",LOG_DISK),this.status=65,this.error=4;break;default:dbg_assert(!1,"New ATA cmd on 1F7: "+h(e),LOG_DISK),this.status=65,this.error=4}else dbg_log("abort: No buffer",LOG_DISK),this.error=4,this.status=65,this.push_irq()},IDEInterface.prototype.atapi_handle=function(){switch(dbg_log("ATAPI Command: "+h(this.data[0])+" slave="+(this.drive_head>>4&1),LOG_DISK),this.data_pointer=0,this.current_atapi_command=this.data[0],this.current_atapi_command){case 0:dbg_log("test unit ready",LOG_DISK),this.data_allocate(0),this.data_end=this.data_length,this.status=80;break;case 3:this.data_allocate(this.data[4]),this.data_end=this.data_length,this.status=88,this.data[0]=240,this.data[2]=5,this.data[7]=8;break;case 18:var e=this.data[4];this.status=88,dbg_log("inquiry: "+h(this.data[1],2)+" length="+e,LOG_DISK),this.data.set([5,128,1,49,31,0,0,0,83,79,78,89,32,32,32,32,67,68,45,82,79,77,32,67,68,85,45,49,48,48,48,32,49,46,49,97]),this.data_end=this.data_length=Math.min(36,e);break;case 26:this.data_allocate(this.data[4]),this.data_end=this.data_length,this.status=88;break;case 30:this.data_allocate(0),this.data_end=this.data_length,this.status=80;break;case 37:e=this.sector_count-1,this.data_set(new Uint8Array([e>>24&255,e>>16&255,e>>8&255,255&e,0,0,this.sector_size>>8&255,255&this.sector_size])),this.data_end=this.data_length,this.status=88;break;case 40:1&this.lba_count?this.atapi_read_dma(this.data):this.atapi_read(this.data);break;case 66:e=this.data[8],this.data_allocate(Math.min(8,e)),this.data_end=this.data_length,dbg_log("read q subcode: length="+e,LOG_DISK),this.status=88;break;case 67:e=this.data[8]|this.data[7]<<8;var t=this.data[9]>>6;this.data_allocate(e),this.data_end=this.data_length,dbg_log("read toc: "+h(t,2)+" length="+e+" "+(2&this.data[1])+" "+h(this.data[6]),LOG_DISK),0===t?(e=this.sector_count,this.data.set(new Uint8Array([0,18,1,1,0,20,1,0,0,0,0,0,0,22,170,0,e>>24,e>>16&255,e>>8&255,255&e]))):1===t?this.data.set(new Uint8Array([0,10,1,1,0,0,0,0,0,0,0,0])):dbg_assert(!1,"Unimplemented format: "+t),this.status=88;break;case 70:e=this.data[8]|this.data[7]<<8,e=Math.min(e,32),this.data_allocate(e),this.data_end=this.data_length,this.data[0]=e-4>>24&255,this.data[1]=e-4>>16&255,this.data[2]=e-4>>8&255,this.data[3]=e-4&255,this.data[6]=8,this.data[10]=3,this.status=88;break;case 81:this.data_allocate(0),this.data_end=this.data_length,this.status=80;break;case 82:dbg_log("Unimplemented ATAPI command: "+h(this.data[0]),LOG_DISK),this.status=81,this.data_length=0,this.error=80;break;case 90:e=this.data[8]|this.data[7]<<8,t=this.data[2],dbg_log("mode sense: "+h(t)+" length="+e,LOG_DISK),42===t&&this.data_allocate(Math.min(30,e)),this.data_end=this.data_length,this.status=88;break;case 189:this.data_allocate(this.data[9]|this.data[8]<<8),this.data_end=this.data_length,this.data[5]=1,this.status=88;break +;case 74:this.status=81,this.data_length=0,this.error=80,dbg_log("Unimplemented ATAPI command: "+h(this.data[0]),LOG_DISK);break;default:this.status=81,this.data_length=0,this.error=80,dbg_log("Unimplemented ATAPI command: "+h(this.data[0]),LOG_DISK),dbg_assert(!1)}this.bytecount=-8&this.bytecount|2,0==(128&this.status)&&this.push_irq(),0==(128&this.status)&&0===this.data_length&&(this.bytecount|=1,this.status&=-9)},IDEInterface.prototype.do_write=function(){this.status=80,dbg_assert(this.data_length<=this.data.length);var e=this.data.subarray(0,this.data_length);dbg_assert(0==this.data_length%512),this.ata_advance(this.current_command,this.data_length/512),this.push_irq(),this.buffer.set(this.write_dest,e,function(){}),this.report_write(this.data_length)},IDEInterface.prototype.atapi_read=function(e){var t=this,s=e[2]<<24|e[3]<<16|e[4]<<8|e[5],r=e[7]<<8|e[8];e=e[1];var i=r*this.sector_size,_=s*this.sector_size;dbg_log("CD read lba="+h(s)+" lbacount="+h(r)+" bytecount="+h(i)+" flags="+h(e),LOG_DISK),this.data_length=0;var a=this.cylinder_high<<8&65280|255&this.cylinder_low;dbg_log(h(this.cylinder_high,2)+" "+h(this.cylinder_low,2),LOG_DISK),this.cylinder_low=this.cylinder_high=0,65535===a&&a--,a>i&&(a=i),_>=this.buffer.byteLength?(dbg_assert(!1,"CD read: Outside of disk end="+h(_+i)+" size="+h(this.buffer.byteLength),LOG_DISK),this.status=255,this.push_irq()):0===i?(this.status=80,this.data_pointer=0):(i=Math.min(i,this.buffer.byteLength-_),this.status=208,this.report_read_start(),this.buffer.get(_,i,function(e){dbg_log("cd read: data arrived",LOG_DISK),t.data_set(e),t.status=88,t.bytecount=-8&t.bytecount|2,t.push_irq(),a&=-4,t.data_end=a,t.data_end>t.data_length&&(t.data_end=t.data_length),t.cylinder_low=255&t.data_end,t.cylinder_high=t.data_end>>8&255,t.report_read_end(i)}))},IDEInterface.prototype.atapi_read_dma=function(e){var t=this,s=e[2]<<24|e[3]<<16|e[4]<<8|e[5],r=e[7]<<8|e[8];e=e[1];var i=r*this.sector_size,_=s*this.sector_size;dbg_log("CD read DMA lba="+h(s)+" lbacount="+h(r)+" bytecount="+h(i)+" flags="+h(e),LOG_DISK),_>=this.buffer.byteLength?(dbg_assert(!1,"CD read: Outside of disk end="+h(_+i)+" size="+h(this.buffer.byteLength),LOG_DISK),this.status=255,this.push_irq()):(this.status=208,this.report_read_start(),this.buffer.get(_,i,function(e){dbg_log("atapi_read_dma: Data arrived"),t.report_read_end(i),t.status=88,t.bytecount=-8&t.bytecount|2,t.data_set(e),t.do_atapi_dma()}))},IDEInterface.prototype.do_atapi_dma=function(){if(0==(1&this.device.dma_status))dbg_log("do_atapi_dma: Status not set",LOG_DISK);else if(0==(8&this.status))dbg_log("do_atapi_dma: DRQ not set",LOG_DISK);else{dbg_log("atapi dma transfer len="+this.data_length,LOG_DISK);var e=this.device.prdt_addr,t=0,s=this.data;do{var r=this.cpu.read32s(e),i=this.cpu.read16(e+4),_=128&this.cpu.read8(e+7);if(i||(i=65536),dbg_log("dma read dest="+h(r)+" count="+h(i)+" datalen="+h(this.data_length),LOG_DISK),this.cpu.write_blob(s.subarray(t,Math.min(t+i,this.data_length)),r),t+=i,e+=8,t>=this.data_length&&!_){dbg_log("leave early end="+ +_+" offset="+h(t)+" data_length="+h(this.data_length)+" cmd="+h(this.current_command),LOG_DISK);break}}while(!_);dbg_log("end offset="+t,LOG_DISK),this.status=80,this.device.dma_status&=-2,this.bytecount=-8&this.bytecount|3,this.push_irq()}},IDEInterface.prototype.read_data=function(e){if(this.data_pointer>>1]:this.data32[this.data_pointer>>>2];return this.data_pointer+=e,0==(this.data_pointer&(0==(4095&this.data_end)?4095:255))&&dbg_log("Read 1F0: "+h(this.data[this.data_pointer],2)+" cur="+h(this.data_pointer)+" cnt="+h(this.data_length),LOG_DISK),this.data_pointer>=this.data_end&&this.read_end(),t}return dbg_log("Read 1F0: empty",LOG_DISK),this.data_pointer+=e,0},IDEInterface.prototype.read_end=function(){if(dbg_log("read_end cmd="+h(this.current_command)+" data_pointer="+h(this.data_pointer)+" end="+h(this.data_end)+" length="+h(this.data_length),LOG_DISK),160===this.current_command)if(this.data_end===this.data_length)this.status=80,this.bytecount=-8&this.bytecount|3,this.push_irq();else{this.status=88,this.bytecount=-8&this.bytecount|2,this.push_irq();var e=this.cylinder_high<<8&65280|255&this.cylinder_low;this.data_end+e>this.data_length?(this.cylinder_low=this.data_length-this.data_end&255,this.cylinder_high=this.data_length-this.data_end>>8&255,this.data_end=this.data_length):this.data_end+=e,dbg_log("data_end="+h(this.data_end),LOG_DISK)}else this.error=0,this.data_pointer>=this.data_length?this.status=80:(196===this.current_command||41===this.current_command?(e=Math.min(this.sectors_per_drq,(this.data_length-this.data_end)/512),dbg_assert(0==e%1)):(dbg_assert(32===this.current_command||36===this.current_command),e=1),this.ata_advance(this.current_command,e),this.data_end+=512*e,this.status=88),this.push_irq()},IDEInterface.prototype.write_data_port=function(e,t){dbg_assert(0==this.data_pointer%t),this.data_pointer>=this.data_end?dbg_log("Redundant write to data port: "+h(e)+" count="+h(this.data_end)+" cur="+h(this.data_pointer),LOG_DISK):((0==(this.data_pointer+t&(0==(4095&this.data_end)?4095:255))||20>this.data_end)&&dbg_log("Data port: "+h(e>>>0)+" count="+h(this.data_end)+" cur="+h(this.data_pointer),LOG_DISK),1===t?this.data[this.data_pointer++]=e:2===t?(this.data16[this.data_pointer>>>1]=e,this.data_pointer+=2):(this.data32[this.data_pointer>>>2]=e,this.data_pointer+=4),dbg_assert(this.data_pointer<=this.data_end),this.data_pointer===this.data_end&&this.write_end())},IDEInterface.prototype.write_data_port8=function(e){this.write_data_port(e,1)},IDEInterface.prototype.write_data_port16=function(e){this.write_data_port(e,2)},IDEInterface.prototype.write_data_port32=function(e){this.write_data_port(e,4)},IDEInterface.prototype.write_end=function(){160===this.current_command?this.atapi_handle():(dbg_log("write_end data_pointer="+h(this.data_pointer)+" data_length="+h(this.data_length),LOG_DISK),this.data_pointer>=this.data_length?this.do_write():(dbg_assert(48===this.current_command||52===this.current_command),this.status=88,this.data_end+=512,this.push_irq()))},IDEInterface.prototype.ata_advance=function(e,t){dbg_log("Advance sectors="+t+" old_bytecount="+this.bytecount,LOG_DISK),this.bytecount-=t,36===e||41===e||52===e||57===e||37===e||53===e?(e=t+this.get_lba48(),this.sector=255&e|e>>16&65280,this.cylinder_low=e>>8&255,this.cylinder_high=e>>16&255):this.is_lba?(e=t+this.get_lba28(),this.sector=255&e,this.cylinder_low=e>>8&255,this.cylinder_high=e>>16&255,this.head=-16&this.head|15&e):(e=t+this.get_chs(),t=e/(this.head_count*this.sectors_per_track)|0,this.cylinder_low=255&t,this.cylinder_high=t>>8&255,this.head=(e/this.sectors_per_track|0)%this.head_count&15,this.sector=e%this.sectors_per_track+1&255,dbg_assert(e===this.get_chs()))},IDEInterface.prototype.ata_read_sectors=function(e){var t=this,s=36===e||41===e,r=this.get_count(s);s=this.get_lba(s);var i=32===e||36===e,_=r*this.sector_size,a=s*this.sector_size;dbg_log("ATA read cmd="+h(e)+" mode="+(this.is_lba?"lba":"chs")+" lba="+h(s)+" lbacount="+h(r)+" bytecount="+h(_),LOG_DISK),a+_>this.buffer.byteLength?(dbg_assert(!1,"ATA read: Outside of disk",LOG_DISK),this.status=255,this.push_irq()):(this.status=192,this.report_read_start(),this.buffer.get(a,_,function(s){dbg_log("ata_read: Data arrived",LOG_DISK),t.data_set(s),t.status=88,t.data_end=i?512:Math.min(_,512*t.sectors_per_drq),t.ata_advance(e,i?1:Math.min(r,t.sectors_per_track)),t.push_irq(),t.report_read_end(_)}))},IDEInterface.prototype.ata_read_sectors_dma=function(e){var t=37===e;e=this.get_count(t),t=this.get_lba(t);var s=e*this.sector_size,r=t*this.sector_size;dbg_log("ATA DMA read lba="+h(t)+" lbacount="+h(e)+" bytecount="+h(s),LOG_DISK),r+s>this.buffer.byteLength?(dbg_assert(!1,"ATA read: Outside of disk",LOG_DISK),this.status=255,this.push_irq()):(this.status=88,this.device.dma_status|=1)},IDEInterface.prototype.do_ata_read_sectors_dma=function(){var e=this,t=37===this.current_command,s=this.get_count(t);t=this.get_lba(t);var r=s*this.sector_size,i=t*this.sector_size;dbg_assert(tt;t++)e[t]=this.device_spaces[t];return e[256]=this.pci_addr,e[257]=this.pci_value,e[258]=this.pci_response,e[259]=this.pci_status,e},PCI.prototype.set_state=function(e){for(var t=0;256>t;t++){var s=this.devices[t],r=e[t];if(s&&r){for(var i=0;i>3&31,r="query enabled="+(this.pci_addr[3]>>7)+" bdf="+h(e,4);r+=" dev="+h(s,2),r+=" addr="+h(t,2),s=this.device_spaces[e],void 0!==s?(this.pci_status32[0]=-2147483648,this.pci_response32[0]=t>2]:0,r+=" "+h(this.pci_addr32[0]>>>0,8)+" -> "+h(this.pci_response32[0]>>>0,8),t>=s.byteLength&&(r+=" (undef)"),r+=" ("+this.devices[e].name+")",dbg_log(r,LOG_PCI)):(this.pci_response32[0]=-1,this.pci_status32[0]=0)},PCI.prototype.pci_write8=function(e,t){var s=e>>8&65535;e&=255;var r=new Uint8Array(this.device_spaces[s].buffer),i=this.devices[s];r&&(dbg_assert(!(16<=e&&44>e||48<=e&&52>e),"PCI: Expected 32-bit write"),dbg_log("PCI write8 dev="+h(s>>3,2)+" ("+i.name+") addr="+h(e,4)+" value="+h(t,2),LOG_PCI),r[e]=t)},PCI.prototype.pci_write16=function(e,t){dbg_assert(0==(1&e));var s=e>>8&65535;e&=255;var r=new Uint16Array(this.device_spaces[s].buffer),i=this.devices[s];r&&(dbg_assert(!(16<=e&&44>e||48<=e&&52>e),"PCI: Expected 32-bit write"),dbg_log("PCI writ16 dev="+h(s>>3,2)+" ("+i.name+") addr="+h(e,4)+" value="+h(t,4),LOG_PCI),r[e>>>1]=t)},PCI.prototype.pci_write32=function(e,t){dbg_assert(0==(3&e));var s=e>>8&65535;e&=255;var r=this.device_spaces[s],i=this.devices[s];if(r)if(16<=e&&40>e){var _=e-16>>2,a=i.pci_bars[_];dbg_log("BAR"+_+" exists="+(a?"y":"n")+" changed to "+h(t>>>0)+" dev="+h(s>>3,2)+" ("+i.name+") ",LOG_PCI),a?(dbg_assert(!(a.size&a.size-1),"bar size should be power of 2"),s=e>>2,i=1&r[s],-1==(3|t|a.size-1)?(t=~(a.size-1)|i,0===i&&(r[s]=t)):0===i&&(_=a.original_bar,(-16&t)!=(-16&_)&&dbg_log("Warning: Changing memory bar not supported, ignored",LOG_PCI),r[s]=_),1===i&&(dbg_assert(1===i),i=65534&r[s],_=65534&t,dbg_log("io bar changed from "+h(i>>>0,8)+" to "+h(_>>>0,8)+" size="+a.size,LOG_PCI),this.set_io_bars(a,i,_),r[s]=1|t)):r[e>>2]=0,dbg_log("BAR effective value: "+h(r[e>>2]>>>0),LOG_PCI)}else 48===e?(dbg_log("PCI write rom address dev="+h(s>>3,2)+" ("+i.name+") value="+h(t>>>0,8),LOG_PCI),r[e>>2]=i.pci_rom_size?-1==(2047|t)?0|-i.pci_rom_size:0|i.pci_rom_address:0):(dbg_log("PCI write dev="+h(s>>3,2)+" ("+i.name+") addr="+h(e,4)+" value="+h(t>>>0,8),LOG_PCI),r[e>>>2]=t)},PCI.prototype.register_device=function(e){dbg_assert(void 0!==e.pci_id),dbg_assert(void 0!==e.pci_space),dbg_assert(void 0!==e.pci_bars);var t=e.pci_id;dbg_log("PCI register bdf="+h(t)+" ("+e.name+")",LOG_PCI),dbg_assert(!this.devices[t]),dbg_assert(64<=e.pci_space.length),dbg_assert(t>8&255)-1+((e>>3)-1&255)&3)])},PCI.prototype.lower_irq=function(e){var t=this.device_spaces[e];dbg_assert(t),this.cpu.device_lower_irq(this.isa_bridge_space8[96+((t[15]>>8&255)+(e>>3&255)-2&3)])},FloppyController.prototype.get_state=function(){var e=[];return e[0]=this.bytes_expecting,e[1]=this.receiving_command,e[2]=this.receiving_index,e[4]=this.response_data,e[5]=this.response_index,e[6]=this.response_length,e[7]=this.floppy_size,e[8]=this.status_reg0,e[9]=this.status_reg1,e[10]=this.status_reg2,e[11]=this.drive,e[12]=this.last_cylinder,e[13]=this.last_head,e[14]=this.last_sector,e[15]=this.dor,e[16]=this.sectors_per_track,e[17]=this.number_of_heads,e[18]=this.number_of_cylinders,e},FloppyController.prototype.set_state=function(e){this.bytes_expecting=e[0],this.receiving_command=e[1],this.receiving_index=e[2],this.next_command=e[3],this.response_data=e[4],this.response_index=e[5],this.response_length=e[6],this.floppy_size=e[7],this.status_reg0=e[8],this.status_reg1=e[9],this.status_reg2=e[10],this.drive=e[11],this.last_cylinder=e[12],this.last_head=e[13],this.last_sector=e[14],this.dor=e[15],this.sectors_per_track=e[16],this.number_of_heads=e[17],this.number_of_cylinders=e[18]},FloppyController.prototype.port3F0_read=function(){return dbg_log("3F0 read",LOG_FLOPPY),0},FloppyController.prototype.port3F4_read=function(){dbg_log("3F4 read",LOG_FLOPPY);var e=128;return this.response_index>4),LOG_FLOPPY),dbg_log("enable dma: "+!!(8&e),LOG_FLOPPY),dbg_log("reset fdc: "+!!(4&e),LOG_FLOPPY),dbg_log("drive select: "+(3&e),LOG_FLOPPY),dbg_log("DOR = "+h(e),LOG_FLOPPY),this.dor=e},FloppyController.prototype.check_drive_status=function(e){dbg_log("check drive status",LOG_FLOPPY),this.response_index=0,this.response_length=1,this.response_data[0]=32},FloppyController.prototype.seek=function(e){dbg_log("seek",LOG_FLOPPY),dbg_assert(0==(3&e[0]),"Unhandled seek drive"),this.last_cylinder=e[1],this.last_head=e[0]>>2&1,this.raise_irq()},FloppyController.prototype.calibrate=function(e){dbg_log("floppy calibrate",LOG_FLOPPY),this.raise_irq()},FloppyController.prototype.check_interrupt_status=function(){dbg_log("floppy check interrupt status",LOG_FLOPPY),this.response_index=0,this.response_length=2,this.response_data[0]=32,this.response_data[1]=this.last_cylinder},FloppyController.prototype.do_sector=function(e,t){var s=t[2],r=t[1],i=t[3],_=128<this.sectors_per_track&&(r=1,++s>=this.number_of_heads&&(s=0,t++)),this.last_cylinder=t,this.last_head=s,this.last_sector=r,this.response_index=0,this.response_length=7,this.response_data[0]=s<<2|32,this.response_data[1]=0,this.response_data[2]=0,this.response_data[3]=t,this.response_data[4]=s,this.response_data[5]=r,this.response_data[6]=e[4],this.raise_irq())},FloppyController.prototype.fix_drive_data=function(e){dbg_log("floppy fix drive data "+e,LOG_FLOPPY)},FloppyController.prototype.read_sector_id=function(e){dbg_log("floppy read sector id "+e,LOG_FLOPPY),this.response_index=0,this.response_length=7,this.response_data[0]=0,this.response_data[1]=0,this.response_data[2]=0,this.response_data[3]=0,this.response_data[4]=0,this.response_data[5]=0,this.response_data[6]=0,this.raise_irq()},FloppyController.prototype.raise_irq=function(){8&this.dor&&this.cpu.device_raise_irq(6)};var A20_MASK=-1048577,A20_MASK16=-524289,A20_MASK32=-262145,USE_A20=!1;CPU.prototype.debug_write=function(e,t,s){DEBUG&&(dbg_assert("number"==typeof s&&!isNaN(s)),dbg_assert(-2147483648<=s&&2147483648>e),this.debug_read(e,t,!0))},CPU.prototype.debug_read=function(e,t,s){DEBUG&&(dbg_assert("number"==typeof e),dbg_assert(!isNaN(e)))},CPU.prototype.mmap_read8=function(e){return this.memory_map_read8[e>>>MMAP_BLOCK_BITS](e)},CPU.prototype.mmap_write8=function(e,t){this.memory_map_write8[e>>>MMAP_BLOCK_BITS](e,t)},CPU.prototype.mmap_read16=function(e){var t=this.memory_map_read8[e>>>MMAP_BLOCK_BITS];return t(e)|t(e+1|0)<<8},CPU.prototype.mmap_write16=function(e,t){var s=this.memory_map_write8[e>>>MMAP_BLOCK_BITS];s(e,255&t),s(e+1|0,t>>8&255)},CPU.prototype.mmap_read32=function(e){return this.memory_map_read32[e>>>MMAP_BLOCK_BITS](e)},CPU.prototype.mmap_write32=function(e,t){this.memory_map_write32[e>>>MMAP_BLOCK_BITS](e,t)},CPU.prototype.in_mapped_range=function(e){return 655360<=(0|e)&&786432>(0|e)||e>>>0>=this.memory_size>>>0},CPU.prototype.read8=function(e){return this.debug_read(e,1),USE_A20&&!this.a20_enabled&&(e&=A20_MASK),this.in_mapped_range(e)?this.mmap_read8(e):this.mem8[e]},CPU.prototype.read16=function(e){return this.debug_read(e,2),USE_A20&&!this.a20_enabled&&(e&=A20_MASK),this.in_mapped_range(e)?this.mmap_read16(e):this.mem8[e]|this.mem8[e+1|0]<<8},CPU.prototype.read_aligned16=function(e){return dbg_assert(0<=e&&2147483648>e),this.debug_read(e<<1,2),USE_A20&&!this.a20_enabled&&(e&=A20_MASK16),this.in_mapped_range(e<<1)?this.mmap_read16(e<<1):this.mem16[e]},CPU.prototype.read32s=function(e){return this.debug_read(e,4),USE_A20&&!this.a20_enabled&&(e&=A20_MASK),this.in_mapped_range(e)?this.mmap_read32(e):this.mem8[e]|this.mem8[e+1|0]<<8|this.mem8[e+2|0]<<16|this.mem8[e+3|0]<<24},CPU.prototype.read_aligned32=function(e){return dbg_assert(0<=e&&1073741824>e),this.debug_read(e<<2,4),USE_A20&&!this.a20_enabled&&(e&=A20_MASK32),this.in_mapped_range(e<<2)?this.mmap_read32(e<<2):this.mem32s[e]},CPU.prototype.write8=function(e,t){this.debug_write(e,1,t),USE_A20&&!this.a20_enabled&&(e&=A20_MASK),this.in_mapped_range(e)?this.mmap_write8(e,t):this.mem8[e]=t},CPU.prototype.write16=function(e,t){this.debug_write(e,2,t),USE_A20&&!this.a20_enabled&&(e&=A20_MASK),this.in_mapped_range(e)?this.mmap_write16(e,t):(this.mem8[e]=t,this.mem8[e+1|0]=t>>8)},CPU.prototype.write_aligned16=function(e,t){dbg_assert(0<=e&&2147483648>e),this.debug_write(e<<1,2,t),USE_A20&&!this.a20_enabled&&(e&=A20_MASK16),this.in_mapped_range(e<<1)?this.mmap_write16(e<<1,t):this.mem16[e]=t},CPU.prototype.write32=function(e,t){this.debug_write(e,4,t),USE_A20&&!this.a20_enabled&&(e&=A20_MASK),this.in_mapped_range(e)?this.mmap_write32(e,t):(this.mem8[e]=t,this.mem8[e+1|0]=t>>8,this.mem8[e+2|0]=t>>16,this.mem8[e+3|0]=t>>24)},CPU.prototype.write_aligned32=function(e,t){dbg_assert(0<=e&&1073741824>e),this.debug_write(e<<2,4,t),USE_A20&&!this.a20_enabled&&(e&=A20_MASK32),this.in_mapped_range(e<<2)?this.mmap_write32(e<<2,t):this.mem32s[e]=t},CPU.prototype.write_blob=function(e,t){this.debug_write(t,e.length,0),dbg_assert(e&&0<=e.length),this.mem8.set(e,t)},CPU.prototype.write_blob32=function(e,t){dbg_assert(e&&e.length),this.debug_write(t,e.length<<2,0),this.mem32s.set(e,t)},DMA.prototype.get_state=function(){return[this.channel_page,this.channel_pagehi,this.channel_addr,this.channel_addr_init,this.channel_count,this.channel_count_init,this.channel_mask,this.channel_mode,this.lsb_msb_flipflop]},DMA.prototype.set_state=function(e){this.channel_page=e[0],this.channel_pagehi=e[1],this.channel_addr=e[2],this.channel_addr_init=e[3],this.channel_count=e[4],this.channel_count_init=e[5],this.channel_mask=e[6],this.channel_mode=e[7],this.lsb_msb_flipflop=e[8]},DMA.prototype.port_count_write=function(e,t){dbg_log("count write ["+e+"] = "+h(t),LOG_DMA),this.channel_count[e]=this.flipflop_get(this.channel_count[e],t,!1),this.channel_count_init[e]=this.flipflop_get(this.channel_count_init[e],t,!0)},DMA.prototype.port_count_read=function(e){return dbg_log("count read ["+e+"] -> "+h(this.channel_count[e]),LOG_DMA),this.flipflop_read(this.channel_count[e])},DMA.prototype.port_addr_write=function(e,t){dbg_log("addr write ["+e+"] = "+h(t),LOG_DMA),this.channel_addr[e]=this.flipflop_get(this.channel_addr[e],t,!1),this.channel_addr_init[e]=this.flipflop_get(this.channel_addr_init[e],t,!0)},DMA.prototype.port_addr_read=function(e){return dbg_log("addr read ["+e+"] -> "+h(this.channel_addr[e]),LOG_DMA),this.flipflop_read(this.channel_addr[e])},DMA.prototype.port_pagehi_write=function(e,t){dbg_log("pagehi write ["+e+"] = "+h(t),LOG_DMA),this.channel_pagehi[e]=t},DMA.prototype.port_pagehi_read=function(e){return dbg_log("pagehi read ["+e+"]",LOG_DMA),this.channel_pagehi[e]},DMA.prototype.port_page_write=function(e,t){dbg_log("page write ["+e+"] = "+h(t),LOG_DMA),this.channel_page[e]=t},DMA.prototype.port_page_read=function(e){return dbg_log("page read ["+e+"]",LOG_DMA),this.channel_page[e]},DMA.prototype.port_singlemask_write=function(e,t){e=(3&t)+e,t=!!(4&t),dbg_log("singlechannel mask write ["+e+"] = "+t,LOG_DMA),this.update_mask(e,t)},DMA.prototype.port_multimask_write=function(e,t){dbg_log("multichannel mask write: "+h(t),LOG_DMA);for(var s=0;4>s;s++)this.update_mask(e+s,t&1<e.byteLength)dbg_log("DMA read outside of buffer",LOG_DMA),i(!0);else{var o=this.cpu +;this.channel_addr[r]+=_,e.get(t,_,function(e){o.write_blob(e,a),i(!1)})}},DMA.prototype.do_write=function(e,t,s,r,i){var _=this,a=this.channel_count[r]+1&65535,o=5<=r?2:1,n=a*o,d=this.address_get_8bit(r),g=!1,c=!1,p=16&this.channel_mode[r];dbg_log("DMA write channel "+r,LOG_DMA),dbg_log("to "+h(d)+" len "+h(n),LOG_DMA),sn&&(dbg_log("DMA attempted to read more than provided",LOG_DMA),c=!0),t+n>e.byteLength?(dbg_log("DMA write outside of buffer",LOG_DMA),i(!0)):(this.channel_addr[r]+=a,this.channel_count[r]-=a,!g&&p&&(dbg_log("DMA autoinit",LOG_DMA),this.channel_addr[r]=this.channel_addr_init[r],this.channel_count[r]=this.channel_count_init[r]),e.set(t,this.cpu.mem8.subarray(d,d+n),function(){c&&p?(dbg_log("DMA continuing from start",LOG_DMA),_.do_write(e,t+n,s-n,r,i)):i(!1)}))},DMA.prototype.address_get_8bit=function(e){var t=this.channel_addr[e];return 5<=e&&(t<<=1),t=65535&t|this.channel_page[e]<<16,t|=this.channel_pagehi[e]<<24},DMA.prototype.count_get_8bit=function(e){var t=this.channel_count[e]+1;return 5<=e&&(t*=2),t},DMA.prototype.flipflop_get=function(e,t,s){return s||(this.lsb_msb_flipflop^=1),this.lsb_msb_flipflop?-256&e|t:-65281&e|t<<8},DMA.prototype.flipflop_read=function(e){return(this.lsb_msb_flipflop^=1)?255&e:e>>8&255};var OSCILLATOR_FREQ=1193.1816666;PIT.prototype.get_state=function(){var e=[];return e[0]=this.counter_next_low,e[1]=this.counter_enabled,e[2]=this.counter_mode,e[3]=this.counter_read_mode,e[4]=this.counter_latch,e[5]=this.counter_latch_value,e[6]=this.counter_reload,e[7]=this.counter_start_time,e[8]=this.counter_start_value,e},PIT.prototype.set_state=function(e){this.counter_next_low=e[0],this.counter_enabled=e[1],this.counter_mode=e[2],this.counter_read_mode=e[3],this.counter_latch=e[4],this.counter_latch_value=e[5],this.counter_reload=e[6],this.counter_start_time=e[7],this.counter_start_value=e[8]},PIT.prototype.timer=function(e,t){return t||(this.counter_enabled[0]&&this.did_rollover(0,e)?(this.counter_start_value[0]=this.get_counter_value(0,e),this.counter_start_time[0]=e,dbg_log("pit interrupt. new value: "+this.counter_start_value[0],LOG_PIT),this.cpu.device_raise_irq(0),0===this.counter_mode[0]&&(this.counter_enabled[0]=0)):this.cpu.device_lower_irq(0)),0},PIT.prototype.get_counter_value=function(e,t){if(!this.counter_enabled[e])return 0;var s=t-this.counter_start_time[e],r=Math.floor(s*OSCILLATOR_FREQ);return t=this.counter_start_value[e]-r,dbg_log("diff="+s+" dticks="+r+" value="+t+" reload="+this.counter_reload[e],LOG_PIT),s=this.counter_reload[e],t>=s?(dbg_log("Warning: Counter"+e+" value "+t+" is larger than reload "+s,LOG_PIT),t%=s):0>t&&(t=t%s+s),t},PIT.prototype.did_rollover=function(e,t){return t-=this.counter_start_time[e],0>t?(dbg_log("Warning: PIT timer difference is negative, resetting"),!0):this.counter_start_value[e]>8):(t=this.counter_next_low[e],3===this.counter_mode[e]&&(this.counter_next_low[e]^=1),e=this.get_counter_value(e,v86.microtick()),t?255&e:e>>8)},PIT.prototype.counter_write=function(e,t){this.counter_reload[e]=this.counter_next_low[e]?-256&this.counter_reload[e]|t:255&this.counter_reload[e]|t<<8,3===this.counter_read_mode[e]&&this.counter_next_low[e]||(this.counter_reload[e]||(this.counter_reload[e]=65535),this.counter_start_value[e]=this.counter_reload[e],this.counter_enabled[e]=!0,this.counter_start_time[e]=v86.microtick(),dbg_log("counter"+e+" reload="+h(this.counter_reload[e])+" tick="+(this.counter_reload[e]||65536)/OSCILLATOR_FREQ+"ms",LOG_PIT)),3===this.counter_read_mode[e]&&(this.counter_next_low[e]^=1),this.bus.send("pcspeaker-update",[this.counter_mode[2],this.counter_reload[2]])},PIT.prototype.port43_write=function(e){var t=e>>1&7,s=1&e,r=e>>6&3;e=e>>4&3,1===r&&dbg_log("Unimplemented timer1",LOG_PIT),3===r?dbg_log("Unimplemented read back",LOG_PIT):0===e?(this.counter_latch[r]=2,t=this.get_counter_value(r,v86.microtick()),dbg_log("latch: "+t,LOG_PIT),this.counter_latch_value[r]=t?t-1:0):(6<=t&&(t&=-5),dbg_log("Control: mode="+t+" ctr="+r+" read_mode="+e+" bcd="+s,LOG_PIT),this.counter_next_low[r]=1===e?0:1,0===r&&this.cpu.device_lower_irq(0),0!==t&&3!==t&&2!==t&&dbg_log("Unimplemented counter mode: "+h(t),LOG_PIT),this.counter_mode[r]=t,this.counter_read_mode[r]=e,this.bus.send("pcspeaker-update",[this.counter_mode[2],this.counter_reload[2]]))};var VGA_BANK_SIZE=65536,MAX_XRES=2560,MAX_YRES=1600,VGA_LFB_ADDRESS=3758096384,VGA_PLANAR_REAL_BUFFER_START=4*VGA_BANK_SIZE;VGAScreen.prototype.get_state=function(){var e=[];return e[0]=this.vga_memory_size,e[1]=this.cursor_address,e[2]=this.cursor_scanline_start,e[3]=this.cursor_scanline_end,e[4]=this.max_cols,e[5]=this.max_rows,e[6]=this.screen_width,e[7]=this.screen_height,e[8]=this.start_address,e[9]=this.graphical_mode,e[10]=this.vga256_palette,e[11]=this.latch0,e[12]=this.latch1,e[13]=this.latch2,e[14]=this.latch3,e[15]=this.svga_width,e[16]=this.svga_height,e[17]=this.text_mode_width,e[18]=this.svga_enabled,e[19]=this.svga_bpp,e[20]=this.svga_bank_offset,e[21]=this.svga_offset,e[22]=this.index_crtc,e[23]=this.dac_color_index_write,e[24]=this.dac_color_index_read,e[25]=this.dac_map,e[26]=this.sequencer_index,e[27]=this.plane_write_bm,e[28]=this.sequencer_memory_mode,e[29]=this.graphics_index,e[30]=this.plane_read,e[31]=this.planar_mode,e[32]=this.planar_rotate_reg,e[33]=this.planar_bitmap,e[34]=this.max_scan_line,e[35]=this.miscellaneous_output_register,e[36]=this.port_3DA_value,e[37]=this.dispi_index,e[38]=this.dispi_enable_value,e[39]=this.svga_memory,e[40]=this.graphical_mode_is_linear,e[41]=this.attribute_controller_index,e[42]=this.offset_register,e},VGAScreen.prototype.set_state=function(e){this.vga_memory_size=e[0],this.cursor_address=e[1],this.cursor_scanline_start=e[2],this.cursor_scanline_end=e[3],this.max_cols=e[4],this.max_rows=e[5],this.screen_width=e[6],this.screen_height=e[7],this.start_address=e[8],this.graphical_mode=e[9],this.vga256_palette=e[10],this.latch0=e[11],this.latch1=e[12],this.latch2=e[13],this.latch3=e[14],this.svga_width=e[15],this.svga_height=e[16],this.text_mode_width=e[17],this.svga_enabled=e[18],this.svga_bpp=e[19],this.svga_bank_offset=e[20],this.svga_offset=e[21],this.index_crtc=e[22],this.dac_color_index_write=e[23],this.dac_color_index_read=e[24],this.dac_map=e[25],this.sequencer_index=e[26],this.plane_write_bm=e[27],this.sequencer_memory_mode=e[28],this.graphics_index=e[29],this.plane_read=e[30],this.planar_mode=e[31],this.planar_rotate_reg=e[32],this.planar_bitmap=e[33],this.max_scan_line=e[34],this.miscellaneous_output_register=e[35],this.port_3DA_value=e[36],this.dispi_index=e[37],this.dispi_enable_value=e[38],this.svga_memory.set(e[39]),this.graphical_mode_is_linear=e[40],this.attribute_controller_index=e[41],this.offset_register=e[42],this.bus.send("screen-set-mode",this.graphical_mode),this.graphical_mode?this.set_size_graphical(this.svga_width,this.svga_height,this.svga_bpp):(this.set_size_text(this.max_cols,this.max_rows),this.update_cursor_scanline(),this.update_cursor()),this.complete_redraw()},VGAScreen.prototype.vga_memory_read=function(e){return e-=655360,!this.graphical_mode||this.graphical_mode_is_linear?(e|=this.svga_bank_offset,this.svga_memory[e]):(e&=65535,this.latch0=this.plane0[e],this.latch1=this.plane1[e],this.latch2=this.plane2[e],this.latch3=this.plane3[e],this.vga_memory[this.plane_read<<16|e])},VGAScreen.prototype.vga_memory_write=function(e,t){e-=655360,this.graphical_mode?this.graphical_mode_is_linear?this.vga_memory_write_graphical_linear(e,t):this.vga_memory_write_graphical_planar(e,t):this.vga_memory_write_text_mode(e,t)},VGAScreen.prototype.vga_memory_write_graphical_linear=function(e,t){e|=this.svga_bank_offset,this.diff_addr_min=ethis.diff_addr_max?e:this.diff_addr_max,this.svga_memory[e]=t},VGAScreen.prototype.vga_memory_write_graphical_planar=function(e,t){if(!(65535=this.screen_width*this.screen_height<<3))for(s<<=1,r<<=2,i<<=3,e=e<<3|7,t=e+VGA_PLANAR_REAL_BUFFER_START,this.diff_addr_min=t-7this.diff_addr_max?t:this.diff_addr_max,t=0;8>t;t++)this.svga_memory[e+VGA_PLANAR_REAL_BUFFER_START]=this.dac_map[a>>t&1|s>>t&2|r>>t&4|i>>t&8],e--}},VGAScreen.prototype.text_mode_redraw=function(){for(var e=98304|this.start_address<<1,t,s,r=0;r>4&15],this.vga256_palette[15&s]]),e+=2},VGAScreen.prototype.vga_memory_write_text_mode=function(e,t){if(!(98304>e)){var s=(e-98304>>1)-this.start_address,r=s/this.max_cols|0;if(s%=this.max_cols,1&e)var i=t,_=this.vga_memory[-2&e];else _=t,i=this.vga_memory[1|e];this.bus.send("screen-put-char",[r,s,_,this.vga256_palette[i>>4&15],this.vga256_palette[15&i]]),this.vga_memory[e]=t}},VGAScreen.prototype.update_cursor=function(){var e=(this.cursor_address-this.start_address)/this.max_cols|0,t=(this.cursor_address-this.start_address)%this.max_cols;e=Math.min(this.max_rows-1,e),this.bus.send("screen-update-cursor",[e,t])},VGAScreen.prototype.svga_memory_read8=function(e){return this.svga_memory[268435455&e]},VGAScreen.prototype.svga_memory_read32=function(e){return e&=268435455,3&e?this.svga_memory[e]|this.svga_memory[e+1]<<8|this.svga_memory[e+2]<<16|this.svga_memory[e+3]<<24:this.svga_memory32[e>>2]},VGAScreen.prototype.svga_memory_write8=function(e,t){e&=268435455,this.svga_memory[e]=t,this.diff_addr_min=ethis.diff_addr_max?e:this.diff_addr_max},VGAScreen.prototype.svga_memory_write32=function(e,t){e&=268435455,this.diff_addr_min=ethis.diff_addr_max?e+3:this.diff_addr_max,this.svga_memory[e]=t,this.svga_memory[e+1]=t>>8,this.svga_memory[e+2]=t>>16,this.svga_memory[e+3]=t>>24},VGAScreen.prototype.complete_redraw=function(){dbg_log("complete redraw",LOG_VGA),this.graphical_mode?(this.diff_addr_min=0,this.diff_addr_max=this.vga_memory_size):this.text_mode_redraw()},VGAScreen.prototype.destroy=function(){},VGAScreen.prototype.set_size_text=function(e,t){this.max_cols=e,this.max_rows=t,this.bus.send("screen-set-size-text",[e,t])},VGAScreen.prototype.set_size_graphical=function(e,t,s){this.screen_width=e,this.screen_height=t,this.stats.bpp=s,this.stats.is_graphical=!0,this.stats.res_x=e,this.stats.res_y=t,this.bus.send("screen-set-size-graphical",[e,t,s])},VGAScreen.prototype.update_cursor_scanline=function(){this.bus.send("screen-update-cursor-scanline",[this.cursor_scanline_start,this.cursor_scanline_end])},VGAScreen.prototype.set_video_mode=function(e){var t=!1,s=0,r=0;switch(e){case 102:this.set_size_text(110,46);break;case 3:this.set_size_text(this.text_mode_width,25);break;case 16:s=640,r=350,t=!0,this.graphical_mode_is_linear=!1;break;case 18:s=640,r=480,t=!0,this.graphical_mode_is_linear=!1;break;case 19:s=320,r=200,this.graphical_mode_is_linear=t=!0}this.bus.send("screen-set-mode",t),(this.stats.is_graphical=t)&&(this.svga_width=s,this.svga_height=r,this.set_size_graphical(s,r,8)),this.graphical_mode=t,dbg_log("Current video mode: "+h(e),LOG_VGA)},VGAScreen.prototype.port3C0_write=function(e){-1===this.attribute_controller_index?this.attribute_controller_index=e:(16>this.attribute_controller_index?this.dac_map[this.attribute_controller_index]=e:dbg_log("3C0 / attribute controller write "+h(this.attribute_controller_index)+": "+h(e),LOG_VGA),this.attribute_controller_index=-1)},VGAScreen.prototype.port3C0_read=function(){dbg_log("3C0 read",LOG_VGA);var e=this.attribute_controller_index;return this.attribute_controller_index=-1,e},VGAScreen.prototype.port3C0_read16=function(){return dbg_log("3C0 read16",LOG_VGA),255&this.port3C0_read()|this.port3C1_read()<<8&65280},VGAScreen.prototype.port3C1_read=function(){return this.attribute_controller_index=-1,dbg_log("3C1 / attribute controller read "+h(this.attribute_controller_index),LOG_VGA),-1},VGAScreen.prototype.port3C2_write=function(e){dbg_log("3C2 / miscellaneous output register = "+h(e),LOG_VGA),this.miscellaneous_output_register=e,this.switch_video_mode(e)},VGAScreen.prototype.port3C4_write=function(e){this.sequencer_index=e},VGAScreen.prototype.port3C4_read=function(){return this.sequencer_index},VGAScreen.prototype.port3C5_write=function(e){switch(this.sequencer_index){case 2:this.plane_write_bm=e;break;case 4:dbg_log("sequencer memory mode: "+h(e),LOG_VGA),this.sequencer_memory_mode=e;break;default:dbg_log("3C5 / sequencer write "+h(this.sequencer_index)+": "+h(e),LOG_VGA)}},VGAScreen.prototype.port3C5_read=function(){switch(dbg_log("3C5 / sequencer read "+h(this.sequencer_index),LOG_VGA),this.sequencer_index){case 2:return this.plane_write_bm;case 4:return this.sequencer_memory_mode;case 6:return 18}return 0},VGAScreen.prototype.port3C7_write=function(e){dbg_log("3C7 write: "+h(e),LOG_VGA),this.dac_color_index_read=3*e},VGAScreen.prototype.port3C8_write=function(e){this.dac_color_index_write=3*e},VGAScreen.prototype.port3C9_write=function(e){var t=this.dac_color_index_write/3|0,s=this.dac_color_index_write%3,r=this.vga256_palette[t];e=255*e/63&255,0===s?r=-16711681&r|e<<16:1===s?r=-65281&r|e<<8:(r=-256&r|e,dbg_log("dac set color, index="+h(t)+" value="+h(r),LOG_VGA)),this.vga256_palette[t]=r,this.dac_color_index_write++},VGAScreen.prototype.port3C9_read=function(){dbg_log("3C9 read",LOG_VGA);var e=this.dac_color_index_read%3,t=this.vga256_palette[this.dac_color_index_read/3|0];return this.dac_color_index_read++,(t>>8*(2-e)&255)/255*63|0},VGAScreen.prototype.port3CC_read=function(){return dbg_log("3CC read",LOG_VGA),this.miscellaneous_output_register},VGAScreen.prototype.port3CE_write=function(e){this.graphics_index=e},VGAScreen.prototype.port3CE_read=function(){return this.graphics_index},VGAScreen.prototype.port3CF_write=function(e){switch(this.graphics_index){case 3:this.planar_rotate_reg=e,dbg_log("plane rotate: "+h(e),LOG_VGA);break;case 4:this.plane_read=e,dbg_log("plane read: "+h(e),LOG_VGA);break;case 5:this.planar_mode=e,dbg_log("planar mode: "+h(e),LOG_VGA);break;case 8:this.planar_bitmap=e,dbg_log("planar bitmap: "+h(e),LOG_VGA);break;default:dbg_log("3CF / graphics write "+h(this.graphics_index)+": "+h(e),LOG_VGA)}},VGAScreen.prototype.port3CF_read=function(){switch(dbg_log("3CF / graphics read "+h(this.graphics_index),LOG_VGA),this.graphics_index){case 3:return this.planar_rotate_reg;case 4:return this.plane_read;case 5:return this.planar_mode;case 8:return this.planar_bitmap}return 0},VGAScreen.prototype.port3D4_write=function(e){this.index_crtc=e},VGAScreen.prototype.port3D5_write=function(e){switch(this.index_crtc){case 2:this.text_mode_width=e;break;case 9:this.max_scan_line=e,7==(31&e)?this.set_size_text(this.text_mode_width,50):this.set_size_text(this.text_mode_width,25);break;case 10:this.cursor_scanline_start=e,this.update_cursor_scanline();break;case 11:this.cursor_scanline_end=e,this.update_cursor_scanline();break;case 12:this.previous_start_address=this.start_address,this.start_address=255&this.start_address|e<<8,this.complete_redraw();break;case 13:this.start_address=65280&this.start_address|e,this.start_address-this.previous_start_address&&this.complete_redraw(),dbg_log("start addr: "+h(this.start_address,4),LOG_VGA);break;case 14:this.cursor_address=255&this.cursor_address|e<<8,this.update_cursor();break;case 15:this.cursor_address=65280&this.cursor_address|e,this.update_cursor();break;case 19:this.offset_register=e;break;default:this.index_crtc>8;case 14:return this.cursor_address>>8;case 15:return 255&this.cursor_address;case 1:return 80;case 18:return 50;case 19:return this.offset_register}return this.index_crtcMAX_XRES&&(dbg_log("svga_width reduced from "+this.svga_width+" to "+MAX_XRES,LOG_VGA),this.svga_width=MAX_XRES);break;case 2:this.svga_height=e,this.svga_height>MAX_YRES&&(dbg_log("svga_height reduced from "+this.svga_height+" to "+MAX_YRES,LOG_VGA),this.svga_height=MAX_YRES);break;case 3:this.svga_bpp=e;break;case 4:this.svga_enabled=1==(1&e),this.dispi_enable_value=e;break;case 5:this.svga_bank_offset=e<<16;break;case 9:this.svga_offset=e*this.svga_bytes_per_line(),dbg_log("SVGA offset: "+h(this.svga_offset)+" y="+h(e),LOG_VGA),this.complete_redraw()}!this.svga_enabled||this.svga_width&&this.svga_height||(dbg_log("SVGA: disabled because of invalid width/height: "+this.svga_width+"x"+this.svga_height,LOG_VGA),this.svga_enabled=!1),dbg_assert(4!==this.svga_bpp,"unimplemented svga bpp: 4"),dbg_assert(15!==this.svga_bpp,"unimplemented svga bpp: 15"),dbg_assert(4===this.svga_bpp||8===this.svga_bpp||15===this.svga_bpp||16===this.svga_bpp||24===this.svga_bpp||32===this.svga_bpp,"unexpected svga bpp: "+this.svga_bpp),dbg_log("SVGA: enabled="+this.svga_enabled+", "+this.svga_width+"x"+this.svga_height+"x"+this.svga_bpp,LOG_VGA),this.svga_enabled&&4===this.dispi_index&&(this.set_size_graphical(this.svga_width,this.svga_height,this.svga_bpp),this.bus.send("screen-set-mode",!0),this.graphical_mode_is_linear=this.graphical_mode=!0),this.svga_enabled||(this.svga_bank_offset=0)},VGAScreen.prototype.port1CF_read=function(){return dbg_log("1CF / dispi read "+h(this.dispi_index),LOG_VGA),this.svga_register_read(this.dispi_index)},VGAScreen.prototype.svga_register_read=function(e){switch(e){case 0:return 45248;case 1:return 2&this.dispi_enable_value?MAX_XRES:this.svga_width;case 2:return 2&this.dispi_enable_value?MAX_YRES:this.svga_height;case 3:return 2&this.dispi_enable_value?32:this.svga_bpp;case 4:return this.dispi_enable_value;case 5:return this.svga_bank_offset>>>16;case 6:return this.screen_width?this.screen_width:1;case 8:return 0;case 10:return this.vga_memory_size/VGA_BANK_SIZE|0}return 255},VGAScreen.prototype.screen_fill_buffer=function(){if(this.graphical_mode)if(this.dest_buffer){if(!(this.diff_addr_max>2,a=1+(i>>2);for(t=_;t>16&255|65280&i|4278190080;break;case 24:_=r/3|0,a=1+(i/3|0);var o=3*_;for(t=_;o>1,a=1+(i>>1),t=_;t>11)/31|0,e=255*(i>>5&63)/63|0,n=255*(31&i)/31|0,s[t]=n<<16|e<<8|r|4278190080;break;case 8:for(_=r-e,a=i-e+1,t=r;t>16|4278190080;break;default:dbg_assert(!1,"Unsupported BPP: "+t)}this.diff_addr_min=this.vga_memory_size,this.diff_addr_max=0,this.bus.send("screen-fill-buffer-end",[_,a])}}else dbg_log("Cannot fill buffer: No destination buffer",LOG_VGA)},PS2.prototype.get_state=function(){var e=[];return e[0]=this.enable_mouse_stream,e[1]=this.use_mouse,e[2]=this.have_mouse,e[3]=this.mouse_delta_x,e[4]=this.mouse_delta_y,e[5]=this.mouse_clicks,e[6]=this.have_keyboard,e[7]=this.enable_keyboard_stream,e[8]=this.next_is_mouse_command,e[9]=this.next_read_sample,e[10]=this.next_read_led,e[11]=this.next_handle_scan_code_set,e[12]=this.next_read_rate,e[13]=this.next_read_resolution,e[15]=this.last_port60_byte,e[16]=this.sample_rate,e[17]=this.resolution,e[18]=this.scaling2,e[20]=this.command_register,e[21]=this.read_output_register,e[22]=this.read_command_register,e},PS2.prototype.set_state=function(e){this.enable_mouse_stream=e[0],this.use_mouse=e[1],this.have_mouse=e[2],this.mouse_delta_x=e[3],this.mouse_delta_y=e[4],this.mouse_clicks=e[5],this.have_keyboard=e[6],this.enable_keyboard_stream=e[7],this.next_is_mouse_command=e[8],this.next_read_sample=e[9],this.next_read_led=e[10],this.next_handle_scan_code_set=e[11],this.next_read_rate=e[12],this.next_read_resolution=e[13],this.last_port60_byte=e[15],this.sample_rate=e[16],this.resolution=e[17],this.scaling2=e[18],this.command_register=e[20],this.read_output_register=e[21],this.read_command_register=e[22],this.bus.send("mouse-enable",this.use_mouse)},PS2.prototype.mouse_irq=function(){2&this.command_register&&this.cpu.device_raise_irq(12)},PS2.prototype.kbd_irq=function(){1&this.command_register&&this.cpu.device_raise_irq(1)},PS2.prototype.kbd_send_code=function(e){this.enable_keyboard_stream&&(this.kbd_buffer.push(e),this.kbd_irq())},PS2.prototype.mouse_send_delta=function(e,t){if(this.have_mouse&&this.use_mouse){var s=this.resolution*this.sample_rate/80;this.mouse_delta_x+=e*s,this.mouse_delta_y+=t*s,this.enable_mouse_stream&&(e=0|this.mouse_delta_x,t=0|this.mouse_delta_y,e||t)&&(Date.now(),this.mouse_delta_x-=e,this.mouse_delta_y-=t,this.send_mouse_packet(e,t))}},PS2.prototype.mouse_send_click=function(e,t,s){this.have_mouse&&this.use_mouse&&(this.mouse_clicks=e|s<<1|t<<2,this.enable_mouse_stream&&this.send_mouse_packet(0,0))},PS2.prototype.send_mouse_packet=function(e,t){var s=(0>t)<<5|(0>e)<<4|8|this.mouse_clicks;this.last_mouse_packet=Date.now(),this.mouse_buffer.push(s),this.mouse_buffer.push(e),this.mouse_buffer.push(t),dbg_log("adding mouse packets: "+[s,e,t],LOG_PS2),this.mouse_irq()},PS2.prototype.apply_scaling2=function(e){var t=e>>31;switch(Math.abs(e)){case 0:case 1:case 3:return e;case 2:return t;case 4:return 6*t;case 5:return 9*t;default:return e<<1}},PS2.prototype.next_byte_is_aux=function(){return this.mouse_buffer.length&&!this.kbd_buffer.length},PS2.prototype.port60_read=function(){return this.kbd_buffer.length||this.mouse_buffer.length?(this.next_byte_is_aux()?(this.cpu.device_lower_irq(12),this.last_port60_byte=this.mouse_buffer.shift(),dbg_log("Port 60 read (mouse): "+h(this.last_port60_byte),LOG_PS2),1<=this.mouse_buffer.length&&this.mouse_irq()):(this.cpu.device_lower_irq(1),this.last_port60_byte=this.kbd_buffer.shift(),dbg_log("Port 60 read (kbd) : "+h(this.last_port60_byte),LOG_PS2),1<=this.kbd_buffer.length&&this.kbd_irq()),this.last_port60_byte):(dbg_log("Port 60 read: Empty",LOG_PS2),this.last_port60_byte)},PS2.prototype.port64_read=function(){var e=16;return(this.mouse_buffer.length||this.kbd_buffer.length)&&(e|=1),this.next_byte_is_aux()&&(e|=32),dbg_log("port 64 read: "+h(e),LOG_PS2),e},PS2.prototype.port60_write=function(e){if(dbg_log("port 60 write: "+h(e),LOG_PS2),this.read_command_register)this.command_register=e,this.read_command_register=!1,dbg_log("Keyboard command register = "+h(this.command_register),LOG_PS2);else if(this.read_output_register)this.read_output_register=!1,this.mouse_buffer.clear(),this.mouse_buffer.push(e),this.mouse_irq();else if(this.next_read_sample)this.next_read_sample=!1,this.mouse_buffer.clear(),this.mouse_buffer.push(250),this.sample_rate=e,dbg_log("mouse sample rate: "+h(e),LOG_PS2),this.sample_rate||(dbg_log("invalid sample rate, reset to 100",LOG_PS2),this.sample_rate=100),this.mouse_irq();else if(this.next_read_resolution)this.next_read_resolution=!1,this.mouse_buffer.clear(),this.mouse_buffer.push(250),3>5;1===t?(this.isr&=this.isr-1,dbg_log("new isr: "+h(this.isr,2),LOG_PIC)):3===t?this.isr&=~(1<<(7&e)):192==(200&e)?dbg_log("lowest priority: "+h(7&e),LOG_PIC):(dbg_log("Unknown eoi: "+h(e),LOG_PIC),dbg_assert(!1),this.isr&=this.isr-1),this.check_irqs()}},PIC.prototype.port20_read=function(){return this.read_isr?(dbg_log("read port 20h (isr): "+h(this.isr),LOG_PIC),this.isr):(dbg_log("read port 20h (irr): "+h(this.irr),LOG_PIC),this.irr)},PIC.prototype.port21_write=function(e){0===this.state?this.expect_icw4?(this.expect_icw4=!1,this.auto_eoi=2&e,dbg_log("icw4: "+h(e)+" autoeoi="+this.auto_eoi,LOG_PIC),0==(1&e)&&dbg_assert(!1,"unimplemented: not 8086 mode",LOG_PIC)):(this.irq_mask=~e,PIC_LOG_VERBOSE&&dbg_log("interrupt mask: "+(255&this.irq_mask).toString(2)+" ("+this.name+")",LOG_PIC),this.check_irqs()):1===this.state?(this.irq_map=e,dbg_log("interrupts are mapped to "+h(this.irq_map)+" ("+this.name+")",LOG_PIC),this.state++):2===this.state&&(this.state=0,dbg_log("icw3: "+h(e),LOG_PIC))},PIC.prototype.port21_read=function(){return dbg_log("21h read "+h(255&~this.irq_mask),LOG_PIC),255&~this.irq_mask},PIC.prototype.port4D0_read=function(){return dbg_log("elcr read: "+h(this.elcr,2),LOG_PIC),this.elcr},PIC.prototype.port4D0_write=function(e){dbg_log("elcr write: "+h(e,2),LOG_PIC),this.elcr=e} +;var CMOS_RTC_SECONDS_ALARM=1,CMOS_RTC_MINUTES_ALARM=3,CMOS_RTC_HOURS_ALARM=5,CMOS_RTC_DAY_WEEK=6,CMOS_RESET_CODE=15,CMOS_FLOPPY_DRIVE_TYPE=16,CMOS_DISK_DATA=18,CMOS_EQUIPMENT_INFO=20,CMOS_MEM_BASE_LOW=21,CMOS_MEM_BASE_HIGH=22,CMOS_MEM_OLD_EXT_LOW=23,CMOS_MEM_OLD_EXT_HIGH=24,CMOS_DISK_DRIVE1_TYPE=25,CMOS_DISK_DRIVE2_TYPE=26,CMOS_DISK_DRIVE1_CYL=27,CMOS_DISK_DRIVE2_CYL=36,CMOS_MEM_EXTMEM_LOW=48,CMOS_MEM_EXTMEM_HIGH=49,CMOS_MEM_EXTMEM2_LOW=52,CMOS_MEM_EXTMEM2_HIGH=53,CMOS_BIOS_BOOTFLAG1=56,CMOS_BIOS_DISKTRANSFLAG=57,CMOS_BIOS_BOOTFLAG2=61,CMOS_MEM_HIGHMEM_LOW=91,CMOS_MEM_HIGHMEM_MID=92,CMOS_MEM_HIGHMEM_HIGH=93,CMOS_BIOS_SMP_COUNT=95;RTC.prototype.get_state=function(){var e=[];return e[0]=this.cmos_index,e[1]=this.cmos_data,e[2]=this.rtc_time,e[3]=this.last_update,e[4]=this.next_interrupt,e[6]=this.periodic_interrupt,e[7]=this.periodic_interrupt_time,e[8]=this.cmos_a,e[9]=this.cmos_b,e[10]=this.cmos_c,e[11]=this.nmi_disabled,e},RTC.prototype.set_state=function(e){this.cmos_index=e[0],this.cmos_data=e[1],this.rtc_time=e[2],this.last_update=e[3],this.next_interrupt=e[4],this.periodic_interrupt=e[6],this.periodic_interrupt_time=e[7],this.cmos_a=e[8],this.cmos_b=e[9],this.cmos_c=e[10],this.nmi_disabled=e[11]},RTC.prototype.timer=function(e,t){return e=Date.now(),this.rtc_time+=e-this.last_update,this.last_update=e,this.periodic_interrupt&&this.next_interrupt>(15&this.cmos_a)-1),dbg_log("Periodic interrupt, a="+h(this.cmos_a,2)+" t="+this.periodic_interrupt_time,LOG_RTC);break;case 11:this.cmos_b=e,64&this.cmos_b&&(this.next_interrupt=Date.now()),32&this.cmos_b&&dbg_log("Unimplemented: alarm interrupt",LOG_RTC),16&this.cmos_b&&dbg_log("Unimplemented: updated interrupt",LOG_RTC),dbg_log("cmos b="+h(this.cmos_b,2),LOG_RTC);break;default:dbg_log("cmos write index "+h(this.cmos_index)+": "+h(e),LOG_RTC)}this.periodic_interrupt=64==(64&this.cmos_b)&&0<(15&this.cmos_a)},RTC.prototype.cmos_read=function(e){return dbg_assert(128>e),this.cmos_data[e]},RTC.prototype.cmos_write=function(e,t){dbg_log("cmos "+h(e)+" <- "+h(t),LOG_RTC),dbg_assert(128>e),this.cmos_data[e]=t};var DLAB=128,UART_IIR_MSI=0,UART_IIR_NO_INT=1,UART_IIR_THRI=2,UART_IIR_RDI=4,UART_IIR_RLSI=6,UART_IIR_CTI=12,UART_LSR_DATA_READY=1,UART_LSR_TX_EMPTY=32,UART_LSR_TRANSMITTER_EMPTY=64;UART.prototype.get_state=function(){var e=[];return e[0]=this.ints,e[1]=this.baud_rate,e[2]=this.line_control,e[3]=this.lsr,e[4]=this.fifo_control,e[5]=this.ier,e[6]=this.iir,e[7]=this.modem_control,e[8]=this.modem_status,e[9]=this.scratch_register,e[10]=this.irq,e},UART.prototype.set_state=function(e){this.ints=e[0],this.baud_rate=e[1],this.line_control=e[2],this.lsr=e[3],this.fifo_control=e[4],this.ier=e[5],this.iir=e[6],this.modem_control=e[7],this.modem_status=e[8],this.scratch_register=e[9],this.irq=e[10]},UART.prototype.CheckInterrupt=function(){this.ints&1<>4,dbg_log("Read isr "+e+": "+h(this.isr[e]>>>0,8),LOG_APIC),this.isr[e];case 384:case 400:case 416:case 432:case 448:case 464:case 480:case 496:return e=e-384>>4,dbg_log("Read tmr "+e+": "+h(this.tmr[e]>>>0,8),LOG_APIC),this.tmr[e];case 512:case 528:case 544:case 560:case 576:case 592:case 608:case 624:return e=e-512>>4,dbg_log("Read irr "+e+": "+h(this.irr[e]>>>0,8),LOG_APIC),this.irr[e];case 640:return dbg_log("Read error: "+h(this.read_error>>>0,8),LOG_APIC),this.read_error;case 768:return APIC_LOG_VERBOSE&&dbg_log("APIC read icr0",LOG_APIC),this.icr0;case 784:return dbg_log("APIC read icr1",LOG_APIC),this.icr1;case 800:return dbg_log("read timer lvt",LOG_APIC),this.lvt_timer;case 832:return dbg_log("read lvt perf counter",LOG_APIC),this.lvt_perf_counter;case 848:return dbg_log("read lvt int0",LOG_APIC),this.lvt_int0;case 864:return dbg_log("read lvt int1",LOG_APIC),this.lvt_int1;case 880:return dbg_log("read lvt error",LOG_APIC),this.lvt_error;case 992:return dbg_log("read timer divider",LOG_APIC),this.timer_divider;case 896:return dbg_log("read timer initial count",LOG_APIC),this.timer_initial_count;case 912:return dbg_log("read timer current count: "+h(this.timer_current_count>>>0,8),LOG_APIC),this.timer_current_count;default:return dbg_log("APIC read "+h(e),LOG_APIC),dbg_assert(!1),0}},APIC.prototype.write32=function(e,t){switch(e=e-APIC_ADDRESS|0){case 48:dbg_log("APIC write version: "+h(t>>>0,8)+", ignored",LOG_APIC);break;case 128:APIC_LOG_VERBOSE&&dbg_log("Set tpr: "+h(255&t,2),LOG_APIC),this.tpr=255&t,this.check_vector();break;case 176:e=this.highest_isr(),-1!==e?(APIC_LOG_VERBOSE&&dbg_log("eoi: "+h(t>>>0,8)+" for vector "+h(e),LOG_APIC),this.register_clear_bit(this.isr,e),this.register_get_bit(this.tmr,e)&&this.cpu.devices.ioapic.remote_eoi(e),this.check_vector()):dbg_log("Bad eoi: No isr set",LOG_APIC);break;case 208:dbg_log("Set local destination: "+h(t>>>0,8),LOG_APIC),this.local_destination=4278190080&t;break;case 224:dbg_log("Set destination format: "+h(t>>>0,8),LOG_APIC),this.destination_format=16777215|t;break;case 240:dbg_log("Set spurious vector: "+h(t>>>0,8),LOG_APIC),this.spurious_vector=t;break;case 640:dbg_log("Write error: "+h(t>>>0,8),LOG_APIC),this.read_error=this.error,this.error=0;break;case 768:e=255&t;var s=t>>8&7,r=t>>11&1,i=t>>15&1,_=t>>18&3,a=this.icr1>>>24;dbg_log("APIC write icr0: "+h(t,8)+" vector="+h(e,2)+" destination_mode="+DESTINATION_MODES[r]+" delivery_mode="+DELIVERY_MODES[s]+" destination_shorthand="+["no","self","all with self","all without self"][_],LOG_APIC),this.icr0=-4097&t,0===_?this.route(e,s,i,a,r):1===_?this.deliver(e,IOAPIC_DELIVERY_FIXED,i):2===_?this.deliver(e,s,i):3!==_&&dbg_assert(!1);break;case 784:dbg_log("APIC write icr1: "+h(t>>>0,8),LOG_APIC),this.icr1=t;break;case 800:dbg_log("timer lvt: "+h(t>>>0,8),LOG_APIC),this.lvt_timer=t;break;case 832:dbg_log("lvt perf counter: "+h(t>>>0,8),LOG_APIC),this.lvt_perf_counter=t;break;case 848:dbg_log("lvt int0: "+h(t>>>0,8),LOG_APIC),this.lvt_int0=t;break;case 864:dbg_log("lvt int1: "+h(t>>>0,8),LOG_APIC),this.lvt_int1=t;break;case 880:dbg_log("lvt error: "+h(t>>>0,8),LOG_APIC),this.lvt_error=t;break;case 992:dbg_log("timer divider: "+h(t>>>0,8),LOG_APIC),this.timer_divider=t,t=3&t|(8&t)>>1,this.timer_divider_shift=7===t?0:t+1;break;case 896:dbg_log("timer initial: "+h(t>>>0,8),LOG_APIC),this.timer_initial_count=t>>>0,this.timer_current_count=t>>>0,this.next_tick=v86.microtick(),this.timer_active=!0;break;case 912:dbg_log("timer current: "+h(t>>>0,8),LOG_APIC),dbg_assert(!1,"read-only register");break;default:dbg_log("APIC write32 "+h(e)+" <- "+h(t>>>0,8),LOG_APIC),dbg_assert(!1)}},APIC.prototype.timer=function(e){0!==this.timer_current_count&&0!=(e=(e-this.next_tick)*TSC_RATE/(1<>>0)&&(this.next_tick+=e/TSC_RATE*(1<=this.timer_current_count&&(e=393216&this.lvt_timer,131072===e?(this.timer_current_count=this.timer_initial_count,0==(this.lvt_timer&IOAPIC_CONFIG_MASKED)&&this.deliver(255&this.lvt_timer,IOAPIC_DELIVERY_FIXED,!1)):0===e&&(this.timer_current_count=0,dbg_log("APIC timer one shot end",LOG_APIC),0==(this.lvt_timer&IOAPIC_CONFIG_MASKED)&&this.deliver(255&this.lvt_timer,IOAPIC_DELIVERY_FIXED,!1))))},APIC.prototype.route=function(e,t,s,r,i){this.deliver(e,t,s)},APIC.prototype.deliver=function(e,t,s){APIC_LOG_VERBOSE&&dbg_log("Deliver "+h(e,2)+" mode="+t+" level="+s,LOG_APIC),t!==IOAPIC_DELIVERY_INIT&&t!==IOAPIC_DELIVERY_NMI&&((16>e||255===e)&&dbg_assert(!1,"TODO: Invalid vector"),this.register_get_bit(this.irr,e)?dbg_log("Not delivered: irr already set, vector="+h(e,2),LOG_APIC):(this.register_set_bit(this.irr,e),s?this.register_set_bit(this.tmr,e):this.register_clear_bit(this.tmr,e),this.check_vector()))},APIC.prototype.highest_irr=function(){var e=this.register_get_highest_bit(this.irr);return dbg_assert(255!==e),dbg_assert(16<=e||-1===e),e},APIC.prototype.highest_isr=function(){var e=this.register_get_highest_bit(this.isr);return dbg_assert(255!==e),dbg_assert(16<=e||-1===e),e},APIC.prototype.check_vector=function(){var e=this.highest_irr();if(-1!==e){var t=this.highest_isr();t>=e?APIC_LOG_VERBOSE&&dbg_log("Higher isr, isr="+h(t)+" irr="+h(e),LOG_APIC):(240&e)<=(240&this.tpr)?APIC_LOG_VERBOSE&&dbg_log("Higher tpr, tpr="+h(240&this.tpr)+" irr="+h(e),LOG_APIC):this.cpu.handle_irqs()}},APIC.prototype.acknowledge_irq=function(){var e=this.highest_irr();if(-1!==e){var t=this.highest_isr();t>=e?APIC_LOG_VERBOSE&&dbg_log("Higher isr, isr="+h(t)+" irr="+h(e),LOG_APIC):(240&e)<=(240&this.tpr)?APIC_LOG_VERBOSE&&dbg_log("Higher tpr, tpr="+h(240&this.tpr)+" irr="+h(e),LOG_APIC):(this.register_clear_bit(this.irr,e),this.register_set_bit(this.isr,e),APIC_LOG_VERBOSE&&dbg_log("Calling vector "+h(e),LOG_APIC),this.cpu.pic_call_irq(e),this.check_vector())}},APIC.prototype.get_state=function(){var e=[];return e[0]=this.apic_id,e[1]=this.timer_divider,e[2]=this.timer_divider_shift,e[3]=this.timer_initial_count,e[4]=this.timer_current_count,e[5]=this.next_tick,e[6]=this.lvt_timer,e[7]=this.lvt_perf_counter,e[8]=this.lvt_int0,e[9]=this.lvt_int1,e[10]=this.lvt_error,e[11]=this.tpr,e[12]=this.icr0,e[13]=this.icr1,e[14]=this.irr,e[15]=this.isr,e[16]=this.tmr,e[17]=this.spurious_vector,e[18]=this.destination_format,e[19]=this.local_destination,e[20]=this.error,e[21]=this.read_error,e},APIC.prototype.set_state=function(e){this.apic_id=e[0],this.timer_divider=e[1],this.timer_divider_shift=e[2],this.timer_initial_count=e[3],this.timer_current_count=e[4],this.next_tick=e[5],this.lvt_timer=e[6],this.lvt_perf_counter=e[7],this.lvt_int0=e[8],this.lvt_int1=e[9],this.lvt_error=e[10],this.tpr=e[11],this.icr0=e[12],this.icr1=e[13],this.irr=e[14],this.isr=e[15],this.tmr=e[16],this.spurious_vector=e[17],this.destination_format=e[18],this.local_destination=e[19],this.error=e[20],this.read_error=e[21]},APIC.prototype.register_get_bit=function(e,t){return dbg_assert(0<=t&&256>t),e[t>>5]>>(31&t)&1},APIC.prototype.register_set_bit=function(e,t){dbg_assert(0<=t&&256>t),e[t>>5]|=1<<(31&t)},APIC.prototype.register_clear_bit=function(e,t){dbg_assert(0<=t&&256>t),e[t>>5]&=~(1<<(31&t))},APIC.prototype.register_get_highest_bit=function(e){for(var t=7;0<=t;t--){var s=e[t];if(s)return v86util.int_log2(s>>>0)|t<<5}return-1};var IOAPIC_ADDRESS=4273995776,IOREGSEL=0,IOWIN=16,IOAPIC_IRQ_COUNT=24,IOAPIC_ID=0,IOAPIC_CONFIG_TRIGGER_MODE_LEVEL=32768,IOAPIC_CONFIG_MASKED=65536,IOAPIC_CONFIG_DELIVS=4096,IOAPIC_CONFIG_REMOTE_IRR=16384,IOAPIC_CONFIG_READONLY_MASK=IOAPIC_CONFIG_REMOTE_IRR|IOAPIC_CONFIG_DELIVS|4294836224,IOAPIC_DELIVERY_FIXED=0,IOAPIC_DELIVERY_NMI=4,IOAPIC_DELIVERY_INIT=5;IOAPIC.prototype.remote_eoi=function(e){for(var t=0;t=IOAPIC_IRQ_COUNT)dbg_assert(!1,"Bad irq: "+e,LOG_APIC);else{var t=1<=IOAPIC_IRQ_COUNT)dbg_assert(!1,"Bad irq: "+e,LOG_APIC);else{var t=1<>1;return 1&e?(e=this.ioredtbl_destination[t],dbg_log("IOAPIC Read destination irq="+h(t)+" -> "+h(e,8),LOG_APIC)):(e=this.ioredtbl_config[t],dbg_log("IOAPIC Read config irq="+h(t)+" -> "+h(e,8),LOG_APIC)),e}return dbg_log("IOAPIC register read outside of range "+h(e),LOG_APIC),dbg_assert(!1),0},IOAPIC.prototype.write=function(e,t){if(0===e)this.ioapic_id=t>>>24&15;else if(1===e||2===e)dbg_log("Invalid write: "+e,LOG_APIC);else if(16<=e&&e<16+2*IOAPIC_IRQ_COUNT){var s=e-16>>1;if(1&e)this.ioredtbl_destination[s]=4278190080&t,dbg_log("Write destination "+h(t>>>0,8)+" irq="+h(s)+" dest="+h(t>>>24,2),LOG_APIC);else{this.ioredtbl_config[s]=t&~IOAPIC_CONFIG_READONLY_MASK|this.ioredtbl_config[s]&IOAPIC_CONFIG_READONLY_MASK,e=255&t;var r=t>>8&7,i=t>>11&1,_=t>>15&1,a=t>>16&1;dbg_log("Write config "+h(t>>>0,8)+" irq="+h(s)+" vector="+h(e,2)+" deliverymode="+DELIVERY_MODES[r]+" destmode="+DESTINATION_MODES[i]+" is_level="+_+" disabled="+a,LOG_APIC),this.check_irq(s)}}else dbg_log("IOAPIC register write outside of range "+h(e)+": "+h(t>>>0,8),LOG_APIC),dbg_assert(!1)},IOAPIC.prototype.get_state=function(){var e=[];return e[0]=this.ioredtbl_config,e[1]=this.ioredtbl_destination,e[2]=this.ioregsel,e[3]=this.ioapic_id,e[4]=this.irr,e[5]=this.irq_value,e},IOAPIC.prototype.set_state=function(e){this.ioredtbl_config=e[0],this.ioredtbl_destination=e[1],this.ioregsel=e[2],this.ioapic_id=e[3],this.irr=e[4],this.irq_value=e[5]};var STATE_VERSION=4,STATE_MAGIC=-2039052682,STATE_INDEX_MAGIC=0,STATE_INDEX_VERSION=1,STATE_INDEX_TOTAL_LEN=2,STATE_INDEX_INFO_LEN=3,STATE_INFO_BLOCK_START=16;StateLoadError.prototype=Error(),CPU.prototype.save_state=function(){for(var e=[],t=save_object(this,e),s=[],r=0,i=0;i>>0));if(s[STATE_INDEX_VERSION]!==STATE_VERSION)throw new StateLoadError("Version mismatch: dump="+s[STATE_INDEX_VERSION]+" we="+STATE_VERSION);if(s[STATE_INDEX_TOTAL_LEN]!==t)throw new StateLoadError("Length doesn't match header: real="+t+" header="+s[STATE_INDEX_TOTAL_LEN]);if(0>(s=s[STATE_INDEX_INFO_LEN])||s+12>=t||s%2)throw new StateLoadError("Invalid info block length: "+s);var r=s/2,i=new Uint16Array(e,STATE_INFO_BLOCK_START,r),_="";for(t=0;t>8);if(t+s>this.memory.length){dbg_assert(60<=e.length);var _=this.memory.length-r;this.memory.set(e.subarray(0,_),r),this.memory.set(e.subarray(_),START_RX_PAGE),dbg_log("rcv cut="+h(_),LOG_NET)}else if(this.memory.set(e,r),60>e.length)for(e=e.length;60>e;e++)this.memory[r+e]=0;i>=this.pstop&&(i+=this.pstart-this.pstop),this.memory[t]=1,this.memory[t+1]=i,this.memory[t+2]=s,this.memory[t+3]=s>>8,this.curpg=i,dbg_log("rcv offset="+h(t)+" len="+h(s)+" next="+h(i),LOG_NET),this.do_interrupt(1)}},Ne2k.prototype.get_page=function(){return 192&this.cr};var DSP_COPYRIGHT="COPYRIGHT (C) CREATIVE TECHNOLOGY LTD, 1992.",DSP_NO_COMMAND=0,DSP_BUFSIZE=64,DSP_DACSIZE=65536,SB_DMA_BUFSIZE=65536,SB_DMA_BLOCK_SAMPLES=1024,SB_DMA0=0,SB_DMA1=1,SB_DMA3=3,SB_DMA5=5,SB_DMA6=6,SB_DMA7=7,SB_DMA_CHANNEL_8BIT=SB_DMA1,SB_DMA_CHANNEL_16BIT=SB_DMA5,SB_IRQ2=2,SB_IRQ5=5,SB_IRQ7=7,SB_IRQ10=10,SB_IRQ=SB_IRQ5,SB_IRQ_8BIT=1,SB_IRQ_16BIT=2,SB_IRQ_MIDI=1,SB_IRQ_MPU=4,DSP_COMMAND_SIZES=new Uint8Array(256),DSP_COMMAND_HANDLERS=[],MIXER_READ_HANDLERS=[],MIXER_WRITE_HANDLERS=[],FM_HANDLERS=[];SB16.prototype.reset_dsp=function(){this.write_buffer.clear(),this.read_buffer.clear(),this.command=DSP_NO_COMMAND,this.command_size=0,this.dummy_speaker_enabled=!1,this.test_register=0,this.dsp_signed=this.dsp_16bit=this.dsp_stereo=this.dsp_highspeed=!1,this.dac_buffers[0].clear(),this.dac_buffers[1].clear(),this.dac_rate_ratio=2,this.dma_channel=this.dma_irq=this.dma_bytes_block=this.dma_bytes_left=this.dma_bytes_count=this.dma_sample_count=0,this.dma_autoinit=!1,this.dma_buffer_uint8.fill(0),this.dma_paused=this.dma_waiting_transfer=!1,this.e2_value=170,this.e2_count=0,this.sampling_rate=22050,this.bytes_per_sample=1,this.lower_irq(SB_IRQ_8BIT),this.irq_triggered.fill(0),this.asp_registers.fill(0),this.asp_registers[5]=1,this.asp_registers[9]=248},SB16.prototype.get_state=function(){var e=[];return e[2]=this.read_buffer_lastvalue,e[3]=this.command,e[4]=this.command_size,e[5]=this.mixer_current_address,e[6]=this.mixer_unhandled_registers,e[7]=this.dummy_speaker_enabled,e[8]=this.test_register,e[9]=this.dsp_highspeed,e[10]=this.dsp_stereo,e[11]=this.dsp_16bit,e[12]=this.dsp_signed,e[14]=this.dac_rate_ratio,e[15]=this.dma_sample_count,e[16]=this.dma_bytes_count,e[17]=this.dma_bytes_left,e[18]=this.dma_bytes_block,e[19]=this.dma_irq,e[20]=this.dma_channel,e[21]=this.dma_channel_8bit,e[22]=this.dma_channel_16bit,e[23]=this.dma_autoinit,e[24]=this.dma_buffer_uint8,e[25]=this.dma_waiting_transfer,e[26]=this.dma_paused,e[27]=this.sampling_rate,e[28]=this.bytes_per_sample,e[29]=this.e2_value,e[30]=this.e2_count,e[31]=this.asp_registers,e[33]=this.mpu_read_buffer_last_value,e[34]=this.irq,e[35]=this.irq_triggered,e[36]=this.audio_samplerate,e},SB16.prototype.set_state=function(e){this.read_buffer_lastvalue=e[2],this.command=e[3],this.command_size=e[4],this.mixer_current_address=e[5],this.mixer_unhandled_registers=e[6],this.dummy_speaker_enabled=e[7],this.test_register=e[8],this.dsp_highspeed=e[9],this.dsp_stereo=e[10],this.dsp_16bit=e[11],this.dsp_signed=e[12],this.dac_rate_ratio=e[14],this.dma_sample_count=e[15],this.dma_bytes_count=e[16],this.dma_bytes_left=e[17],this.dma_bytes_block=e[18],this.dma_irq=e[19],this.dma_channel=e[20],this.dma_channel_8bit=e[21],this.dma_channel_16bit=e[22],this.dma_autoinit=e[23],this.dma_buffer_uint8=e[24],this.dma_waiting_transfer=e[25],this.dma_paused=e[26],this.sampling_rate=e[27],this.bytes_per_sample=e[28],this.e2_value=e[29],this.e2_count=e[30],this.asp_registers=e[31],this.mpu_read_buffer_last_value=e[33],this.irq=e[34],this.irq_triggered=e[35],this.audio_samplerate=e[36],this.dma_buffer=this.dma_buffer_uint8.buffer,this.dma_buffer_int8=new Int8Array(this.dma_buffer),this.dma_buffer_int16=new Int16Array(this.dma_buffer),this.dma_buffer_uint16=new Uint16Array(this.dma_buffer),this.dma_syncbuffer=new SyncBuffer(this.dma_buffer),this.bus.send("speaker-update-enable",!this.dma_paused)},SB16.prototype.port2x0_read=function(){return dbg_log("220 read: fm music status port (unimplemented)",LOG_SB16),255},SB16.prototype.port2x1_read=function(){return dbg_log("221 read: fm music data port (write only)",LOG_SB16),255},SB16.prototype.port2x2_read=function(){return dbg_log("222 read: advanced fm music status port (unimplemented)",LOG_SB16),255},SB16.prototype.port2x3_read=function(){return dbg_log("223 read: advanced music data port (write only)",LOG_SB16),255},SB16.prototype.port2x4_read=function(){return dbg_log("224 read: mixer address port",LOG_SB16),this.mixer_current_address},SB16.prototype.port2x5_read=function(){dbg_log("225 read: mixer data port",LOG_SB16);var e=MIXER_READ_HANDLERS[this.mixer_current_address];return e||(e=this.mixer_default_read),e.call(this)},SB16.prototype.port2x6_read=function(){return dbg_log("226 read: (write only)",LOG_SB16),255},SB16.prototype.port2x7_read=function(){return dbg_log("227 read: undocumented",LOG_SB16),255},SB16.prototype.port2x8_read=function(){return dbg_log("228 read: fm music status port (unimplemented)",LOG_SB16),255},SB16.prototype.port2x9_read=function(){return dbg_log("229 read: fm music data port (write only)",LOG_SB16),255},SB16.prototype.port2xA_read=function(){return dbg_log("22A read: read data",LOG_SB16),this.read_buffer.length&&(this.read_buffer_lastvalue=this.read_buffer.shift()),dbg_log(" <- "+this.read_buffer_lastvalue+" "+h(this.read_buffer_lastvalue)+" '"+String.fromCharCode(this.read_buffer_lastvalue)+"'",LOG_SB16),this.read_buffer_lastvalue},SB16.prototype.port2xB_read=function(){return dbg_log("22B read: undocumented",LOG_SB16),255},SB16.prototype.port2xC_read=function(){return dbg_log("22C read: write-buffer status",LOG_SB16),127},SB16.prototype.port2xD_read=function(){return dbg_log("22D read: undocumented",LOG_SB16),255},SB16.prototype.port2xE_read=function(){return dbg_log("22E read: read-buffer status / irq 8bit ack.",LOG_SB16),this.irq_triggered[SB_IRQ_8BIT]&&this.lower_irq(SB_IRQ_8BIT),(this.read_buffer.length&&!this.dsp_highspeed)<<7|127},SB16.prototype.port2xF_read=function(){return dbg_log("22F read: irq 16bit ack",LOG_SB16),this.lower_irq(SB_IRQ_16BIT),0},SB16.prototype.port2x0_write=function(e){dbg_log("220 write: (unimplemented) fm register 0 address = "+h(e),LOG_SB16),this.fm_current_address0=0},SB16.prototype.port2x1_write=function(e){dbg_log("221 write: (unimplemented) fm register 0 data = "+h(e),LOG_SB16);var t=FM_HANDLERS[this.fm_current_address0];t||(t=this.fm_default_write),t.call(this,e,0,this.fm_current_address0)},SB16.prototype.port2x2_write=function(e){dbg_log("222 write: (unimplemented) fm register 1 address = "+h(e),LOG_SB16),this.fm_current_address1=0},SB16.prototype.port2x3_write=function(e){dbg_log("223 write: (unimplemented) fm register 1 data ="+h(e),LOG_SB16);var t=FM_HANDLERS[this.fm_current_address1];t||(t=this.fm_default_write),t.call(this,e,1,this.fm_current_address1)},SB16.prototype.port2x4_write=function(e){dbg_log("224 write: mixer address = "+h(e),LOG_SB16),this.mixer_current_address=e},SB16.prototype.port2x5_write=function(e){dbg_log("225 write: mixer data = "+h(e),LOG_SB16);var t=MIXER_WRITE_HANDLERS[this.mixer_current_address];t||(t=this.mixer_default_write),t.call(this,e)},SB16.prototype.port2x6_write=function(e){dbg_log("226 write: reset = "+h(e),LOG_SB16),this.dsp_highspeed?(dbg_log(" -> exit highspeed",LOG_SB16),this.dsp_highspeed=!1):e&&(dbg_log(" -> reset",LOG_SB16),this.reset_dsp()),this.read_buffer.clear(),this.read_buffer.push(170)},SB16.prototype.port2x7_write=function(e){dbg_log("227 write: undocumented",LOG_SB16)},SB16.prototype.port2x8_write=function(e){dbg_log("228 write: fm music register port (unimplemented)",LOG_SB16)},SB16.prototype.port2x9_write=function(e){dbg_log("229 write: fm music data port (unimplemented)",LOG_SB16)},SB16.prototype.port2xA_write=function(e){dbg_log("22A write: dsp read data port (read only)",LOG_SB16)},SB16.prototype.port2xB_write=function(e){dbg_log("22B write: undocumented",LOG_SB16)},SB16.prototype.port2xC_write=function(e){dbg_log("22C write: write command/data",LOG_SB16),this.command===DSP_NO_COMMAND?(dbg_log("22C write: command = "+h(e),LOG_SB16),this.command=e,this.write_buffer.clear(),this.command_size=DSP_COMMAND_SIZES[e]):(dbg_log("22C write: data: "+h(e),LOG_SB16),this.write_buffer.push(e)),this.write_buffer.length>=this.command_size&&this.command_do()},SB16.prototype.port2xD_write=function(e){dbg_log("22D write: undocumented",LOG_SB16)},SB16.prototype.port2xE_write=function(e){dbg_log("22E write: dsp read buffer status (read only)",LOG_SB16)},SB16.prototype.port2xF_write=function(e){dbg_log("22F write: undocumented",LOG_SB16)},SB16.prototype.port3x0_read=function(){return dbg_log("330 read: mpu data",LOG_SB16),this.mpu_read_buffer.length&&(this.mpu_read_buffer_lastvalue=this.mpu_read_buffer.shift()),dbg_log(" <- "+h(this.mpu_read_buffer_lastvalue),LOG_SB16),this.mpu_read_buffer_lastvalue},SB16.prototype.port3x0_write=function(e){dbg_log("330 write: mpu data (unimplemented) : "+h(e),LOG_SB16)},SB16.prototype.port3x1_read=function(){return dbg_log("331 read: mpu status",LOG_SB16),0|128*!this.mpu_read_buffer.length},SB16.prototype.port3x1_write=function(e){dbg_log("331 write: mpu command: "+h(e),LOG_SB16),255==e&&(this.mpu_read_buffer.clear(),this.mpu_read_buffer.push(254))},SB16.prototype.command_do=function(){var e=DSP_COMMAND_HANDLERS[this.command];e||(e=this.dsp_default_handler),e.call(this),this.command=DSP_NO_COMMAND,this.command_size=0, +this.write_buffer.clear()},SB16.prototype.dsp_default_handler=function(){dbg_log("Unhandled command: "+h(this.command),LOG_SB16)},register_dsp_command([14],2,function(){this.asp_registers[this.write_buffer.shift()]=this.write_buffer.shift()}),register_dsp_command([15],1,function(){this.read_buffer.clear(),this.read_buffer.push(this.asp_registers[this.write_buffer.shift()])}),register_dsp_command([16],1,function(){var e=audio_normalize(this.write_buffer.shift(),127.5,-1);this.dac_buffers[0].push(e),this.dac_buffers[1].push(e),this.bus.send("speaker-update-enable",!0)}),register_dsp_command([20,21],2,function(){this.dma_irq=SB_IRQ_8BIT,this.dma_channel=this.dma_channel_8bit,this.dsp_highspeed=this.dsp_16bit=this.dsp_signed=this.dma_autoinit=!1,this.dma_transfer_size_set(),this.dma_transfer_start()}),register_dsp_command([22],2),register_dsp_command([23],2),register_dsp_command([28],0,function(){this.dma_irq=SB_IRQ_8BIT,this.dma_channel=this.dma_channel_8bit,this.dma_autoinit=!0,this.dsp_highspeed=this.dsp_16bit=this.dsp_signed=!1,this.dma_transfer_start()}),register_dsp_command([31],0),register_dsp_command([32],0,function(){this.read_buffer.clear(),this.read_buffer.push(127)}),register_dsp_command([36],2),register_dsp_command([44],0),register_dsp_command([48],0),register_dsp_command([49],0),register_dsp_command([52],0),register_dsp_command([53],0),register_dsp_command([54],0),register_dsp_command([55],0),register_dsp_command([56],0),register_dsp_command([64],1,function(){this.sampling_rate_change(1e6/(256-this.write_buffer.shift())/this.get_channel_count())}),register_dsp_command([65,66],2,function(){this.sampling_rate_change(this.write_buffer.shift()<<8|this.write_buffer.shift())}),register_dsp_command([72],2,function(){this.dma_transfer_size_set()}),register_dsp_command([116],2),register_dsp_command([117],2),register_dsp_command([118],2),register_dsp_command([119],2),register_dsp_command([125],0),register_dsp_command([127],0),register_dsp_command([128],2),register_dsp_command([144],0,function(){this.dma_irq=SB_IRQ_8BIT,this.dma_channel=this.dma_channel_8bit,this.dma_autoinit=!0,this.dsp_signed=!1,this.dsp_highspeed=!0,this.dsp_16bit=!1,this.dma_transfer_start()}),register_dsp_command([145],0),register_dsp_command([152],0),register_dsp_command([153],0),register_dsp_command([160],0),register_dsp_command([168],0),register_dsp_command(any_first_digit(176),3,function(){if(8&this.command)this.dsp_default_handler();else{var e=this.write_buffer.shift();this.dma_irq=SB_IRQ_16BIT,this.dma_channel=this.dma_channel_16bit,this.dma_autoinit=!!(4&this.command),this.dsp_signed=!!(16&e),this.dsp_stereo=!!(32&e),this.dsp_16bit=!0,this.dma_transfer_size_set(),this.dma_transfer_start()}}),register_dsp_command(any_first_digit(192),3,function(){if(8&this.command)this.dsp_default_handler();else{var e=this.write_buffer.shift();this.dma_irq=SB_IRQ_8BIT,this.dma_channel=this.dma_channel_8bit,this.dma_autoinit=!!(4&this.command),this.dsp_signed=!!(16&e),this.dsp_stereo=!!(32&e),this.dsp_16bit=!1,this.dma_transfer_size_set(),this.dma_transfer_start()}}),register_dsp_command([208],0,function(){this.dma_paused=!0,this.bus.send("speaker-update-enable",!1)}),register_dsp_command([209],0,function(){this.dummy_speaker_enabled=!0}),register_dsp_command([211],0,function(){this.dummy_speaker_enabled=!1}),register_dsp_command([212],0,function(){this.dma_paused=!1,this.bus.send("speaker-update-enable",!0)}),register_dsp_command([213],0,function(){this.dma_paused=!0,this.bus.send("speaker-update-enable",!1)}),register_dsp_command([214],0,function(){this.dma_paused=!1,this.bus.send("speaker-update-enable",!0)}),register_dsp_command([216],0,function(){this.read_buffer.clear(),this.read_buffer.push(255*this.dummy_speaker_enabled)}),register_dsp_command([217,218],0,function(){this.dma_autoinit=!1}),register_dsp_command([224],1,function(){this.read_buffer.clear(),this.read_buffer.push(~this.write_buffer.shift())}),register_dsp_command([225],0,function(){this.read_buffer.clear(),this.read_buffer.push(4),this.read_buffer.push(5)}),register_dsp_command([226],1),register_dsp_command([227],0,function(){this.read_buffer.clear();for(var e=0;et;t++)e|=t*this.irq_triggered[t];return e}),SB16.prototype.fm_default_write=function(e,t,s){dbg_log("unhandled fm register write. addr:"+t+"|"+h(s)+" data:"+h(e),LOG_SB16)};var SB_FM_OPERATORS_BY_OFFSET=new Uint8Array(32);SB_FM_OPERATORS_BY_OFFSET[0]=0,SB_FM_OPERATORS_BY_OFFSET[1]=1,SB_FM_OPERATORS_BY_OFFSET[2]=2,SB_FM_OPERATORS_BY_OFFSET[3]=3,SB_FM_OPERATORS_BY_OFFSET[4]=4,SB_FM_OPERATORS_BY_OFFSET[5]=5,SB_FM_OPERATORS_BY_OFFSET[8]=6,SB_FM_OPERATORS_BY_OFFSET[9]=7,SB_FM_OPERATORS_BY_OFFSET[10]=8,SB_FM_OPERATORS_BY_OFFSET[11]=9,SB_FM_OPERATORS_BY_OFFSET[12]=10,SB_FM_OPERATORS_BY_OFFSET[13]=11,SB_FM_OPERATORS_BY_OFFSET[16]=12,SB_FM_OPERATORS_BY_OFFSET[17]=13,SB_FM_OPERATORS_BY_OFFSET[18]=14,SB_FM_OPERATORS_BY_OFFSET[19]=15,SB_FM_OPERATORS_BY_OFFSET[20]=16,SB_FM_OPERATORS_BY_OFFSET[21]=17,register_fm_write([1],function(e,t,s){this.fm_waveform_select_enable[t]=1&e,this.fm_update_waveforms()}),register_fm_write([2]),register_fm_write([3]),register_fm_write([4],function(e,t,s){}),register_fm_write([5],function(e,t,s){0===t&&this.fm_default_write(e,t,s)}),register_fm_write([8],function(e,t,s){}),register_fm_write(between(32,53),function(e,t,s){get_fm_operator(t,s-32)}),register_fm_write(between(64,85),function(e,t,s){get_fm_operator(t,s-64)}),register_fm_write(between(96,117),function(e,t,s){get_fm_operator(t,s-96)}),register_fm_write(between(128,149),function(e,t,s){get_fm_operator(t,s-128)}),register_fm_write(between(160,168),function(e,t,s){}),register_fm_write(between(176,184),function(e,t,s){}),register_fm_write([189],function(e,t,s){}),register_fm_write(between(192,200),function(e,t,s){}),register_fm_write(between(224,245),function(e,t,s){get_fm_operator(t,s-224)}),SB16.prototype.fm_update_waveforms=function(){},SB16.prototype.sampling_rate_change=function(e){this.sampling_rate=e},SB16.prototype.get_channel_count=function(){return this.dsp_stereo?2:1},SB16.prototype.dma_transfer_size_set=function(){this.dma_sample_count=1+(this.write_buffer.shift()<<0)+(this.write_buffer.shift()<<8)},SB16.prototype.dma_transfer_start=function(){dbg_log("begin dma transfer",LOG_SB16),this.bytes_per_sample=1,this.dsp_16bit&&(this.bytes_per_sample*=2),this.dac_rate_ratio=Math.round(this.audio_samplerate/this.sampling_rate),this.dma_bytes_count=this.dma_sample_count*this.bytes_per_sample,this.dma_bytes_block=SB_DMA_BLOCK_SAMPLES*this.bytes_per_sample,this.dma_waiting_transfer=!0},SB16.prototype.dma_on_unmask=function(e){e===this.dma_channel&&this.dma_waiting_transfer&&(this.dma_waiting_transfer=!1,this.dma_bytes_left=this.dma_bytes_count,this.dma_paused=!1,this.bus.send("speaker-update-enable",!0),this.dma_transfer_next())},SB16.prototype.dma_transfer_next=function(){var e=this;if(this.dma_bytes_left&&!(this.dac_buffers[0].length>2*this.dac_process_samples||this.cpu_paused||this.dma_paused)){dbg_log("dma transfering next block",LOG_SB16);var t=Math.min(this.dma_bytes_left,this.dma_bytes_block),s=Math.floor(t/this.bytes_per_sample);this.dma.do_write(this.dma_syncbuffer,0,t,this.dma_channel,function(r){dbg_log("dma block transfer "+(r?"unsuccessful":"successful"),LOG_SB16),r||(e.dma_to_dac(s),e.dma_bytes_left-=t,e.dma_bytes_left||(e.raise_irq(e.dma_irq),e.dma_autoinit&&(e.dma_bytes_left=e.dma_bytes_count)),setTimeout(function(){e.dma_transfer_next()},0))})}},SB16.prototype.dma_to_dac=function(e){for(var t=this.dsp_16bit?32767.5:127.5,s=this.dsp_signed?0:-1,r=(this.dsp_stereo?1:2)*this.dac_rate_ratio,i=this.dsp_16bit?this.dsp_signed?this.dma_buffer_int16:this.dma_buffer_uint16:this.dsp_signed?this.dma_buffer_int8:this.dma_buffer_uint8,_=0,a=0;a>>0;if(i.push({addr_low:o,addr_high:n,len:d}),dbg_log("descriptor: addr="+h(n,8)+":"+h(o,8)+" len="+h(d,8)+" flags="+h(a,4)+" next="+h(t,4),LOG_VIRTIO),!(a&VRING_DESC_F_NEXT)){t=-1;break}t=this.cpu.read16(_+14),dbg_assert(t=g){if(r===i.length)return dbg_log("Read more data than descriptor has",LOG_VIRTIO),0;var e=i[r++];o=e.addr_low,g=e.len,c=0}return this.cpu.read8(o+c++)}.bind(this))},VirtIO.prototype.device_reply=function(e,t){if(-1===t.next)dbg_log("Reply to invalid index",LOG_VIRTIO);else{var s=this.queue_size-1;e=this.device.replybuffersize;for(var r=t.next,i=this.queue_address<<12,_=0,a=[];;){var o=i+16*r,n=this.cpu.read16(o+12);if(0==(n&VRING_DESC_F_WRITE)){dbg_log("Bug: Readonly ring after writeonly ring",LOG_VIRTIO);break}var d=this.cpu.read32s(o),g=this.cpu.read32s(o+4),c=this.cpu.read32s(o+8)>>>0;if(a.push({addr_low:d,addr_high:g,len:c}),dbg_log("descriptor: addr="+h(g,8)+":"+h(d,8)+" len="+h(c,8)+" flags="+h(n,4)+" next="+h(r,4),LOG_VIRTIO),!(n&VRING_DESC_F_NEXT))break;r=this.cpu.read16(o+14),dbg_assert(r=i){if(_===a.length)return dbg_log("Write more data than descriptor has",LOG_VIRTIO),0;i=a[_++],d=i.addr_low,i=i.len,o=0}this.cpu.write8(d+o++,r)}d=(this.queue_address<<12)+16*this.queue_size+4+2*this.queue_size,d=d+4095&-4096,n=this.cpu.read16(d),_=this.cpu.read16(d+2),this.cpu.write16(d+2,_+1),dbg_log("used descriptor: addr="+h(d,8)+" flags="+h(n,4)+" idx="+h(_,4),LOG_VIRTIO),s=d+4+8*(_&s),this.cpu.write32(s,t.start),this.cpu.write32(s+4,e),this.isr|=1,this.pci.raise_irq(this.pci_id)}};var Bus={};BusConnector.prototype.register=function(e,t,s){var r=this.listeners[e];void 0===r&&(r=this.listeners[e]=[]),r.push({fn:t,this_value:s})},BusConnector.prototype.unregister=function(e,t){var s=this.listeners[e];void 0!==s&&(this.listeners[e]=s.filter(function(e){return e.fn!==t}))},BusConnector.prototype.send=function(e,t,s){if(this.pair&&void 0!==(e=this.pair.listeners[e]))for(s=0;s++s)return;i=new Date,i=v86util.pad0(i.getHours(),2)+":"+v86util.pad0(i.getMinutes(),2)+":"+v86util.pad0(i.getSeconds(),2)+"+"+v86util.pad0(i.getMilliseconds(),3)+" ",s&&(do_the_log(1===s?i+t:"Previous message repeated "+s+" times"),s=0),do_the_log(i+r),t=r}}}(),instruction_count,instruction_total,CPU_LOG_VERBOSE=!0;CPU.prototype.get_state=function(){var e=[];return e[0]=this.memory_size,e[1]=this.segment_is_null,e[2]=this.segment_offsets,e[3]=this.segment_limits,e[4]=this.protected_mode,e[5]=this.idtr_offset,e[6]=this.idtr_size,e[7]=this.gdtr_offset,e[8]=this.gdtr_size,e[9]=this.page_fault,e[10]=this.cr,e[11]=this.cpl,e[12]=this.page_size_extensions,e[13]=this.is_32,e[16]=this.stack_size_32,e[17]=this.in_hlt,e[18]=this.last_virt_eip,e[19]=this.eip_phys,e[20]=this.last_virt_esp,e[21]=this.esp_phys,e[22]=this.sysenter_cs,e[23]=this.sysenter_eip,e[24]=this.sysenter_esp,e[25]=this.prefixes,e[26]=this.flags,e[27]=this.flags_changed,e[28]=this.last_op1,e[29]=this.last_op2,e[30]=this.last_op_size,e[31]=this.last_add_result,e[32]=this.modrm_byte,e[36]=this.paging,e[37]=this.instruction_pointer,e[38]=this.previous_ip,e[39]=this.reg32s,e[40]=this.sreg,e[41]=this.dreg,e[42]=this.mem8,e[43]=this.fpu,e[45]=this.devices.virtio,e[46]=this.devices.apic,e[47]=this.devices.rtc,e[48]=this.devices.pci,e[49]=this.devices.dma,e[50]=this.devices.acpi,e[51]=this.devices.hpet,e[52]=this.devices.vga,e[53]=this.devices.ps2,e[54]=this.devices.uart,e[55]=this.devices.fdc,e[56]=this.devices.cdrom,e[57]=this.devices.hda,e[58]=this.devices.pit,e[59]=this.devices.net,e[60]=this.devices.pic,e[61]=this.devices.sb16,e[62]=this.a20_enabled,e[63]=this.fw_value,e[64]=this.devices.ioapic,e[65]=this.tss_size_32,e[66]=this.reg_mmxs,e},CPU.prototype.set_state=function(e){this.memory_size=e[0],this.segment_is_null=e[1],this.segment_offsets=e[2],this.segment_limits=e[3],this.protected_mode=e[4],this.idtr_offset=e[5],this.idtr_size=e[6],this.gdtr_offset=e[7],this.gdtr_size=e[8],this.page_fault=e[9],this.cr=e[10],this.cpl=e[11],this.page_size_extensions=e[12],this.is_32=e[13],this.stack_size_32=e[16],this.in_hlt=e[17],this.last_virt_eip=e[18],this.eip_phys=e[19],this.last_virt_esp=e[20],this.esp_phys=e[21],this.sysenter_cs=e[22],this.sysenter_eip=e[23],this.sysenter_esp=e[24],this.prefixes=e[25],this.flags=e[26],this.flags_changed=e[27],this.last_op1=e[28],this.last_op2=e[29],this.last_op_size=e[30],this.last_add_result=e[31],this.modrm_byte=e[32],this.paging=e[36],this.instruction_pointer=e[37],this.previous_ip=e[38],this.reg32s=e[39],this.sreg=e[40],this.dreg=e[41],this.mem8=e[42],this.fpu=e[43],this.devices.virtio=e[45],this.devices.apic=e[46],this.devices.rtc=e[47],this.devices.pci=e[48],this.devices.dma=e[49],this.devices.acpi=e[50],this.devices.hpet=e[51],this.devices.vga=e[52],this.devices.ps2=e[53],this.devices.uart=e[54],this.devices.fdc=e[55],this.devices.cdrom=e[56],this.devices.hda=e[57],this.devices.pit=e[58],this.devices.net=e[59],this.devices.pic=e[60],this.devices.sb16=e[61],this.a20_enabled=e[62],this.fw_value=e[63],this.devices.ioapic=e[64],this.tss_size_32=e[65],this.reg_mmxs=e[66],this.mem16=new Uint16Array(this.mem8.buffer,this.mem8.byteOffset,this.mem8.length>>1),this.mem32s=new Int32Array(this.mem8.buffer,this.mem8.byteOffset,this.mem8.length>>2),this.full_clear_tlb(),this.reg32=new Uint32Array(this.reg32s.buffer),this.reg16s=new Int16Array(this.reg32s.buffer),this.reg16=new Uint16Array(this.reg32s.buffer),this.reg8s=new Int8Array(this.reg32s.buffer),this.reg8=new Uint8Array(this.reg32s.buffer),this.reg_mmx=new Uint32Array(this.reg_mmxs.buffer),this.reg_mmx8s=new Int8Array(this.reg_mmxs.buffer),this.reg_mmx8=new Uint8Array(this.reg_mmxs.buffer),this.update_operand_size()},CPU.prototype.main_run=function(){if(this.in_hlt){var e=this.hlt_loop();if(this.in_hlt)return e}return this.do_run(),0},CPU.prototype.exception_cleanup=function(e){if(e!==MAGIC_CPU_EXCEPTION)throw console.log(e),console.log(e.stack),e;this.page_fault=!1,this.clear_prefixes()},CPU.prototype.reboot_internal=function(){throw this.reset(),this.load_bios(),MAGIC_CPU_EXCEPTION},CPU.prototype.reset=function(){this.a20_enabled=!0;for(var e=0;8>e;e++)this.segment_is_null[e]=0,this.segment_limits[e]=0,this.segment_offsets[e]=0;for(this.full_clear_tlb(),e=0;8>e;e++)this.reg32s[e]=0,this.sreg[e]=0,this.cr[e]=0,this.dreg[e]=0;for(e=0;ee?e=1048576:0>(0|e)&&(e=Math.pow(2,31)-MMAP_BLOCK_SIZE),e=1+(e-1|MMAP_BLOCK_SIZE-1)|0,dbg_assert(0<(0|e)),dbg_assert(0==(e&MMAP_BLOCK_SIZE-1)),this.memory_size=e,e=new ArrayBuffer(e),this.mem8=new Uint8Array(e),this.mem16=new Uint16Array(e),this.mem32s=new Int32Array(e)},goog.exportProperty(CPU.prototype,"create_memory",CPU.prototype.create_memory),CPU.prototype.init=function(e,t){this.create_memory("number"==typeof e.memory_size?e.memory_size:67108864),this.reset();var s=new IO(this);this.io=s,this.bios.main=e.bios,this.bios.vga=e.vga_bios,this.load_bios();var r=0;s.register_read(179,this,function(){return dbg_log("port 0xB3 read"),0}),s.register_read(146,this,function(){return r}),s.register_write(146,this,function(e){r=e}),s.register_read(1297,this,function(){var e=255&this.fw_value;return this.fw_value>>>=8,e}),s.register_write(1296,this,void 0,function(e){dbg_log("bios config port, index="+h(e)),e===FW_CFG_SIGNATURE?this.fw_value=-89064784:e===FW_CFG_RAM_SIZE?this.fw_value=this.memory_size:e===FW_CFG_NB_CPUS?this.fw_value=1:(dbg_assert(!1,"Unimplemented fw index: "+h(e)),this.fw_value=0)}),DEBUG&&s.register_write(128,this,function(e){}),this.devices={},e.load_devices&&(this.devices.pic=new PIC(this),this.devices.pci=new PCI(this),ENABLE_ACPI&&(this.devices.ioapic=new IOAPIC(this),this.devices.apic=new APIC(this),this.devices.acpi=new ACPI(this)),this.devices.rtc=new RTC(this),this.fill_cmos(this.devices.rtc,e),this.devices.dma=new DMA(this),ENABLE_HPET&&(this.devices.hpet=new HPET(this)),this.devices.vga=new VGAScreen(this,t,e.vga_memory_size||8388608),this.fpu=new FPU(this),this.devices.ps2=new PS2(this,t),this.devices.uart=new UART(this,1016,t),this.devices.fdc=new FloppyController(this,e.fda,e.fdb),s=0,e.hda&&(this.devices.hda=new IDEDevice(this,e.hda,!1,s++,t)),e.cdrom&&(this.devices.cdrom=new IDEDevice(this,e.cdrom,!0,s++,t)),e.hdb&&(this.devices.hdb=new IDEDevice(this,e.hdb,!1,s++,t)),this.devices.pit=new PIT(this,t),e.enable_ne2k&&(this.devices.net=new Ne2k(this,t)),e.fs9p&&(this.devices.virtio=new VirtIO(this,t,e.fs9p)),this.devices.sb16=new SB16(this,t)),e.multiboot&&(dbg_assert(e.multiboot.buffer),this.load_multiboot(e.multiboot.buffer)),DEBUG&&this.debug.init()},CPU.prototype.load_multiboot=function(e){if(dbg_log("Trying multiboot from buffer of size "+e.byteLength,LOG_CPU),8192>e.byteLength){var t=new Int32Array(2048);new Uint8Array(t.buffer).set(new Uint8Array(e))}else t=new Int32Array(e,0,2048);for(var s=0;8192>s;s+=4)if(464367618===t[s>>2]){var r=t[s+4>>2];if(!(464367618+r+t[s+8>>2]|0)){dbg_log("Multiboot magic found, flags: "+h(r>>>0,8),LOG_CPU),dbg_assert(0==(-65537&r),"TODO"),this.reg32s[reg_eax]=732803074,this.reg32s[reg_ebx]=31744,this.write32(31744,0),this.cr[0]=1,this.protected_mode=!0,this.flags=flags_default,this.update_cs_size(!0),this.stack_size_32=!0;for(var i=0;6>i;i++)this.segment_is_null[i]=0,this.segment_offsets[i]=0,this.segment_limits[i]=4294967295,this.sreg[i]=45058;if(65536&r){dbg_log("Multiboot specifies its own address table",LOG_CPU);var _=t[s+12>>2];r=t[s+16>>2],i=t[s+20>>2];var a=t[s+24>>2];t=t[s+28>>2],dbg_log("header="+h(_,8)+" load="+h(r,8)+" load_end="+h(i,8)+" bss_end="+h(a,8)+" entry="+h(t,8)),dbg_assert(r<=_),s-=_-r,0===i?i=void 0:(dbg_assert(i>=r),i-=r),e=new Uint8Array(e,s,i),this.write_blob(e,r),this.instruction_pointer=this.get_seg(reg_cs)+t|0}else if(1179403647===t[0])for(dbg_log("Multiboot image is in elf format",LOG_CPU),r=read_elf(e),this.instruction_pointer=this.get_seg(reg_cs)+r.header.entry|0,r=$jscomp.makeIterator(r.program_headers),s=r.next();!s.done;s=r.next())s=s.value,0!==s.type&&(1===s.type?(dbg_assert(s.paddr===s.vaddr),dbg_assert(s.filesz<=s.memsz),t=new Uint8Array(e,s.offset,s.filesz),this.write_blob(t,s.paddr)):4!==s.type&&1685382480!==s.type&&1685382481!==s.type&&dbg_assert(!1,"unimplemented elf section type"));else dbg_assert(!1,"Not a bootable multiboot format");for(this.io.register_write_consecutive(244,this,function(e){throw console.log("Test exited with code "+h(e,2)),"HALT"},function(){},function(){},function(){}),e={i$10:14};15>=e.i$10;e={i$10:e.i$10},e.i$10++)this.io.register_write(8192+e.i$10,this,function(e){return function(t){dbg_log("kvm-unit-test: Set irq "+h(e.i$10)+" to "+h(t,2)),t?this.device_raise_irq(e.i$10):this.device_lower_irq(e.i$10)}}(e));dbg_log("Starting multiboot kernel at:",LOG_CPU),this.debug.dump_state(),this.debug.dump_regs();break}dbg_log("Multiboot checksum check failed",LOG_CPU)}},CPU.prototype.fill_cmos=function(e,t){var s=t.boot_order||531;e.cmos_write(CMOS_BIOS_BOOTFLAG1,1|s>>4&240),e.cmos_write(CMOS_BIOS_BOOTFLAG2,255&s),e.cmos_write(CMOS_MEM_BASE_LOW,128),e.cmos_write(CMOS_MEM_BASE_HIGH,2),s=0,1048576<=this.memory_size&&(s=this.memory_size-1048576>>10,s=Math.min(s,65535)),e.cmos_write(CMOS_MEM_OLD_EXT_LOW,255&s),e.cmos_write(CMOS_MEM_OLD_EXT_HIGH,s>>8&255),e.cmos_write(CMOS_MEM_EXTMEM_LOW,255&s),e.cmos_write(CMOS_MEM_EXTMEM_HIGH,s>>8&255),s=0,16777216<=this.memory_size&&(s=this.memory_size-16777216>>16,s=Math.min(s,65535)),e.cmos_write(CMOS_MEM_EXTMEM2_LOW,255&s),e.cmos_write(CMOS_MEM_EXTMEM2_HIGH,s>>8&255),e.cmos_write(CMOS_MEM_HIGHMEM_LOW,0),e.cmos_write(CMOS_MEM_HIGHMEM_MID,0),e.cmos_write(CMOS_MEM_HIGHMEM_HIGH,0),e.cmos_write(CMOS_EQUIPMENT_INFO,47),e.cmos_write(CMOS_BIOS_SMP_COUNT,0),t.fastboot&&e.cmos_write(63,1)},CPU.prototype.load_bios=function(){var e=this.bios.main,t=this.bios.vga;if(e){var s=new Uint8Array(e);if(this.write_blob(s,1048576-e.byteLength),t){var r=new Uint8Array(t);this.write_blob(r,786432),this.io.mmap_register(4272947200,1048576,function(e){return e=e-4272947200|0,e>>0,t),this.table[t](this),PROFILING){var s=performance.now();instruction_total[t]+=s-e,instruction_count[t]++}this.flags&flag_trap&&dbg_log("Trap flag: Ignored",LOG_CPU)},CPU.prototype.cycle=function(){try{this.cycle_internal()}catch(e){this.exception_cleanup(e)}},goog.exportProperty(CPU.prototype,"cycle",CPU.prototype.cycle),CPU.prototype.segment_prefix_op=function(e){dbg_assert(5>=e),this.prefixes|=e+1,this.run_prefix_instruction(),this.prefixes=0},CPU.prototype.run_prefix_instruction=function(){this.is_osize_32()?this.table32[this.read_imm8()](this):this.table16[this.read_imm8()](this)},CPU.prototype.hlt_loop=function(){return dbg_assert(this.flags&flag_interrupt),this.run_hardware_timers(v86.microtick()),this.handle_irqs(),0},CPU.prototype.run_hardware_timers=function(e){ENABLE_HPET?(this.devices.pit.timer(e,this.devices.hpet.legacy_mode),this.devices.rtc.timer(e,this.devices.hpet.legacy_mode),this.devices.hpet.timer(e)):(this.devices.pit.timer(e,!1),this.devices.rtc.timer(e,!1)),ENABLE_ACPI&&(this.devices.acpi.timer(e),this.devices.apic.timer(e))},CPU.prototype.clear_prefixes=function(){this.prefixes=0},CPU.prototype.set_cr0=function(e){if((e&(CR0_PE|CR0_PG))===CR0_PG)throw this.debug.unimpl("#GP handler");this.cr[0]=e,this.fpu||(this.cr[0]|=CR0_EM),this.cr[0]|=CR0_ET,e=(this.cr[0]&CR0_PG)===CR0_PG,dbg_assert("boolean"==typeof this.paging),e!==this.paging&&(this.paging=e,this.full_clear_tlb()),this.protected_mode=(this.cr[0]&CR0_PE)===CR0_PE},CPU.prototype.set_cr4=function(e){if(-3565568&e&&this.trigger_gp(0),(this.cr[4]^e)&CR4_PGE&&(e&CR4_PGE?this.clear_tlb():this.full_clear_tlb()),this.cr[4]=e,this.page_size_extensions=e&CR4_PSE?PSE_ENABLED:0,e&CR4_PAE)throw this.debug.unimpl("PAE");4294965504&e&&(dbg_assert(!1,"Unimplemented CR4 bits: "+h(e)),this.trigger_ud()),dbg_log("cr4="+h(e>>>0),LOG_CPU)},CPU.prototype.cpl_changed=function(){this.last_virt_esp=this.last_virt_eip=-1},CPU.prototype.read_imm8=function(){-4096&this.instruction_pointer^this.last_virt_eip&&(this.eip_phys=this.translate_address_read(this.instruction_pointer)^this.instruction_pointer,this.last_virt_eip=-4096&this.instruction_pointer);var e=this.read8(this.eip_phys^this.instruction_pointer);return this.instruction_pointer=this.instruction_pointer+1|0,e},CPU.prototype.read_imm8s=function(){return this.read_imm8()<<24>>24},CPU.prototype.read_imm16=function(){if(4094<(this.instruction_pointer^this.last_virt_eip)>>>0)return this.read_imm8()|this.read_imm8()<<8;var e=this.read16(this.eip_phys^this.instruction_pointer);return this.instruction_pointer=this.instruction_pointer+2|0,e},CPU.prototype.read_imm32s=function(){if(4092<(this.instruction_pointer^this.last_virt_eip)>>>0)return this.read_imm16()|this.read_imm16()<<16;var e=this.read32s(this.eip_phys^this.instruction_pointer);return this.instruction_pointer=this.instruction_pointer+4|0,e},CPU.prototype.create_atom64s=function(e,t){var s=new Int32Array(2);return s[0]=e,s[1]=t,s},CPU.prototype.create_atom128s=function(e,t,s,r){var i=new Int32Array(4);return i[0]=e,i[1]=t,i[2]=s,i[3]=r,i},CPU.prototype.read_modrm_byte=function(){this.modrm_byte=this.read_imm8()},CPU.prototype.read_op0F=CPU.prototype.read_imm8,CPU.prototype.read_sib=CPU.prototype.read_imm8,CPU.prototype.read_op8=CPU.prototype.read_imm8,CPU.prototype.read_op8s=CPU.prototype.read_imm8s,CPU.prototype.read_op16=CPU.prototype.read_imm16,CPU.prototype.read_op32s=CPU.prototype.read_imm32s,CPU.prototype.read_disp8=CPU.prototype.read_imm8,CPU.prototype.read_disp8s=CPU.prototype.read_imm8s,CPU.prototype.read_disp16=CPU.prototype.read_imm16,CPU.prototype.read_disp32s=CPU.prototype.read_imm32s,CPU.prototype.init2=function(){},CPU.prototype.branch_taken=function(){},CPU.prototype.branch_not_taken=function(){},CPU.prototype.diverged=function(){},CPU.prototype.modrm_resolve=function(e){return dbg_assert(192>e),(this.is_asize_32()?this.modrm_table32:this.modrm_table16)[e](this)},CPU.prototype.sib_resolve=function(e){return this.sib_table[this.read_sib()](this,e)},CPU.prototype.clear_instruction_cache=function(){},CPU.prototype.virt_boundary_read16=function(e,t){return dbg_assert(4095==(4095&e)),dbg_assert(0==(4095&t)),this.read8(e)|this.read8(t)<<8},CPU.prototype.virt_boundary_read32s=function(e,t){dbg_assert(4093<=(4095&e)),dbg_assert((t-3&4095)==(4095&e));var s=1&e?2&e?this.read_aligned16(t-2>>1):this.read_aligned16(e+1>>1):this.virt_boundary_read16(e+1|0,t-1|0);return this.read8(e)|s<<8|this.read8(t)<<24},CPU.prototype.virt_boundary_write16=function(e,t,s){dbg_assert(4095==(4095&e)),dbg_assert(0==(4095&t)),this.write8(e,s),this.write8(t,s>>8)},CPU.prototype.virt_boundary_write32=function(e,t,s){dbg_assert(4093<=(4095&e)),dbg_assert((t-3&4095)==(4095&e)),this.write8(e,s),this.write8(t,s>>24),1&e?2&e?(this.write8(t-2,s>>8),this.write8(t-1,s>>16)):(this.write8(e+1|0,s>>8),this.write8(e+2|0,s>>16)):(this.write8(e+1|0,s>>8),this.write8(t-1,s>>16))},CPU.prototype.safe_read8=function(e){return dbg_assert(2147483648>e),this.read8(this.translate_address_read(e))},CPU.prototype.safe_read16=function(e){return this.paging&&4095==(4095&e)?this.safe_read8(e)|this.safe_read8(e+1|0)<<8:this.read16(this.translate_address_read(e))},CPU.prototype.safe_read32s=function(e){return this.paging&&4093<=(4095&e)?this.safe_read16(e)|this.safe_read16(e+2|0)<<16:this.read32s(this.translate_address_read(e))},CPU.prototype.safe_read64s=function(e){var t=this.create_atom64s(0,0);return this.paging&&4089<=(4095&e)?(t[0]=this.safe_read32s(e),t[1]=this.safe_read32s(e+4|0)):(t[0]=this.read32s(this.translate_address_read(e)),t[1]=this.read32s(this.translate_address_read(e+4|0))),t},CPU.prototype.safe_read128s_aligned=function(e){return dbg_assert(0==(15&e)),e=this.translate_address_read(e), +this.create_atom128s(this.read32s(e),this.read32s(e+4|0),this.read32s(e+8|0),this.read32s(e+12|0))},CPU.prototype.safe_read128s_unaligned=function(e){return this.create_atom128s(this.safe_read32s(e),this.safe_read32s(e+4|0),this.safe_read32s(e+8|0),this.safe_read32s(e+12|0))},CPU.prototype.safe_write8=function(e,t){dbg_assert(2147483648>e),this.write8(this.translate_address_write(e),t)},CPU.prototype.safe_write16=function(e,t){var s=this.translate_address_write(e);4095==(4095&e)?this.virt_boundary_write16(s,this.translate_address_write(e+1|0),t):this.write16(s,t)},CPU.prototype.safe_write32=function(e,t){var s=this.translate_address_write(e);4093<=(4095&e)?this.virt_boundary_write32(s,this.translate_address_write(e+3&-4)|e+3&3,t):this.write32(s,t)},CPU.prototype.safe_write64=function(e,t,s){this.writable_or_pagefault(e,8),this.safe_write32(e,t),this.safe_write32(e+4|0,s)},CPU.prototype.safe_write128=function(e,t,s,r,i){this.writable_or_pagefault(e,16),this.safe_write32(e,t),this.safe_write32(e+4|0,s),this.safe_write32(e+8|0,r),this.safe_write32(e+12|0,i)},CPU.prototype.read_moffs=function(){return this.is_asize_32()?this.get_seg_prefix(reg_ds)+this.read_op32s()|0:this.get_seg_prefix(reg_ds)+this.read_op16()|0},CPU.prototype.getiopl=function(){return this.flags>>12&3},CPU.prototype.vm86_mode=function(){return!!(this.flags&flag_vm)},CPU.prototype.get_eflags=function(){return this.flags&~flags_all|!!this.getcf()|!!this.getpf()<<2|!!this.getaf()<<4|!!this.getzf()<<6|!!this.getsf()<<7|!!this.getof()<<11},CPU.prototype.update_eflags=function(e){var t=flag_rf|flag_vm|flag_vip|flag_vif,s=~flag_vip&~flag_vif&flags_mask;this.flags&flag_vm?(dbg_assert(3===this.getiopl()),t|=flag_iopl,s|=flag_vip|flag_vif):(this.protected_mode||dbg_assert(0===this.cpl),this.cpl&&(t|=flag_iopl,this.cpl>this.getiopl()&&(t|=flag_interrupt))),this.flags=(e^(this.flags^e)&t)&s|flags_default,this.flags_changed=0},CPU.prototype.get_stack_reg=function(){return this.stack_size_32?this.reg32s[reg_esp]:this.reg16[reg_sp]},CPU.prototype.set_stack_reg=function(e){this.stack_size_32?this.reg32s[reg_esp]=e:this.reg16[reg_sp]=e},CPU.prototype.adjust_stack_reg=function(e){this.stack_size_32?this.reg32s[reg_esp]+=e:this.reg16[reg_sp]+=e},CPU.prototype.get_stack_pointer=function(e){return this.stack_size_32?this.get_seg(reg_ss)+this.reg32s[reg_esp]+e|0:this.get_seg(reg_ss)+(this.reg16[reg_sp]+e&65535)|0},CPU.prototype.get_real_eip=function(){return this.instruction_pointer-this.get_seg(reg_cs)|0},CPU.prototype.call_interrupt_vector=function(e,t,s){if(CPU_LOG_VERBOSE&&this.debug.dump_state("int "+h(e)+" start ("+(t?"soft":"hard")+"ware)"),CPU_LOG_VERBOSE&&this.debug.dump_regs(),this.debug.debug_interrupt(e),dbg_assert(!1===s||"number"==typeof s),this.in_hlt=!1,this.protected_mode){if(this.vm86_mode()&&this.cr[4]&CR4_VME)throw this.debug.unimpl("VME");if(this.vm86_mode()&&t&&3>this.getiopl()&&(dbg_log("call_interrupt_vector #GP. vm86 && software int && iopl < 3",LOG_CPU),dbg_trace(LOG_CPU),this.trigger_gp(0)),(e<<3|7)>this.idtr_size)throw dbg_log(e,LOG_CPU),dbg_trace(LOG_CPU),this.debug.unimpl("#GP handler");var r=this.idtr_offset+(e<<3)|0;dbg_assert(4088>(4095&r)),this.paging&&(r=this.translate_address_system_read(r));var i=this.read16(r)|this.read16(r+6|0)<<16,_=this.read16(r+2|0),a=this.read8(r+5|0),o=a>>5&3,n=31&a;if(0==(128&a))throw this.debug.unimpl("#NP handler");if(t&&o>>0)+" "+h(_)),this.debug.unimpl("#GP handler");if(t=1==(1&n),n=0==(8&n),r=this.lookup_segment_selector(_),dbg_assert(i>>>0<=r.effective_limit),dbg_assert(r.is_valid),r.is_null)throw dbg_log("is null"),this.debug.unimpl("#GP handler");if(!r.is_executable||r.dpl>this.cpl)throw dbg_log("not exec"),this.debug.unimpl("#GP handler");if(r.is_present||(dbg_log("not present"),this.trigger_np(e<<3|2)),e=this.get_eflags(),!r.dc_bit&&r.dplthis.getiopl()&&(dbg_log("#gp iret vm86 mode, iopl != 3",LOG_CPU),this.trigger_gp(0)),e)var t=this.safe_read16(this.get_stack_pointer(0)),s=this.safe_read16(this.get_stack_pointer(2)),r=this.safe_read16(this.get_stack_pointer(4));else t=this.safe_read32s(this.get_stack_pointer(0)),s=this.safe_read16(this.get_stack_pointer(4)),r=this.safe_read32s(this.get_stack_pointer(8));if(!this.protected_mode||this.vm86_mode()&&3===this.getiopl()){if(4294901760&t)throw this.debug.unimpl("#GP handler");this.switch_cs_real_mode(s),this.instruction_pointer=t+this.get_seg(reg_cs)|0,e?(this.update_eflags(r|-65536&this.flags),this.adjust_stack_reg(6)):(this.update_eflags(r),this.adjust_stack_reg(12)),CPU_LOG_VERBOSE&&this.debug.dump_state("iret end")}else{if(dbg_assert(!this.vm86_mode()),this.flags&flag_nt){if(DEBUG)throw this.debug.unimpl("nt");this.trigger_gp(0)}if(r&flag_vm){if(0===this.cpl){dbg_assert(!e),dbg_assert(0==(-65536&t));var i=this.safe_read32s(this.get_stack_pointer(12)),_=this.safe_read16(this.get_stack_pointer(16));e=this.safe_read16(this.get_stack_pointer(20));var a=this.safe_read16(this.get_stack_pointer(24)),o=this.safe_read16(this.get_stack_pointer(28)),n=this.safe_read16(this.get_stack_pointer(32));return this.update_eflags(r),this.flags|=flag_vm,this.switch_cs_real_mode(s),this.instruction_pointer=(65535&t)+this.get_seg(reg_cs)|0,this.switch_seg(reg_es,e),this.switch_seg(reg_ds,a),this.switch_seg(reg_fs,o),this.switch_seg(reg_gs,n),this.adjust_stack_reg(36),this.reg32s[reg_esp]=i,this.switch_seg(reg_ss,_),this.cpl=3,this.cpl_changed(),this.update_cs_size(!1),void(CPU_LOG_VERBOSE&&this.debug.dump_state("iret end"))}dbg_log("vm86 flag ignored because cpl != 0",LOG_CPU),r&=~flag_vm}if(a=this.lookup_segment_selector(s),dbg_assert(a.is_valid),dbg_assert(t>>>0<=a.effective_limit),a.is_null)throw this.debug.unimpl("is null");if(!a.is_present)throw this.debug.unimpl("not present");if(!a.is_executable)throw this.debug.unimpl("not exec");if(a.rpla.rpl)throw this.debug.unimpl("conforming and dpl > rpl");a.dc_bit||a.rpl===a.dpl||(dbg_log("#gp iret: non-conforming cs and rpl != dpl, dpl="+a.dpl+" rpl="+a.rpl,LOG_CPU),this.trigger_gp(-4&s)),a.rpl>this.cpl?(e?(i=this.safe_read16(this.get_stack_pointer(6)),_=this.safe_read16(this.get_stack_pointer(8))):(i=this.safe_read32s(this.get_stack_pointer(12)),_=this.safe_read16(this.get_stack_pointer(16))),o=this.lookup_segment_selector(_),n=a.rpl,o.is_null&&(dbg_log("#GP for loading 0 in SS sel="+h(_,4),LOG_CPU),dbg_trace(LOG_CPU),this.trigger_gp(0)),o.is_valid&&!o.is_system&&o.rpl===n&&o.is_writable&&o.dpl===n||(dbg_log("#GP for loading invalid in SS sel="+h(_,4),LOG_CPU),dbg_trace(LOG_CPU),this.trigger_gp(-4&_)),o.is_present||(dbg_log("#SS for loading non-present in SS sel="+h(_,4),LOG_CPU),dbg_trace(LOG_CPU),this.trigger_ss(-4&_)),e?this.update_eflags(r|-65536&this.flags):this.update_eflags(r),this.cpl=a.rpl,this.cpl_changed(),this.switch_seg(reg_ss,_),this.set_stack_reg(i),0===this.cpl&&(this.flags=this.flags&~flag_vif&~flag_vip|r&(flag_vif|flag_vip))):a.rpl===this.cpl?(e?(this.adjust_stack_reg(6),this.update_eflags(r|-65536&this.flags)):(this.adjust_stack_reg(12),this.update_eflags(r)),0===this.cpl&&(this.flags=this.flags&~flag_vif&~flag_vip|r&(flag_vif|flag_vip))):dbg_assert(!1),this.sreg[reg_cs]=s,dbg_assert((3&s)===this.cpl),this.update_cs_size(a.size),this.segment_limits[reg_cs]=a.effective_limit,this.segment_offsets[reg_cs]=a.base,this.instruction_pointer=t+this.get_seg(reg_cs)|0,CPU_LOG_VERBOSE&&this.debug.dump_state("iret"+(e?"16":"32")+" end")}this.handle_irqs()},CPU.prototype.switch_cs_real_mode=function(e){dbg_assert(!this.protected_mode||this.vm86_mode()),this.sreg[reg_cs]=e,this.segment_is_null[reg_cs]=0,this.segment_offsets[reg_cs]=e<<4},CPU.prototype.far_return=function(e,t,s){if(dbg_assert("number"==typeof t&&65536>t&&0<=t),CPU_LOG_VERBOSE&&this.debug.dump_state("far ret start"),this.protected_mode||dbg_assert(!this.is_32),!this.protected_mode||this.vm86_mode())this.switch_cs_real_mode(t),this.instruction_pointer=this.get_seg(reg_cs)+e|0,this.adjust_stack_reg(2*(this.is_osize_32()?4:2)+s);else{var r=this.lookup_segment_selector(t);if(r.is_null&&(dbg_log("null cs",LOG_CPU),this.trigger_gp(0)),r.is_valid||(dbg_log("invalid cs: "+h(t),LOG_CPU),this.trigger_gp(-4&t)),r.is_system&&(dbg_assert(!1,"is system in far return"),this.trigger_gp(-4&t)),r.is_executable||(dbg_log("non-executable cs: "+h(t),LOG_CPU),this.trigger_gp(-4&t)),r.rplr.rpl&&(dbg_log("cs conforming and dpl > rpl: "+h(t),LOG_CPU),this.trigger_gp(-4&t)),r.dc_bit||r.dpl===r.rpl||(dbg_log("cs non-conforming and dpl != rpl: "+h(t),LOG_CPU),this.trigger_gp(-4&t)),r.is_present||(dbg_log("#NP for loading not-present in cs sel="+h(t,4),LOG_CPU),dbg_trace(LOG_CPU),this.trigger_np(-4&t)),r.rpl>this.cpl){if(dbg_log("far return privilege change cs: "+h(t)+" from="+this.cpl+" to="+r.rpl+" is_16="+this.is_osize_32(),LOG_CPU),this.is_osize_32())var i=this.safe_read32s(this.get_stack_pointer(s+8)),_=this.safe_read16(this.get_stack_pointer(s+12));else i=this.safe_read16(this.get_stack_pointer(s+4)),_=this.safe_read16(this.get_stack_pointer(s+6));this.cpl=r.rpl,this.cpl_changed(),this.switch_seg(reg_ss,_),this.set_stack_reg(i+s)}else this.is_osize_32()?this.adjust_stack_reg(8+s):this.adjust_stack_reg(4+s);this.update_cs_size(r.size),this.segment_is_null[reg_cs]=0,this.segment_limits[reg_cs]=r.effective_limit,this.segment_offsets[reg_cs]=r.base,this.sreg[reg_cs]=t,dbg_assert((3&t)===this.cpl),this.instruction_pointer=this.get_seg(reg_cs)+e|0,CPU_LOG_VERBOSE&&this.debug.dump_state("far ret end")}},CPU.prototype.far_jump=function(e,t,s){if(dbg_assert("number"==typeof t&&65536>t&&0<=t),CPU_LOG_VERBOSE&&this.debug.dump_state("far "+["jump","call"][+s]),!this.protected_mode||this.vm86_mode())s&&(this.is_osize_32()?(this.writable_or_pagefault(this.get_stack_pointer(-8),8),this.push32(this.sreg[reg_cs]),this.push32(this.get_real_eip())):(this.writable_or_pagefault(this.get_stack_pointer(-4),4),this.push16(this.sreg[reg_cs]),this.push16(this.get_real_eip()))),this.switch_cs_real_mode(t),this.instruction_pointer=this.get_seg(reg_cs)+e|0;else{var r=this.lookup_segment_selector(t);if(r.is_null&&(dbg_log("#gp null cs",LOG_CPU),this.trigger_gp(0)),r.is_valid||(dbg_log("#gp invalid cs: "+h(t),LOG_CPU),this.trigger_gp(-4&t)),r.is_system){if(dbg_assert(s,"TODO: Jump"),dbg_log("system type cs: "+h(t),LOG_CPU),12!==r.type&&4!==r.type)throw this.debug.unimpl("load system segment descriptor, type = "+(15&r.access)+" ("+{9:"Available 386 TSS",11:"Busy 386 TSS",4:"286 Call Gate",12:"386 Call Gate"}[15&r.access]+")");e=4===r.type,(r.dplthis.cpl&&(dbg_log("#gp dpl > cpl: "+h(t),LOG_CPU),this.trigger_gp(-4&t)),i.is_present||(dbg_log("#NP for loading not-present in cs sel="+h(t,4),LOG_CPU),this.trigger_np(-4&t)),!i.dc_bit&&i.dplthis.cpl&&(dbg_log("#gp cs dpl > cpl: "+h(t),LOG_CPU),this.trigger_gp(-4&t)):(r.rpl>this.cpl||r.dpl!==this.cpl)&&(dbg_log("#gp cs rpl > cpl or dpl != cpl: "+h(t),LOG_CPU),this.trigger_gp(-4&t)),r.is_present||(dbg_log("#NP for loading not-present in cs sel="+h(t,4),LOG_CPU),dbg_trace(LOG_CPU),this.trigger_np(-4&t)),s&&(this.is_osize_32()?(this.writable_or_pagefault(this.get_stack_pointer(-8),8),this.push32(this.sreg[reg_cs]),this.push32(this.get_real_eip())):(this.writable_or_pagefault(this.get_stack_pointer(-4),4),this.push16(this.sreg[reg_cs]),this.push16(this.get_real_eip()))),dbg_assert(e>>>0<=r.effective_limit,"todo: #gp"),this.update_cs_size(r.size),this.segment_is_null[reg_cs]=0,this.segment_limits[reg_cs]=r.effective_limit,this.segment_offsets[reg_cs]=r.base,this.sreg[reg_cs]=-4&t|this.cpl,this.instruction_pointer=this.get_seg(reg_cs)+e|0;CPU_LOG_VERBOSE&&this.debug.dump_state("far "+["jump","call"][+s]+" end")}},CPU.prototype.get_tss_stack_addr=function(e){if(this.tss_size_32){if(((e=4+(e<<3)|0)+5|0)>this.segment_limits[reg_tr])throw this.debug.unimpl("#TS handler");e=e+this.segment_offsets[reg_tr]|0,dbg_assert(4090>=(4095&e))}else{if(((e=2+(e<<2)|0)+5|0)>this.segment_limits[reg_tr])throw this.debug.unimpl("#TS handler");e=e+this.segment_offsets[reg_tr]|0,dbg_assert(4092>=(4095&e))}return this.paging&&(e=this.translate_address_system_read(e)),e},CPU.prototype.do_task_switch=function(e,t){dbg_assert(this.tss_size_32,"TODO"),dbg_log("do_task_switch sel="+h(e),LOG_CPU);var s=this.lookup_segment_selector(e);dbg_assert(3==(2|s.type)||11==(2|s.type));var r=3>=s.type,i=2==(2&s.type);if(!s.is_valid||s.is_null||!s.from_gdt)throw this.debug.unimpl("#GP handler");if(11==(31&s.access))throw this.debug.unimpl("#GP handler");if(!s.is_present)throw this.debug.unimpl("#NP handler");if(103>s.effective_limit)throw this.debug.unimpl("#NP handler");var _=this.segment_offsets[reg_tr],a=this.get_eflags();i&&(a&=~flag_nt),this.writable_or_pagefault(_,102),this.safe_write32(_+TSR_EIP,this.get_real_eip()),this.safe_write32(_+TSR_EFLAGS,a),this.safe_write32(_+TSR_EAX,this.reg32s[reg_eax]),this.safe_write32(_+TSR_ECX,this.reg32s[reg_ecx]),this.safe_write32(_+TSR_EDX,this.reg32s[reg_edx]),this.safe_write32(_+TSR_EBX,this.reg32s[reg_ebx]),this.safe_write32(_+TSR_ESP,this.reg32s[reg_esp]),this.safe_write32(_+TSR_EBP,this.reg32s[reg_ebp]),this.safe_write32(_+TSR_ESI,this.reg32s[reg_esi]),this.safe_write32(_+TSR_EDI,this.reg32s[reg_edi]),this.safe_write32(_+TSR_ES,this.sreg[reg_es]),this.safe_write32(_+TSR_CS,this.sreg[reg_cs]),this.safe_write32(_+TSR_SS,this.sreg[reg_ss]),this.safe_write32(_+TSR_DS,this.sreg[reg_ds]),this.safe_write32(_+TSR_FS,this.sreg[reg_fs]),this.safe_write32(_+TSR_GS,this.sreg[reg_gs]),this.write8(s.table_offset+5|0,2|this.read8(s.table_offset+5|0)),i=s.base,dbg_assert(!r,"unimplemented"),this.safe_write16(i+TSR_BACKLINK,this.sreg[reg_tr]),a=this.safe_read32s(i+TSR_CR3),this.flags&=~flag_vm;var o=this.safe_read32s(i+TSR_EIP),n=this.safe_read16(i+TSR_CS),d=this.lookup_segment_selector(n);if(d.is_null)throw dbg_log("null cs",LOG_CPU),this.debug.unimpl("#TS handler");if(!d.is_valid)throw dbg_log("invalid cs: "+h(e),LOG_CPU),this.debug.unimpl("#TS handler");if(d.is_system)throw this.debug.unimpl("#TS handler");if(!d.is_executable)throw this.debug.unimpl("#TS handler");if(d.dc_bit&&d.dpl>d.rpl)throw dbg_log("cs conforming and dpl > rpl: "+h(e),LOG_CPU),this.debug.unimpl("#TS handler");if(!d.dc_bit&&d.dpl!==d.rpl)throw dbg_log("cs non-conforming and dpl != rpl: "+h(e),LOG_CPU),this.debug.unimpl("#TS handler");if(!d.is_present)throw dbg_log("#NP for loading not-present in cs sel="+h(e,4),LOG_CPU),this.debug.unimpl("#TS handler");if(this.segment_is_null[reg_cs]=0,this.segment_limits[reg_cs]=d.effective_limit,this.segment_offsets[reg_cs]=d.base,this.sreg[reg_cs]=n,this.cpl=d.dpl,this.cpl_changed(),dbg_assert((3&this.sreg[reg_cs])===this.cpl),dbg_assert(o>>>0<=d.effective_limit,"todo: #gp"),this.update_cs_size(d.size),n=this.safe_read32s(i+TSR_EFLAGS),this.safe_write32(_+TSR_BACKLINK,e),(n|=flag_nt)&flag_vm)throw this.debug.unimpl("task switch to VM mode");this.update_eflags(n),this.flags|=flag_nt,_=this.safe_read16(i+TSR_LDT),this.load_ldt(_),this.reg32s[reg_eax]=this.safe_read32s(i+TSR_EAX),this.reg32s[reg_ecx]=this.safe_read32s(i+TSR_ECX),this.reg32s[reg_edx]=this.safe_read32s(i+TSR_EDX),this.reg32s[reg_ebx]=this.safe_read32s(i+TSR_EBX),this.reg32s[reg_esp]=this.safe_read32s(i+TSR_ESP),this.reg32s[reg_ebp]=this.safe_read32s(i+TSR_EBP),this.reg32s[reg_esi]=this.safe_read32s(i+TSR_ESI),this.reg32s[reg_edi]=this.safe_read32s(i+TSR_EDI),this.switch_seg(reg_es,this.safe_read16(i+TSR_ES)),this.switch_seg(reg_ss,this.safe_read16(i+TSR_SS)),this.switch_seg(reg_ds,this.safe_read16(i+TSR_DS)),this.switch_seg(reg_fs,this.safe_read16(i+TSR_FS)),this.switch_seg(reg_gs,this.safe_read16(i+TSR_GS)),this.instruction_pointer=this.get_seg(reg_cs)+o|0,this.segment_offsets[reg_tr]=s.base,this.segment_limits[reg_tr]=s.effective_limit,this.sreg[reg_tr]=e,this.cr[3]=a,dbg_assert(0==(4095&this.cr[3])),this.clear_tlb(),this.cr[0]|=CR0_TS,!1!==t&&(r?this.push16(65535&t):this.push32(t))},CPU.prototype.hlt_op=function(){if(this.cpl&&this.trigger_gp(0),0==(this.flags&flag_interrupt))throw this.debug.show("cpu halted"),this.bus.send("cpu-event-halt"),DEBUG&&this.debug.dump_regs(),"HALT";throw this.in_hlt=!0,MAGIC_CPU_EXCEPTION},CPU.prototype.raise_exception=function(e){throw this.call_interrupt_vector(e,!1,!1),MAGIC_CPU_EXCEPTION},CPU.prototype.raise_exception_with_code=function(e,t){throw dbg_assert("number"==typeof t),this.call_interrupt_vector(e,!1,t),MAGIC_CPU_EXCEPTION},CPU.prototype.trigger_de=function(){this.instruction_pointer=this.previous_ip,this.raise_exception(0)},CPU.prototype.trigger_ud=function(){this.instruction_pointer=this.previous_ip,this.raise_exception(6)},CPU.prototype.trigger_nm=function(){this.instruction_pointer=this.previous_ip,this.raise_exception(7)},CPU.prototype.trigger_ts=function(e){this.instruction_pointer=this.previous_ip,this.raise_exception_with_code(10,e)},CPU.prototype.trigger_gp=function(e){this.instruction_pointer=this.previous_ip,this.raise_exception_with_code(13,e)},CPU.prototype.trigger_np=function(e){this.instruction_pointer=this.previous_ip,this.raise_exception_with_code(11,e)},CPU.prototype.trigger_ss=function(e){this.instruction_pointer=this.previous_ip,this.raise_exception_with_code(12,e)},CPU.prototype.task_switch_test=function(){this.cr[0]&(CR0_EM|CR0_TS)&&this.trigger_nm()},CPU.prototype.task_switch_test_mmx=function(){this.cr[0]&(CR0_EM|CR0_TS)&&(this.cr[0]&CR0_TS?this.trigger_nm():this.trigger_ud())},CPU.prototype.todo=function(){if(DEBUG)throw dbg_trace(),"TODO";this.trigger_ud()},CPU.prototype.undefined_instruction=function(){dbg_assert(!1,"Possible fault: undefined instruction"),this.trigger_ud()},CPU.prototype.unimplemented_sse=function(){dbg_log("No SSE",LOG_CPU),dbg_assert(!1),this.trigger_ud()},CPU.prototype.get_seg_prefix_ds=function(){return this.get_seg_prefix(reg_ds)},CPU.prototype.get_seg_prefix_ss=function(){return this.get_seg_prefix(reg_ss)},CPU.prototype.get_seg_prefix_cs=function(){return this.get_seg_prefix(reg_cs)},CPU.prototype.get_seg_prefix=function(e){var t=this.prefixes&PREFIX_MASK_SEGMENT;return t?t===SEG_PREFIX_ZERO?0:this.get_seg(t-1):this.get_seg(e)},CPU.prototype.get_seg=function(e){return dbg_assert(0<=e&&8>e),this.protected_mode&&this.segment_is_null[e]&&(dbg_assert(e!==reg_cs&&e!==reg_ss),dbg_trace(),dbg_log("#gp Use null segment: "+e+" sel="+h(this.sreg[e],4),LOG_CPU),this.trigger_gp(0)),this.segment_offsets[e]},CPU.prototype.read_e8=function(){return 192>this.modrm_byte?this.safe_read8(this.modrm_resolve(this.modrm_byte)):this.reg8[this.modrm_byte<<2&12|this.modrm_byte>>2&1]},CPU.prototype.read_e8s=function(){return this.read_e8()<<24>>24},CPU.prototype.read_e16=function(){return 192>this.modrm_byte?this.safe_read16(this.modrm_resolve(this.modrm_byte)):this.reg16[this.modrm_byte<<1&14]},CPU.prototype.read_e16s=function(){return this.read_e16()<<16>>16},CPU.prototype.read_e32s=function(){return 192>this.modrm_byte?this.safe_read32s(this.modrm_resolve(this.modrm_byte)):this.reg32s[7&this.modrm_byte]},CPU.prototype.read_e32=function(){return this.read_e32s()>>>0},CPU.prototype.read_mmx_mem32s=function(){return 192>this.modrm_byte?this.safe_read32s(this.modrm_resolve(this.modrm_byte)):this.reg_mmxs[2*(7&this.modrm_byte)]},CPU.prototype.read_mmx_mem64s=function(){return 192>this.modrm_byte?this.safe_read64s(this.modrm_resolve(this.modrm_byte)):this.create_atom64s(this.reg_mmxs[2*(7&this.modrm_byte)],this.reg_mmxs[2*(7&this.modrm_byte)+1])},CPU.prototype.read_xmm_mem64s=function(){if(192>this.modrm_byte)return this.safe_read64s(this.modrm_resolve(this.modrm_byte));var e=(7&this.modrm_byte)<<2;return this.create_atom64s(this.reg_xmm32s[e],this.reg_xmm32s[1|e])},CPU.prototype.read_xmm_mem128s=function(){if(192>this.modrm_byte)return this.safe_read128s_aligned(this.modrm_resolve(this.modrm_byte));var e=(7&this.modrm_byte)<<2;return this.create_atom128s(this.reg_xmm32s[e],this.reg_xmm32s[1|e],this.reg_xmm32s[2|e],this.reg_xmm32s[3|e])},CPU.prototype.read_xmm_mem128s_unaligned=function(){if(192>this.modrm_byte)return this.safe_read128s_unaligned(this.modrm_resolve(this.modrm_byte));var e=(7&this.modrm_byte)<<2;return this.create_atom128s(this.reg_xmm32s[e],this.reg_xmm32s[1|e],this.reg_xmm32s[2|e],this.reg_xmm32s[3|e])},CPU.prototype.set_e8=function(e){if(192>this.modrm_byte){var t=this.modrm_resolve(this.modrm_byte);this.safe_write8(t,e)}else this.reg8[this.modrm_byte<<2&12|this.modrm_byte>>2&1]=e},CPU.prototype.set_e16=function(e){if(192>this.modrm_byte){var t=this.modrm_resolve(this.modrm_byte);this.safe_write16(t,e)}else this.reg16[this.modrm_byte<<1&14]=e},CPU.prototype.set_e32=function(e){if(192>this.modrm_byte){var t=this.modrm_resolve(this.modrm_byte);this.safe_write32(t,e)}else this.reg32s[7&this.modrm_byte]=e},CPU.prototype.set_mmx_mem64s=function(e,t){if(192>this.modrm_byte){var s=this.modrm_resolve(this.modrm_byte);this.safe_write64(s,e,t)}else this.reg_mmxs[2*(7&this.modrm_byte)]=e,this.reg_mmxs[2*(7&this.modrm_byte)+1]=t},CPU.prototype.read_write_e8=function(){if(192>this.modrm_byte){var e=this.modrm_resolve(this.modrm_byte);return this.phys_addr=this.translate_address_write(e),this.read8(this.phys_addr)}return this.reg8[this.modrm_byte<<2&12|this.modrm_byte>>2&1]},CPU.prototype.write_e8=function(e){192>this.modrm_byte?this.write8(this.phys_addr,e):this.reg8[this.modrm_byte<<2&12|this.modrm_byte>>2&1]=e},CPU.prototype.read_write_e16=function(){if(192>this.modrm_byte){var e=this.modrm_resolve(this.modrm_byte);return this.phys_addr=this.translate_address_write(e),this.paging&&4095==(4095&e)?(this.phys_addr_high=this.translate_address_write(e+1|0),dbg_assert(this.phys_addr_high),this.virt_boundary_read16(this.phys_addr,this.phys_addr_high)):(this.phys_addr_high=0,this.read16(this.phys_addr))}return this.reg16[this.modrm_byte<<1&14]},CPU.prototype.write_e16=function(e){192>this.modrm_byte?this.phys_addr_high?this.virt_boundary_write16(this.phys_addr,this.phys_addr_high,e):this.write16(this.phys_addr,e):this.reg16[this.modrm_byte<<1&14]=e},CPU.prototype.read_write_e32=function(){if(192>this.modrm_byte){var e=this.modrm_resolve(this.modrm_byte);return this.phys_addr=this.translate_address_write(e),this.paging&&4093<=(4095&e)?(this.phys_addr_high=this.translate_address_write(e+3&-4)|e+3&3,dbg_assert(this.phys_addr_high),this.virt_boundary_read32s(this.phys_addr,this.phys_addr_high)):(this.phys_addr_high=0,this.read32s(this.phys_addr))}return this.reg32s[7&this.modrm_byte]},CPU.prototype.write_e32=function(e){192>this.modrm_byte?this.phys_addr_high?this.virt_boundary_write32(this.phys_addr,this.phys_addr_high,e):this.write32(this.phys_addr,e):this.reg32s[7&this.modrm_byte]=e},CPU.prototype.read_reg_e16=function(){return this.reg16[this.modrm_byte<<1&14]},CPU.prototype.write_reg_e16=function(e){this.reg16[this.modrm_byte<<1&14]=e},CPU.prototype.read_reg_e32s=function(){return this.reg32s[7&this.modrm_byte]},CPU.prototype.write_reg_e32=function(e){this.reg32s[7&this.modrm_byte]=e},CPU.prototype.read_g8=function(){return this.reg8[this.modrm_byte>>1&12|this.modrm_byte>>5&1]},CPU.prototype.write_g8=function(e){this.reg8[this.modrm_byte>>1&12|this.modrm_byte>>5&1]=e},CPU.prototype.read_g16=function(){return this.reg16[this.modrm_byte>>2&14]},CPU.prototype.read_g16s=function(){return this.reg16s[this.modrm_byte>>2&14]},CPU.prototype.write_g16=function(e){this.reg16[this.modrm_byte>>2&14]=e},CPU.prototype.read_g32s=function(){return this.reg32s[this.modrm_byte>>3&7]},CPU.prototype.write_g32=function(e){this.reg32[this.modrm_byte>>3&7]=e},CPU.prototype.read_xmm64s=function(){return this.create_atom64s(this.reg_xmm32s[(this.modrm_byte>>3&7)<<2],this.reg_xmm32s[(this.modrm_byte>>3&7)<<2|1])},CPU.prototype.read_xmm128s=function(){var e=(this.modrm_byte>>3&7)<<2;return this.create_atom128s(this.reg_xmm32s[0|e],this.reg_xmm32s[1|e],this.reg_xmm32s[2|e],this.reg_xmm32s[3|e])},CPU.prototype.read_mmx64s=function(){return this.create_atom64s(this.reg_mmxs[2*(this.modrm_byte>>3&7)],this.reg_mmxs[2*(this.modrm_byte>>3&7)+1])},CPU.prototype.write_mmx64s=function(e,t){this.reg_mmxs[2*(this.modrm_byte>>3&7)]=e,this.reg_mmxs[2*(this.modrm_byte>>3&7)+1]=t},CPU.prototype.write_xmm64=function(e,t){var s=(this.modrm_byte>>3&7)<<2;this.reg_xmm32s[s]=e,this.reg_xmm32s[s+1]=t},CPU.prototype.write_xmm128s=function(e,t,s,r){var i=(this.modrm_byte>>3&7)<<2;this.reg_xmm32s[i]=e,this.reg_xmm32s[i+1]=t,this.reg_xmm32s[i+2]=s,this.reg_xmm32s[i+3]=r},CPU.prototype.pic_call_irq=function(e){try{this.previous_ip=this.instruction_pointer,this.call_interrupt_vector(e,!1,!1)}catch(e){this.exception_cleanup(e)}},CPU.prototype.handle_irqs=function(){dbg_assert(!this.page_fault),this.diverged(),this.flags&flag_interrupt&&!this.page_fault&&(this.devices.pic&&this.devices.pic.acknowledge_irq(),this.devices.apic&&this.devices.apic.acknowledge_irq())},CPU.prototype.device_raise_irq=function(e){dbg_assert(1===arguments.length),this.devices.pic&&this.devices.pic.set_irq(e),this.devices.ioapic&&this.devices.ioapic.set_irq(e)},CPU.prototype.device_lower_irq=function(e){this.devices.pic&&this.devices.pic.clear_irq(e),this.devices.ioapic&&this.devices.ioapic.clear_irq(e)},CPU.prototype.test_privileges_for_io=function(e,t){if(this.protected_mode&&(this.cpl>this.getiopl()||this.flags&flag_vm)){this.tss_size_32||(dbg_log("#GP for port io, 16-bit TSS port="+h(e)+" size="+t,LOG_CPU),CPU_LOG_VERBOSE&&this.debug.dump_state(),this.trigger_gp(0));var s=this.segment_limits[reg_tr],r=this.segment_offsets[reg_tr];if(103<=s){dbg_assert(4095>(r+100+2&4095));var i=this.read16(this.translate_address_system_read(r+100+2|0));if(s>=(i+((e+t-1|0)>>3)|0)&&(s=(1<>3)|0),i=65280&s?this.read16(r):this.read8(r),dbg_assert(4095>(4095&r)),!(i&s)))return}dbg_log("#GP for port io port="+h(e)+" size="+t,LOG_CPU),CPU_LOG_VERBOSE&&this.debug.dump_state(),this.trigger_gp(0)}},CPU.prototype.cpuid=function(){var e=0,t=0,s=0,r=0;switch(this.reg32s[reg_eax]){case 0:e=5,r=1970169159,s=1231384169,t=1818588270;break;case 1:e=3939,r=67584,t=1082130432,VMWARE_HYPERVISOR_PORT&&(t|=-2147483648),s=125872440|(this.fpu?1:0),ENABLE_ACPI&&this.apic_enabled&&(s|=512);break;case 2:e=1717260289,t=r=0,s=8024064;break;case 4:switch(this.reg32s[reg_ecx]){case 0:e=289,r=29360191,t=63,s=1;break;case 1:e=290,r=29360191,t=63,s=1;break;case 2:e=323,r=96469055,t=4095,s=1}break;case 5:r=e=64,t=3,s=1319200;break +;case-2147483648:e=5;break;case 1073741824:VMWARE_HYPERVISOR_PORT&&(r=1635208534,t=1297507698,s=1701994871);break;default:dbg_log("cpuid: unimplemented eax: "+h(this.reg32[reg_eax]),LOG_CPU)}dbg_log("cpuid: eax="+h(this.reg32[reg_eax],8)+" cl="+h(this.reg8[reg_cl],2),LOG_CPU),this.reg32s[reg_eax]=e,this.reg32s[reg_ecx]=t,this.reg32s[reg_edx]=s,this.reg32s[reg_ebx]=r},CPU.prototype.update_cs_size=function(e){dbg_assert("boolean"==typeof e),this.is_32!==e&&(this.clear_instruction_cache(),this.is_32=e,this.update_operand_size())},CPU.prototype.update_operand_size=function(){this.table=this.is_32?this.table32:this.table16},CPU.prototype.lookup_segment_selector=function(e){dbg_assert("number"==typeof e&&0<=e&&65536>e);var t=0==(4&e),s=-8&e,r={rpl:3&e,from_gdt:t,is_null:!1,is_valid:!0,base:0,access:0,flags:0,type:0,dpl:0,is_system:!1,is_present:!1,is_executable:!1,rw_bit:!1,dc_bit:!1,size:!1,is_conforming_executable:!1,effective_limit:0,is_writable:!1,is_readable:!1,table_offset:0,raw0:0,raw1:0};if(t)var i=this.gdtr_offset,_=this.gdtr_size;else i=this.segment_offsets[reg_ldtr],_=this.segment_limits[reg_ldtr];return t&&0===s?(r.is_null=!0,r):(7|e)>_?(dbg_log("Selector "+h(e,4)+" is outside of the "+(t?"g":"l")+"dt limits",LOG_CPU),r.is_valid=!1,r):(i=i+s|0,this.paging&&(i=this.translate_address_system_read(i)),r.table_offset=i,r.base=this.read16(i+2|0)|this.read8(i+4|0)<<16|this.read8(i+7|0)<<24,r.access=this.read8(i+5|0),r.flags=this.read8(i+6|0)>>4,r.raw0=this.read32s(0|i),r.raw1=this.read32s(i+4|0),r.type=15&r.access,r.dpl=r.access>>5&3,r.is_system=0==(16&r.access),r.is_present=128==(128&r.access),r.is_executable=8==(8&r.access),r.rw_bit=2==(2&r.access),r.dc_bit=4==(4&r.access),r.is_conforming_executable=r.dc_bit&&r.is_executable,r.size=4==(4&r.flags),e=this.read16(i)|(15&this.read8(i+6|0))<<16,r.effective_limit=8&r.flags?(e<<12|4095)>>>0:e,r.is_writable=r.rw_bit&&!r.is_executable,r.is_readable=r.rw_bit||!r.is_executable,r)},CPU.prototype.switch_seg=function(e,t){if(dbg_assert(0<=e&&5>=e),dbg_assert("number"==typeof t&&65536>t&&0<=t),!this.protected_mode||this.vm86_mode())this.sreg[e]=t,this.segment_is_null[e]=0,this.segment_offsets[e]=t<<4,e===reg_ss&&(this.stack_size_32=!1);else{var s=this.lookup_segment_selector(t);if(e===reg_ss)s.is_null&&(dbg_log("#GP for loading 0 in SS sel="+h(t,4),LOG_CPU),dbg_trace(LOG_CPU),this.trigger_gp(0)),s.is_valid&&!s.is_system&&s.rpl===this.cpl&&s.is_writable&&s.dpl===this.cpl||(dbg_log("#GP for loading invalid in SS sel="+h(t,4),LOG_CPU),dbg_trace(LOG_CPU),this.trigger_gp(-4&t)),s.is_present||(dbg_log("#SS for loading non-present in SS sel="+h(t,4),LOG_CPU),dbg_trace(LOG_CPU),this.trigger_ss(-4&t)),this.stack_size_32=s.size;else if(e===reg_cs)dbg_assert(!1);else{if(s.is_null)return this.sreg[e]=t,void(this.segment_is_null[e]=1);(!s.is_valid||s.is_system||!s.is_readable||!s.is_conforming_executable&&(s.rpl>s.dpl||this.cpl>s.dpl))&&(dbg_log("#GP for loading invalid in seg "+e+" sel="+h(t,4),LOG_CPU),this.debug.dump_state(),this.debug.dump_regs(),dbg_trace(LOG_CPU),this.trigger_gp(-4&t)),s.is_present||(dbg_log("#NP for loading not-present in seg "+e+" sel="+h(t,4),LOG_CPU),dbg_trace(LOG_CPU),this.trigger_np(-4&t))}this.segment_is_null[e]=0,this.segment_limits[e]=s.effective_limit,this.segment_offsets[e]=s.base,this.sreg[e]=t}},CPU.prototype.load_tr=function(e){var t=this.lookup_segment_selector(e);if(dbg_assert(t.is_valid),!t.from_gdt)throw this.debug.unimpl("TR can only be loaded from GDT");if(t.is_null)throw dbg_log("#GP(0) | tried to load null selector (ltr)"),this.debug.unimpl("#GP handler");if(!t.is_system)throw dbg_log("#GP | ltr: not a system entry"),this.debug.unimpl("#GP handler (happens when running kvm-unit-test without ACPI)");if(9!==t.type&&1!==t.type)throw dbg_log("#GP | ltr: invalid type (type = "+h(t.type)+")"),this.debug.unimpl("#GP handler");if(!t.is_present)throw dbg_log("#NT | present bit not set (ltr)"),this.debug.unimpl("#NT handler");this.tss_size_32=9===t.type,this.segment_offsets[reg_tr]=t.base,this.segment_limits[reg_tr]=t.effective_limit,this.sreg[reg_tr]=e,this.write8(t.table_offset+5|0,2|this.read8(t.table_offset+5|0))},CPU.prototype.load_ldt=function(e){var t=this.lookup_segment_selector(e);if(t.is_null)this.segment_offsets[reg_ldtr]=0,this.segment_limits[reg_ldtr]=0;else{if(dbg_assert(t.is_valid),!t.from_gdt)throw this.debug.unimpl("LDTR can only be loaded from GDT");if(!t.is_present)throw dbg_log("lldt: present bit not set"),this.debug.unimpl("#GP handler");if(!t.is_system)throw dbg_log("lldt: not a system entry"),this.debug.unimpl("#GP handler");if(2!==t.type)throw dbg_log("lldt: invalid type ("+t.type+")"),this.debug.unimpl("#GP handler");this.segment_offsets[reg_ldtr]=t.base,this.segment_limits[reg_ldtr]=t.effective_limit,this.sreg[reg_ldtr]=e}},CPU.prototype.arpl=function(e,t){return this.flags_changed&=~flag_zero,(3&e)<(3&this.reg16[t])?(this.flags|=flag_zero,-4&e|3&this.reg16[t]):(this.flags&=~flag_zero,e)},CPU.prototype.lar=function(e,t){dbg_log("lar sel="+h(e,4),LOG_CPU);var s=this.lookup_segment_selector(e);this.flags_changed&=~flag_zero;var r=s.dpl>s.type&1||r:!s.is_conforming_executable&&r)?(this.flags&=~flag_zero,dbg_log("lar: invalid selector="+h(e,4)+" is_null="+s.is_null,LOG_CPU),t):(this.flags|=flag_zero,16776960&s.raw1)},CPU.prototype.lsl=function(e,t){dbg_log("lsl sel="+h(e,4),LOG_CPU);var s=this.lookup_segment_selector(e);this.flags_changed&=~flag_zero;var r=s.dpl>s.type&1||r:!s.is_conforming_executable&&r)?(this.flags&=~flag_zero,dbg_log("lsl: invalid selector="+h(e,4)+" is_null="+s.is_null,LOG_CPU),t):(this.flags|=flag_zero,0|s.effective_limit)},CPU.prototype.verr=function(e){var t=this.lookup_segment_selector(e);this.flags_changed&=~flag_zero,t.is_null||!t.is_valid||t.is_system||!t.is_readable||!t.is_conforming_executable&&(t.dpl invalid. selector="+h(e,4),LOG_CPU),this.flags&=~flag_zero):(dbg_log("verr -> valid. selector="+h(e,4),LOG_CPU),this.flags|=flag_zero)},CPU.prototype.verw=function(e){var t=this.lookup_segment_selector(e);this.flags_changed&=~flag_zero,t.is_null||!t.is_valid||t.is_system||!t.is_writable||t.dplt;)e[t++]=e[t++]=e[t++]=e[t++]=0;this.clear_tlb()},CPU.prototype.invlpg=function(e){e>>>=12,this.tlb_info[e]=0,this.tlb_info_global[e]=0,this.last_virt_esp=this.last_virt_eip=-1},CPU.prototype.translate_address_read=function(e){return this.paging?3===this.cpl?this.translate_address_user_read(e):this.translate_address_system_read(e):e},CPU.prototype.translate_address_write=function(e){return this.paging?3===this.cpl?this.translate_address_user_write(e):this.translate_address_system_write(e):e},CPU.prototype.translate_address_user_write=function(e){if(!this.paging)return e;var t=e>>>12;return this.tlb_info[t]&TLB_USER_WRITE?this.tlb_data[t]^e:this.do_page_translation(e,1,1)|4095&e},CPU.prototype.translate_address_user_read=function(e){if(!this.paging)return e;var t=e>>>12;return this.tlb_info[t]&TLB_USER_READ?this.tlb_data[t]^e:this.do_page_translation(e,0,1)|4095&e},CPU.prototype.translate_address_system_write=function(e){if(!this.paging)return e;var t=e>>>12;return this.tlb_info[t]&TLB_SYSTEM_WRITE?this.tlb_data[t]^e:this.do_page_translation(e,1,0)|4095&e},CPU.prototype.translate_address_system_read=function(e){if(!this.paging)return e;var t=e>>>12;return this.tlb_info[t]&TLB_SYSTEM_READ?this.tlb_data[t]^e:this.do_page_translation(e,0,0)|4095&e},CPU.prototype.do_page_translation=function(e,t,s){var r=e>>>12,i=(this.cr[3]>>>2)+(r>>10)|0,_=this.mem32s[i],a=!0,o=!0;if(dbg_assert(2147483648>e),1&_||(this.cr[2]=e,this.trigger_pagefault(t,s,0),dbg_assert(!1)),0==(2&_)&&(a=!1,t&&(s||this.cr[0]&CR0_WP)&&(this.cr[2]=e,this.trigger_pagefault(t,s,1),dbg_assert(!1))),0==(4&_)&&(o=!1,s&&(this.cr[2]=e,this.trigger_pagefault(t,s,1),dbg_assert(!1))),_&this.page_size_extensions)this.mem32s[i]=32|_|t<<6,e=4290772992&_|4190208&e,_&=256;else{var n=((4294963200&_)>>>2)+(1023&r)|0,d=this.mem32s[n];0==(1&d)&&(this.cr[2]=e,this.trigger_pagefault(t,s,0),dbg_assert(!1)),0==(2&d)&&(a=!1,t&&(s||this.cr[0]&CR0_WP)&&(this.cr[2]=e,this.trigger_pagefault(t,s,1),dbg_assert(!1))),0==(4&d)&&(o=!1,s&&(this.cr[2]=e,this.trigger_pagefault(t,s,1),dbg_assert(!1))),this.write_aligned32(i,32|_),this.write_aligned32(n,32|d|t<<6),e=4294963200&d,_=256&d}return this.tlb_data[r]=e^r<<12,a=o?a?TLB_SYSTEM_READ|TLB_SYSTEM_WRITE|TLB_USER_READ|TLB_USER_WRITE:TLB_SYSTEM_READ|TLB_USER_READ:a?TLB_SYSTEM_READ|TLB_SYSTEM_WRITE:TLB_SYSTEM_READ,this.tlb_info[r]=a,_&&this.cr[4]&CR4_PGE&&(this.tlb_info_global[r]=a),e},CPU.prototype.writable_or_pagefault=function(e,t){if(dbg_assert(4096>t,"not supported yet"),dbg_assert(0>>12;0==(this.tlb_info[i]&r)&&this.do_page_translation(e,1,s),4096<=(4095&e)+t-1&&0==(this.tlb_info[i+1|0]&r)&&this.do_page_translation(e+t-1|0,1,s)}},CPU.prototype.trigger_pagefault=function(e,t,s){if(LOG_PAGE_FAULTS&&(dbg_log("page fault w="+e+" u="+t+" p="+s+" eip="+h(this.previous_ip>>>0,8)+" cr2="+h(this.cr[2]>>>0,8),LOG_CPU),dbg_trace(LOG_CPU)),this.page_fault)throw dbg_trace(LOG_CPU),this.debug.unimpl("Double fault");var r=this.cr[2]>>>12;throw this.tlb_info[r]=0,this.tlb_info_global[r]=0,this.instruction_pointer=this.previous_ip,this.page_fault=!0,this.call_interrupt_vector(14,!1,t<<2|e<<1|s),MAGIC_CPU_EXCEPTION},CPU.prototype.is_osize_32=function(){return this.is_32!==((this.prefixes&PREFIX_MASK_OPSIZE)===PREFIX_MASK_OPSIZE)},CPU.prototype.is_asize_32=function(){return this.is_32!==((this.prefixes&PREFIX_MASK_ADDRSIZE)===PREFIX_MASK_ADDRSIZE)},CPU.prototype.get_reg_asize=function(e){return dbg_assert(e===reg_ecx||e===reg_esi||e===reg_edi),e=this.reg32s[e],this.is_asize_32()?e:65535&e},CPU.prototype.set_ecx_asize=function(e){this.is_asize_32()?this.reg32s[reg_ecx]=e:this.reg16[reg_cx]=e},CPU.prototype.add_reg_asize=function(e,t){dbg_assert(e===reg_ecx||e===reg_esi||e===reg_edi),this.is_asize_32()?this.reg32s[e]+=t:this.reg16[e<<1]+=t},CPU.prototype.decr_ecx_asize=function(){return this.is_asize_32()?--this.reg32s[reg_ecx]:--this.reg16[reg_cx]},"undefined"!=typeof window?window.CPU=CPU:"undefined"!=typeof module&&void 0!==module.exports?module.exports.CPU=CPU:"function"==typeof importScripts&&(self.CPU=CPU),function(){CPU.prototype.modrm_table16=Array(192),CPU.prototype.modrm_table32=Array(192),CPU.prototype.sib_table=Array(256),CPU.prototype.modrm_table16[0]=function(e){return e.get_seg_prefix_ds()+(e.reg16[reg_bx]+e.reg16[reg_si]&65535)|0},CPU.prototype.modrm_table16[64]=function(e){return e.get_seg_prefix_ds()+(e.reg16[reg_bx]+e.reg16[reg_si]+e.read_disp8s()&65535)|0},CPU.prototype.modrm_table16[128]=function(e){return e.get_seg_prefix_ds()+(e.reg16[reg_bx]+e.reg16[reg_si]+e.read_disp16()&65535)|0},CPU.prototype.modrm_table16[1]=function(e){return e.get_seg_prefix_ds()+(e.reg16[reg_bx]+e.reg16[reg_di]&65535)|0},CPU.prototype.modrm_table16[65]=function(e){return e.get_seg_prefix_ds()+(e.reg16[reg_bx]+e.reg16[reg_di]+e.read_disp8s()&65535)|0},CPU.prototype.modrm_table16[129]=function(e){return e.get_seg_prefix_ds()+(e.reg16[reg_bx]+e.reg16[reg_di]+e.read_disp16()&65535)|0},CPU.prototype.modrm_table16[2]=function(e){return e.get_seg_prefix_ss()+(e.reg16[reg_bp]+e.reg16[reg_si]&65535)|0},CPU.prototype.modrm_table16[66]=function(e){return e.get_seg_prefix_ss()+(e.reg16[reg_bp]+e.reg16[reg_si]+e.read_disp8s()&65535)|0},CPU.prototype.modrm_table16[130]=function(e){return e.get_seg_prefix_ss()+(e.reg16[reg_bp]+e.reg16[reg_si]+e.read_disp16()&65535)|0},CPU.prototype.modrm_table16[3]=function(e){return e.get_seg_prefix_ss()+(e.reg16[reg_bp]+e.reg16[reg_di]&65535)|0},CPU.prototype.modrm_table16[67]=function(e){return e.get_seg_prefix_ss()+(e.reg16[reg_bp]+e.reg16[reg_di]+e.read_disp8s()&65535)|0},CPU.prototype.modrm_table16[131]=function(e){return e.get_seg_prefix_ss()+(e.reg16[reg_bp]+e.reg16[reg_di]+e.read_disp16()&65535)|0},CPU.prototype.modrm_table16[4]=function(e){return e.get_seg_prefix_ds()+(65535&e.reg16[reg_si])|0},CPU.prototype.modrm_table16[68]=function(e){return e.get_seg_prefix_ds()+(e.reg16[reg_si]+e.read_disp8s()&65535)|0},CPU.prototype.modrm_table16[132]=function(e){return e.get_seg_prefix_ds()+(e.reg16[reg_si]+e.read_disp16()&65535)|0},CPU.prototype.modrm_table16[5]=function(e){return e.get_seg_prefix_ds()+(65535&e.reg16[reg_di])|0},CPU.prototype.modrm_table16[69]=function(e){return e.get_seg_prefix_ds()+(e.reg16[reg_di]+e.read_disp8s()&65535)|0},CPU.prototype.modrm_table16[133]=function(e){return e.get_seg_prefix_ds()+(e.reg16[reg_di]+e.read_disp16()&65535)|0},CPU.prototype.modrm_table16[6]=function(e){return e.get_seg_prefix_ss()+(65535&e.reg16[reg_bp])|0},CPU.prototype.modrm_table16[70]=function(e){return e.get_seg_prefix_ss()+(e.reg16[reg_bp]+e.read_disp8s()&65535)|0},CPU.prototype.modrm_table16[134]=function(e){return e.get_seg_prefix_ss()+(e.reg16[reg_bp]+e.read_disp16()&65535)|0},CPU.prototype.modrm_table16[7]=function(e){return e.get_seg_prefix_ds()+(65535&e.reg16[reg_bx])|0},CPU.prototype.modrm_table16[71]=function(e){return e.get_seg_prefix_ds()+(e.reg16[reg_bx]+e.read_disp8s()&65535)|0},CPU.prototype.modrm_table16[135]=function(e){return e.get_seg_prefix_ds()+(e.reg16[reg_bx]+e.read_disp16()&65535)|0},CPU.prototype.modrm_table32[0]=function(e){return e.get_seg_prefix_ds()+e.reg32s[reg_eax]|0},CPU.prototype.modrm_table32[64]=function(e){return e.get_seg_prefix_ds()+e.reg32s[reg_eax]+e.read_disp8s()|0},CPU.prototype.modrm_table32[128]=function(e){return e.get_seg_prefix_ds()+e.reg32s[reg_eax]+e.read_disp32s()|0},CPU.prototype.modrm_table32[1]=function(e){return e.get_seg_prefix_ds()+e.reg32s[reg_ecx]|0},CPU.prototype.modrm_table32[65]=function(e){return e.get_seg_prefix_ds()+e.reg32s[reg_ecx]+e.read_disp8s()|0},CPU.prototype.modrm_table32[129]=function(e){return e.get_seg_prefix_ds()+e.reg32s[reg_ecx]+e.read_disp32s()|0},CPU.prototype.modrm_table32[2]=function(e){return e.get_seg_prefix_ds()+e.reg32s[reg_edx]|0},CPU.prototype.modrm_table32[66]=function(e){return e.get_seg_prefix_ds()+e.reg32s[reg_edx]+e.read_disp8s()|0},CPU.prototype.modrm_table32[130]=function(e){return e.get_seg_prefix_ds()+e.reg32s[reg_edx]+e.read_disp32s()|0},CPU.prototype.modrm_table32[3]=function(e){return e.get_seg_prefix_ds()+e.reg32s[reg_ebx]|0},CPU.prototype.modrm_table32[67]=function(e){return e.get_seg_prefix_ds()+e.reg32s[reg_ebx]+e.read_disp8s()|0},CPU.prototype.modrm_table32[131]=function(e){return e.get_seg_prefix_ds()+e.reg32s[reg_ebx]+e.read_disp32s()|0},CPU.prototype.modrm_table32[5]=function(e){return e.get_seg_prefix_ss()+e.reg32s[reg_ebp]|0},CPU.prototype.modrm_table32[69]=function(e){return e.get_seg_prefix_ss()+e.reg32s[reg_ebp]+e.read_disp8s()|0},CPU.prototype.modrm_table32[133]=function(e){return e.get_seg_prefix_ss()+e.reg32s[reg_ebp]+e.read_disp32s()|0},CPU.prototype.modrm_table32[6]=function(e){return e.get_seg_prefix_ds()+e.reg32s[reg_esi]|0},CPU.prototype.modrm_table32[70]=function(e){return e.get_seg_prefix_ds()+e.reg32s[reg_esi]+e.read_disp8s()|0},CPU.prototype.modrm_table32[134]=function(e){return e.get_seg_prefix_ds()+e.reg32s[reg_esi]+e.read_disp32s()|0},CPU.prototype.modrm_table32[7]=function(e){return e.get_seg_prefix_ds()+e.reg32s[reg_edi]|0},CPU.prototype.modrm_table32[71]=function(e){return e.get_seg_prefix_ds()+e.reg32s[reg_edi]+e.read_disp8s()|0},CPU.prototype.modrm_table32[135]=function(e){return e.get_seg_prefix_ds()+e.reg32s[reg_edi]+e.read_disp32s()|0},CPU.prototype.modrm_table16[6]=function(e){return e.get_seg_prefix_ds()+e.read_disp16()|0},CPU.prototype.modrm_table32[5]=function(e){return e.get_seg_prefix_ds()+e.read_disp32s()|0},CPU.prototype.modrm_table32[4]=function(e){return 0|e.sib_resolve(!1)},CPU.prototype.modrm_table32[68]=function(e){return e.sib_resolve(!0)+e.read_disp8s()|0},CPU.prototype.modrm_table32[132]=function(e){return e.sib_resolve(!0)+e.read_disp32s()|0};for(var e=0;8>e;e++)for(var t=0;3>t;t++)for(var s=e|t<<6,r=1;8>r;r++)CPU.prototype.modrm_table32[s|r<<3]=CPU.prototype.modrm_table32[s],CPU.prototype.modrm_table16[s|r<<3]=CPU.prototype.modrm_table16[s];CPU.prototype.sib_table[0]=function(e,t){return e.reg32s[reg_eax]+e.get_seg_prefix_ds()+e.reg32s[reg_eax]|0},CPU.prototype.sib_table[1]=function(e,t){return e.reg32s[reg_eax]+e.get_seg_prefix_ds()+e.reg32s[reg_ecx]|0},CPU.prototype.sib_table[2]=function(e,t){return e.reg32s[reg_eax]+e.get_seg_prefix_ds()+e.reg32s[reg_edx]|0},CPU.prototype.sib_table[3]=function(e,t){return e.reg32s[reg_eax]+e.get_seg_prefix_ds()+e.reg32s[reg_ebx]|0},CPU.prototype.sib_table[4]=function(e,t){return e.reg32s[reg_eax]+e.get_seg_prefix_ss()+e.reg32s[reg_esp]|0},CPU.prototype.sib_table[5]=function(e,t){return e.reg32s[reg_eax]+(t?e.get_seg_prefix_ss()+e.reg32s[reg_ebp]:e.get_seg_prefix_ds()+e.read_disp32s())|0},CPU.prototype.sib_table[6]=function(e,t){return e.reg32s[reg_eax]+e.get_seg_prefix_ds()+e.reg32s[reg_esi]|0},CPU.prototype.sib_table[7]=function(e,t){return e.reg32s[reg_eax]+e.get_seg_prefix_ds()+e.reg32s[reg_edi]|0},CPU.prototype.sib_table[64]=function(e,t){return(e.reg32s[reg_eax]<<1)+e.get_seg_prefix_ds()+e.reg32s[reg_eax]|0},CPU.prototype.sib_table[65]=function(e,t){return(e.reg32s[reg_eax]<<1)+e.get_seg_prefix_ds()+e.reg32s[reg_ecx]|0},CPU.prototype.sib_table[66]=function(e,t){return(e.reg32s[reg_eax]<<1)+e.get_seg_prefix_ds()+e.reg32s[reg_edx]|0},CPU.prototype.sib_table[67]=function(e,t){return(e.reg32s[reg_eax]<<1)+e.get_seg_prefix_ds()+e.reg32s[reg_ebx]|0},CPU.prototype.sib_table[68]=function(e,t){return(e.reg32s[reg_eax]<<1)+e.get_seg_prefix_ss()+e.reg32s[reg_esp]|0},CPU.prototype.sib_table[69]=function(e,t){return(e.reg32s[reg_eax]<<1)+(t?e.get_seg_prefix_ss()+e.reg32s[reg_ebp]:e.get_seg_prefix_ds()+e.read_disp32s())|0},CPU.prototype.sib_table[70]=function(e,t){return(e.reg32s[reg_eax]<<1)+e.get_seg_prefix_ds()+e.reg32s[reg_esi]|0},CPU.prototype.sib_table[71]=function(e,t){return(e.reg32s[reg_eax]<<1)+e.get_seg_prefix_ds()+e.reg32s[reg_edi]|0},CPU.prototype.sib_table[128]=function(e,t){return(e.reg32s[reg_eax]<<2)+e.get_seg_prefix_ds()+e.reg32s[reg_eax]|0},CPU.prototype.sib_table[129]=function(e,t){return(e.reg32s[reg_eax]<<2)+e.get_seg_prefix_ds()+e.reg32s[reg_ecx]|0},CPU.prototype.sib_table[130]=function(e,t){return(e.reg32s[reg_eax]<<2)+e.get_seg_prefix_ds()+e.reg32s[reg_edx]|0},CPU.prototype.sib_table[131]=function(e,t){return(e.reg32s[reg_eax]<<2)+e.get_seg_prefix_ds()+e.reg32s[reg_ebx]|0},CPU.prototype.sib_table[132]=function(e,t){return(e.reg32s[reg_eax]<<2)+e.get_seg_prefix_ss()+e.reg32s[reg_esp]|0},CPU.prototype.sib_table[133]=function(e,t){return(e.reg32s[reg_eax]<<2)+(t?e.get_seg_prefix_ss()+e.reg32s[reg_ebp]:e.get_seg_prefix_ds()+e.read_disp32s())|0},CPU.prototype.sib_table[134]=function(e,t){return(e.reg32s[reg_eax]<<2)+e.get_seg_prefix_ds()+e.reg32s[reg_esi]|0},CPU.prototype.sib_table[135]=function(e,t){return(e.reg32s[reg_eax]<<2)+e.get_seg_prefix_ds()+e.reg32s[reg_edi]|0},CPU.prototype.sib_table[192]=function(e,t){return(e.reg32s[reg_eax]<<3)+e.get_seg_prefix_ds()+e.reg32s[reg_eax]|0},CPU.prototype.sib_table[193]=function(e,t){return(e.reg32s[reg_eax]<<3)+e.get_seg_prefix_ds()+e.reg32s[reg_ecx]|0},CPU.prototype.sib_table[194]=function(e,t){return(e.reg32s[reg_eax]<<3)+e.get_seg_prefix_ds()+e.reg32s[reg_edx]|0},CPU.prototype.sib_table[195]=function(e,t){return(e.reg32s[reg_eax]<<3)+e.get_seg_prefix_ds()+e.reg32s[reg_ebx]|0},CPU.prototype.sib_table[196]=function(e,t){return(e.reg32s[reg_eax]<<3)+e.get_seg_prefix_ss()+e.reg32s[reg_esp]|0},CPU.prototype.sib_table[197]=function(e,t){return(e.reg32s[reg_eax]<<3)+(t?e.get_seg_prefix_ss()+e.reg32s[reg_ebp]:e.get_seg_prefix_ds()+e.read_disp32s())|0},CPU.prototype.sib_table[198]=function(e,t){return(e.reg32s[reg_eax]<<3)+e.get_seg_prefix_ds()+e.reg32s[reg_esi]|0},CPU.prototype.sib_table[199]=function(e,t){return(e.reg32s[reg_eax]<<3)+e.get_seg_prefix_ds()+e.reg32s[reg_edi]|0},CPU.prototype.sib_table[8]=function(e,t){return e.reg32s[reg_ecx]+e.get_seg_prefix_ds()+e.reg32s[reg_eax]|0},CPU.prototype.sib_table[9]=function(e,t){return e.reg32s[reg_ecx]+e.get_seg_prefix_ds()+e.reg32s[reg_ecx]|0},CPU.prototype.sib_table[10]=function(e,t){return e.reg32s[reg_ecx]+e.get_seg_prefix_ds()+e.reg32s[reg_edx]|0},CPU.prototype.sib_table[11]=function(e,t){return e.reg32s[reg_ecx]+e.get_seg_prefix_ds()+e.reg32s[reg_ebx]|0},CPU.prototype.sib_table[12]=function(e,t){return e.reg32s[reg_ecx]+e.get_seg_prefix_ss()+e.reg32s[reg_esp]|0},CPU.prototype.sib_table[13]=function(e,t){return e.reg32s[reg_ecx]+(t?e.get_seg_prefix_ss()+e.reg32s[reg_ebp]:e.get_seg_prefix_ds()+e.read_disp32s())|0},CPU.prototype.sib_table[14]=function(e,t){return e.reg32s[reg_ecx]+e.get_seg_prefix_ds()+e.reg32s[reg_esi]|0},CPU.prototype.sib_table[15]=function(e,t){return e.reg32s[reg_ecx]+e.get_seg_prefix_ds()+e.reg32s[reg_edi]|0},CPU.prototype.sib_table[72]=function(e,t){return(e.reg32s[reg_ecx]<<1)+e.get_seg_prefix_ds()+e.reg32s[reg_eax]|0},CPU.prototype.sib_table[73]=function(e,t){return(e.reg32s[reg_ecx]<<1)+e.get_seg_prefix_ds()+e.reg32s[reg_ecx]|0},CPU.prototype.sib_table[74]=function(e,t){return(e.reg32s[reg_ecx]<<1)+e.get_seg_prefix_ds()+e.reg32s[reg_edx]|0},CPU.prototype.sib_table[75]=function(e,t){return(e.reg32s[reg_ecx]<<1)+e.get_seg_prefix_ds()+e.reg32s[reg_ebx]|0},CPU.prototype.sib_table[76]=function(e,t){return(e.reg32s[reg_ecx]<<1)+e.get_seg_prefix_ss()+e.reg32s[reg_esp]|0},CPU.prototype.sib_table[77]=function(e,t){return(e.reg32s[reg_ecx]<<1)+(t?e.get_seg_prefix_ss()+e.reg32s[reg_ebp]:e.get_seg_prefix_ds()+e.read_disp32s())|0},CPU.prototype.sib_table[78]=function(e,t){return(e.reg32s[reg_ecx]<<1)+e.get_seg_prefix_ds()+e.reg32s[reg_esi]|0},CPU.prototype.sib_table[79]=function(e,t){return(e.reg32s[reg_ecx]<<1)+e.get_seg_prefix_ds()+e.reg32s[reg_edi]|0},CPU.prototype.sib_table[136]=function(e,t){return(e.reg32s[reg_ecx]<<2)+e.get_seg_prefix_ds()+e.reg32s[reg_eax]|0},CPU.prototype.sib_table[137]=function(e,t){return(e.reg32s[reg_ecx]<<2)+e.get_seg_prefix_ds()+e.reg32s[reg_ecx]|0},CPU.prototype.sib_table[138]=function(e,t){return(e.reg32s[reg_ecx]<<2)+e.get_seg_prefix_ds()+e.reg32s[reg_edx]|0},CPU.prototype.sib_table[139]=function(e,t){return(e.reg32s[reg_ecx]<<2)+e.get_seg_prefix_ds()+e.reg32s[reg_ebx]|0},CPU.prototype.sib_table[140]=function(e,t){return(e.reg32s[reg_ecx]<<2)+e.get_seg_prefix_ss()+e.reg32s[reg_esp]|0},CPU.prototype.sib_table[141]=function(e,t){return(e.reg32s[reg_ecx]<<2)+(t?e.get_seg_prefix_ss()+e.reg32s[reg_ebp]:e.get_seg_prefix_ds()+e.read_disp32s())|0},CPU.prototype.sib_table[142]=function(e,t){return(e.reg32s[reg_ecx]<<2)+e.get_seg_prefix_ds()+e.reg32s[reg_esi]|0},CPU.prototype.sib_table[143]=function(e,t){return(e.reg32s[reg_ecx]<<2)+e.get_seg_prefix_ds()+e.reg32s[reg_edi]|0},CPU.prototype.sib_table[200]=function(e,t){return(e.reg32s[reg_ecx]<<3)+e.get_seg_prefix_ds()+e.reg32s[reg_eax]|0},CPU.prototype.sib_table[201]=function(e,t){return(e.reg32s[reg_ecx]<<3)+e.get_seg_prefix_ds()+e.reg32s[reg_ecx]|0},CPU.prototype.sib_table[202]=function(e,t){return(e.reg32s[reg_ecx]<<3)+e.get_seg_prefix_ds()+e.reg32s[reg_edx]|0},CPU.prototype.sib_table[203]=function(e,t){return(e.reg32s[reg_ecx]<<3)+e.get_seg_prefix_ds()+e.reg32s[reg_ebx]|0},CPU.prototype.sib_table[204]=function(e,t){return(e.reg32s[reg_ecx]<<3)+e.get_seg_prefix_ss()+e.reg32s[reg_esp]|0},CPU.prototype.sib_table[205]=function(e,t){return(e.reg32s[reg_ecx]<<3)+(t?e.get_seg_prefix_ss()+e.reg32s[reg_ebp]:e.get_seg_prefix_ds()+e.read_disp32s())|0},CPU.prototype.sib_table[206]=function(e,t){return(e.reg32s[reg_ecx]<<3)+e.get_seg_prefix_ds()+e.reg32s[reg_esi]|0},CPU.prototype.sib_table[207]=function(e,t){return(e.reg32s[reg_ecx]<<3)+e.get_seg_prefix_ds()+e.reg32s[reg_edi]|0},CPU.prototype.sib_table[16]=function(e,t){return e.reg32s[reg_edx]+e.get_seg_prefix_ds()+e.reg32s[reg_eax]|0},CPU.prototype.sib_table[17]=function(e,t){return e.reg32s[reg_edx]+e.get_seg_prefix_ds()+e.reg32s[reg_ecx]|0},CPU.prototype.sib_table[18]=function(e,t){return e.reg32s[reg_edx]+e.get_seg_prefix_ds()+e.reg32s[reg_edx]|0},CPU.prototype.sib_table[19]=function(e,t){return e.reg32s[reg_edx]+e.get_seg_prefix_ds()+e.reg32s[reg_ebx]|0},CPU.prototype.sib_table[20]=function(e,t){return e.reg32s[reg_edx]+e.get_seg_prefix_ss()+e.reg32s[reg_esp]|0},CPU.prototype.sib_table[21]=function(e,t){return e.reg32s[reg_edx]+(t?e.get_seg_prefix_ss()+e.reg32s[reg_ebp]:e.get_seg_prefix_ds()+e.read_disp32s())|0},CPU.prototype.sib_table[22]=function(e,t){return e.reg32s[reg_edx]+e.get_seg_prefix_ds()+e.reg32s[reg_esi]|0},CPU.prototype.sib_table[23]=function(e,t){return e.reg32s[reg_edx]+e.get_seg_prefix_ds()+e.reg32s[reg_edi]|0},CPU.prototype.sib_table[80]=function(e,t){return(e.reg32s[reg_edx]<<1)+e.get_seg_prefix_ds()+e.reg32s[reg_eax]|0},CPU.prototype.sib_table[81]=function(e,t){return(e.reg32s[reg_edx]<<1)+e.get_seg_prefix_ds()+e.reg32s[reg_ecx]|0},CPU.prototype.sib_table[82]=function(e,t){return(e.reg32s[reg_edx]<<1)+e.get_seg_prefix_ds()+e.reg32s[reg_edx]|0},CPU.prototype.sib_table[83]=function(e,t){return(e.reg32s[reg_edx]<<1)+e.get_seg_prefix_ds()+e.reg32s[reg_ebx]|0},CPU.prototype.sib_table[84]=function(e,t){return(e.reg32s[reg_edx]<<1)+e.get_seg_prefix_ss()+e.reg32s[reg_esp]|0},CPU.prototype.sib_table[85]=function(e,t){return(e.reg32s[reg_edx]<<1)+(t?e.get_seg_prefix_ss()+e.reg32s[reg_ebp]:e.get_seg_prefix_ds()+e.read_disp32s())|0},CPU.prototype.sib_table[86]=function(e,t){return(e.reg32s[reg_edx]<<1)+e.get_seg_prefix_ds()+e.reg32s[reg_esi]|0},CPU.prototype.sib_table[87]=function(e,t){return(e.reg32s[reg_edx]<<1)+e.get_seg_prefix_ds()+e.reg32s[reg_edi]|0},CPU.prototype.sib_table[144]=function(e,t){return(e.reg32s[reg_edx]<<2)+e.get_seg_prefix_ds()+e.reg32s[reg_eax]|0},CPU.prototype.sib_table[145]=function(e,t){return(e.reg32s[reg_edx]<<2)+e.get_seg_prefix_ds()+e.reg32s[reg_ecx]|0},CPU.prototype.sib_table[146]=function(e,t){return(e.reg32s[reg_edx]<<2)+e.get_seg_prefix_ds()+e.reg32s[reg_edx]|0},CPU.prototype.sib_table[147]=function(e,t){return(e.reg32s[reg_edx]<<2)+e.get_seg_prefix_ds()+e.reg32s[reg_ebx]|0},CPU.prototype.sib_table[148]=function(e,t){return(e.reg32s[reg_edx]<<2)+e.get_seg_prefix_ss()+e.reg32s[reg_esp]|0},CPU.prototype.sib_table[149]=function(e,t){return(e.reg32s[reg_edx]<<2)+(t?e.get_seg_prefix_ss()+e.reg32s[reg_ebp]:e.get_seg_prefix_ds()+e.read_disp32s())|0},CPU.prototype.sib_table[150]=function(e,t){return(e.reg32s[reg_edx]<<2)+e.get_seg_prefix_ds()+e.reg32s[reg_esi]|0},CPU.prototype.sib_table[151]=function(e,t){return(e.reg32s[reg_edx]<<2)+e.get_seg_prefix_ds()+e.reg32s[reg_edi]|0},CPU.prototype.sib_table[208]=function(e,t){return(e.reg32s[reg_edx]<<3)+e.get_seg_prefix_ds()+e.reg32s[reg_eax]|0},CPU.prototype.sib_table[209]=function(e,t){return(e.reg32s[reg_edx]<<3)+e.get_seg_prefix_ds()+e.reg32s[reg_ecx]|0},CPU.prototype.sib_table[210]=function(e,t){return(e.reg32s[reg_edx]<<3)+e.get_seg_prefix_ds()+e.reg32s[reg_edx]|0},CPU.prototype.sib_table[211]=function(e,t){return(e.reg32s[reg_edx]<<3)+e.get_seg_prefix_ds()+e.reg32s[reg_ebx]|0},CPU.prototype.sib_table[212]=function(e,t){return(e.reg32s[reg_edx]<<3)+e.get_seg_prefix_ss()+e.reg32s[reg_esp]|0},CPU.prototype.sib_table[213]=function(e,t){return(e.reg32s[reg_edx]<<3)+(t?e.get_seg_prefix_ss()+e.reg32s[reg_ebp]:e.get_seg_prefix_ds()+e.read_disp32s())|0},CPU.prototype.sib_table[214]=function(e,t){return(e.reg32s[reg_edx]<<3)+e.get_seg_prefix_ds()+e.reg32s[reg_esi]|0},CPU.prototype.sib_table[215]=function(e,t){return(e.reg32s[reg_edx]<<3)+e.get_seg_prefix_ds()+e.reg32s[reg_edi]|0},CPU.prototype.sib_table[24]=function(e,t){return e.reg32s[reg_ebx]+e.get_seg_prefix_ds()+e.reg32s[reg_eax]|0},CPU.prototype.sib_table[25]=function(e,t){return e.reg32s[reg_ebx]+e.get_seg_prefix_ds()+e.reg32s[reg_ecx]|0},CPU.prototype.sib_table[26]=function(e,t){return e.reg32s[reg_ebx]+e.get_seg_prefix_ds()+e.reg32s[reg_edx]|0},CPU.prototype.sib_table[27]=function(e,t){return e.reg32s[reg_ebx]+e.get_seg_prefix_ds()+e.reg32s[reg_ebx]|0},CPU.prototype.sib_table[28]=function(e,t){return e.reg32s[reg_ebx]+e.get_seg_prefix_ss()+e.reg32s[reg_esp]|0},CPU.prototype.sib_table[29]=function(e,t){return e.reg32s[reg_ebx]+(t?e.get_seg_prefix_ss()+e.reg32s[reg_ebp]:e.get_seg_prefix_ds()+e.read_disp32s())|0},CPU.prototype.sib_table[30]=function(e,t){return e.reg32s[reg_ebx]+e.get_seg_prefix_ds()+e.reg32s[reg_esi]|0},CPU.prototype.sib_table[31]=function(e,t){return e.reg32s[reg_ebx]+e.get_seg_prefix_ds()+e.reg32s[reg_edi]|0},CPU.prototype.sib_table[88]=function(e,t){return(e.reg32s[reg_ebx]<<1)+e.get_seg_prefix_ds()+e.reg32s[reg_eax]|0},CPU.prototype.sib_table[89]=function(e,t){return(e.reg32s[reg_ebx]<<1)+e.get_seg_prefix_ds()+e.reg32s[reg_ecx]|0},CPU.prototype.sib_table[90]=function(e,t){return(e.reg32s[reg_ebx]<<1)+e.get_seg_prefix_ds()+e.reg32s[reg_edx]|0},CPU.prototype.sib_table[91]=function(e,t){return(e.reg32s[reg_ebx]<<1)+e.get_seg_prefix_ds()+e.reg32s[reg_ebx]|0},CPU.prototype.sib_table[92]=function(e,t){return(e.reg32s[reg_ebx]<<1)+e.get_seg_prefix_ss()+e.reg32s[reg_esp]|0},CPU.prototype.sib_table[93]=function(e,t){return(e.reg32s[reg_ebx]<<1)+(t?e.get_seg_prefix_ss()+e.reg32s[reg_ebp]:e.get_seg_prefix_ds()+e.read_disp32s())|0},CPU.prototype.sib_table[94]=function(e,t){return(e.reg32s[reg_ebx]<<1)+e.get_seg_prefix_ds()+e.reg32s[reg_esi]|0},CPU.prototype.sib_table[95]=function(e,t){return(e.reg32s[reg_ebx]<<1)+e.get_seg_prefix_ds()+e.reg32s[reg_edi]|0},CPU.prototype.sib_table[152]=function(e,t){return(e.reg32s[reg_ebx]<<2)+e.get_seg_prefix_ds()+e.reg32s[reg_eax]|0},CPU.prototype.sib_table[153]=function(e,t){return(e.reg32s[reg_ebx]<<2)+e.get_seg_prefix_ds()+e.reg32s[reg_ecx]|0},CPU.prototype.sib_table[154]=function(e,t){return(e.reg32s[reg_ebx]<<2)+e.get_seg_prefix_ds()+e.reg32s[reg_edx]|0},CPU.prototype.sib_table[155]=function(e,t){return(e.reg32s[reg_ebx]<<2)+e.get_seg_prefix_ds()+e.reg32s[reg_ebx]|0},CPU.prototype.sib_table[156]=function(e,t){return(e.reg32s[reg_ebx]<<2)+e.get_seg_prefix_ss()+e.reg32s[reg_esp]|0},CPU.prototype.sib_table[157]=function(e,t){return(e.reg32s[reg_ebx]<<2)+(t?e.get_seg_prefix_ss()+e.reg32s[reg_ebp]:e.get_seg_prefix_ds()+e.read_disp32s())|0},CPU.prototype.sib_table[158]=function(e,t){return(e.reg32s[reg_ebx]<<2)+e.get_seg_prefix_ds()+e.reg32s[reg_esi]|0},CPU.prototype.sib_table[159]=function(e,t){return(e.reg32s[reg_ebx]<<2)+e.get_seg_prefix_ds()+e.reg32s[reg_edi]|0},CPU.prototype.sib_table[216]=function(e,t){return(e.reg32s[reg_ebx]<<3)+e.get_seg_prefix_ds()+e.reg32s[reg_eax]|0},CPU.prototype.sib_table[217]=function(e,t){return(e.reg32s[reg_ebx]<<3)+e.get_seg_prefix_ds()+e.reg32s[reg_ecx]|0},CPU.prototype.sib_table[218]=function(e,t){return(e.reg32s[reg_ebx]<<3)+e.get_seg_prefix_ds()+e.reg32s[reg_edx]|0},CPU.prototype.sib_table[219]=function(e,t){return(e.reg32s[reg_ebx]<<3)+e.get_seg_prefix_ds()+e.reg32s[reg_ebx]|0},CPU.prototype.sib_table[220]=function(e,t){return(e.reg32s[reg_ebx]<<3)+e.get_seg_prefix_ss()+e.reg32s[reg_esp]|0},CPU.prototype.sib_table[221]=function(e,t){return(e.reg32s[reg_ebx]<<3)+(t?e.get_seg_prefix_ss()+e.reg32s[reg_ebp]:e.get_seg_prefix_ds()+e.read_disp32s())|0},CPU.prototype.sib_table[222]=function(e,t){return(e.reg32s[reg_ebx]<<3)+e.get_seg_prefix_ds()+e.reg32s[reg_esi]|0},CPU.prototype.sib_table[223]=function(e,t){return(e.reg32s[reg_ebx]<<3)+e.get_seg_prefix_ds()+e.reg32s[reg_edi]|0},CPU.prototype.sib_table[32]=function(e,t){ +return e.get_seg_prefix_ds()+e.reg32s[reg_eax]|0},CPU.prototype.sib_table[33]=function(e,t){return e.get_seg_prefix_ds()+e.reg32s[reg_ecx]|0},CPU.prototype.sib_table[34]=function(e,t){return e.get_seg_prefix_ds()+e.reg32s[reg_edx]|0},CPU.prototype.sib_table[35]=function(e,t){return e.get_seg_prefix_ds()+e.reg32s[reg_ebx]|0},CPU.prototype.sib_table[36]=function(e,t){return e.get_seg_prefix_ss()+e.reg32s[reg_esp]|0},CPU.prototype.sib_table[37]=function(e,t){return 0|(t?e.get_seg_prefix_ss()+e.reg32s[reg_ebp]:e.get_seg_prefix_ds()+e.read_disp32s())},CPU.prototype.sib_table[38]=function(e,t){return e.get_seg_prefix_ds()+e.reg32s[reg_esi]|0},CPU.prototype.sib_table[39]=function(e,t){return e.get_seg_prefix_ds()+e.reg32s[reg_edi]|0},CPU.prototype.sib_table[96]=function(e,t){return e.get_seg_prefix_ds()+e.reg32s[reg_eax]|0},CPU.prototype.sib_table[97]=function(e,t){return e.get_seg_prefix_ds()+e.reg32s[reg_ecx]|0},CPU.prototype.sib_table[98]=function(e,t){return e.get_seg_prefix_ds()+e.reg32s[reg_edx]|0},CPU.prototype.sib_table[99]=function(e,t){return e.get_seg_prefix_ds()+e.reg32s[reg_ebx]|0},CPU.prototype.sib_table[100]=function(e,t){return e.get_seg_prefix_ss()+e.reg32s[reg_esp]|0},CPU.prototype.sib_table[101]=function(e,t){return 0|(t?e.get_seg_prefix_ss()+e.reg32s[reg_ebp]:e.get_seg_prefix_ds()+e.read_disp32s())},CPU.prototype.sib_table[102]=function(e,t){return e.get_seg_prefix_ds()+e.reg32s[reg_esi]|0},CPU.prototype.sib_table[103]=function(e,t){return e.get_seg_prefix_ds()+e.reg32s[reg_edi]|0},CPU.prototype.sib_table[160]=function(e,t){return e.get_seg_prefix_ds()+e.reg32s[reg_eax]|0},CPU.prototype.sib_table[161]=function(e,t){return e.get_seg_prefix_ds()+e.reg32s[reg_ecx]|0},CPU.prototype.sib_table[162]=function(e,t){return e.get_seg_prefix_ds()+e.reg32s[reg_edx]|0},CPU.prototype.sib_table[163]=function(e,t){return e.get_seg_prefix_ds()+e.reg32s[reg_ebx]|0},CPU.prototype.sib_table[164]=function(e,t){return e.get_seg_prefix_ss()+e.reg32s[reg_esp]|0},CPU.prototype.sib_table[165]=function(e,t){return 0|(t?e.get_seg_prefix_ss()+e.reg32s[reg_ebp]:e.get_seg_prefix_ds()+e.read_disp32s())},CPU.prototype.sib_table[166]=function(e,t){return e.get_seg_prefix_ds()+e.reg32s[reg_esi]|0},CPU.prototype.sib_table[167]=function(e,t){return e.get_seg_prefix_ds()+e.reg32s[reg_edi]|0},CPU.prototype.sib_table[224]=function(e,t){return e.get_seg_prefix_ds()+e.reg32s[reg_eax]|0},CPU.prototype.sib_table[225]=function(e,t){return e.get_seg_prefix_ds()+e.reg32s[reg_ecx]|0},CPU.prototype.sib_table[226]=function(e,t){return e.get_seg_prefix_ds()+e.reg32s[reg_edx]|0},CPU.prototype.sib_table[227]=function(e,t){return e.get_seg_prefix_ds()+e.reg32s[reg_ebx]|0},CPU.prototype.sib_table[228]=function(e,t){return e.get_seg_prefix_ss()+e.reg32s[reg_esp]|0},CPU.prototype.sib_table[229]=function(e,t){return 0|(t?e.get_seg_prefix_ss()+e.reg32s[reg_ebp]:e.get_seg_prefix_ds()+e.read_disp32s())},CPU.prototype.sib_table[230]=function(e,t){return e.get_seg_prefix_ds()+e.reg32s[reg_esi]|0},CPU.prototype.sib_table[231]=function(e,t){return e.get_seg_prefix_ds()+e.reg32s[reg_edi]|0},CPU.prototype.sib_table[40]=function(e,t){return e.reg32s[reg_ebp]+e.get_seg_prefix_ds()+e.reg32s[reg_eax]|0},CPU.prototype.sib_table[41]=function(e,t){return e.reg32s[reg_ebp]+e.get_seg_prefix_ds()+e.reg32s[reg_ecx]|0},CPU.prototype.sib_table[42]=function(e,t){return e.reg32s[reg_ebp]+e.get_seg_prefix_ds()+e.reg32s[reg_edx]|0},CPU.prototype.sib_table[43]=function(e,t){return e.reg32s[reg_ebp]+e.get_seg_prefix_ds()+e.reg32s[reg_ebx]|0},CPU.prototype.sib_table[44]=function(e,t){return e.reg32s[reg_ebp]+e.get_seg_prefix_ss()+e.reg32s[reg_esp]|0},CPU.prototype.sib_table[45]=function(e,t){return e.reg32s[reg_ebp]+(t?e.get_seg_prefix_ss()+e.reg32s[reg_ebp]:e.get_seg_prefix_ds()+e.read_disp32s())|0},CPU.prototype.sib_table[46]=function(e,t){return e.reg32s[reg_ebp]+e.get_seg_prefix_ds()+e.reg32s[reg_esi]|0},CPU.prototype.sib_table[47]=function(e,t){return e.reg32s[reg_ebp]+e.get_seg_prefix_ds()+e.reg32s[reg_edi]|0},CPU.prototype.sib_table[104]=function(e,t){return(e.reg32s[reg_ebp]<<1)+e.get_seg_prefix_ds()+e.reg32s[reg_eax]|0},CPU.prototype.sib_table[105]=function(e,t){return(e.reg32s[reg_ebp]<<1)+e.get_seg_prefix_ds()+e.reg32s[reg_ecx]|0},CPU.prototype.sib_table[106]=function(e,t){return(e.reg32s[reg_ebp]<<1)+e.get_seg_prefix_ds()+e.reg32s[reg_edx]|0},CPU.prototype.sib_table[107]=function(e,t){return(e.reg32s[reg_ebp]<<1)+e.get_seg_prefix_ds()+e.reg32s[reg_ebx]|0},CPU.prototype.sib_table[108]=function(e,t){return(e.reg32s[reg_ebp]<<1)+e.get_seg_prefix_ss()+e.reg32s[reg_esp]|0},CPU.prototype.sib_table[109]=function(e,t){return(e.reg32s[reg_ebp]<<1)+(t?e.get_seg_prefix_ss()+e.reg32s[reg_ebp]:e.get_seg_prefix_ds()+e.read_disp32s())|0},CPU.prototype.sib_table[110]=function(e,t){return(e.reg32s[reg_ebp]<<1)+e.get_seg_prefix_ds()+e.reg32s[reg_esi]|0},CPU.prototype.sib_table[111]=function(e,t){return(e.reg32s[reg_ebp]<<1)+e.get_seg_prefix_ds()+e.reg32s[reg_edi]|0},CPU.prototype.sib_table[168]=function(e,t){return(e.reg32s[reg_ebp]<<2)+e.get_seg_prefix_ds()+e.reg32s[reg_eax]|0},CPU.prototype.sib_table[169]=function(e,t){return(e.reg32s[reg_ebp]<<2)+e.get_seg_prefix_ds()+e.reg32s[reg_ecx]|0},CPU.prototype.sib_table[170]=function(e,t){return(e.reg32s[reg_ebp]<<2)+e.get_seg_prefix_ds()+e.reg32s[reg_edx]|0},CPU.prototype.sib_table[171]=function(e,t){return(e.reg32s[reg_ebp]<<2)+e.get_seg_prefix_ds()+e.reg32s[reg_ebx]|0},CPU.prototype.sib_table[172]=function(e,t){return(e.reg32s[reg_ebp]<<2)+e.get_seg_prefix_ss()+e.reg32s[reg_esp]|0},CPU.prototype.sib_table[173]=function(e,t){return(e.reg32s[reg_ebp]<<2)+(t?e.get_seg_prefix_ss()+e.reg32s[reg_ebp]:e.get_seg_prefix_ds()+e.read_disp32s())|0},CPU.prototype.sib_table[174]=function(e,t){return(e.reg32s[reg_ebp]<<2)+e.get_seg_prefix_ds()+e.reg32s[reg_esi]|0},CPU.prototype.sib_table[175]=function(e,t){return(e.reg32s[reg_ebp]<<2)+e.get_seg_prefix_ds()+e.reg32s[reg_edi]|0},CPU.prototype.sib_table[232]=function(e,t){return(e.reg32s[reg_ebp]<<3)+e.get_seg_prefix_ds()+e.reg32s[reg_eax]|0},CPU.prototype.sib_table[233]=function(e,t){return(e.reg32s[reg_ebp]<<3)+e.get_seg_prefix_ds()+e.reg32s[reg_ecx]|0},CPU.prototype.sib_table[234]=function(e,t){return(e.reg32s[reg_ebp]<<3)+e.get_seg_prefix_ds()+e.reg32s[reg_edx]|0},CPU.prototype.sib_table[235]=function(e,t){return(e.reg32s[reg_ebp]<<3)+e.get_seg_prefix_ds()+e.reg32s[reg_ebx]|0},CPU.prototype.sib_table[236]=function(e,t){return(e.reg32s[reg_ebp]<<3)+e.get_seg_prefix_ss()+e.reg32s[reg_esp]|0},CPU.prototype.sib_table[237]=function(e,t){return(e.reg32s[reg_ebp]<<3)+(t?e.get_seg_prefix_ss()+e.reg32s[reg_ebp]:e.get_seg_prefix_ds()+e.read_disp32s())|0},CPU.prototype.sib_table[238]=function(e,t){return(e.reg32s[reg_ebp]<<3)+e.get_seg_prefix_ds()+e.reg32s[reg_esi]|0},CPU.prototype.sib_table[239]=function(e,t){return(e.reg32s[reg_ebp]<<3)+e.get_seg_prefix_ds()+e.reg32s[reg_edi]|0},CPU.prototype.sib_table[48]=function(e,t){return e.reg32s[reg_esi]+e.get_seg_prefix_ds()+e.reg32s[reg_eax]|0},CPU.prototype.sib_table[49]=function(e,t){return e.reg32s[reg_esi]+e.get_seg_prefix_ds()+e.reg32s[reg_ecx]|0},CPU.prototype.sib_table[50]=function(e,t){return e.reg32s[reg_esi]+e.get_seg_prefix_ds()+e.reg32s[reg_edx]|0},CPU.prototype.sib_table[51]=function(e,t){return e.reg32s[reg_esi]+e.get_seg_prefix_ds()+e.reg32s[reg_ebx]|0},CPU.prototype.sib_table[52]=function(e,t){return e.reg32s[reg_esi]+e.get_seg_prefix_ss()+e.reg32s[reg_esp]|0},CPU.prototype.sib_table[53]=function(e,t){return e.reg32s[reg_esi]+(t?e.get_seg_prefix_ss()+e.reg32s[reg_ebp]:e.get_seg_prefix_ds()+e.read_disp32s())|0},CPU.prototype.sib_table[54]=function(e,t){return e.reg32s[reg_esi]+e.get_seg_prefix_ds()+e.reg32s[reg_esi]|0},CPU.prototype.sib_table[55]=function(e,t){return e.reg32s[reg_esi]+e.get_seg_prefix_ds()+e.reg32s[reg_edi]|0};CPU.prototype.sib_table[112]=function(e,t){return(e.reg32s[reg_esi]<<1)+e.get_seg_prefix_ds()+e.reg32s[reg_eax]|0},CPU.prototype.sib_table[113]=function(e,t){return(e.reg32s[reg_esi]<<1)+e.get_seg_prefix_ds()+e.reg32s[reg_ecx]|0},CPU.prototype.sib_table[114]=function(e,t){return(e.reg32s[reg_esi]<<1)+e.get_seg_prefix_ds()+e.reg32s[reg_edx]|0},CPU.prototype.sib_table[115]=function(e,t){return(e.reg32s[reg_esi]<<1)+e.get_seg_prefix_ds()+e.reg32s[reg_ebx]|0},CPU.prototype.sib_table[116]=function(e,t){return(e.reg32s[reg_esi]<<1)+e.get_seg_prefix_ss()+e.reg32s[reg_esp]|0},CPU.prototype.sib_table[117]=function(e,t){return(e.reg32s[reg_esi]<<1)+(t?e.get_seg_prefix_ss()+e.reg32s[reg_ebp]:e.get_seg_prefix_ds()+e.read_disp32s())|0},CPU.prototype.sib_table[118]=function(e,t){return(e.reg32s[reg_esi]<<1)+e.get_seg_prefix_ds()+e.reg32s[reg_esi]|0},CPU.prototype.sib_table[119]=function(e,t){return(e.reg32s[reg_esi]<<1)+e.get_seg_prefix_ds()+e.reg32s[reg_edi]|0},CPU.prototype.sib_table[176]=function(e,t){return(e.reg32s[reg_esi]<<2)+e.get_seg_prefix_ds()+e.reg32s[reg_eax]|0},CPU.prototype.sib_table[177]=function(e,t){return(e.reg32s[reg_esi]<<2)+e.get_seg_prefix_ds()+e.reg32s[reg_ecx]|0},CPU.prototype.sib_table[178]=function(e,t){return(e.reg32s[reg_esi]<<2)+e.get_seg_prefix_ds()+e.reg32s[reg_edx]|0},CPU.prototype.sib_table[179]=function(e,t){return(e.reg32s[reg_esi]<<2)+e.get_seg_prefix_ds()+e.reg32s[reg_ebx]|0},CPU.prototype.sib_table[180]=function(e,t){return(e.reg32s[reg_esi]<<2)+e.get_seg_prefix_ss()+e.reg32s[reg_esp]|0},CPU.prototype.sib_table[181]=function(e,t){return(e.reg32s[reg_esi]<<2)+(t?e.get_seg_prefix_ss()+e.reg32s[reg_ebp]:e.get_seg_prefix_ds()+e.read_disp32s())|0},CPU.prototype.sib_table[182]=function(e,t){return(e.reg32s[reg_esi]<<2)+e.get_seg_prefix_ds()+e.reg32s[reg_esi]|0},CPU.prototype.sib_table[183]=function(e,t){return(e.reg32s[reg_esi]<<2)+e.get_seg_prefix_ds()+e.reg32s[reg_edi]|0},CPU.prototype.sib_table[240]=function(e,t){return(e.reg32s[reg_esi]<<3)+e.get_seg_prefix_ds()+e.reg32s[reg_eax]|0},CPU.prototype.sib_table[241]=function(e,t){return(e.reg32s[reg_esi]<<3)+e.get_seg_prefix_ds()+e.reg32s[reg_ecx]|0},CPU.prototype.sib_table[242]=function(e,t){return(e.reg32s[reg_esi]<<3)+e.get_seg_prefix_ds()+e.reg32s[reg_edx]|0},CPU.prototype.sib_table[243]=function(e,t){return(e.reg32s[reg_esi]<<3)+e.get_seg_prefix_ds()+e.reg32s[reg_ebx]|0},CPU.prototype.sib_table[244]=function(e,t){return(e.reg32s[reg_esi]<<3)+e.get_seg_prefix_ss()+e.reg32s[reg_esp]|0},CPU.prototype.sib_table[245]=function(e,t){return(e.reg32s[reg_esi]<<3)+(t?e.get_seg_prefix_ss()+e.reg32s[reg_ebp]:e.get_seg_prefix_ds()+e.read_disp32s())|0},CPU.prototype.sib_table[246]=function(e,t){return(e.reg32s[reg_esi]<<3)+e.get_seg_prefix_ds()+e.reg32s[reg_esi]|0},CPU.prototype.sib_table[247]=function(e,t){return(e.reg32s[reg_esi]<<3)+e.get_seg_prefix_ds()+e.reg32s[reg_edi]|0},CPU.prototype.sib_table[56]=function(e,t){return e.reg32s[reg_edi]+e.get_seg_prefix_ds()+e.reg32s[reg_eax]|0},CPU.prototype.sib_table[57]=function(e,t){return e.reg32s[reg_edi]+e.get_seg_prefix_ds()+e.reg32s[reg_ecx]|0},CPU.prototype.sib_table[58]=function(e,t){return e.reg32s[reg_edi]+e.get_seg_prefix_ds()+e.reg32s[reg_edx]|0},CPU.prototype.sib_table[59]=function(e,t){return e.reg32s[reg_edi]+e.get_seg_prefix_ds()+e.reg32s[reg_ebx]|0},CPU.prototype.sib_table[60]=function(e,t){return e.reg32s[reg_edi]+e.get_seg_prefix_ss()+e.reg32s[reg_esp]|0},CPU.prototype.sib_table[61]=function(e,t){return e.reg32s[reg_edi]+(t?e.get_seg_prefix_ss()+e.reg32s[reg_ebp]:e.get_seg_prefix_ds()+e.read_disp32s())|0},CPU.prototype.sib_table[62]=function(e,t){return e.reg32s[reg_edi]+e.get_seg_prefix_ds()+e.reg32s[reg_esi]|0},CPU.prototype.sib_table[63]=function(e,t){return e.reg32s[reg_edi]+e.get_seg_prefix_ds()+e.reg32s[reg_edi]|0},CPU.prototype.sib_table[120]=function(e,t){return(e.reg32s[reg_edi]<<1)+e.get_seg_prefix_ds()+e.reg32s[reg_eax]|0},CPU.prototype.sib_table[121]=function(e,t){return(e.reg32s[reg_edi]<<1)+e.get_seg_prefix_ds()+e.reg32s[reg_ecx]|0},CPU.prototype.sib_table[122]=function(e,t){return(e.reg32s[reg_edi]<<1)+e.get_seg_prefix_ds()+e.reg32s[reg_edx]|0},CPU.prototype.sib_table[123]=function(e,t){return(e.reg32s[reg_edi]<<1)+e.get_seg_prefix_ds()+e.reg32s[reg_ebx]|0},CPU.prototype.sib_table[124]=function(e,t){return(e.reg32s[reg_edi]<<1)+e.get_seg_prefix_ss()+e.reg32s[reg_esp]|0},CPU.prototype.sib_table[125]=function(e,t){return(e.reg32s[reg_edi]<<1)+(t?e.get_seg_prefix_ss()+e.reg32s[reg_ebp]:e.get_seg_prefix_ds()+e.read_disp32s())|0},CPU.prototype.sib_table[126]=function(e,t){return(e.reg32s[reg_edi]<<1)+e.get_seg_prefix_ds()+e.reg32s[reg_esi]|0},CPU.prototype.sib_table[127]=function(e,t){return(e.reg32s[reg_edi]<<1)+e.get_seg_prefix_ds()+e.reg32s[reg_edi]|0},CPU.prototype.sib_table[184]=function(e,t){return(e.reg32s[reg_edi]<<2)+e.get_seg_prefix_ds()+e.reg32s[reg_eax]|0},CPU.prototype.sib_table[185]=function(e,t){return(e.reg32s[reg_edi]<<2)+e.get_seg_prefix_ds()+e.reg32s[reg_ecx]|0},CPU.prototype.sib_table[186]=function(e,t){return(e.reg32s[reg_edi]<<2)+e.get_seg_prefix_ds()+e.reg32s[reg_edx]|0},CPU.prototype.sib_table[187]=function(e,t){return(e.reg32s[reg_edi]<<2)+e.get_seg_prefix_ds()+e.reg32s[reg_ebx]|0},CPU.prototype.sib_table[188]=function(e,t){return(e.reg32s[reg_edi]<<2)+e.get_seg_prefix_ss()+e.reg32s[reg_esp]|0},CPU.prototype.sib_table[189]=function(e,t){return(e.reg32s[reg_edi]<<2)+(t?e.get_seg_prefix_ss()+e.reg32s[reg_ebp]:e.get_seg_prefix_ds()+e.read_disp32s())|0},CPU.prototype.sib_table[190]=function(e,t){return(e.reg32s[reg_edi]<<2)+e.get_seg_prefix_ds()+e.reg32s[reg_esi]|0},CPU.prototype.sib_table[191]=function(e,t){return(e.reg32s[reg_edi]<<2)+e.get_seg_prefix_ds()+e.reg32s[reg_edi]|0},CPU.prototype.sib_table[248]=function(e,t){return(e.reg32s[reg_edi]<<3)+e.get_seg_prefix_ds()+e.reg32s[reg_eax]|0},CPU.prototype.sib_table[249]=function(e,t){return(e.reg32s[reg_edi]<<3)+e.get_seg_prefix_ds()+e.reg32s[reg_ecx]|0},CPU.prototype.sib_table[250]=function(e,t){return(e.reg32s[reg_edi]<<3)+e.get_seg_prefix_ds()+e.reg32s[reg_edx]|0},CPU.prototype.sib_table[251]=function(e,t){return(e.reg32s[reg_edi]<<3)+e.get_seg_prefix_ds()+e.reg32s[reg_ebx]|0},CPU.prototype.sib_table[252]=function(e,t){return(e.reg32s[reg_edi]<<3)+e.get_seg_prefix_ss()+e.reg32s[reg_esp]|0},CPU.prototype.sib_table[253]=function(e,t){return(e.reg32s[reg_edi]<<3)+(t?e.get_seg_prefix_ss()+e.reg32s[reg_ebp]:e.get_seg_prefix_ds()+e.read_disp32s())|0},CPU.prototype.sib_table[254]=function(e,t){return(e.reg32s[reg_edi]<<3)+e.get_seg_prefix_ds()+e.reg32s[reg_esi]|0},CPU.prototype.sib_table[255]=function(e,t){return(e.reg32s[reg_edi]<<3)+e.get_seg_prefix_ds()+e.reg32s[reg_edi]|0}}();var MAX_COUNT_PER_CYCLE=4096;CPU.prototype.movsb=function(){var e=this.get_seg_prefix(reg_ds)+this.get_reg_asize(reg_esi)|0,t=this.get_seg(reg_es)+this.get_reg_asize(reg_edi)|0,s=this.flags&flag_direction?-1:1;if(this.prefixes&PREFIX_MASK_REP){var r=this.get_reg_asize(reg_ecx)>>>0;if(0===r)return;var i=r,_=MAX_COUNT_PER_CYCLE,a=this.translate_address_read(e),o=this.translate_address_write(t);this.paging&&(_=string_get_cycle_count2(s,e,t));do{this.write8(o,this.read8(a)),o+=s,a+=s,e=0!=--r}while(e&&_--);s=s*(i-r)|0,this.add_reg_asize(reg_edi,s),this.add_reg_asize(reg_esi,s),this.set_ecx_asize(r),this.timestamp_counter+=i-r,e&&(this.instruction_pointer=this.previous_ip)}else this.safe_write8(t,this.safe_read8(e)),this.add_reg_asize(reg_edi,s),this.add_reg_asize(reg_esi,s);this.diverged()},CPU.prototype.movsw=function(){var e=this.get_seg_prefix(reg_ds)+this.get_reg_asize(reg_esi)|0,t=this.get_seg(reg_es)+this.get_reg_asize(reg_edi)|0,s=this.flags&flag_direction?-2:2;if(this.prefixes&PREFIX_MASK_REP){var r=this.get_reg_asize(reg_ecx)>>>0;if(0===r)return;var i=r,_=MAX_COUNT_PER_CYCLE;if(1&t||1&e)do{this.safe_write16(t,this.safe_read16(e)),t+=s,this.add_reg_asize(reg_edi,s),e+=s,this.add_reg_asize(reg_esi,s);var a=0!==this.decr_ecx_asize()}while(a&&_--);else{var o=0>s?-1:1,n=this.translate_address_read(e)>>>1,d=this.translate_address_write(t)>>>1;this.paging&&(_=string_get_cycle_count2(s,e,t));do{this.write_aligned16(d,this.read_aligned16(n)),d+=o,n+=o,a=0!=--r}while(a&&_--);e=s*(i-r)|0,this.add_reg_asize(reg_edi,e),this.add_reg_asize(reg_esi,e),this.set_ecx_asize(r),this.timestamp_counter+=i-r}a&&(this.instruction_pointer=this.previous_ip)}else this.safe_write16(t,this.safe_read16(e)),this.add_reg_asize(reg_edi,s),this.add_reg_asize(reg_esi,s);this.diverged()},CPU.prototype.movsd=function(){if(this.prefixes&PREFIX_MASK_REP){var e=this.get_seg_prefix(reg_ds)+this.get_reg_asize(reg_esi)|0,t=this.get_seg(reg_es)+this.get_reg_asize(reg_edi)|0,s=this.get_reg_asize(reg_ecx)>>>0;if(!s)return;var r=this.paging?4095:3;if(0==(t&r)&&0==(e&r)&&0==(this.flags&flag_direction)&&(r=!1,this.paging&&(e=this.translate_address_read(e),t=this.translate_address_write(t),1024>>=2,e>>>=2,this.write_blob32(this.mem32s.subarray(e,e+s),t),void(r&&(this.instruction_pointer=this.previous_ip))}}if(e=this.get_seg_prefix(reg_ds)+this.get_reg_asize(reg_esi)|0,t=this.get_seg(reg_es)+this.get_reg_asize(reg_edi)|0,i=this.flags&flag_direction?-4:4,this.prefixes&PREFIX_MASK_REP){if(0===(s=this.get_reg_asize(reg_ecx)>>>0))return;var _=s,a=MAX_COUNT_PER_CYCLE;if(3&t||3&e)do{this.safe_write32(t,this.safe_read32s(e)),t+=i,this.add_reg_asize(reg_edi,i),e+=i,this.add_reg_asize(reg_esi,i),r=0!==this.decr_ecx_asize()}while(r&&a--);else{var o=0>i?-1:1,n=this.translate_address_read(e)>>>2,d=this.translate_address_write(t)>>>2;this.paging&&(a=string_get_cycle_count2(i,e,t));do{this.write_aligned32(d,this.read_aligned32(n)),d+=o,n+=o,r=0!=--s}while(r&&a--);i=i*(_-s)|0,this.add_reg_asize(reg_edi,i),this.add_reg_asize(reg_esi,i),this.set_ecx_asize(s),this.timestamp_counter+=_-s}r&&(this.instruction_pointer=this.previous_ip)}else this.safe_write32(t,this.safe_read32s(e)),this.add_reg_asize(reg_edi,i),this.add_reg_asize(reg_esi,i);this.diverged()},CPU.prototype.add8=function(e,t){return this.add(e,t,OPSIZE_8)},CPU.prototype.add16=function(e,t){return this.add(e,t,OPSIZE_16)},CPU.prototype.add32=function(e,t){return this.add(e,t,OPSIZE_32)},CPU.prototype.adc8=function(e,t){return this.adc(e,t,OPSIZE_8)},CPU.prototype.adc16=function(e,t){return this.adc(e,t,OPSIZE_16)},CPU.prototype.adc32=function(e,t){return this.adc(e,t,OPSIZE_32)},CPU.prototype.sub8=function(e,t){return this.sub(e,t,OPSIZE_8)},CPU.prototype.sub16=function(e,t){return this.sub(e,t,OPSIZE_16)},CPU.prototype.sub32=function(e,t){return this.sub(e,t,OPSIZE_32)},CPU.prototype.cmp8=function(e,t){return this.sub(e,t,OPSIZE_8)},CPU.prototype.cmp16=function(e,t){return this.sub(e,t,OPSIZE_16)},CPU.prototype.cmp32=function(e,t){return this.sub(e,t,OPSIZE_32)},CPU.prototype.sbb8=function(e,t){return this.sbb(e,t,OPSIZE_8)},CPU.prototype.sbb16=function(e,t){return this.sbb(e,t,OPSIZE_16)},CPU.prototype.sbb32=function(e,t){return this.sbb(e,t,OPSIZE_32)},CPU.prototype.add=function(e,t,s){return this.last_op1=e,this.last_op2=t,this.last_add_result=this.last_result=e+t|0,this.last_op_size=s,this.flags_changed=flags_all,this.last_result},CPU.prototype.adc=function(e,t,s){var r=this.getcf();return this.last_op1=e,this.last_op2=t,this.last_add_result=this.last_result=(e+t|0)+r|0,this.last_op_size=s,this.flags_changed=flags_all,this.last_result},CPU.prototype.sub=function(e,t,s){return this.last_add_result=e,this.last_op2=t,this.last_op1=this.last_result=e-t|0,this.last_op_size=s,this.flags_changed=flags_all,this.last_result},CPU.prototype.sbb=function(e,t,s){var r=this.getcf();return this.last_add_result=e,this.last_op2=t,this.last_op1=this.last_result=e-t-r|0,this.last_op_size=s,this.flags_changed=flags_all,this.last_result},CPU.prototype.inc8=function(e){return this.inc(e,OPSIZE_8)},CPU.prototype.inc16=function(e){return this.inc(e,OPSIZE_16)},CPU.prototype.inc32=function(e){return this.inc(e,OPSIZE_32)},CPU.prototype.dec8=function(e){return this.dec(e,OPSIZE_8)},CPU.prototype.dec16=function(e){return this.dec(e,OPSIZE_16)},CPU.prototype.dec32=function(e){return this.dec(e,OPSIZE_32)},CPU.prototype.inc=function(e,t){return this.flags=-2&this.flags|this.getcf(),this.last_op1=e,this.last_op2=1,this.last_add_result=this.last_result=e+1|0,this.last_op_size=t,this.flags_changed=-2&flags_all,this.last_result},CPU.prototype.dec=function(e,t){return this.flags=-2&this.flags|this.getcf(),this.last_add_result=e,this.last_op2=1,this.last_op1=this.last_result=e-1|0,this.last_op_size=t,this.flags_changed=-2&flags_all,this.last_result},CPU.prototype.neg8=function(e){return this.neg(e,OPSIZE_8)},CPU.prototype.neg16=function(e){return this.neg(e,OPSIZE_16)},CPU.prototype.neg32=function(e){return this.neg(e,OPSIZE_32)},CPU.prototype.neg=function(e,t){return this.last_op1=this.last_result=0|-e,this.flags_changed=flags_all,this.last_add_result=0,this.last_op2=e,this.last_op_size=t,this.last_result},CPU.prototype.mul8=function(e){e*=this.reg8[reg_al],this.reg16[reg_ax]=e,this.last_result=255&e,this.last_op_size=OPSIZE_8,this.flags=256>e?-2&this.flags&~flag_overflow:1|this.flags|flag_overflow,this.flags_changed=-2&flags_all&~flag_overflow},CPU.prototype.imul8=function(e){e*=this.reg8s[reg_al],this.reg16[reg_ax]=e,this.last_result=255&e,this.last_op_size=OPSIZE_8,this.flags=127e?1|this.flags|flag_overflow:-2&this.flags&~flag_overflow,this.flags_changed=-2&flags_all&~flag_overflow},CPU.prototype.mul16=function(e){e*=this.reg16[reg_ax];var t=e>>>16;this.reg16[reg_ax]=e,this.reg16[reg_dx]=t,this.last_result=65535&e,this.last_op_size=OPSIZE_16,this.flags=0===t?-2&this.flags&~flag_overflow:1|this.flags|flag_overflow,this.flags_changed=-2&flags_all&~flag_overflow},CPU.prototype.imul16=function(e){e*=this.reg16s[reg_ax],this.reg16[reg_ax]=e,this.reg16[reg_dx]=e>>16,this.last_result=65535&e,this.last_op_size=OPSIZE_16,this.flags=32767e?1|this.flags|flag_overflow:-2&this.flags&~flag_overflow,this.flags_changed=-2&flags_all&~flag_overflow},CPU.prototype.imul_reg16=function(e,t){return dbg_assert(32768>e&&-32768<=e),dbg_assert(32768>t&&-32768<=t),e*=t,this.last_result=65535&e,this.last_op_size=OPSIZE_16,this.flags=32767e?1|this.flags|flag_overflow:-2&this.flags&~flag_overflow,this.flags_changed=-2&flags_all&~flag_overflow,e},CPU.prototype.do_mul32=function(e,t){var s=65535&e;e>>>=16;var r=65535&t;t>>>=16;var i=s*r;r=(i>>>16)+(e*r|0)|0;var _=r>>>16;return r=(65535&r)+(s*t|0)|0,this.mul32_result[0]=r<<16|65535&i,this.mul32_result[1]=((r>>>16)+(e*t|0)|0)+_|0,this.mul32_result},CPU.prototype.do_imul32=function(e,t){var s=!1;return 0>e&&(s=!0,e=0|-e),0>t&&(s=!s,t=0|-t),e=this.do_mul32(e,t),s&&(e[0]=0|-e[0],e[1]=~e[1]+!e[0]|0),e},CPU.prototype.mul32=function(e){e=this.do_mul32(this.reg32s[reg_eax],e),this.reg32s[reg_eax]=e[0],this.reg32s[reg_edx]=e[1],this.last_result=e[0],this.last_op_size=OPSIZE_32,this.flags=0===e[1]?-2&this.flags&~flag_overflow:1|this.flags|flag_overflow,this.flags_changed=-2&flags_all&~flag_overflow},CPU.prototype.imul32=function(e){dbg_assert(2147483648>e&&-2147483648<=e),e=this.do_imul32(this.reg32s[reg_eax],e),this.reg32s[reg_eax]=e[0],this.reg32s[reg_edx]=e[1],this.last_result=e[0],this.last_op_size=OPSIZE_32,this.flags=e[1]===e[0]>>31?-2&this.flags&~flag_overflow:1|this.flags|flag_overflow,this.flags_changed=-2&flags_all&~flag_overflow},CPU.prototype.imul_reg32=function(e,t){return dbg_assert(2147483648>e&&-2147483648<=e),dbg_assert(2147483648>t&&-2147483648<=t),e=this.do_imul32(e,t),this.last_result=e[0],this.last_op_size=OPSIZE_32,this.flags=e[1]===e[0]>>31?-2&this.flags&~flag_overflow:1|this.flags|flag_overflow,this.flags_changed=-2&flags_all&~flag_overflow,e[0]},CPU.prototype.div8=function(e){if(dbg_assert(0<=e&&256>e),0===e)this.trigger_de();else{var t=this.reg16[reg_ax],s=t/e|0;256<=s?this.trigger_de():(this.reg8[reg_al]=s,this.reg8[reg_ah]=t%e)}},CPU.prototype.idiv8=function(e){if(dbg_assert(-128<=e&&128>e),0===e)this.trigger_de();else{var t=this.reg16s[reg_ax],s=t/e|0;128<=s||-129>=s?this.trigger_de():(this.reg8[reg_al]=s,this.reg8[reg_ah]=t%e)}},CPU.prototype.div16=function(e){if(dbg_assert(0<=e&&65536>e),0===e)this.trigger_de();else{var t=(this.reg16[reg_ax]|this.reg16[reg_dx]<<16)>>>0,s=t/e|0;65536<=s||0>s?this.trigger_de():(this.reg16[reg_ax]=s,this.reg16[reg_dx]=t%e)}},CPU.prototype.idiv16=function(e){if(dbg_assert(-32768<=e&&32768>e),0===e)this.trigger_de();else{var t=this.reg16[reg_ax]|this.reg16[reg_dx]<<16,s=t/e|0;32768<=s||-32769>=s?this.trigger_de():(this.reg16[reg_ax]=s,this.reg16[reg_dx]=t%e)}},CPU.prototype.do_div32=function(e,t,s){(t>=s||0===s)&&(dbg_log("div32 #DE: "+h(t,8)+":"+h(e,8)+" div "+h(s,8)),this.trigger_de());var r=0;if(1048576t;)_>>>=1,i--;for(;1048576=_){t-=_;var a=s<>>0;a>e&&t--,e=e-a>>>0,r|=1<>=1}r>>>=0}return e+=4294967296*t,this.div32_result[0]=r+(e/s|0),this.div32_result[1]=e%s,this.div32_result},CPU.prototype.div32=function(e){dbg_assert(0<=e&&4294967295>=e);var t=this.reg32[reg_eax],s=this.reg32[reg_edx],r=this.do_div32(t,s,e),i=r[0];r=r[1],dbg_assert(e),4294967296<=i?(dbg_log("div32 #DE: "+h(s,8)+":"+h(t,8)+" div "+h(e,8)),dbg_log("-> "+h(i)),this.trigger_de()):(this.reg32s[reg_eax]=i,this.reg32s[reg_edx]=r)},CPU.prototype.idiv32=function(e){dbg_assert(2147483648>e&&-2147483648<=e);var t=this.reg32[reg_eax],s=this.reg32s[reg_edx],r=!1,i=!1;0>e&&(i=!0,e=-e),0>s&&(r=!0,i=!i,t=-t>>>0,s=~s+!t);var _=this.do_div32(t,s,e),a=_[0];_=_[1],i&&(a=0|-a),r&&(_=0|-_),dbg_assert(e),2147483648<=a||-2147483649>=a?(dbg_log("div32 #DE: "+h(s,8)+":"+h(t,8)+" div "+h(e,8)),dbg_log("-> "+h(a)),this.trigger_de()):(this.reg32s[reg_eax]=a,this.reg32s[reg_edx]=_)},CPU.prototype.xadd8=function(e,t){var s=this.reg8[t];return this.reg8[t]=e,this.add(e,s,OPSIZE_8)},CPU.prototype.xadd16=function(e,t){var s=this.reg16[t];return this.reg16[t]=e,this.add(e,s,OPSIZE_16)},CPU.prototype.xadd32=function(e,t){var s=this.reg32s[t];return this.reg32s[t]=e,this.add(e,s,OPSIZE_32)},CPU.prototype.bcd_daa=function(){var e=this.reg8[reg_al],t=this.getcf(),s=this.getaf();this.flags=-2&this.flags&~flag_adjust,(9<(15&e)||s)&&(this.reg8[reg_al]+=6,this.flags|=flag_adjust),(153e):this.flags&=~flag_adjust,(153>8-t,this.flags_changed=-2&this.flags_changed&~flag_overflow,this.flags=-2&this.flags&~flag_overflow|1&e|(e<<11^e<<4)&flag_overflow,e):e},CPU.prototype.rol16=function(e,t){return t?(t&=15,e=e<>16-t,this.flags_changed=-2&this.flags_changed&~flag_overflow,this.flags=-2&this.flags&~flag_overflow|1&e|(e<<11^e>>4)&flag_overflow,e):e},CPU.prototype.rol32=function(e,t){return t?(e=e<>>32-t,this.flags_changed=-2&this.flags_changed&~flag_overflow,this.flags=-2&this.flags&~flag_overflow|1&e|(e<<11^e>>20)&flag_overflow,e):e},CPU.prototype.rcl8=function(e,t){return(t%=9)?(e=e<>9-t,this.flags_changed=-2&this.flags_changed&~flag_overflow,this.flags=-2&this.flags&~flag_overflow|e>>8&1|(e<<3^e<<4)&flag_overflow,e):e},CPU.prototype.rcl16=function(e,t){return(t%=17)?(e=e<>17-t,this.flags_changed=-2&this.flags_changed&~flag_overflow,this.flags=-2&this.flags&~flag_overflow|e>>16&1|(e>>5^e>>4)&flag_overflow,e):e},CPU.prototype.rcl32=function(e,t){if(!t)return e;var s=e<>>33-t),this.flags_changed=-2&this.flags_changed&~flag_overflow,this.flags=-2&this.flags&~flag_overflow|e>>>32-t&1,this.flags|=(this.flags<<11^s>>20)&flag_overflow,s},CPU.prototype.ror8=function(e,t){return t?(t&=7,e=e>>t|e<<8-t,this.flags_changed=-2&this.flags_changed&~flag_overflow,this.flags=-2&this.flags&~flag_overflow|e>>7&1|(e<<4^e<<5)&flag_overflow,e):e},CPU.prototype.ror16=function(e,t){return t?(t&=15,e=e>>t|e<<16-t,this.flags_changed=-2&this.flags_changed&~flag_overflow,this.flags=-2&this.flags&~flag_overflow|e>>15&1|(e>>4^e>>3)&flag_overflow,e):e},CPU.prototype.ror32=function(e,t){return t?(e=e>>>t|e<<32-t,this.flags_changed=-2&this.flags_changed&~flag_overflow,this.flags=-2&this.flags&~flag_overflow|e>>31&1|(e>>20^e>>19)&flag_overflow,e):e},CPU.prototype.rcr8=function(e,t){return(t%=9)?(e=e>>t|this.getcf()<<8-t|e<<9-t,this.flags_changed=-2&this.flags_changed&~flag_overflow,this.flags=-2&this.flags&~flag_overflow|e>>8&1|(e<<4^e<<5)&flag_overflow,e):e},CPU.prototype.rcr16=function(e,t){return(t%=17)?(e=e>>t|this.getcf()<<16-t|e<<17-t,this.flags_changed=-2&this.flags_changed&~flag_overflow,this.flags=-2&this.flags&~flag_overflow|e>>16&1|(e>>4^e>>3)&flag_overflow,e):e},CPU.prototype.rcr32=function(e,t){if(!t)return e;var s=e>>>t|this.getcf()<<32-t;return 1>t-1&1|(s>>20^s>>19)&flag_overflow,s},CPU.prototype.shl8=function(e,t){return 0===t?e:(this.last_result=e<>8&1|(this.last_result<<3^this.last_result<<4)&flag_overflow,this.last_result)},CPU.prototype.shl16=function(e,t){return 0===t?e:(this.last_result=e<>16&1|(this.last_result>>5^this.last_result>>4)&flag_overflow,this.last_result)},CPU.prototype.shl32=function(e,t){return 0===t?e:(this.last_result=e<>>32-t&1,this.flags|=(1&this.flags^this.last_result>>31&1)<<11&flag_overflow,this.last_result)},CPU.prototype.shr8=function(e,t){return 0===t?e:(this.last_result=e>>t,this.last_op_size=OPSIZE_8,this.flags_changed=-2&flags_all&~flag_overflow,this.flags=-2&this.flags&~flag_overflow|e>>t-1&1|(e>>7&1)<<11&flag_overflow,this.last_result)},CPU.prototype.shr16=function(e,t){return 0===t?e:(this.last_result=e>>t,this.last_op_size=OPSIZE_16,this.flags_changed=-2&flags_all&~flag_overflow,this.flags=-2&this.flags&~flag_overflow|e>>t-1&1|e>>4&flag_overflow,this.last_result)},CPU.prototype.shr32=function(e,t){return 0===t?e:(this.last_result=e>>>t,this.last_op_size=OPSIZE_32,this.flags_changed=-2&flags_all&~flag_overflow,this.flags=-2&this.flags&~flag_overflow|e>>>t-1&1|e>>20&flag_overflow,this.last_result)},CPU.prototype.sar8=function(e,t){return 0===t?e:(8>t?(this.last_result=e<<24>>t+24,this.flags=-2&this.flags&~flag_overflow|e>>t-1&1):(this.last_result=e<<24>>31,this.flags=-2&this.flags&~flag_overflow|1&this.last_result),this.last_op_size=OPSIZE_8,this.flags_changed=-2&flags_all&~flag_overflow,this.last_result)},CPU.prototype.sar16=function(e,t){return 0===t?e:(16>t?(this.last_result=e<<16>>t+16,this.flags=-2&this.flags&~flag_overflow|e>>t-1&1):(this.last_result=e<<16>>31,this.flags=-2&this.flags&~flag_overflow|1&this.last_result),this.last_op_size=OPSIZE_16,this.flags_changed=-2&flags_all&~flag_overflow,this.last_result)},CPU.prototype.sar32=function(e,t){return 0===t?e:(this.last_result=e>>t,this.last_op_size=OPSIZE_32,this.flags_changed=-2&flags_all&~flag_overflow,this.flags=-2&this.flags&~flag_overflow|e>>>t-1&1,this.last_result)},CPU.prototype.shrd16=function(e,t,s){return 0===s?e:(16>=s?(this.last_result=e>>s|t<<16-s,this.flags=-2&this.flags|e>>s-1&1):(this.last_result=e<<32-s|t>>s-16,this.flags=-2&this.flags|t>>s-17&1),this.last_op_size=OPSIZE_16,this.flags_changed=-2&flags_all&~flag_overflow,this.flags=this.flags&~flag_overflow|(this.last_result^e)>>4&flag_overflow,this.last_result)},CPU.prototype.shrd32=function(e,t,s){return 0===s?e:(this.last_result=e>>>s|t<<32-s,this.last_op_size=OPSIZE_32,this.flags_changed=-2&flags_all&~flag_overflow,this.flags=-2&this.flags|e>>>s-1&1,this.flags=this.flags&~flag_overflow|(this.last_result^e)>>20&flag_overflow,this.last_result)},CPU.prototype.shld16=function(e,t,s){return 0===s?e:(16>=s?(this.last_result=e<>>16-s,this.flags=-2&this.flags|e>>>16-s&1):(this.last_result=e>>32-s|t<>>32-s&1),this.last_op_size=OPSIZE_16,this.flags_changed=-2&flags_all&~flag_overflow,this.flags=this.flags&~flag_overflow|(1&this.flags^this.last_result>>15&1)<<11,this.last_result)},CPU.prototype.shld32=function(e,t,s){return 0===s?e:(this.last_result=e<>>32-s,this.last_op_size=OPSIZE_32,this.flags_changed=-2&flags_all&~flag_overflow,this.flags=-2&this.flags|e>>>32-s&1,this.flags=1===s?this.flags&~flag_overflow|(1&this.flags^this.last_result>>31&1)<<11:this.flags&~flag_overflow,this.last_result)},CPU.prototype.bt_reg=function(e,t){this.flags=-2&this.flags|e>>t&1,this.flags_changed&=-2},CPU.prototype.btc_reg=function(e,t){return this.flags=-2&this.flags|e>>t&1,this.flags_changed&=-2,e^1<>t&1,this.flags_changed&=-2,e|1<>t&1,this.flags_changed&=-2,e&~(1<>3)|0),this.flags=-2&this.flags|e>>(7&t)&1,this.flags_changed&=-2},CPU.prototype.btc_mem=function(e,t){e=this.translate_address_write(e+(t>>3)|0);var s=this.read8(e);t&=7,this.flags=-2&this.flags|s>>t&1,this.flags_changed&=-2,this.write8(e,s^1<>3)|0);var s=this.read8(e);t&=7,this.flags=-2&this.flags|s>>t&1,this.flags_changed&=-2,this.write8(e,s&~(1<>3)|0);var s=this.read8(e);t&=7,this.flags=-2&this.flags|s>>t&1,this.flags_changed&=-2,this.write8(e,s|1<>>0))},CPU.prototype.bsr16=function(e,t){return this.flags_changed=flags_all&~flag_zero,this.last_op_size=OPSIZE_16,0===t?(this.flags|=flag_zero,this.last_result=t,e):(this.flags&=~flag_zero,this.last_result=v86util.int_log2(t))},CPU.prototype.bsr32=function(e,t){return this.flags_changed=flags_all&~flag_zero,this.last_op_size=OPSIZE_32,0===t?(this.flags|=flag_zero,this.last_result=t,e):(this.flags&=~flag_zero,this.last_result=v86util.int_log2(t>>>0))},CPU.prototype.popcnt=function(e){return this.flags_changed=0,this.flags&=~flags_all,e?(e-=e>>1&1431655765,16843009*((e=(858993459&e)+(e>>2&858993459))+(e>>4)&252645135)>>24):(this.flags|=flag_zero,0)},CPU.prototype.saturate_sw_to_ub=function(e){return dbg_assert(0==(4294901760&e)),e>>>=0,32768<=e?e=0:255>>=0,4294934528>>=0,4294967168e&&(e=0),dbg_assert(0==(4294967040&e)),e},CPU.prototype.saturate_ud_to_ub=function(e){return e>>>=0,255>>this.last_op_size&1:1&this.flags},CPU.prototype.getpf=function(){return this.flags_changed&flag_parity?154020>>(15&(this.last_result^this.last_result>>4))&flag_parity:this.flags&flag_parity},CPU.prototype.getaf=function(){return this.flags_changed&flag_adjust?(this.last_op1^this.last_op2^this.last_add_result)&flag_adjust:this.flags&flag_adjust},CPU.prototype.getzf=function(){return this.flags_changed&flag_zero?(~this.last_result&this.last_result-1)>>>this.last_op_size&1:this.flags&flag_zero},CPU.prototype.getsf=function(){return this.flags_changed&flag_sign?this.last_result>>>this.last_op_size&1:this.flags&flag_sign},CPU.prototype.getof=function(){return this.flags_changed&flag_overflow?((this.last_op1^this.last_add_result)&(this.last_op2^this.last_add_result))>>>this.last_op_size&1:this.flags&flag_overflow},CPU.prototype.test_o=CPU.prototype.getof,CPU.prototype.test_b=CPU.prototype.getcf,CPU.prototype.test_z=CPU.prototype.getzf,CPU.prototype.test_s=CPU.prototype.getsf,CPU.prototype.test_p=CPU.prototype.getpf,CPU.prototype.test_be=function(){return this.getcf()||this.getzf()},CPU.prototype.test_l=function(){return!this.getsf()!=!this.getof()},CPU.prototype.test_le=function(){return this.getzf()||!this.getsf()!=!this.getof()},CPU.prototype.push16=function(e){var t=this.get_stack_pointer(-2);this.safe_write16(t,e),this.adjust_stack_reg(-2)},CPU.prototype.push32=function(e){var t=this.get_stack_pointer(-4);this.safe_write32(t,e),this.adjust_stack_reg(-4)},CPU.prototype.pop16=function(){var e=this.get_seg(reg_ss)+this.get_stack_reg()|0;return e=this.safe_read16(e),this.adjust_stack_reg(2),e},CPU.prototype.pop32s=function(){var e=this.get_seg(reg_ss)+this.get_stack_reg()|0;return e=this.safe_read32s(e),this.adjust_stack_reg(4),e},CPU.prototype.pusha16=function(){var e=this.reg16[reg_sp];this.writable_or_pagefault(this.get_stack_pointer(-16),16),this.push16(this.reg16[reg_ax]),this.push16(this.reg16[reg_cx]),this.push16(this.reg16[reg_dx]),this.push16(this.reg16[reg_bx]),this.push16(e),this.push16(this.reg16[reg_bp]),this.push16(this.reg16[reg_si]),this.push16(this.reg16[reg_di])},CPU.prototype.pusha32=function(){var e=this.reg32s[reg_esp];this.writable_or_pagefault(this.get_stack_pointer(-32),32),this.push32(this.reg32s[reg_eax]),this.push32(this.reg32s[reg_ecx]),this.push32(this.reg32s[reg_edx]),this.push32(this.reg32s[reg_ebx]),this.push32(e),this.push32(this.reg32s[reg_ebp]),this.push32(this.reg32s[reg_esi]),this.push32(this.reg32s[reg_edi])},CPU.prototype.popa16=function(){this.translate_address_read(this.get_stack_pointer(0)),this.translate_address_read(this.get_stack_pointer(15)),this.reg16[reg_di]=this.pop16(),this.reg16[reg_si]=this.pop16(),this.reg16[reg_bp]=this.pop16(),this.adjust_stack_reg(2),this.reg16[reg_bx]=this.pop16(),this.reg16[reg_dx]=this.pop16(),this.reg16[reg_cx]=this.pop16(),this.reg16[reg_ax]=this.pop16()},CPU.prototype.popa32=function(){this.translate_address_read(this.get_stack_pointer(0)),this.translate_address_read(this.get_stack_pointer(31)),this.reg32s[reg_edi]=this.pop32s(),this.reg32s[reg_esi]=this.pop32s(),this.reg32s[reg_ebp]=this.pop32s(),this.adjust_stack_reg(4),this.reg32s[reg_ebx]=this.pop32s(),this.reg32s[reg_edx]=this.pop32s(),this.reg32s[reg_ecx]=this.pop32s(),this.reg32s[reg_eax]=this.pop32s()},CPU.prototype.xchg8=function(e,t){t=t>>1&12|t>>5&1;var s=this.reg8[t];return this.reg8[t]=e,s},CPU.prototype.xchg16=function(e,t){t=t>>2&14;var s=this.reg16[t];return this.reg16[t]=e,s},CPU.prototype.xchg16r=function(e){var t=this.reg16[reg_ax];this.reg16[reg_ax]=this.reg16[e],this.reg16[e]=t},CPU.prototype.xchg32=function(e,t){t=t>>3&7;var s=this.reg32s[t];return this.reg32s[t]=e,s},CPU.prototype.xchg32r=function(e){var t=this.reg32s[reg_eax];this.reg32s[reg_eax]=this.reg32s[e],this.reg32s[e]=t},CPU.prototype.lss16=function(e){192<=this.modrm_byte&&this.trigger_ud();var t=this.modrm_resolve(this.modrm_byte),s=this.safe_read16(t);t=this.safe_read16(t+2|0),this.switch_seg(e,t),this.reg16[this.modrm_byte>>2&14]=s},CPU.prototype.lss32=function(e){192<=this.modrm_byte&&this.trigger_ud();var t=this.modrm_resolve(this.modrm_byte),s=this.safe_read32s(t);t=this.safe_read16(t+4|0),this.switch_seg(e,t),this.reg32s[this.modrm_byte>>3&7]=s},CPU.prototype.enter16=function(e,t){(t&=31)&&dbg_log("enter16 stack="+(this.stack_size_32?32:16)+" size="+e+" nest="+t,LOG_CPU),this.push16(this.reg16[reg_bp]);var s=this.reg16[reg_sp];if(0>>0,8)),this.trigger_gp(0)),this.fpu.control_word=this.safe_read16(e+0|0),this.fpu.set_status_word(this.safe_read16(e+2|0)),this.fpu.stack_empty=255&~this.safe_read8(e+4|0),this.fpu.fpu_opcode=this.safe_read16(e+6|0),this.fpu.fpu_ip=this.safe_read32s(e+8|0),this.fpu.fpu_ip=this.safe_read16(e+12|0),this.fpu.fpu_dp=this.safe_read32s(e+16|0),this.fpu.fpu_dp_selector=this.safe_read16(e+20|0),this.mxcsr=t,t=0;8>t;t++)this.fpu.st[this.fpu.stack_ptr+t&7]=this.fpu.load_m80(e+32+(t<<4)|0);for(t=0;8>t;t++)this.reg_xmm32s[t<<2|0]=this.safe_read32s(e+160+(t<<4)+0|0),this.reg_xmm32s[t<<2|1]=this.safe_read32s(e+160+(t<<4)+4|0),this.reg_xmm32s[t<<2|2]=this.safe_read32s(e+160+(t<<4)+8|0),this.reg_xmm32s[t<<2|3]=this.safe_read32s(e+160+(t<<4)+12|0)};var t=[],t16=[],t32=[];t[0]=function(e){e.read_modrm_byte(),e.write_e8(e.add8(e.read_write_e8(),e.read_g8()))},t16[1]=function(e){e.read_modrm_byte(),e.write_e16(e.add16(e.read_write_e16(),e.read_g16()))},t32[1]=function(e){e.read_modrm_byte(),e.write_e32(e.add32(e.read_write_e32(),e.read_g32s()))},t[2]=function(e){e.read_modrm_byte(),e.write_g8(e.add8(e.read_g8(),e.read_e8()))},t16[3]=function(e){e.read_modrm_byte(),e.write_g16(e.add16(e.read_g16(),e.read_e16()))},t32[3]=function(e){e.read_modrm_byte(),e.write_g32(e.add32(e.read_g32s(),e.read_e32s()))},t[4]=function(e){e.reg8[reg_al]=e.add8(e.reg8[reg_al],e.read_op8())},t16[5]=function(e){e.reg16[reg_ax]=e.add16(e.reg16[reg_ax],e.read_op16())},t32[5]=function(e){e.reg32s[reg_eax]=e.add32(e.reg32s[reg_eax],e.read_op32s())},t16[6]=function(e){e.push16(e.sreg[reg_es])},t32[6]=function(e){e.push32(e.sreg[reg_es])},t16[7]=function(e){e.switch_seg(reg_es,e.safe_read16(e.get_stack_pointer(0))),e.adjust_stack_reg(2)},t32[7]=function(e){e.switch_seg(reg_es,65535&e.safe_read32s(e.get_stack_pointer(0))),e.adjust_stack_reg(4)},t[8]=function(e){e.read_modrm_byte(),e.write_e8(e.or8(e.read_write_e8(),e.read_g8()))},t16[9]=function(e){e.read_modrm_byte(),e.write_e16(e.or16(e.read_write_e16(),e.read_g16()))},t32[9]=function(e){e.read_modrm_byte(),e.write_e32(e.or32(e.read_write_e32(),e.read_g32s()))},t[10]=function(e){e.read_modrm_byte(),e.write_g8(e.or8(e.read_g8(),e.read_e8()))},t16[11]=function(e){e.read_modrm_byte(),e.write_g16(e.or16(e.read_g16(),e.read_e16()))},t32[11]=function(e){e.read_modrm_byte(),e.write_g32(e.or32(e.read_g32s(),e.read_e32s()))},t[12]=function(e){e.reg8[reg_al]=e.or8(e.reg8[reg_al],e.read_op8())},t16[13]=function(e){e.reg16[reg_ax]=e.or16(e.reg16[reg_ax],e.read_op16())},t32[13]=function(e){e.reg32s[reg_eax]=e.or32(e.reg32s[reg_eax],e.read_op32s())},t16[14]=function(e){e.push16(e.sreg[reg_cs])},t32[14]=function(e){e.push32(e.sreg[reg_cs])},t16[15]=function(e){e.table0F_16[e.read_op0F()](e)},t32[15]=function(e){e.table0F_32[e.read_op0F()](e)},t[16]=function(e){e.read_modrm_byte(),e.write_e8(e.adc8(e.read_write_e8(),e.read_g8()))},t16[17]=function(e){e.read_modrm_byte(),e.write_e16(e.adc16(e.read_write_e16(),e.read_g16()))},t32[17]=function(e){e.read_modrm_byte(),e.write_e32(e.adc32(e.read_write_e32(),e.read_g32s()))},t[18]=function(e){e.read_modrm_byte(),e.write_g8(e.adc8(e.read_g8(),e.read_e8()))},t16[19]=function(e){e.read_modrm_byte(),e.write_g16(e.adc16(e.read_g16(),e.read_e16()))},t32[19]=function(e){e.read_modrm_byte(),e.write_g32(e.adc32(e.read_g32s(),e.read_e32s()))},t[20]=function(e){e.reg8[reg_al]=e.adc8(e.reg8[reg_al],e.read_op8())},t16[21]=function(e){e.reg16[reg_ax]=e.adc16(e.reg16[reg_ax],e.read_op16())},t32[21]=function(e){e.reg32s[reg_eax]=e.adc32(e.reg32s[reg_eax],e.read_op32s())},t16[22]=function(e){e.push16(e.sreg[reg_ss])},t32[22]=function(e){e.push32(e.sreg[reg_ss])},t16[23]=function(e){e.switch_seg(reg_ss,e.safe_read16(e.get_stack_pointer(0))),e.adjust_stack_reg(2),e.clear_prefixes(),e.cycle_internal()},t32[23]=function(e){e.switch_seg(reg_ss,65535&e.safe_read32s(e.get_stack_pointer(0))),e.adjust_stack_reg(4),e.clear_prefixes(),e.cycle_internal()},t[24]=function(e){e.read_modrm_byte(),e.write_e8(e.sbb8(e.read_write_e8(),e.read_g8()))},t16[25]=function(e){e.read_modrm_byte(),e.write_e16(e.sbb16(e.read_write_e16(),e.read_g16()))},t32[25]=function(e){e.read_modrm_byte(),e.write_e32(e.sbb32(e.read_write_e32(),e.read_g32s()))},t[26]=function(e){e.read_modrm_byte(),e.write_g8(e.sbb8(e.read_g8(),e.read_e8()))},t16[27]=function(e){e.read_modrm_byte(),e.write_g16(e.sbb16(e.read_g16(),e.read_e16()))},t32[27]=function(e){e.read_modrm_byte(),e.write_g32(e.sbb32(e.read_g32s(),e.read_e32s()))},t[28]=function(e){e.reg8[reg_al]=e.sbb8(e.reg8[reg_al],e.read_op8())},t16[29]=function(e){e.reg16[reg_ax]=e.sbb16(e.reg16[reg_ax],e.read_op16())},t32[29]=function(e){e.reg32s[reg_eax]=e.sbb32(e.reg32s[reg_eax],e.read_op32s())},t16[30]=function(e){e.push16(e.sreg[reg_ds])},t32[30]=function(e){e.push32(e.sreg[reg_ds])},t16[31]=function(e){e.switch_seg(reg_ds,e.safe_read16(e.get_stack_pointer(0))),e.adjust_stack_reg(2)},t32[31]=function(e){e.switch_seg(reg_ds,65535&e.safe_read32s(e.get_stack_pointer(0))),e.adjust_stack_reg(4)},t[32]=function(e){e.read_modrm_byte(),e.write_e8(e.and8(e.read_write_e8(),e.read_g8()))},t16[33]=function(e){e.read_modrm_byte(),e.write_e16(e.and16(e.read_write_e16(),e.read_g16()))},t32[33]=function(e){e.read_modrm_byte(),e.write_e32(e.and32(e.read_write_e32(),e.read_g32s()))},t[34]=function(e){e.read_modrm_byte(),e.write_g8(e.and8(e.read_g8(),e.read_e8()))},t16[35]=function(e){e.read_modrm_byte(),e.write_g16(e.and16(e.read_g16(),e.read_e16()))},t32[35]=function(e){e.read_modrm_byte(),e.write_g32(e.and32(e.read_g32s(),e.read_e32s()))},t[36]=function(e){e.reg8[reg_al]=e.and8(e.reg8[reg_al],e.read_op8())},t16[37]=function(e){e.reg16[reg_ax]=e.and16(e.reg16[reg_ax],e.read_op16())},t32[37]=function(e){e.reg32s[reg_eax]=e.and32(e.reg32s[reg_eax],e.read_op32s())},t[38]=function(e){e.segment_prefix_op(reg_es)},t[39]=function(e){e.bcd_daa()},t[40]=function(e){e.read_modrm_byte(),e.write_e8(e.sub8(e.read_write_e8(),e.read_g8()))},t16[41]=function(e){e.read_modrm_byte(),e.write_e16(e.sub16(e.read_write_e16(),e.read_g16()))},t32[41]=function(e){e.read_modrm_byte(),e.write_e32(e.sub32(e.read_write_e32(),e.read_g32s()))},t[42]=function(e){e.read_modrm_byte(),e.write_g8(e.sub8(e.read_g8(),e.read_e8()))},t16[43]=function(e){e.read_modrm_byte(),e.write_g16(e.sub16(e.read_g16(),e.read_e16()))},t32[43]=function(e){e.read_modrm_byte(),e.write_g32(e.sub32(e.read_g32s(),e.read_e32s()))},t[44]=function(e){e.reg8[reg_al]=e.sub8(e.reg8[reg_al],e.read_op8())},t16[45]=function(e){e.reg16[reg_ax]=e.sub16(e.reg16[reg_ax],e.read_op16())},t32[45]=function(e){e.reg32s[reg_eax]=e.sub32(e.reg32s[reg_eax],e.read_op32s())},t[46]=function(e){e.segment_prefix_op(reg_cs)},t[47]=function(e){e.bcd_das()},t[48]=function(e){e.read_modrm_byte(),e.write_e8(e.xor8(e.read_write_e8(),e.read_g8()))},t16[49]=function(e){e.read_modrm_byte(),e.write_e16(e.xor16(e.read_write_e16(),e.read_g16()))},t32[49]=function(e){e.read_modrm_byte(),e.write_e32(e.xor32(e.read_write_e32(),e.read_g32s()))},t[50]=function(e){e.read_modrm_byte(),e.write_g8(e.xor8(e.read_g8(),e.read_e8()))},t16[51]=function(e){e.read_modrm_byte(),e.write_g16(e.xor16(e.read_g16(),e.read_e16()))},t32[51]=function(e){e.read_modrm_byte(),e.write_g32(e.xor32(e.read_g32s(),e.read_e32s()))},t[52]=function(e){e.reg8[reg_al]=e.xor8(e.reg8[reg_al],e.read_op8())},t16[53]=function(e){e.reg16[reg_ax]=e.xor16(e.reg16[reg_ax],e.read_op16())},t32[53]=function(e){e.reg32s[reg_eax]=e.xor32(e.reg32s[reg_eax],e.read_op32s())},t[54]=function(e){e.segment_prefix_op(reg_ss)},t[55]=function(e){e.bcd_aaa()},t[56]=function(e){e.read_modrm_byte(),e.cmp8(e.read_e8(),e.read_g8())},t16[57]=function(e){e.read_modrm_byte(),e.cmp16(e.read_e16(),e.read_g16())},t32[57]=function(e){e.read_modrm_byte(),e.cmp32(e.read_e32s(),e.read_g32s())},t[58]=function(e){e.read_modrm_byte(),e.cmp8(e.read_g8(),e.read_e8())},t16[59]=function(e){e.read_modrm_byte(),e.cmp16(e.read_g16(),e.read_e16())},t32[59]=function(e){e.read_modrm_byte(),e.cmp32(e.read_g32s(),e.read_e32s())},t[60]=function(e){e.cmp8(e.reg8[reg_al],e.read_op8())},t16[61]=function(e){e.cmp16(e.reg16[reg_ax],e.read_op16())},t32[61]=function(e){e.cmp32(e.reg32s[reg_eax],e.read_op32s())},t[62]=function(e){e.segment_prefix_op(reg_ds)},t[63]=function(e){e.bcd_aas()},t16[64]=function(e){e.reg16[reg_ax]=e.inc16(e.reg16[reg_ax])},t32[64]=function(e){e.reg32s[reg_eax]=e.inc32(e.reg32s[reg_eax])},t16[65]=function(e){e.reg16[reg_cx]=e.inc16(e.reg16[reg_cx])},t32[65]=function(e){e.reg32s[reg_ecx]=e.inc32(e.reg32s[reg_ecx])},t16[66]=function(e){e.reg16[reg_dx]=e.inc16(e.reg16[reg_dx])},t32[66]=function(e){e.reg32s[reg_edx]=e.inc32(e.reg32s[reg_edx])},t16[67]=function(e){e.reg16[reg_bx]=e.inc16(e.reg16[reg_bx])},t32[67]=function(e){e.reg32s[reg_ebx]=e.inc32(e.reg32s[reg_ebx])},t16[68]=function(e){e.reg16[reg_sp]=e.inc16(e.reg16[reg_sp])},t32[68]=function(e){e.reg32s[reg_esp]=e.inc32(e.reg32s[reg_esp])},t16[69]=function(e){e.reg16[reg_bp]=e.inc16(e.reg16[reg_bp])},t32[69]=function(e){e.reg32s[reg_ebp]=e.inc32(e.reg32s[reg_ebp])},t16[70]=function(e){e.reg16[reg_si]=e.inc16(e.reg16[reg_si])},t32[70]=function(e){e.reg32s[reg_esi]=e.inc32(e.reg32s[reg_esi])},t16[71]=function(e){e.reg16[reg_di]=e.inc16(e.reg16[reg_di])},t32[71]=function(e){e.reg32s[reg_edi]=e.inc32(e.reg32s[reg_edi])},t16[72]=function(e){e.reg16[reg_ax]=e.dec16(e.reg16[reg_ax])},t32[72]=function(e){e.reg32s[reg_eax]=e.dec32(e.reg32s[reg_eax])},t16[73]=function(e){e.reg16[reg_cx]=e.dec16(e.reg16[reg_cx])},t32[73]=function(e){e.reg32s[reg_ecx]=e.dec32(e.reg32s[reg_ecx])},t16[74]=function(e){e.reg16[reg_dx]=e.dec16(e.reg16[reg_dx])},t32[74]=function(e){e.reg32s[reg_edx]=e.dec32(e.reg32s[reg_edx])},t16[75]=function(e){e.reg16[reg_bx]=e.dec16(e.reg16[reg_bx])},t32[75]=function(e){e.reg32s[reg_ebx]=e.dec32(e.reg32s[reg_ebx])},t16[76]=function(e){e.reg16[reg_sp]=e.dec16(e.reg16[reg_sp])},t32[76]=function(e){e.reg32s[reg_esp]=e.dec32(e.reg32s[reg_esp])},t16[77]=function(e){e.reg16[reg_bp]=e.dec16(e.reg16[reg_bp])},t32[77]=function(e){e.reg32s[reg_ebp]=e.dec32(e.reg32s[reg_ebp])},t16[78]=function(e){e.reg16[reg_si]=e.dec16(e.reg16[reg_si])},t32[78]=function(e){e.reg32s[reg_esi]=e.dec32(e.reg32s[reg_esi])},t16[79]=function(e){e.reg16[reg_di]=e.dec16(e.reg16[reg_di])},t32[79]=function(e){e.reg32s[reg_edi]=e.dec32(e.reg32s[reg_edi])},t16[80]=function(e){e.push16(e.reg16[reg_ax])},t32[80]=function(e){e.push32(e.reg32s[reg_eax])},t16[81]=function(e){e.push16(e.reg16[reg_cx])},t32[81]=function(e){e.push32(e.reg32s[reg_ecx])},t16[82]=function(e){e.push16(e.reg16[reg_dx])},t32[82]=function(e){e.push32(e.reg32s[reg_edx])},t16[83]=function(e){e.push16(e.reg16[reg_bx])},t32[83]=function(e){e.push32(e.reg32s[reg_ebx])},t16[84]=function(e){e.push16(e.reg16[reg_sp])},t32[84]=function(e){e.push32(e.reg32s[reg_esp])},t16[85]=function(e){e.push16(e.reg16[reg_bp])},t32[85]=function(e){e.push32(e.reg32s[reg_ebp])},t16[86]=function(e){e.push16(e.reg16[reg_si])},t32[86]=function(e){e.push32(e.reg32s[reg_esi])},t16[87]=function(e){e.push16(e.reg16[reg_di])},t32[87]=function(e){e.push32(e.reg32s[reg_edi])},t16[88]=function(e){e.reg16[reg_ax]=e.pop16()},t32[88]=function(e){e.reg32s[reg_eax]=e.pop32s()},t16[89]=function(e){e.reg16[reg_cx]=e.pop16()},t32[89]=function(e){e.reg32s[reg_ecx]=e.pop32s()},t16[90]=function(e){e.reg16[reg_dx]=e.pop16()},t32[90]=function(e){e.reg32s[reg_edx]=e.pop32s()},t16[91]=function(e){e.reg16[reg_bx]=e.pop16()},t32[91]=function(e){e.reg32s[reg_ebx]=e.pop32s()},t16[92]=function(e){e.reg16[reg_sp]=e.pop16()},t32[92]=function(e){e.reg32s[reg_esp]=e.pop32s()},t16[93]=function(e){e.reg16[reg_bp]=e.pop16()},t32[93]=function(e){e.reg32s[reg_ebp]=e.pop32s()},t16[94]=function(e){e.reg16[reg_si]=e.pop16()},t32[94]=function(e){e.reg32s[reg_esi]=e.pop32s()},t16[95]=function(e){e.reg16[reg_di]=e.pop16()},t32[95]=function(e){e.reg32s[reg_edi]=e.pop32s()},t16[96]=function(e){e.pusha16()},t32[96]=function(e){e.pusha32()},t16[97]=function(e){e.popa16()},t32[97]=function(e){e.popa32()},t[98]=function(e){dbg_log("Unimplemented BOUND instruction",LOG_CPU),dbg_assert(!1)},t[99]=function(e){e.read_modrm_byte(),e.protected_mode&&!e.vm86_mode()?e.write_e16(e.arpl(e.read_write_e16(),e.modrm_byte>>2&14)):(dbg_log("arpl #ud",LOG_CPU),e.trigger_ud())},t[100]=function(e){e.segment_prefix_op(reg_fs)},t[101]=function(e){e.segment_prefix_op(reg_gs)},t[102]=function(e){e.prefixes|=PREFIX_MASK_OPSIZE,e.run_prefix_instruction(),e.prefixes=0},t[103]=function(e){dbg_assert(e.is_asize_32()===e.is_32),e.prefixes|=PREFIX_MASK_ADDRSIZE,e.run_prefix_instruction(),e.prefixes=0},t16[104]=function(e){e.push16(e.read_op16())},t32[104]=function(e){e.push32(e.read_op32s())},t16[105]=function(e){e.read_modrm_byte(),e.write_g16(e.imul_reg16(e.read_e16s(),e.read_op16()<<16>>16))},t32[105]=function(e){e.read_modrm_byte(),e.write_g32(e.imul_reg32(e.read_e32s(),e.read_op32s()))},t16[106]=function(e){e.push16(e.read_op8s())},t32[106]=function(e){e.push32(e.read_op8s())},t16[107]=function(e){e.read_modrm_byte(),e.write_g16(e.imul_reg16(e.read_e16s(),e.read_op8s()))},t32[107]=function(e){e.read_modrm_byte(),e.write_g32(e.imul_reg32(e.read_e32s(),e.read_op8s()))},t[108]=function(e){insb(e)},t16[109]=function(e){insw(e)},t32[109]=function(e){insd(e)},t[110]=function(e){outsb(e)},t16[111]=function(e){outsw(e)},t32[111]=function(e){outsd(e)},t[112]=function(e){e.jmpcc8(e.test_o())},t[113]=function(e){e.jmpcc8(!e.test_o())},t[114]=function(e){e.jmpcc8(e.test_b())},t[115]=function(e){e.jmpcc8(!e.test_b())},t[116]=function(e){e.jmpcc8(e.test_z())},t[117]=function(e){e.jmpcc8(!e.test_z())},t[118]=function(e){e.jmpcc8(e.test_be())},t[119]=function(e){e.jmpcc8(!e.test_be())},t[120]=function(e){e.jmpcc8(e.test_s())},t[121]=function(e){e.jmpcc8(!e.test_s())},t[122]=function(e){e.jmpcc8(e.test_p())},t[123]=function(e){e.jmpcc8(!e.test_p())},t[124]=function(e){e.jmpcc8(e.test_l())},t[125]=function(e){e.jmpcc8(!e.test_l())},t[126]=function(e){e.jmpcc8(e.test_le())},t[127]=function(e){e.jmpcc8(!e.test_le())};t[128]=function(e){switch(e.read_modrm_byte(),e.modrm_byte>>3&7){case 0:e.write_e8(e.add8(e.read_write_e8(),e.read_op8()));break;case 1:e.write_e8(e.or8(e.read_write_e8(),e.read_op8()));break;case 2:e.write_e8(e.adc8(e.read_write_e8(),e.read_op8()));break;case 3:e.write_e8(e.sbb8(e.read_write_e8(),e.read_op8()));break;case 4:e.write_e8(e.and8(e.read_write_e8(),e.read_op8()));break;case 5:e.write_e8(e.sub8(e.read_write_e8(),e.read_op8()));break;case 6:e.write_e8(e.xor8(e.read_write_e8(),e.read_op8()));break;case 7:e.cmp8(e.read_e8(),e.read_op8())}},t16[129]=function(e){switch(e.read_modrm_byte(),e.modrm_byte>>3&7){case 0:e.write_e16(e.add16(e.read_write_e16(),e.read_op16()));break;case 1:e.write_e16(e.or16(e.read_write_e16(),e.read_op16()));break;case 2:e.write_e16(e.adc16(e.read_write_e16(),e.read_op16()));break;case 3:e.write_e16(e.sbb16(e.read_write_e16(),e.read_op16()));break;case 4:e.write_e16(e.and16(e.read_write_e16(),e.read_op16()));break;case 5:e.write_e16(e.sub16(e.read_write_e16(),e.read_op16()));break;case 6:e.write_e16(e.xor16(e.read_write_e16(),e.read_op16()));break;case 7:e.cmp16(e.read_e16(),e.read_op16())}},t32[129]=function(e){switch(e.read_modrm_byte(),e.modrm_byte>>3&7){case 0:e.write_e32(e.add32(e.read_write_e32(),e.read_op32s()));break;case 1:e.write_e32(e.or32(e.read_write_e32(),e.read_op32s()));break;case 2:e.write_e32(e.adc32(e.read_write_e32(),e.read_op32s()));break;case 3:e.write_e32(e.sbb32(e.read_write_e32(),e.read_op32s()));break;case 4:e.write_e32(e.and32(e.read_write_e32(),e.read_op32s()));break;case 5:e.write_e32(e.sub32(e.read_write_e32(),e.read_op32s()));break;case 6:e.write_e32(e.xor32(e.read_write_e32(),e.read_op32s()));break;case 7:e.cmp32(e.read_e32s(),e.read_op32s())}},t[130]=t[128],t16[131]=function(e){switch(e.read_modrm_byte(),e.modrm_byte>>3&7){case 0:e.write_e16(e.add16(e.read_write_e16(),e.read_op8s()));break;case 1:e.write_e16(e.or16(e.read_write_e16(),e.read_op8s()));break;case 2:e.write_e16(e.adc16(e.read_write_e16(),e.read_op8s()));break;case 3:e.write_e16(e.sbb16(e.read_write_e16(),e.read_op8s()));break;case 4:e.write_e16(e.and16(e.read_write_e16(),e.read_op8s()));break;case 5:e.write_e16(e.sub16(e.read_write_e16(),e.read_op8s()));break;case 6:e.write_e16(e.xor16(e.read_write_e16(),e.read_op8s()));break;case 7:e.cmp16(e.read_e16(),e.read_op8s())}},t32[131]=function(e){switch(e.read_modrm_byte(),e.modrm_byte>>3&7){case 0:e.write_e32(e.add32(e.read_write_e32(),e.read_op8s()));break;case 1:e.write_e32(e.or32(e.read_write_e32(),e.read_op8s()));break;case 2:e.write_e32(e.adc32(e.read_write_e32(),e.read_op8s()));break;case 3:e.write_e32(e.sbb32(e.read_write_e32(),e.read_op8s()));break;case 4:e.write_e32(e.and32(e.read_write_e32(),e.read_op8s()));break;case 5:e.write_e32(e.sub32(e.read_write_e32(),e.read_op8s()));break;case 6:e.write_e32(e.xor32(e.read_write_e32(),e.read_op8s()));break;case 7:e.cmp32(e.read_e32s(),e.read_op8s())}},t[132]=function(e){e.read_modrm_byte();var t=e.read_e8();e.test8(t,e.read_g8())},t16[133]=function(e){e.read_modrm_byte();var t=e.read_e16();e.test16(t,e.read_g16())},t32[133]=function(e){e.read_modrm_byte();var t=e.read_e32s();e.test32(t,e.read_g32s())},t[134]=function(e){e.read_modrm_byte();var t=e.read_write_e8();e.write_e8(e.xchg8(t,e.modrm_byte))},t16[135]=function(e){e.read_modrm_byte();var t=e.read_write_e16();e.write_e16(e.xchg16(t,e.modrm_byte))},t32[135]=function(e){e.read_modrm_byte();var t=e.read_write_e32() +;e.write_e32(e.xchg32(t,e.modrm_byte))},t[136]=function(e){e.read_modrm_byte(),e.set_e8(e.read_g8())},t16[137]=function(e){e.read_modrm_byte(),e.set_e16(e.read_g16())},t32[137]=function(e){e.read_modrm_byte(),e.set_e32(e.read_g32s())},t[138]=function(e){e.read_modrm_byte();var t=e.read_e8();e.write_g8(t)},t16[139]=function(e){e.read_modrm_byte();var t=e.read_e16();e.write_g16(t)},t32[139]=function(e){e.read_modrm_byte();var t=e.read_e32s();e.write_g32(t)},t16[140]=function(e){e.read_modrm_byte(),e.set_e16(e.sreg[e.modrm_byte>>3&7])},t32[140]=function(e){e.read_modrm_byte(),e.set_e32(e.sreg[e.modrm_byte>>3&7])},t16[141]=function(e){e.read_modrm_byte(),192<=e.modrm_byte&&(dbg_log("lea #ud",LOG_CPU),e.trigger_ud());var t=e.modrm_byte>>3&7;e.prefixes|=SEG_PREFIX_ZERO,e.reg16[t<<1]=e.modrm_resolve(e.modrm_byte),e.prefixes=0},t32[141]=function(e){e.read_modrm_byte(),192<=e.modrm_byte&&(dbg_log("lea #ud",LOG_CPU),e.trigger_ud());var t=e.modrm_byte>>3&7;e.prefixes|=SEG_PREFIX_ZERO,e.reg32s[t]=e.modrm_resolve(e.modrm_byte),e.prefixes=0},t[142]=function(e){e.read_modrm_byte();var t=e.modrm_byte>>3&7,s=e.read_e16();e.switch_seg(t,s),t===reg_ss&&(e.clear_prefixes(),e.cycle_internal())},t16[143]=function(e){e.read_modrm_byte();var t=e.safe_read16(e.get_stack_pointer(0));if(e.adjust_stack_reg(2),192>e.modrm_byte){var s=e.modrm_resolve(e.modrm_byte);e.adjust_stack_reg(-2),e.safe_write16(s,t),e.adjust_stack_reg(2)}else e.write_reg_e16(t)},t32[143]=function(e){e.read_modrm_byte();var t=e.safe_read32s(e.get_stack_pointer(0));if(e.adjust_stack_reg(4),192>e.modrm_byte){var s=e.modrm_resolve(e.modrm_byte);e.adjust_stack_reg(-4),e.safe_write32(s,t),e.adjust_stack_reg(4)}else e.write_reg_e32(t)},t[144]=function(e){},t16[145]=function(e){e.xchg16r(reg_cx)},t32[145]=function(e){e.xchg32r(reg_ecx)},t16[146]=function(e){e.xchg16r(reg_dx)},t32[146]=function(e){e.xchg32r(reg_edx)},t16[147]=function(e){e.xchg16r(reg_bx)},t32[147]=function(e){e.xchg32r(reg_ebx)},t16[148]=function(e){e.xchg16r(reg_sp)},t32[148]=function(e){e.xchg32r(reg_esp)},t16[149]=function(e){e.xchg16r(reg_bp)},t32[149]=function(e){e.xchg32r(reg_ebp)},t16[150]=function(e){e.xchg16r(reg_si)},t32[150]=function(e){e.xchg32r(reg_esi)},t16[151]=function(e){e.xchg16r(reg_di)},t32[151]=function(e){e.xchg32r(reg_edi)},t16[152]=function(e){e.reg16[reg_ax]=e.reg8s[reg_al]},t32[152]=function(e){e.reg32s[reg_eax]=e.reg16s[reg_ax]},t16[153]=function(e){e.reg16[reg_dx]=e.reg16s[reg_ax]>>15},t32[153]=function(e){e.reg32s[reg_edx]=e.reg32s[reg_eax]>>31},t16[154]=function(e){var t=e.read_op16(),s=e.read_disp16();e.far_jump(t,s,!0),dbg_assert(e.is_asize_32()||65536>e.get_real_eip()),e.diverged()},t32[154]=function(e){var t=e.read_op32s(),s=e.read_disp16();if((!e.protected_mode||e.vm86_mode())&&4294901760&t)throw e.debug.unimpl("#GP handler");e.far_jump(t,s,!0),dbg_assert(e.is_asize_32()||65536>e.get_real_eip()),e.diverged()},t[155]=function(e){(e.cr[0]&(CR0_MP|CR0_TS))==(CR0_MP|CR0_TS)?e.trigger_nm():e.fpu&&e.fpu.fwait()},t16[156]=function(e){e.flags&flag_vm&&3>e.getiopl()?(dbg_assert(e.protected_mode),dbg_log("pushf #gp",LOG_CPU),e.trigger_gp(0)):e.push16(e.get_eflags())},t32[156]=function(e){e.flags&flag_vm&&3>e.getiopl()?(dbg_assert(e.protected_mode),dbg_log("pushf #gp",LOG_CPU),e.trigger_gp(0)):e.push32(16580607&e.get_eflags())},t16[157]=function(e){e.flags&flag_vm&&3>e.getiopl()&&(dbg_log("popf #gp",LOG_CPU),e.trigger_gp(0)),e.update_eflags(-65536&e.flags|e.pop16()),e.flags&flag_trap?e.flags&=~flag_trap:e.handle_irqs()},t32[157]=function(e){e.flags&flag_vm&&3>e.getiopl()&&(dbg_log("popf #gp",LOG_CPU),e.trigger_gp(0)),e.update_eflags(e.pop32s()),e.handle_irqs()},t[158]=function(e){e.flags=-256&e.flags|e.reg8[reg_ah],e.flags=e.flags&flags_mask|flags_default,e.flags_changed=0},t[159]=function(e){e.reg8[reg_ah]=e.get_eflags()},t[160]=function(e){var t=e.safe_read8(e.read_moffs());e.reg8[reg_al]=t},t16[161]=function(e){var t=e.safe_read16(e.read_moffs());e.reg16[reg_ax]=t},t32[161]=function(e){var t=e.safe_read32s(e.read_moffs());e.reg32s[reg_eax]=t},t[162]=function(e){e.safe_write8(e.read_moffs(),e.reg8[reg_al])},t16[163]=function(e){e.safe_write16(e.read_moffs(),e.reg16[reg_ax])},t32[163]=function(e){e.safe_write32(e.read_moffs(),e.reg32s[reg_eax])},t[164]=function(e){e.movsb()},t16[165]=function(e){e.movsw()},t32[165]=function(e){e.movsd()},t[166]=function(e){cmpsb(e)},t16[167]=function(e){cmpsw(e)},t32[167]=function(e){cmpsd(e)},t[168]=function(e){e.test8(e.reg8[reg_al],e.read_op8())},t16[169]=function(e){e.test16(e.reg16[reg_ax],e.read_op16())},t32[169]=function(e){e.test32(e.reg32s[reg_eax],e.read_op32s())},t[170]=function(e){stosb(e)},t16[171]=function(e){stosw(e)},t32[171]=function(e){stosd(e)},t[172]=function(e){lodsb(e)},t16[173]=function(e){lodsw(e)},t32[173]=function(e){lodsd(e)},t[174]=function(e){scasb(e)},t16[175]=function(e){scasw(e)},t32[175]=function(e){scasd(e)},t[176]=function(e){e.reg8[reg_al]=e.read_op8()},t[177]=function(e){e.reg8[reg_cl]=e.read_op8()},t[178]=function(e){e.reg8[reg_dl]=e.read_op8()},t[179]=function(e){e.reg8[reg_bl]=e.read_op8()},t[180]=function(e){e.reg8[reg_ah]=e.read_op8()},t[181]=function(e){e.reg8[reg_ch]=e.read_op8()},t[182]=function(e){e.reg8[reg_dh]=e.read_op8()},t[183]=function(e){e.reg8[reg_bh]=e.read_op8()},t16[184]=function(e){e.reg16[reg_ax]=e.read_op16()},t32[184]=function(e){e.reg32s[reg_eax]=e.read_op32s()},t16[185]=function(e){e.reg16[reg_cx]=e.read_op16()},t32[185]=function(e){e.reg32s[reg_ecx]=e.read_op32s()},t16[186]=function(e){e.reg16[reg_dx]=e.read_op16()},t32[186]=function(e){e.reg32s[reg_edx]=e.read_op32s()},t16[187]=function(e){e.reg16[reg_bx]=e.read_op16()},t32[187]=function(e){e.reg32s[reg_ebx]=e.read_op32s()},t16[188]=function(e){e.reg16[reg_sp]=e.read_op16()},t32[188]=function(e){e.reg32s[reg_esp]=e.read_op32s()},t16[189]=function(e){e.reg16[reg_bp]=e.read_op16()},t32[189]=function(e){e.reg32s[reg_ebp]=e.read_op32s()},t16[190]=function(e){e.reg16[reg_si]=e.read_op16()},t32[190]=function(e){e.reg32s[reg_esi]=e.read_op32s()},t16[191]=function(e){e.reg16[reg_di]=e.read_op16()},t32[191]=function(e){e.reg32s[reg_edi]=e.read_op32s()},t[192]=function(e){e.read_modrm_byte();var t=e.read_write_e8(),s=31&e.read_op8(),r=0;switch(e.modrm_byte>>3&7){case 0:r=e.rol8(t,s);break;case 1:r=e.ror8(t,s);break;case 2:r=e.rcl8(t,s);break;case 3:r=e.rcr8(t,s);break;case 4:r=e.shl8(t,s);break;case 5:r=e.shr8(t,s);break;case 6:r=e.shl8(t,s);break;case 7:r=e.sar8(t,s)}e.write_e8(r)},t16[193]=function(e){e.read_modrm_byte();var t=e.read_write_e16(),s=31&e.read_op8(),r=0;switch(e.modrm_byte>>3&7){case 0:r=e.rol16(t,s);break;case 1:r=e.ror16(t,s);break;case 2:r=e.rcl16(t,s);break;case 3:r=e.rcr16(t,s);break;case 4:r=e.shl16(t,s);break;case 5:r=e.shr16(t,s);break;case 6:r=e.shl16(t,s);break;case 7:r=e.sar16(t,s)}e.write_e16(r)},t32[193]=function(e){e.read_modrm_byte();var t=e.read_write_e32(),s=31&e.read_op8(),r=0;switch(e.modrm_byte>>3&7){case 0:r=e.rol32(t,s);break;case 1:r=e.ror32(t,s);break;case 2:r=e.rcl32(t,s);break;case 3:r=e.rcr32(t,s);break;case 4:r=e.shl32(t,s);break;case 5:r=e.shr32(t,s);break;case 6:r=e.shl32(t,s);break;case 7:r=e.sar32(t,s)}e.write_e32(r)},t16[194]=function(e){var t=e.read_op16();e.instruction_pointer=e.get_seg(reg_cs)+e.pop16()|0,dbg_assert(e.is_asize_32()||65536>e.get_real_eip()),e.adjust_stack_reg(t),e.diverged()},t32[194]=function(e){var t=e.read_op16(),s=e.pop32s();dbg_assert(e.is_asize_32()||65536>s),e.instruction_pointer=e.get_seg(reg_cs)+s|0,e.adjust_stack_reg(t),e.diverged()},t16[195]=function(e){e.instruction_pointer=e.get_seg(reg_cs)+e.pop16()|0,e.diverged()},t32[195]=function(e){var t=e.pop32s();dbg_assert(e.is_asize_32()||65536>t),e.instruction_pointer=e.get_seg(reg_cs)+t|0,e.diverged()},t16[196]=function(e){e.read_modrm_byte(),e.lss16(reg_es)},t32[196]=function(e){e.read_modrm_byte(),e.lss32(reg_es)},t16[197]=function(e){e.read_modrm_byte(),e.lss16(reg_ds)},t32[197]=function(e){e.read_modrm_byte(),e.lss32(reg_ds)},t[198]=function(e){e.read_modrm_byte(),192>e.modrm_byte?e.safe_write8(e.modrm_resolve(e.modrm_byte),e.read_op8()):e.reg8[e.modrm_byte<<2&12|e.modrm_byte>>2&1]=e.read_op8()},t16[199]=function(e){e.read_modrm_byte(),192>e.modrm_byte?e.safe_write16(e.modrm_resolve(e.modrm_byte),e.read_op16()):e.reg16[e.modrm_byte<<1&14]=e.read_op16()},t32[199]=function(e){e.read_modrm_byte(),192>e.modrm_byte?e.safe_write32(e.modrm_resolve(e.modrm_byte),e.read_op32s()):e.reg32s[7&e.modrm_byte]=e.read_op32s()},t16[200]=function(e){e.enter16(e.read_op16(),e.read_disp8())},t32[200]=function(e){e.enter32(e.read_op16(),e.read_disp8())},t16[201]=function(e){var t=e.stack_size_32?e.reg32s[reg_ebp]:e.reg16[reg_bp],s=e.safe_read16(e.get_seg(reg_ss)+t|0);e.set_stack_reg(t+2|0),e.reg16[reg_bp]=s},t32[201]=function(e){var t=e.stack_size_32?e.reg32s[reg_ebp]:e.reg16[reg_bp],s=e.safe_read32s(e.get_seg(reg_ss)+t|0);e.set_stack_reg(t+4|0),e.reg32s[reg_ebp]=s},t16[202]=function(e){var t=e.read_op16(),s=e.safe_read16(e.get_stack_pointer(0)),r=e.safe_read16(e.get_stack_pointer(2));e.far_return(s,r,t),e.diverged()},t32[202]=function(e){var t=e.read_op16(),s=e.safe_read32s(e.get_stack_pointer(0)),r=65535&e.safe_read32s(e.get_stack_pointer(4));e.far_return(s,r,t),dbg_assert(e.is_asize_32()||65536>e.get_real_eip()),e.diverged()},t16[203]=function(e){var t=e.safe_read16(e.get_stack_pointer(0)),s=e.safe_read16(e.get_stack_pointer(2));e.far_return(t,s,0),dbg_assert(e.is_asize_32()||65536>e.get_real_eip()),e.diverged()},t32[203]=function(e){var t=e.safe_read32s(e.get_stack_pointer(0)),s=65535&e.safe_read32s(e.get_stack_pointer(4));e.far_return(t,s,0),dbg_assert(e.is_asize_32()||65536>e.get_real_eip()),e.diverged()},t[204]=function(e){dbg_log("INT3",LOG_CPU),e.call_interrupt_vector(3,!0,!1),e.diverged()},t[205]=function(e){var t=e.read_op8();e.call_interrupt_vector(t,!0,!1),e.diverged()},t[206]=function(e){dbg_log("INTO",LOG_CPU),e.getof()&&e.call_interrupt_vector(4,!0,!1),e.diverged()},t16[207]=function(e){e.iret16(),e.diverged()},t32[207]=function(e){e.iret32(),e.diverged()},t[208]=function(e){e.read_modrm_byte();var t=e.read_write_e8(),s=0;switch(e.modrm_byte>>3&7){case 0:s=e.rol8(t,1);break;case 1:s=e.ror8(t,1);break;case 2:s=e.rcl8(t,1);break;case 3:s=e.rcr8(t,1);break;case 4:s=e.shl8(t,1);break;case 5:s=e.shr8(t,1);break;case 6:s=e.shl8(t,1);break;case 7:s=e.sar8(t,1)}e.write_e8(s)},t16[209]=function(e){e.read_modrm_byte();var t=e.read_write_e16(),s=0;switch(e.modrm_byte>>3&7){case 0:s=e.rol16(t,1);break;case 1:s=e.ror16(t,1);break;case 2:s=e.rcl16(t,1);break;case 3:s=e.rcr16(t,1);break;case 4:s=e.shl16(t,1);break;case 5:s=e.shr16(t,1);break;case 6:s=e.shl16(t,1);break;case 7:s=e.sar16(t,1)}e.write_e16(s)},t32[209]=function(e){e.read_modrm_byte();var t=e.read_write_e32(),s=0;switch(e.modrm_byte>>3&7){case 0:s=e.rol32(t,1);break;case 1:s=e.ror32(t,1);break;case 2:s=e.rcl32(t,1);break;case 3:s=e.rcr32(t,1);break;case 4:s=e.shl32(t,1);break;case 5:s=e.shr32(t,1);break;case 6:s=e.shl32(t,1);break;case 7:s=e.sar32(t,1)}e.write_e32(s)},t[210]=function(e){e.read_modrm_byte();var t=e.read_write_e8(),s=31&e.reg8[reg_cl],r=0;switch(e.modrm_byte>>3&7){case 0:r=e.rol8(t,s);break;case 1:r=e.ror8(t,s);break;case 2:r=e.rcl8(t,s);break;case 3:r=e.rcr8(t,s);break;case 4:r=e.shl8(t,s);break;case 5:r=e.shr8(t,s);break;case 6:r=e.shl8(t,s);break;case 7:r=e.sar8(t,s)}e.write_e8(r)},t16[211]=function(e){e.read_modrm_byte();var t=e.read_write_e16(),s=31&e.reg8[reg_cl],r=0;switch(e.modrm_byte>>3&7){case 0:r=e.rol16(t,s);break;case 1:r=e.ror16(t,s);break;case 2:r=e.rcl16(t,s);break;case 3:r=e.rcr16(t,s);break;case 4:r=e.shl16(t,s);break;case 5:r=e.shr16(t,s);break;case 6:r=e.shl16(t,s);break;case 7:r=e.sar16(t,s)}e.write_e16(r)},t32[211]=function(e){e.read_modrm_byte();var t=e.read_write_e32(),s=31&e.reg8[reg_cl],r=0;switch(e.modrm_byte>>3&7){case 0:r=e.rol32(t,s);break;case 1:r=e.ror32(t,s);break;case 2:r=e.rcl32(t,s);break;case 3:r=e.rcr32(t,s);break;case 4:r=e.shl32(t,s);break;case 5:r=e.shr32(t,s);break;case 6:r=e.shl32(t,s);break;case 7:r=e.sar32(t,s)}e.write_e32(r)},t[212]=function(e){e.bcd_aam(e.read_op8())},t[213]=function(e){e.bcd_aad(e.read_op8())},t[214]=function(e){e.reg8[reg_al]=-e.getcf()},t[215]=function(e){e.is_asize_32()?e.reg8[reg_al]=e.safe_read8(e.get_seg_prefix(reg_ds)+e.reg32s[reg_ebx]+e.reg8[reg_al]|0):e.reg8[reg_al]=e.safe_read8(e.get_seg_prefix(reg_ds)+(e.reg16[reg_bx]+e.reg8[reg_al]&65535)|0)},t[216]=function(e){e.read_modrm_byte(),e.task_switch_test(),192>e.modrm_byte?e.fpu.op_D8_mem(e.modrm_byte,e.modrm_resolve(e.modrm_byte)):e.fpu.op_D8_reg(e.modrm_byte)},t[217]=function(e){e.read_modrm_byte(),e.task_switch_test(),192>e.modrm_byte?e.fpu.op_D9_mem(e.modrm_byte,e.modrm_resolve(e.modrm_byte)):e.fpu.op_D9_reg(e.modrm_byte)},t[218]=function(e){e.read_modrm_byte(),e.task_switch_test(),192>e.modrm_byte?e.fpu.op_DA_mem(e.modrm_byte,e.modrm_resolve(e.modrm_byte)):e.fpu.op_DA_reg(e.modrm_byte)},t[219]=function(e){e.read_modrm_byte(),e.task_switch_test(),192>e.modrm_byte?e.fpu.op_DB_mem(e.modrm_byte,e.modrm_resolve(e.modrm_byte)):e.fpu.op_DB_reg(e.modrm_byte)},t[220]=function(e){e.read_modrm_byte(),e.task_switch_test(),192>e.modrm_byte?e.fpu.op_DC_mem(e.modrm_byte,e.modrm_resolve(e.modrm_byte)):e.fpu.op_DC_reg(e.modrm_byte)},t[221]=function(e){e.read_modrm_byte(),e.task_switch_test(),192>e.modrm_byte?e.fpu.op_DD_mem(e.modrm_byte,e.modrm_resolve(e.modrm_byte)):e.fpu.op_DD_reg(e.modrm_byte)},t[222]=function(e){e.read_modrm_byte(),e.task_switch_test(),192>e.modrm_byte?e.fpu.op_DE_mem(e.modrm_byte,e.modrm_resolve(e.modrm_byte)):e.fpu.op_DE_reg(e.modrm_byte)},t[223]=function(e){e.read_modrm_byte(),e.task_switch_test(),192>e.modrm_byte?e.fpu.op_DF_mem(e.modrm_byte,e.modrm_resolve(e.modrm_byte)):e.fpu.op_DF_reg(e.modrm_byte)},t[224]=function(e){e.loopne(e.read_op8s())},t[225]=function(e){e.loope(e.read_op8s())},t[226]=function(e){e.loop(e.read_op8s())},t[227]=function(e){e.jcxz(e.read_op8s())},t[228]=function(e){var t=e.read_op8();e.test_privileges_for_io(t,1),e.reg8[reg_al]=e.io.port_read8(t),e.diverged()},t16[229]=function(e){var t=e.read_op8();e.test_privileges_for_io(t,2),e.reg16[reg_ax]=e.io.port_read16(t),e.diverged()},t32[229]=function(e){var t=e.read_op8();e.test_privileges_for_io(t,4),e.reg32s[reg_eax]=e.io.port_read32(t),e.diverged()},t[230]=function(e){var t=e.read_op8();e.test_privileges_for_io(t,1),e.io.port_write8(t,e.reg8[reg_al]),e.diverged()},t16[231]=function(e){var t=e.read_op8();e.test_privileges_for_io(t,2),e.io.port_write16(t,e.reg16[reg_ax]),e.diverged()},t32[231]=function(e){var t=e.read_op8();e.test_privileges_for_io(t,4),e.io.port_write32(t,e.reg32s[reg_eax]),e.diverged()},t16[232]=function(e){var t=e.read_op16();e.push16(e.get_real_eip()),e.jmp_rel16(t),e.diverged()},t32[232]=function(e){var t=e.read_op32s();e.push32(e.get_real_eip()),e.instruction_pointer=e.instruction_pointer+t|0,dbg_assert(e.is_asize_32()||65536>e.get_real_eip()),e.diverged()},t16[233]=function(e){var t=e.read_op16();e.jmp_rel16(t),e.diverged()},t32[233]=function(e){var t=e.read_op32s();e.instruction_pointer=e.instruction_pointer+t|0,dbg_assert(e.is_asize_32()||65536>e.get_real_eip()),e.diverged()},t16[234]=function(e){var t=e.read_op16(),s=e.read_disp16();e.far_jump(t,s,!1),dbg_assert(e.is_asize_32()||65536>e.get_real_eip()),e.diverged()},t32[234]=function(e){var t=e.read_op32s(),s=e.read_disp16();e.far_jump(t,s,!1),dbg_assert(e.is_asize_32()||65536>e.get_real_eip()),e.diverged()},t[235]=function(e){var t=e.read_op8s();e.instruction_pointer=e.instruction_pointer+t|0,dbg_assert(e.is_asize_32()||65536>e.get_real_eip()),e.diverged()},t[236]=function(e){var t=e.reg16[reg_dx];e.test_privileges_for_io(t,1),e.reg8[reg_al]=e.io.port_read8(t),e.diverged()},t16[237]=function(e){var t=e.reg16[reg_dx];e.test_privileges_for_io(t,2),e.reg16[reg_ax]=e.io.port_read16(t),e.diverged()},t32[237]=function(e){var t=e.reg16[reg_dx];e.test_privileges_for_io(t,4),e.reg32s[reg_eax]=e.io.port_read32(t),e.diverged()},t[238]=function(e){var t=e.reg16[reg_dx];e.test_privileges_for_io(t,1),e.io.port_write8(t,e.reg8[reg_al]),e.diverged()},t16[239]=function(e){var t=e.reg16[reg_dx];e.test_privileges_for_io(t,2),e.io.port_write16(t,e.reg16[reg_ax]),e.diverged()},t32[239]=function(e){var t=e.reg16[reg_dx];e.test_privileges_for_io(t,4),e.io.port_write32(t,e.reg32s[reg_eax]),e.diverged()},t[240]=function(e){e.run_prefix_instruction()},t[241]=function(e){throw e.debug.unimpl("int1 instruction")},t[242]=function(e){dbg_assert(0==(e.prefixes&PREFIX_MASK_REP)),e.prefixes|=PREFIX_REPNZ,e.run_prefix_instruction(),e.prefixes=0},t[243]=function(e){dbg_assert(0==(e.prefixes&PREFIX_MASK_REP)),e.prefixes|=PREFIX_REPZ,e.run_prefix_instruction(),e.prefixes=0},t[244]=function(e){e.hlt_op()},t[245]=function(e){e.flags=(1|e.flags)^e.getcf(),e.flags_changed&=-2},t[246]=function(e){switch(e.read_modrm_byte(),e.modrm_byte>>3&7){case 0:var t=e.read_e8();e.test8(t,e.read_op8());break;case 1:t=e.read_e8(),e.test8(t,e.read_op8());break;case 2:t=e.read_write_e8(),e.write_e8(~t);break;case 3:t=e.read_write_e8(),e.write_e8(e.neg8(t));break;case 4:t=e.read_e8(),e.mul8(t);break;case 5:t=e.read_e8s(),e.imul8(t);break;case 6:t=e.read_e8(),e.div8(t);break;case 7:t=e.read_e8s(),e.idiv8(t)}},t16[247]=function(e){switch(e.read_modrm_byte(),e.modrm_byte>>3&7){case 0:var t=e.read_e16();e.test16(t,e.read_op16());break;case 1:t=e.read_e16(),e.test16(t,e.read_op16());break;case 2:t=e.read_write_e16(),e.write_e16(~t);break;case 3:t=e.read_write_e16(),e.write_e16(e.neg16(t));break;case 4:t=e.read_e16(),e.mul16(t);break;case 5:t=e.read_e16s(),e.imul16(t);break;case 6:t=e.read_e16(),e.div16(t);break;case 7:t=e.read_e16s(),e.idiv16(t)}},t32[247]=function(e){switch(e.read_modrm_byte(),e.modrm_byte>>3&7){case 0:var t=e.read_e32s();e.test32(t,e.read_op32s());break;case 1:t=e.read_e32s(),e.test32(t,e.read_op32s());break;case 2:t=e.read_write_e32(),e.write_e32(~t);break;case 3:t=e.read_write_e32(),e.write_e32(e.neg32(t));break;case 4:t=e.read_e32(),e.mul32(t);break;case 5:t=e.read_e32s(),e.imul32(t);break;case 6:t=e.read_e32(),e.div32(t);break;case 7:t=e.read_e32s(),e.idiv32(t)}},t[248]=function(e){e.flags&=~flag_carry,e.flags_changed&=-2},t[249]=function(e){e.flags|=flag_carry,e.flags_changed&=-2},t[250]=function(e){!e.protected_mode||(e.flags&flag_vm?3===e.getiopl():e.getiopl()>=e.cpl)?e.flags&=~flag_interrupt:(dbg_log("cli #gp",LOG_CPU),e.trigger_gp(0))},t[251]=function(e){!e.protected_mode||(e.flags&flag_vm?3===e.getiopl():e.getiopl()>=e.cpl)?(e.flags|=flag_interrupt,e.clear_prefixes(),e.cycle_internal(),e.handle_irqs()):(dbg_log("sti #gp",LOG_CPU),e.trigger_gp(0))},t[252]=function(e){e.flags&=~flag_direction},t[253]=function(e){e.flags|=flag_direction},t[254]=function(e){e.read_modrm_byte();var t=56&e.modrm_byte;0===t?(t=e.read_write_e8(),e.write_e8(e.inc8(t))):8===t?(t=e.read_write_e8(),e.write_e8(e.dec8(t))):e.todo()},t16[255]=function(e){switch(e.read_modrm_byte(),e.modrm_byte>>3&7){case 0:var t=e.read_write_e16();e.write_e16(e.inc16(t));break;case 1:t=e.read_write_e16(),e.write_e16(e.dec16(t));break;case 2:t=e.read_e16(),e.push16(e.get_real_eip()),e.instruction_pointer=e.get_seg(reg_cs)+t|0,dbg_assert(e.is_asize_32()||65536>e.get_real_eip()),e.diverged();break;case 3:192<=e.modrm_byte&&(dbg_log("callf #ud",LOG_CPU),e.trigger_ud(),dbg_assert(!1,"unreachable"));var s=e.modrm_resolve(e.modrm_byte);t=e.safe_read16(s),s=e.safe_read16(s+2|0),e.far_jump(t,s,!0),dbg_assert(e.is_asize_32()||65536>e.get_real_eip()),e.diverged();break;case 4:t=e.read_e16(),e.instruction_pointer=e.get_seg(reg_cs)+t|0,dbg_assert(e.is_asize_32()||65536>e.get_real_eip()),e.diverged();break;case 5:192<=e.modrm_byte&&(dbg_log("jmpf #ud",LOG_CPU),e.trigger_ud(),dbg_assert(!1,"unreachable")),s=e.modrm_resolve(e.modrm_byte),t=e.safe_read16(s),s=e.safe_read16(s+2|0),e.far_jump(t,s,!1),dbg_assert(e.is_asize_32()||65536>e.get_real_eip()),e.diverged();break;case 6:t=e.read_e16(),e.push16(t);break;case 7:e.todo()}},t32[255]=function(e){switch(e.read_modrm_byte(),e.modrm_byte>>3&7){case 0:var t=e.read_write_e32();e.write_e32(e.inc32(t));break;case 1:t=e.read_write_e32(),e.write_e32(e.dec32(t));break;case 2:t=e.read_e32s(),e.push32(e.get_real_eip()),dbg_assert(e.is_asize_32()||65536>t),e.instruction_pointer=e.get_seg(reg_cs)+t|0,e.diverged();break;case 3:192<=e.modrm_byte&&(dbg_log("callf #ud",LOG_CPU),e.trigger_ud(),dbg_assert(!1,"unreachable"));var s=e.modrm_resolve(e.modrm_byte);if(t=e.safe_read32s(s),s=e.safe_read16(s+4|0),(!e.protected_mode||e.vm86_mode())&&4294901760&t)throw e.debug.unimpl("#GP handler");e.far_jump(t,s,!0),dbg_assert(e.is_asize_32()||65536>t),e.diverged();break;case 4:t=e.read_e32s(),dbg_assert(e.is_asize_32()||65536>t),e.instruction_pointer=e.get_seg(reg_cs)+t|0,e.diverged();break;case 5:if(192<=e.modrm_byte&&(dbg_log("jmpf #ud",LOG_CPU),e.trigger_ud(),dbg_assert(!1,"unreachable")),s=e.modrm_resolve(e.modrm_byte),t=e.safe_read32s(s),s=e.safe_read16(s+4|0),(!e.protected_mode||e.vm86_mode())&&4294901760&t)throw e.debug.unimpl("#GP handler");e.far_jump(t,s,!1),dbg_assert(e.is_asize_32()||65536>t),e.diverged();break;case 6:t=e.read_e32s(),e.push32(t);break;case 7:e.todo()}};var table16=[],table32=[];CPU.prototype.table16=table16,CPU.prototype.table32=table32;for(var i=0;256>i;i++)t[i]?table16[i]=table32[i]=t[i]:t16[i]&&(table16[i]=t16[i],table32[i]=t32[i]);t=[],t16=[],t32=[],t[0]=function(e){switch(e.read_modrm_byte(),e.protected_mode&&!e.vm86_mode()||(dbg_log("0f 00 #ud",LOG_CPU),e.trigger_ud()),e.modrm_byte>>3&7){case 0:e.set_e16(e.sreg[reg_ldtr]),e.is_osize_32()&&192<=e.modrm_byte&&(e.reg32s[7&e.modrm_byte]&=65535);break;case 1:e.set_e16(e.sreg[reg_tr]),e.is_osize_32()&&192<=e.modrm_byte&&(e.reg32s[7&e.modrm_byte]&=65535);break;case 2:e.cpl&&e.trigger_gp(0);var t=e.read_e16();e.load_ldt(t);break;case 3:e.cpl&&e.trigger_gp(0),t=e.read_e16(),e.load_tr(t);break;case 4:e.verr(e.read_e16());break;case 5:e.verw(e.read_e16());break;default:dbg_log(e.modrm_byte>>3&7,LOG_CPU),e.todo()}},t[1]=function(e){e.read_modrm_byte();var t=e.modrm_byte>>3&7;if(4===t)192<=e.modrm_byte&&e.is_osize_32()?e.set_e32(e.cr[0]):e.set_e16(e.cr[0]);else if(6===t){e.cpl&&e.trigger_gp(0);var s=e.read_e16();s=-16&e.cr[0]|15&s,e.protected_mode&&(s|=CR0_PE),e.set_cr0(s)}else switch(192<=e.modrm_byte&&(dbg_log("0f 01 #ud",LOG_CPU),e.trigger_ud()),s=e.modrm_resolve(e.modrm_byte),t){case 0:e.writable_or_pagefault(s,6),e.safe_write16(s,e.gdtr_size),t=e.is_osize_32()?-1:16777215,e.safe_write32(s+2,e.gdtr_offset&t);break;case 1:e.writable_or_pagefault(s,6),e.safe_write16(s,e.idtr_size),t=e.is_osize_32()?-1:16777215,e.safe_write32(s+2,e.idtr_offset&t);break;case 2:e.cpl&&e.trigger_gp(0),t=e.safe_read16(s),s=e.safe_read32s(s+2),e.gdtr_size=t,e.gdtr_offset=s,e.is_osize_32()||(e.gdtr_offset&=16777215);break;case 3:e.cpl&&e.trigger_gp(0),t=e.safe_read16(s),s=e.safe_read32s(s+2),e.idtr_size=t,e.idtr_offset=s,e.is_osize_32()||(e.idtr_offset&=16777215);break;case 7:e.cpl&&e.trigger_gp(0),e.invlpg(s);break;default:dbg_log(t),e.todo()}},t16[2]=function(e){e.read_modrm_byte(),e.protected_mode&&!e.vm86_mode()||(dbg_log("lar #ud",LOG_CPU),e.trigger_ud());var t=e.read_e16();e.write_g16(e.lar(t,e.read_g16()))},t32[2]=function(e){e.read_modrm_byte(),e.protected_mode&&!e.vm86_mode()||(dbg_log("lar #ud",LOG_CPU),e.trigger_ud());var t=e.read_e16();e.write_g32(e.lar(t,e.read_g32s()))},t16[3]=function(e){e.read_modrm_byte(),e.protected_mode&&!e.vm86_mode()||(dbg_log("lsl #ud",LOG_CPU),e.trigger_ud());var t=e.read_e16();e.write_g16(e.lsl(t,e.read_g16()))},t32[3]=function(e){e.read_modrm_byte(),e.protected_mode&&!e.vm86_mode()||(dbg_log("lsl #ud",LOG_CPU),e.trigger_ud());var t=e.read_e16();e.write_g32(e.lsl(t,e.read_g32s()))},t[4]=function(e){e.undefined_instruction()},t[5]=function(e){e.undefined_instruction()},t[6]=function(e){e.cpl?(dbg_log("clts #gp",LOG_CPU),e.trigger_gp(0)):e.cr[0]&=~CR0_TS},t[7]=function(e){e.undefined_instruction()},t[8]=function(e){e.todo()},t[9]=function(e){e.cpl&&(dbg_log("wbinvd #gp",LOG_CPU),e.trigger_gp(0))},t[10]=function(e){e.undefined_instruction()},t[11]=function(e){e.trigger_ud()},t[12]=function(e){e.undefined_instruction()},t[13]=function(e){e.todo()},t[14]=function(e){e.undefined_instruction()},t[15]=function(e){e.undefined_instruction()},t[16]=function(e){e.unimplemented_sse()},t[17]=function(e){e.unimplemented_sse()},t[18]=function(e){dbg_assert((e.prefixes&(PREFIX_MASK_REP|PREFIX_MASK_OPSIZE))===PREFIX_MASK_OPSIZE),e.task_switch_test_mmx(),e.read_modrm_byte();var t=e.read_xmm_mem64s();e.write_xmm64(t[0],t[1])},t[19]=function(e){dbg_assert((e.prefixes&(PREFIX_MASK_REP|PREFIX_MASK_OPSIZE))===PREFIX_MASK_OPSIZE),e.task_switch_test_mmx(),e.read_modrm_byte();var t=e.read_xmm64s();dbg_assert(192>e.modrm_byte);var s=e.modrm_resolve(e.modrm_byte);e.safe_write64(s,t[0],t[1])},t[20]=function(e){e.unimplemented_sse()},t[21]=function(e){e.unimplemented_sse()},t[22]=function(e){e.unimplemented_sse()},t[23]=function(e){e.unimplemented_sse()},t[24]=function(e){e.read_modrm_byte(),192>e.modrm_byte&&e.modrm_resolve(e.modrm_byte)},t[25]=function(e){e.unimplemented_sse()},t[26]=function(e){e.unimplemented_sse()},t[27]=function(e){e.unimplemented_sse()},t[28]=function(e){e.unimplemented_sse()},t[29]=function(e){e.unimplemented_sse()},t[30]=function(e){e.unimplemented_sse()},t[31]=function(e){e.read_modrm_byte(),192>e.modrm_byte&&e.modrm_resolve(e.modrm_byte)},t[32]=function(e){switch(e.read_modrm_byte(),e.cpl&&e.trigger_gp(0),e.modrm_byte>>3&7){case 0:e.write_reg_e32(e.cr[0]);break;case 2:e.write_reg_e32(e.cr[2]);break;case 3:e.write_reg_e32(e.cr[3]);break;case 4:e.write_reg_e32(e.cr[4]);break;default:dbg_log(e.modrm_byte>>3&7),dbg_assert(!1),e.trigger_ud()}},t[33]=function(e){e.read_modrm_byte(),e.cpl&&e.trigger_gp(0);var t=e.modrm_byte>>3&7;e.cr[4]&CR4_DE&&(4===t||5===t)&&(dbg_log("#ud mov dreg 4/5 with cr4.DE set",LOG_CPU),e.trigger_ud()),e.reg32s[7&e.modrm_byte]=e.dreg[t]},t[34]=function(e){e.read_modrm_byte(),e.cpl&&e.trigger_gp(0);var t=e.read_reg_e32s();switch(e.modrm_byte>>3&7){case 0:e.set_cr0(t);break;case 2:e.cr[2]=t;break;case 3:t&=-4072,dbg_assert(0==(4095&t),"TODO"),e.cr[3]=t,e.clear_tlb();break;case 4:e.set_cr4(t);break;default:dbg_log(e.modrm_byte>>3&7),dbg_assert(!1),e.trigger_ud()}},t[35]=function(e){e.read_modrm_byte(),e.cpl&&e.trigger_gp(0);var t=e.modrm_byte>>3&7;e.cr[4]&CR4_DE&&(4===t||5===t)&&(dbg_log("#ud mov dreg 4/5 with cr4.DE set",LOG_CPU),e.trigger_ud()),e.dreg[t]=e.read_reg_e32s()},t[36]=function(e){e.undefined_instruction()},t[37]=function(e){e.undefined_instruction()},t[38]=function(e){e.undefined_instruction()},t[39]=function(e){e.undefined_instruction()},t[40]=function(e){dbg_assert(0==(e.prefixes&(PREFIX_MASK_REP|PREFIX_MASK_OPSIZE))),e.task_switch_test_mmx(),e.read_modrm_byte();var t=e.read_xmm_mem128s();e.write_xmm128s(t[0],t[1],t[2],t[3])},t[41]=function(e){if(e.task_switch_test_mmx(),e.read_modrm_byte(),(e.prefixes&(PREFIX_MASK_REP|PREFIX_MASK_OPSIZE))===PREFIX_MASK_OPSIZE){var t=e.read_xmm128s();dbg_assert(192>e.modrm_byte);var s=e.modrm_resolve(e.modrm_byte)}else dbg_assert(0==(e.prefixes&(PREFIX_MASK_REP|PREFIX_MASK_OPSIZE))),t=e.read_xmm128s(),dbg_assert(192>e.modrm_byte),s=e.modrm_resolve(e.modrm_byte);e.safe_write128(s,t[0],t[1],t[2],t[3])},t[42]=function(e){e.unimplemented_sse()},t[43]=function(e){e.unimplemented_sse()},t[44]=function(e){e.unimplemented_sse()},t[45]=function(e){e.unimplemented_sse()},t[46]=function(e){e.unimplemented_sse()},t[47]=function(e){e.unimplemented_sse()},t[48]=function(e){e.cpl&&e.trigger_gp(0);var t=e.reg32s[reg_ecx],s=e.reg32s[reg_eax],r=e.reg32s[reg_edx];switch(t!==IA32_SYSENTER_ESP&&dbg_log("wrmsr ecx="+h(t>>>0,8)+" data="+h(r>>>0,8)+":"+h(s>>>0,8),LOG_CPU),t){case IA32_SYSENTER_CS:e.sysenter_cs=65535&s;break;case IA32_SYSENTER_EIP:e.sysenter_eip=s;break;case IA32_SYSENTER_ESP:e.sysenter_esp=s;break;case IA32_APIC_BASE_MSR:dbg_assert(0===r,"Changing APIC address (high 32 bits) not supported"),dbg_assert((s&~(IA32_APIC_BASE_BSP|IA32_APIC_BASE_EXTD|IA32_APIC_BASE_EN))>>>0===APIC_ADDRESS,"Changing APIC address not supported"),dbg_assert(0==(s&IA32_APIC_BASE_EXTD),"x2apic not supported"),e.apic_enabled=(s&IA32_APIC_BASE_EN)===IA32_APIC_BASE_EN;break;case IA32_TIME_STAMP_COUNTER:t=(s>>>0)+4294967296*(r>>>0),e.tsc_offset=v86.microtick()-t/TSC_RATE;break;case IA32_BIOS_SIGN_ID:break;case IA32_MISC_ENABLE:dbg_log("IA32_MISC_ENABLE="+h(s>>>0,8),LOG_CPU);break;case IA32_MCG_CAP:break;case IA32_KERNEL_GS_BASE:dbg_log("GS Base written",LOG_CPU);break;default:dbg_assert(!1,"Unknown msr: "+h(t>>>0,8))}},t[49]=function(e){if(e.cpl&&e.cr[4]&CR4_TSD)e.trigger_gp(0);else{var t=v86.microtick()-e.tsc_offset;dbg_assert(isFinite(t),"non-finite tsc: "+t),e.reg32s[reg_eax]=t*TSC_RATE,e.reg32s[reg_edx]=TSC_RATE/4294967296*t}},t[50]=function(e){e.cpl&&e.trigger_gp(0);var t=e.reg32s[reg_ecx];dbg_log("rdmsr ecx="+h(t>>>0,8),LOG_CPU);var s=0,r=0;switch(t){case IA32_SYSENTER_CS:s=e.sysenter_cs;break;case IA32_SYSENTER_EIP:s=e.sysenter_eip;break;case IA32_SYSENTER_ESP:s=e.sysenter_esp;break;case IA32_TIME_STAMP_COUNTER:t=v86.microtick()-e.tsc_offset,s=t*TSC_RATE,r=TSC_RATE/4294967296*t;break;case IA32_PLATFORM_ID:break;case IA32_APIC_BASE_MSR:ENABLE_ACPI&&(s=APIC_ADDRESS,e.apic_enabled&&(s|=IA32_APIC_BASE_EN));break;case IA32_BIOS_SIGN_ID:break;case IA32_MISC_ENABLE:break;case IA32_RTIT_CTL:break;case MSR_SMI_COUNT:break;case IA32_MCG_CAP:break;case MSR_PKG_C2_RESIDENCY:break;case MSR_EBC_FREQUENCY_ID:s=16777216;break;default:dbg_assert(!1,"Unknown msr: "+h(t>>>0,8))}e.reg32s[reg_eax]=s,e.reg32s[reg_edx]=r},t[51]=function(e){e.todo()},t[52]=function(e){var t=65532&e.sysenter_cs;e.protected_mode&&0!==t||e.trigger_gp(0),e.flags=e.flags&~flag_vm&~flag_interrupt,e.instruction_pointer=e.sysenter_eip,e.reg32s[reg_esp]=e.sysenter_esp,e.sreg[reg_cs]=t,e.segment_is_null[reg_cs]=0,e.segment_limits[reg_cs]=-1,e.segment_offsets[reg_cs]=0,e.update_cs_size(!0),e.cpl=0,e.cpl_changed(),e.sreg[reg_ss]=t+8,e.segment_is_null[reg_ss]=0,e.segment_limits[reg_ss]=-1,e.segment_offsets[reg_ss]=0,e.stack_size_32=!0,e.diverged()},t[53]=function(e){var t=65532&e.sysenter_cs;e.protected_mode&&!e.cpl&&0!==t||e.trigger_gp(0),e.instruction_pointer=e.reg32s[reg_edx],e.reg32s[reg_esp]=e.reg32s[reg_ecx],e.sreg[reg_cs]=t+16|3,e.segment_is_null[reg_cs]=0,e.segment_limits[reg_cs]=-1,e.segment_offsets[reg_cs]=0,e.update_cs_size(!0),e.cpl=3,e.cpl_changed(),e.sreg[reg_ss]=t+24|3,e.segment_is_null[reg_ss]=0,e.segment_limits[reg_ss]=-1,e.segment_offsets[reg_ss]=0,e.stack_size_32=!0,e.diverged()},t[54]=function(e){e.undefined_instruction()},t[55]=function(e){e.todo()},t[56]=function(e){e.unimplemented_sse()},t[57]=function(e){e.unimplemented_sse()},t[58]=function(e){e.unimplemented_sse()},t[59]=function(e){e.unimplemented_sse()},t[60]=function(e){e.unimplemented_sse()},t[61]=function(e){e.unimplemented_sse()},t[62]=function(e){e.unimplemented_sse()},t[63]=function(e){e.unimplemented_sse()},t16[64]=function(e){e.read_modrm_byte(),e.cmovcc16(e.test_o())},t32[64]=function(e){e.read_modrm_byte(),e.cmovcc32(e.test_o())},t16[65]=function(e){e.read_modrm_byte(),e.cmovcc16(!e.test_o())},t32[65]=function(e){e.read_modrm_byte(),e.cmovcc32(!e.test_o())},t16[66]=function(e){e.read_modrm_byte(),e.cmovcc16(e.test_b())},t32[66]=function(e){e.read_modrm_byte(),e.cmovcc32(e.test_b())},t16[67]=function(e){e.read_modrm_byte(),e.cmovcc16(!e.test_b())},t32[67]=function(e){e.read_modrm_byte(),e.cmovcc32(!e.test_b())},t16[68]=function(e){e.read_modrm_byte(),e.cmovcc16(e.test_z())},t32[68]=function(e){e.read_modrm_byte(),e.cmovcc32(e.test_z())},t16[69]=function(e){e.read_modrm_byte(),e.cmovcc16(!e.test_z())},t32[69]=function(e){e.read_modrm_byte(),e.cmovcc32(!e.test_z())},t16[70]=function(e){e.read_modrm_byte(),e.cmovcc16(e.test_be())},t32[70]=function(e){e.read_modrm_byte(),e.cmovcc32(e.test_be())},t16[71]=function(e){e.read_modrm_byte(),e.cmovcc16(!e.test_be())},t32[71]=function(e){e.read_modrm_byte(),e.cmovcc32(!e.test_be())},t16[72]=function(e){e.read_modrm_byte(), +e.cmovcc16(e.test_s())},t32[72]=function(e){e.read_modrm_byte(),e.cmovcc32(e.test_s())},t16[73]=function(e){e.read_modrm_byte(),e.cmovcc16(!e.test_s())},t32[73]=function(e){e.read_modrm_byte(),e.cmovcc32(!e.test_s())},t16[74]=function(e){e.read_modrm_byte(),e.cmovcc16(e.test_p())},t32[74]=function(e){e.read_modrm_byte(),e.cmovcc32(e.test_p())},t16[75]=function(e){e.read_modrm_byte(),e.cmovcc16(!e.test_p())},t32[75]=function(e){e.read_modrm_byte(),e.cmovcc32(!e.test_p())},t16[76]=function(e){e.read_modrm_byte(),e.cmovcc16(e.test_l())},t32[76]=function(e){e.read_modrm_byte(),e.cmovcc32(e.test_l())},t16[77]=function(e){e.read_modrm_byte(),e.cmovcc16(!e.test_l())},t32[77]=function(e){e.read_modrm_byte(),e.cmovcc32(!e.test_l())},t16[78]=function(e){e.read_modrm_byte(),e.cmovcc16(e.test_le())},t32[78]=function(e){e.read_modrm_byte(),e.cmovcc32(e.test_le())},t16[79]=function(e){e.read_modrm_byte(),e.cmovcc16(!e.test_le())},t32[79]=function(e){e.read_modrm_byte(),e.cmovcc32(!e.test_le())},t[80]=function(e){e.unimplemented_sse()},t[81]=function(e){e.unimplemented_sse()},t[82]=function(e){e.unimplemented_sse()},t[83]=function(e){e.unimplemented_sse()},t[84]=function(e){e.unimplemented_sse()},t[85]=function(e){e.unimplemented_sse()},t[86]=function(e){e.unimplemented_sse()},t[87]=function(e){e.task_switch_test_mmx(),e.read_modrm_byte();var t=e.read_xmm_mem128s(),s=e.read_xmm128s();e.write_xmm128s(t[0]^s[0],t[1]^s[1],t[2]^s[2],t[3]^s[3])},t[88]=function(e){e.unimplemented_sse()},t[89]=function(e){e.unimplemented_sse()},t[90]=function(e){e.unimplemented_sse()},t[91]=function(e){e.unimplemented_sse()},t[92]=function(e){e.unimplemented_sse()},t[93]=function(e){e.unimplemented_sse()},t[94]=function(e){e.unimplemented_sse()},t[95]=function(e){e.unimplemented_sse()},t[96]=function(e){if(e.task_switch_test_mmx(),e.read_modrm_byte(),(e.prefixes&(PREFIX_MASK_REP|PREFIX_MASK_OPSIZE))==PREFIX_MASK_OPSIZE){var t=e.read_xmm_mem64s();t=new Uint8Array(t.buffer);var s=e.read_xmm64s();s=new Uint8Array(s.buffer),e.write_xmm128s(s[0]|t[0]<<8|s[1]<<16|t[1]<<24,s[2]|t[2]<<8|s[3]<<16|t[3]<<24,s[4]|t[4]<<8|s[5]<<16|t[5]<<24,s[6]|t[6]<<8|s[7]<<16|t[7]<<24)}else dbg_assert(0==(e.prefixes&(PREFIX_MASK_REP|PREFIX_MASK_OPSIZE))),t=e.read_mmx_mem32s(),s=e.reg_mmxs[2*(e.modrm_byte>>3&7)],e.write_mmx64s(255&s|(255&t)<<8|(s>>8&255)<<16|(t>>8&255)<<24,s>>16&255|(t>>16&255)<<8|s>>>24<<16|t>>>24<<24)},t[97]=function(e){if(e.task_switch_test_mmx(),e.read_modrm_byte(),(e.prefixes&(PREFIX_MASK_REP|PREFIX_MASK_OPSIZE))==PREFIX_MASK_OPSIZE){var t=e.read_xmm_mem64s();t=new Uint16Array(t.buffer);var s=e.read_xmm64s();s=new Uint16Array(s.buffer),e.write_xmm128s(s[0]|t[0]<<16,s[1]|t[1]<<16,s[2]|t[2]<<16,s[3]|t[3]<<16)}else dbg_assert(0==(e.prefixes&(PREFIX_MASK_REP|PREFIX_MASK_OPSIZE))),t=e.read_mmx_mem32s(),s=e.reg_mmxs[2*(e.modrm_byte>>3&7)],e.write_mmx64s(65535&s|(65535&t)<<16,s>>>16|t>>>16<<16)},t[98]=function(e){dbg_assert(0==(e.prefixes&(PREFIX_MASK_REP|PREFIX_MASK_OPSIZE))),e.task_switch_test_mmx(),e.read_modrm_byte();var t=e.read_mmx_mem32s();e.write_mmx64s(e.reg_mmxs[2*(e.modrm_byte>>3&7)],t)},t[99]=function(e){dbg_assert(0==(e.prefixes&(PREFIX_MASK_REP|PREFIX_MASK_OPSIZE))),e.task_switch_test_mmx(),e.read_modrm_byte();var t=e.read_mmx_mem64s(),s=e.reg_mmxs[2*(e.modrm_byte>>3&7)],r=e.reg_mmxs[2*(e.modrm_byte>>3&7)+1],i=0|e.saturate_sw_to_sb(65535&s);i|=e.saturate_sw_to_sb(s>>>16)<<8,i|=e.saturate_sw_to_sb(65535&r)<<16,i|=e.saturate_sw_to_sb(r>>>16)<<24,s=0|e.saturate_sw_to_sb(65535&t[0]),s|=e.saturate_sw_to_sb(t[0]>>>16)<<8,s|=e.saturate_sw_to_sb(65535&t[1])<<16,s|=e.saturate_sw_to_sb(t[1]>>>16)<<24,e.write_mmx64s(i,s)},t[100]=function(e){dbg_assert(0==(e.prefixes&(PREFIX_MASK_REP|PREFIX_MASK_OPSIZE))),e.task_switch_test_mmx(),e.read_modrm_byte();var t=e.read_mmx_mem64s();t=new Int8Array(t.buffer);var s=8*(e.modrm_byte>>3&7),r=e.reg_mmx8s;e.write_mmx64s((r[s]>t[0]?255:0)|(r[s+1]>t[1]?255:0)<<8|(r[s+2]>t[2]?255:0)<<16|(r[s+3]>t[3]?255:0)<<24,(r[s+4]>t[4]?255:0)|(r[s+5]>t[5]?255:0)<<8|(r[s+6]>t[6]?255:0)<<16|(r[s+7]>t[7]?255:0)<<24)},t[101]=function(e){dbg_assert(0==(e.prefixes&(PREFIX_MASK_REP|PREFIX_MASK_OPSIZE))),e.task_switch_test_mmx(),e.read_modrm_byte();var t=e.read_mmx_mem64s(),s=e.reg_mmxs[2*(e.modrm_byte>>3&7)],r=e.reg_mmxs[2*(e.modrm_byte>>3&7)+1];e.write_mmx64s((s<<16>>16>t[0]<<16>>16?65535:0)|(s>>16>t[0]>>16?65535:0)<<16,(r<<16>>16>t[1]<<16>>16?65535:0)|(r>>16>t[1]>>16?65535:0)<<16)},t[102]=function(e){dbg_assert(0==(e.prefixes&(PREFIX_MASK_REP|PREFIX_MASK_OPSIZE))),e.task_switch_test_mmx(),e.read_modrm_byte();var t=e.read_mmx_mem64s();e.write_mmx64s(e.reg_mmxs[2*(e.modrm_byte>>3&7)]>t[0]?-1:0,e.reg_mmxs[2*(e.modrm_byte>>3&7)+1]>t[1]?-1:0)},t[103]=function(e){if(e.task_switch_test_mmx(),e.read_modrm_byte(),(e.prefixes&(PREFIX_MASK_REP|PREFIX_MASK_OPSIZE))==PREFIX_MASK_OPSIZE){var t=e.read_xmm_mem128s();t=new Int16Array(t.buffer);var s=e.read_xmm128s();s=new Int16Array(s.buffer);for(var r=e.create_atom128s(0,0,0,0),i=new Uint8Array(r.buffer),_=0;8>_;_++)i[_]=e.saturate_sw_to_ub(s[_]),i[8|_]=e.saturate_sw_to_ub(t[_]);e.write_xmm128s(r[0],r[1],r[2],r[3])}else dbg_assert(0==(e.prefixes&(PREFIX_MASK_REP|PREFIX_MASK_OPSIZE))),t=e.read_mmx_mem64s(),r=e.reg_mmxs[2*(e.modrm_byte>>3&7)],i=e.reg_mmxs[2*(e.modrm_byte>>3&7)+1],s=0|e.saturate_sw_to_ub(65535&r),s|=e.saturate_sw_to_ub(r>>>16)<<8,s|=e.saturate_sw_to_ub(65535&i)<<16,s|=e.saturate_sw_to_ub(i>>>16)<<24,r=0|e.saturate_sw_to_ub(65535&t[0]),r|=e.saturate_sw_to_ub(t[0]>>>16)<<8,r|=e.saturate_sw_to_ub(65535&t[1])<<16,r|=e.saturate_sw_to_ub(t[1]>>>16)<<24,e.write_mmx64s(s,r)},t[104]=function(e){if(e.task_switch_test_mmx(),e.read_modrm_byte(),(e.prefixes&(PREFIX_MASK_REP|PREFIX_MASK_OPSIZE))==PREFIX_MASK_OPSIZE){var t=e.read_xmm_mem128s();t=new Uint8Array(t.buffer);var s=e.read_xmm128s();s=new Uint8Array(s.buffer),e.write_xmm128s(s[8]|t[8]<<8|s[9]<<16|t[9]<<24,s[10]|t[10]<<8|s[11]<<16|t[11]<<24,s[12]|t[12]<<8|s[13]<<16|t[13]<<24,s[14]|t[14]<<8|s[15]<<16|t[15]<<24)}else dbg_assert(0==(e.prefixes&(PREFIX_MASK_REP|PREFIX_MASK_OPSIZE))),t=e.read_mmx_mem64s(),s=e.reg_mmxs[2*(e.modrm_byte>>3&7)+1],e.write_mmx64s(255&s|(255&t[1])<<8|(s>>8&255)<<16|(t[1]>>8&255)<<24,s>>16&255|(t[1]>>16&255)<<8|s>>>24<<16|t[1]>>>24<<24)},t[105]=function(e){dbg_assert(0==(e.prefixes&(PREFIX_MASK_REP|PREFIX_MASK_OPSIZE))),e.task_switch_test_mmx(),e.read_modrm_byte();var t=e.read_mmx_mem64s(),s=e.reg_mmxs[2*(e.modrm_byte>>3&7)+1];e.write_mmx64s(65535&s|(65535&t[1])<<16,s>>>16|t[1]>>>16<<16)},t[106]=function(e){dbg_assert(0==(e.prefixes&(PREFIX_MASK_REP|PREFIX_MASK_OPSIZE))),e.task_switch_test_mmx(),e.read_modrm_byte();var t=e.read_mmx_mem64s();e.write_mmx64s(e.reg_mmxs[2*(e.modrm_byte>>3&7)+1],t[1])},t[107]=function(e){dbg_assert(0==(e.prefixes&(PREFIX_MASK_REP|PREFIX_MASK_OPSIZE))),e.task_switch_test_mmx(),e.read_modrm_byte();var t=e.read_mmx_mem64s(),s=e.reg_mmxs[2*(e.modrm_byte>>3&7)+1],r=0|e.saturate_sd_to_sw(e.reg_mmxs[2*(e.modrm_byte>>3&7)]);r|=e.saturate_sd_to_sw(s)<<16,s=0|e.saturate_sd_to_sw(t[0]),s|=e.saturate_sd_to_sw(t[1])<<16,e.write_mmx64s(r,s)},t[108]=function(e){e.unimplemented_sse()},t[109]=function(e){e.unimplemented_sse()},t[110]=function(e){if(e.task_switch_test_mmx(),e.read_modrm_byte(),(e.prefixes&(PREFIX_MASK_REP|PREFIX_MASK_OPSIZE))===PREFIX_MASK_OPSIZE){var t=e.read_e32s();e.write_xmm128s(t,0,0,0)}else dbg_assert(0==(e.prefixes&(PREFIX_MASK_REP|PREFIX_MASK_OPSIZE))),t=e.read_e32s(),e.write_mmx64s(t,0)},t[111]=function(e){if(e.task_switch_test_mmx(),e.read_modrm_byte(),(e.prefixes&(PREFIX_MASK_REP|PREFIX_MASK_OPSIZE))==PREFIX_MASK_OPSIZE){var t=e.read_xmm_mem128s();e.write_xmm128s(t[0],t[1],t[2],t[3])}else(e.prefixes&(PREFIX_MASK_REP|PREFIX_MASK_OPSIZE))==PREFIX_REPZ?(t=e.read_xmm_mem128s_unaligned(),e.write_xmm128s(t[0],t[1],t[2],t[3])):(dbg_assert(0==(e.prefixes&(PREFIX_MASK_REP|PREFIX_MASK_OPSIZE))),t=e.read_mmx_mem64s(),e.write_mmx64s(t[0],t[1]))},t[112]=function(e){if(e.task_switch_test_mmx(),e.read_modrm_byte(),(e.prefixes&(PREFIX_MASK_REP|PREFIX_MASK_OPSIZE))===PREFIX_MASK_OPSIZE){var t=e.read_xmm_mem128s(),s=e.read_op8();e.write_xmm128s(t[3&s],t[s>>2&3],t[s>>4&3],t[s>>6&3])}else if((e.prefixes&(PREFIX_MASK_REP|PREFIX_MASK_OPSIZE))===PREFIX_REPNZ){t=e.read_xmm_mem128s(),s=new Uint16Array(t.buffer);var r=e.read_op8();e.write_xmm128s(s[3&r]|s[r>>2&3]<<16,s[r>>4&3]|s[r>>6&3]<<16,t[2],t[3])}else if((e.prefixes&(PREFIX_MASK_REP|PREFIX_MASK_OPSIZE))===PREFIX_REPZ)t=e.read_xmm_mem128s(),s=new Uint16Array(t.buffer),r=e.read_op8(),e.write_xmm128s(t[0],t[1],s[3&r|4]|s[r>>2&3|4]<<16,s[r>>4&3|4]|s[r>>6&3|4]<<16);else{dbg_assert(0==(e.prefixes&(PREFIX_MASK_REP|PREFIX_MASK_OPSIZE))),t=e.read_mmx_mem64s();var i=e.read_op8();s=3&i,r=i>>2&3;var _=i>>4&3;i>>>=6,e.write_mmx64s(t[s>>1]>>>16*(1&s)&65535|t[r>>1]>>>16*(1&r)<<16,t[_>>1]>>>16*(1&_)&65535|t[i>>1]>>>16*(1&i)<<16)}},t[113]=function(e){switch(e.read_modrm_byte(),dbg_assert(0==(e.prefixes&(PREFIX_MASK_REP|PREFIX_MASK_OPSIZE))),e.task_switch_test_mmx(),192>e.modrm_byte&&e.trigger_ud(),e.modrm_byte>>3&7){case 2:var t=e.read_op8(),s=7&e.modrm_byte,r=e.reg_mmxs[2*s],i=e.reg_mmxs[2*s+1],_=0,a=0;15>=t&&(_=(65535&r)>>>t|r>>>16>>>t<<16,a=(65535&i)>>>t|i>>>16>>>t<<16),e.reg_mmxs[2*s]=_,e.reg_mmxs[2*s+1]=a;break;case 4:t=e.read_op8(),s=7&e.modrm_byte,r=e.reg_mmxs[2*s],i=e.reg_mmxs[2*s+1],15>16>>t&65535|(r>>16>>t&65535)<<16,e.reg_mmxs[2*s+1]=i<<16>>16>>t&65535|(i>>16>>t&65535)<<16;break;case 6:t=e.read_op8(),s=7&e.modrm_byte,r=e.reg_mmxs[2*s],i=e.reg_mmxs[2*s+1],a=_=0,15>=t&&(_=(65535&r)<>>16<>>16<e.modrm_byte&&e.trigger_ud(),e.modrm_byte>>3&7){case 2:var t=e.read_op8(),s=7&e.modrm_byte,r=e.reg_mmxs[2*s],i=e.reg_mmxs[2*s+1],_=0,a=0;31>=t&&(_=r>>>t,a=i>>>t),e.reg_mmxs[2*s]=_,e.reg_mmxs[2*s+1]=a;break;case 4:t=e.read_op8(),s=7&e.modrm_byte,r=e.reg_mmxs[2*s],i=e.reg_mmxs[2*s+1],31>t,e.reg_mmxs[2*s+1]=i>>t;break;case 6:t=e.read_op8(),s=7&e.modrm_byte,r=e.reg_mmxs[2*s],i=e.reg_mmxs[2*s+1],a=_=0,31>=t&&(_=r<e.modrm_byte&&e.trigger_ud(),e.modrm_byte>>3&7){case 2:var t=e.read_op8(),s=7&e.modrm_byte,r=e.reg_mmxs[2*s],i=e.reg_mmxs[2*s+1],_=0,a=0;31>=t?(_=r>>>t|i<<32-t,a=i>>>t):63>=t&&(_=i>>>(31&t),a=0),e.reg_mmxs[2*s]=_,e.reg_mmxs[2*s+1]=a;break;case 6:t=e.read_op8(),s=7&e.modrm_byte,r=e.reg_mmxs[2*s],i=e.reg_mmxs[2*s+1],a=_=0,31>=t?(_=r<>>32-t):63>=t&&(a=r<<(31&t),_=0),e.reg_mmxs[2*s]=_,e.reg_mmxs[2*s+1]=a;break;default:e.unimplemented_sse()}},t[116]=function(e){if(e.task_switch_test_mmx(),e.read_modrm_byte(),(e.prefixes&(PREFIX_MASK_REP|PREFIX_MASK_OPSIZE))==PREFIX_MASK_OPSIZE){var t=e.read_xmm_mem128s();t=new Uint8Array(t.buffer);var s=e.read_xmm128s();s=new Uint8Array(s.buffer);for(var r=e.create_atom128s(0,0,0,0),i=new Uint8Array(r.buffer),_=0;16>_;_++)i[_]=t[_]===s[_]?255:0;e.write_xmm128s(r[0],r[1],r[2],r[3])}else dbg_assert(0==(e.prefixes&(PREFIX_MASK_REP|PREFIX_MASK_OPSIZE))),t=e.read_mmx_mem64s(),t=new Int8Array(t.buffer),s=8*(e.modrm_byte>>3&7),r=e.reg_mmx8s,e.write_mmx64s((r[s]===t[0]?255:0)|(r[s+1]===t[1]?255:0)<<8|(r[s+2]===t[2]?255:0)<<16|(r[s+3]===t[3]?255:0)<<24,(r[s+4]===t[4]?255:0)|(r[s+5]===t[5]?255:0)<<8|(r[s+6]===t[6]?255:0)<<16|(r[s+7]===t[7]?255:0)<<24)},t[117]=function(e){dbg_assert(0==(e.prefixes&(PREFIX_MASK_REP|PREFIX_MASK_OPSIZE))),e.task_switch_test_mmx(),e.read_modrm_byte();var t=e.read_mmx_mem64s(),s=e.reg_mmxs[2*(e.modrm_byte>>3&7)],r=e.reg_mmxs[2*(e.modrm_byte>>3&7)+1];e.write_mmx64s(((65535&s)==(65535&t[0])?65535:0)|((4294901760&s)==(4294901760&t[0])?65535:0)<<16,((65535&r)==(65535&t[1])?65535:0)|((4294901760&r)==(4294901760&t[1])?65535:0)<<16)},t[118]=function(e){if(e.task_switch_test_mmx(),e.read_modrm_byte(),(e.prefixes&(PREFIX_MASK_REP|PREFIX_MASK_OPSIZE))==PREFIX_MASK_OPSIZE){var t=e.read_xmm_mem128s(),s=e.read_xmm128s();e.write_xmm128s(t[0]===s[0]?-1:0,t[1]===s[1]?-1:0,t[2]===s[2]?-1:0,t[3]===s[3]?-1:0)}else dbg_assert(0==(e.prefixes&(PREFIX_MASK_REP|PREFIX_MASK_OPSIZE))),t=e.read_mmx_mem64s(),e.write_mmx64s(e.reg_mmxs[2*(e.modrm_byte>>3&7)]===t[0]?-1:0,e.reg_mmxs[2*(e.modrm_byte>>3&7)+1]===t[1]?-1:0)},t[119]=function(e){dbg_assert(0==(e.prefixes&(PREFIX_MASK_REP|PREFIX_MASK_OPSIZE))),e.task_switch_test_mmx(),e.fpu.stack_empty=255},t[120]=function(e){e.unimplemented_sse()},t[121]=function(e){e.unimplemented_sse()},t[122]=function(e){e.unimplemented_sse()},t[123]=function(e){e.unimplemented_sse()},t[124]=function(e){e.unimplemented_sse()},t[125]=function(e){e.unimplemented_sse()},t[126]=function(e){if(e.task_switch_test_mmx(),e.read_modrm_byte(),(e.prefixes&(PREFIX_MASK_REP|PREFIX_MASK_OPSIZE))===PREFIX_REPZ){var t=e.read_xmm_mem64s();e.write_xmm128s(t[0],t[1],0,0)}else(e.prefixes&(PREFIX_MASK_REP|PREFIX_MASK_OPSIZE))==PREFIX_MASK_OPSIZE?t=e.read_xmm64s():(dbg_assert(0==(e.prefixes&(PREFIX_MASK_REP|PREFIX_MASK_OPSIZE))),t=e.read_mmx64s()),e.set_e32(t[0])},t[127]=function(e){if(e.task_switch_test_mmx(),e.read_modrm_byte(),(e.prefixes&(PREFIX_MASK_REP|PREFIX_MASK_OPSIZE))==PREFIX_REPZ){var t=e.read_xmm128s();dbg_assert(192>e.modrm_byte);var s=e.modrm_resolve(e.modrm_byte);e.safe_write128(s,t[0],t[1],t[2],t[3])}else(e.prefixes&(PREFIX_MASK_REP|PREFIX_MASK_OPSIZE))==PREFIX_MASK_OPSIZE?(t=e.read_xmm128s(),dbg_assert(192>e.modrm_byte),s=e.modrm_resolve(e.modrm_byte),e.safe_write128(s,t[0],t[1],t[2],t[3])):(dbg_assert(0==(e.prefixes&(PREFIX_MASK_REP|PREFIX_MASK_OPSIZE))),t=e.read_mmx64s(),e.set_mmx_mem64s(t[0],t[1]))},t16[128]=function(e){e.jmpcc16(e.test_o())},t32[128]=function(e){e.jmpcc32(e.test_o())},t16[129]=function(e){e.jmpcc16(!e.test_o())},t32[129]=function(e){e.jmpcc32(!e.test_o())},t16[130]=function(e){e.jmpcc16(e.test_b())},t32[130]=function(e){e.jmpcc32(e.test_b())},t16[131]=function(e){e.jmpcc16(!e.test_b())},t32[131]=function(e){e.jmpcc32(!e.test_b())},t16[132]=function(e){e.jmpcc16(e.test_z())},t32[132]=function(e){e.jmpcc32(e.test_z())},t16[133]=function(e){e.jmpcc16(!e.test_z())},t32[133]=function(e){e.jmpcc32(!e.test_z())},t16[134]=function(e){e.jmpcc16(e.test_be())},t32[134]=function(e){e.jmpcc32(e.test_be())},t16[135]=function(e){e.jmpcc16(!e.test_be())},t32[135]=function(e){e.jmpcc32(!e.test_be())},t16[136]=function(e){e.jmpcc16(e.test_s())},t32[136]=function(e){e.jmpcc32(e.test_s())},t16[137]=function(e){e.jmpcc16(!e.test_s())},t32[137]=function(e){e.jmpcc32(!e.test_s())},t16[138]=function(e){e.jmpcc16(e.test_p())},t32[138]=function(e){e.jmpcc32(e.test_p())},t16[139]=function(e){e.jmpcc16(!e.test_p())},t32[139]=function(e){e.jmpcc32(!e.test_p())},t16[140]=function(e){e.jmpcc16(e.test_l())},t32[140]=function(e){e.jmpcc32(e.test_l())},t16[141]=function(e){e.jmpcc16(!e.test_l())},t32[141]=function(e){e.jmpcc32(!e.test_l())},t16[142]=function(e){e.jmpcc16(e.test_le())},t32[142]=function(e){e.jmpcc32(e.test_le())},t16[143]=function(e){e.jmpcc16(!e.test_le())},t32[143]=function(e){e.jmpcc32(!e.test_le())},t[144]=function(e){e.read_modrm_byte(),e.setcc(e.test_o())},t[145]=function(e){e.read_modrm_byte(),e.setcc(!e.test_o())},t[146]=function(e){e.read_modrm_byte(),e.setcc(e.test_b())},t[147]=function(e){e.read_modrm_byte(),e.setcc(!e.test_b())},t[148]=function(e){e.read_modrm_byte(),e.setcc(e.test_z())},t[149]=function(e){e.read_modrm_byte(),e.setcc(!e.test_z())},t[150]=function(e){e.read_modrm_byte(),e.setcc(e.test_be())},t[151]=function(e){e.read_modrm_byte(),e.setcc(!e.test_be())},t[152]=function(e){e.read_modrm_byte(),e.setcc(e.test_s())},t[153]=function(e){e.read_modrm_byte(),e.setcc(!e.test_s())},t[154]=function(e){e.read_modrm_byte(),e.setcc(e.test_p())},t[155]=function(e){e.read_modrm_byte(),e.setcc(!e.test_p())},t[156]=function(e){e.read_modrm_byte(),e.setcc(e.test_l())},t[157]=function(e){e.read_modrm_byte(),e.setcc(!e.test_l())},t[158]=function(e){e.read_modrm_byte(),e.setcc(e.test_le())},t[159]=function(e){e.read_modrm_byte(),e.setcc(!e.test_le())},t16[160]=function(e){e.push16(e.sreg[reg_fs])},t32[160]=function(e){e.push32(e.sreg[reg_fs])},t16[161]=function(e){e.switch_seg(reg_fs,e.safe_read16(e.get_stack_pointer(0))),e.adjust_stack_reg(2)};t32[161]=function(e){e.switch_seg(reg_fs,65535&e.safe_read32s(e.get_stack_pointer(0))),e.adjust_stack_reg(4)},t[162]=function(e){e.cpuid()},t16[163]=function(e){e.read_modrm_byte(),192>e.modrm_byte?e.bt_mem(e.modrm_resolve(e.modrm_byte),e.read_g16s()):e.bt_reg(e.read_reg_e16(),15&e.read_g16())},t32[163]=function(e){e.read_modrm_byte(),192>e.modrm_byte?e.bt_mem(e.modrm_resolve(e.modrm_byte),e.read_g32s()):e.bt_reg(e.read_reg_e32s(),31&e.read_g32s())},t16[164]=function(e){e.read_modrm_byte();var t=e.read_write_e16();e.write_e16(e.shld16(t,e.read_g16(),31&e.read_op8()))},t32[164]=function(e){e.read_modrm_byte();var t=e.read_write_e32();e.write_e32(e.shld32(t,e.read_g32s(),31&e.read_op8()))},t16[165]=function(e){e.read_modrm_byte();var t=e.read_write_e16();e.write_e16(e.shld16(t,e.read_g16(),31&e.reg8[reg_cl]))},t32[165]=function(e){e.read_modrm_byte();var t=e.read_write_e32();e.write_e32(e.shld32(t,e.read_g32s(),31&e.reg8[reg_cl]))},t[166]=function(e){e.trigger_ud()},t[167]=function(e){e.undefined_instruction()},t16[168]=function(e){e.push16(e.sreg[reg_gs])},t32[168]=function(e){e.push32(e.sreg[reg_gs])},t16[169]=function(e){e.switch_seg(reg_gs,e.safe_read16(e.get_stack_pointer(0))),e.adjust_stack_reg(2)},t32[169]=function(e){e.switch_seg(reg_gs,65535&e.safe_read32s(e.get_stack_pointer(0))),e.adjust_stack_reg(4)},t[170]=function(e){e.todo()},t16[171]=function(e){e.read_modrm_byte(),192>e.modrm_byte?e.bts_mem(e.modrm_resolve(e.modrm_byte),e.read_g16s()):e.write_reg_e16(e.bts_reg(e.read_reg_e16(),15&e.read_g16s()))},t32[171]=function(e){e.read_modrm_byte(),192>e.modrm_byte?e.bts_mem(e.modrm_resolve(e.modrm_byte),e.read_g32s()):e.write_reg_e32(e.bts_reg(e.read_reg_e32s(),31&e.read_g32s()))},t16[172]=function(e){e.read_modrm_byte();var t=e.read_write_e16();e.write_e16(e.shrd16(t,e.read_g16(),31&e.read_op8()))},t32[172]=function(e){e.read_modrm_byte();var t=e.read_write_e32();e.write_e32(e.shrd32(t,e.read_g32s(),31&e.read_op8()))},t16[173]=function(e){e.read_modrm_byte();var t=e.read_write_e16();e.write_e16(e.shrd16(t,e.read_g16(),31&e.reg8[reg_cl]))},t32[173]=function(e){e.read_modrm_byte();var t=e.read_write_e32();e.write_e32(e.shrd32(t,e.read_g32s(),31&e.reg8[reg_cl]))},t[174]=function(e){switch(e.read_modrm_byte(),e.prefixes&(PREFIX_MASK_REP|PREFIX_MASK_OPSIZE)&&e.todo(),e.modrm_byte>>3&7){case 0:192<=e.modrm_byte&&e.trigger_ud();var t=e.modrm_resolve(e.modrm_byte);e.fxsave(t);break;case 1:192<=e.modrm_byte&&e.trigger_ud(),t=e.modrm_resolve(e.modrm_byte),e.fxrstor(t);break;case 2:192<=e.modrm_byte&&e.trigger_ud(),t=e.modrm_resolve(e.modrm_byte),t=e.safe_read32s(t),t&~MXCSR_MASK&&(dbg_log("Invalid mxcsr bits: "+h((t&~MXCSR_MASK)>>>0,8)),e.trigger_gp(0)),e.mxcsr=t;break;case 3:192<=e.modrm_byte&&e.trigger_ud(),t=e.modrm_resolve(e.modrm_byte),e.safe_write32(t,e.mxcsr);break;case 5:dbg_assert(192<=e.modrm_byte,"Unexpected lfence encoding"),192>e.modrm_byte&&e.trigger_ud();break;case 6:dbg_assert(192<=e.modrm_byte,"Unexpected mfence encoding"),192>e.modrm_byte&&e.trigger_ud();break;case 7:dbg_assert(192<=e.modrm_byte,"Unexpected sfence encoding"),192>e.modrm_byte&&e.trigger_ud();break;default:dbg_log("missing "+(e.modrm_byte>>3&7),LOG_CPU),e.todo()}},t16[175]=function(e){e.read_modrm_byte();var t=e.read_e16s();e.write_g16(e.imul_reg16(e.read_g16s(),t))},t32[175]=function(e){e.read_modrm_byte();var t=e.read_e32s();e.write_g32(e.imul_reg32(e.read_g32s(),t))},t[176]=function(e){if(e.read_modrm_byte(),192>e.modrm_byte){var t=e.modrm_resolve(e.modrm_byte);e.writable_or_pagefault(t,1);var s=e.safe_read8(t)}else s=e.reg8[e.modrm_byte<<2&12|e.modrm_byte>>2&1];e.cmp8(e.reg8[reg_al],s),e.getzf()?192>e.modrm_byte?e.safe_write8(t,e.read_g8()):e.reg8[e.modrm_byte<<2&12|e.modrm_byte>>2&1]=e.read_g8():(192>e.modrm_byte&&e.safe_write8(t,s),e.reg8[reg_al]=s)},t16[177]=function(e){if(e.read_modrm_byte(),192>e.modrm_byte){var t=e.modrm_resolve(e.modrm_byte);e.writable_or_pagefault(t,2);var s=e.safe_read16(t)}else s=e.read_reg_e16();e.cmp16(e.reg16[reg_ax],s),e.getzf()?192>e.modrm_byte?e.safe_write16(t,e.read_g16()):e.write_reg_e16(e.read_g16()):(192>e.modrm_byte&&e.safe_write16(t,s),e.reg16[reg_ax]=s)},t32[177]=function(e){if(e.read_modrm_byte(),192>e.modrm_byte){var t=e.modrm_resolve(e.modrm_byte);e.writable_or_pagefault(t,4);var s=e.safe_read32s(t)}else s=e.read_reg_e32s();e.cmp32(e.reg32s[reg_eax],s),e.getzf()?192>e.modrm_byte?e.safe_write32(t,e.read_g32s()):e.write_reg_e32(e.read_g32s()):(192>e.modrm_byte&&e.safe_write32(t,s),e.reg32s[reg_eax]=s)},t16[178]=function(e){e.read_modrm_byte(),e.lss16(reg_ss)},t32[178]=function(e){e.read_modrm_byte(),e.lss32(reg_ss)},t16[179]=function(e){e.read_modrm_byte(),192>e.modrm_byte?e.btr_mem(e.modrm_resolve(e.modrm_byte),e.read_g16s()):e.write_reg_e16(e.btr_reg(e.read_reg_e16(),15&e.read_g16s()))},t32[179]=function(e){e.read_modrm_byte(),192>e.modrm_byte?e.btr_mem(e.modrm_resolve(e.modrm_byte),e.read_g32s()):e.write_reg_e32(e.btr_reg(e.read_reg_e32s(),31&e.read_g32s()))},t16[180]=function(e){e.read_modrm_byte(),e.lss16(reg_fs)},t32[180]=function(e){e.read_modrm_byte(),e.lss32(reg_fs)},t16[181]=function(e){e.read_modrm_byte(),e.lss16(reg_gs)},t32[181]=function(e){e.read_modrm_byte(),e.lss32(reg_gs)},t16[182]=function(e){e.read_modrm_byte();var t=e.read_e8();e.write_g16(t)},t32[182]=function(e){e.read_modrm_byte();var t=e.read_e8();e.write_g32(t)},t16[183]=function(e){e.read_modrm_byte(),dbg_assert(!1,"Possibly invalid encoding");var t=e.read_e16();e.write_g16(t)},t32[183]=function(e){e.read_modrm_byte();var t=e.read_e16();e.write_g32(t)},t16[184]=function(e){e.read_modrm_byte(),0==(e.prefixes&PREFIX_REPZ)&&e.trigger_ud();var t=e.read_e16();e.write_g16(e.popcnt(t))},t32[184]=function(e){e.read_modrm_byte(),0==(e.prefixes&PREFIX_REPZ)&&e.trigger_ud();var t=e.read_e32s();e.write_g32(e.popcnt(t))},t[185]=function(e){e.todo()},t16[186]=function(e){switch(e.read_modrm_byte(),e.modrm_byte>>3&7){case 4:192>e.modrm_byte?e.bt_mem(e.modrm_resolve(e.modrm_byte),15&e.read_op8()):e.bt_reg(e.read_reg_e16(),15&e.read_op8());break;case 5:192>e.modrm_byte?e.bts_mem(e.modrm_resolve(e.modrm_byte),15&e.read_op8()):e.write_reg_e16(e.bts_reg(e.read_reg_e16(),15&e.read_op8()));break;case 6:192>e.modrm_byte?e.btr_mem(e.modrm_resolve(e.modrm_byte),15&e.read_op8()):e.write_reg_e16(e.btr_reg(e.read_reg_e16(),15&e.read_op8()));break;case 7:192>e.modrm_byte?e.btc_mem(e.modrm_resolve(e.modrm_byte),15&e.read_op8()):e.write_reg_e16(e.btc_reg(e.read_reg_e16(),15&e.read_op8()));break;default:dbg_log(e.modrm_byte>>3&7),e.todo()}},t32[186]=function(e){switch(e.read_modrm_byte(),e.modrm_byte>>3&7){case 4:192>e.modrm_byte?e.bt_mem(e.modrm_resolve(e.modrm_byte),31&e.read_op8()):e.bt_reg(e.read_reg_e32s(),31&e.read_op8());break;case 5:192>e.modrm_byte?e.bts_mem(e.modrm_resolve(e.modrm_byte),31&e.read_op8()):e.write_reg_e32(e.bts_reg(e.read_reg_e32s(),31&e.read_op8()));break;case 6:192>e.modrm_byte?e.btr_mem(e.modrm_resolve(e.modrm_byte),31&e.read_op8()):e.write_reg_e32(e.btr_reg(e.read_reg_e32s(),31&e.read_op8()));break;case 7:192>e.modrm_byte?e.btc_mem(e.modrm_resolve(e.modrm_byte),31&e.read_op8()):e.write_reg_e32(e.btc_reg(e.read_reg_e32s(),31&e.read_op8()));break;default:dbg_log(e.modrm_byte>>3&7),e.todo()}},t16[187]=function(e){e.read_modrm_byte(),192>e.modrm_byte?e.btc_mem(e.modrm_resolve(e.modrm_byte),e.read_g16s()):e.write_reg_e16(e.btc_reg(e.read_reg_e16(),15&e.read_g16s()))},t32[187]=function(e){e.read_modrm_byte(),192>e.modrm_byte?e.btc_mem(e.modrm_resolve(e.modrm_byte),e.read_g32s()):e.write_reg_e32(e.btc_reg(e.read_reg_e32s(),31&e.read_g32s()))},t16[188]=function(e){e.read_modrm_byte();var t=e.read_e16();e.write_g16(e.bsf16(e.read_g16(),t))},t32[188]=function(e){e.read_modrm_byte();var t=e.read_e32s();e.write_g32(e.bsf32(e.read_g32s(),t))},t16[189]=function(e){e.read_modrm_byte();var t=e.read_e16();e.write_g16(e.bsr16(e.read_g16(),t))},t32[189]=function(e){e.read_modrm_byte();var t=e.read_e32s();e.write_g32(e.bsr32(e.read_g32s(),t))},t16[190]=function(e){e.read_modrm_byte();var t=e.read_e8s();e.write_g16(t)},t32[190]=function(e){e.read_modrm_byte();var t=e.read_e8s();e.write_g32(t)},t16[191]=function(e){e.read_modrm_byte(),dbg_assert(!1,"Possibly invalid encoding");var t=e.read_e16();e.write_g16(t)},t32[191]=function(e){e.read_modrm_byte();var t=e.read_e16s();e.write_g32(t)},t[192]=function(e){e.read_modrm_byte();var t=e.read_write_e8();e.write_e8(e.xadd8(t,e.modrm_byte>>1&12|e.modrm_byte>>5&1))},t16[193]=function(e){e.read_modrm_byte();var t=e.read_write_e16();e.write_e16(e.xadd16(t,e.modrm_byte>>2&14))},t32[193]=function(e){e.read_modrm_byte();var t=e.read_write_e32();e.write_e32(e.xadd32(t,e.modrm_byte>>3&7))},t[194]=function(e){e.unimplemented_sse()},t[195]=function(e){e.read_modrm_byte(),192<=e.modrm_byte&&e.trigger_ud(),e.set_e32(e.read_g32s())},t[196]=function(e){e.unimplemented_sse()},t[197]=function(e){e.unimplemented_sse()},t[198]=function(e){e.unimplemented_sse()},t[199]=function(e){switch(e.read_modrm_byte(),e.modrm_byte>>3&7){case 1:192<=e.modrm_byte&&e.trigger_ud();var t=e.modrm_resolve(e.modrm_byte);e.writable_or_pagefault(t,8);var s=e.safe_read32s(t),r=e.safe_read32s(t+4|0);e.reg32s[reg_eax]===s&&e.reg32s[reg_edx]===r?(e.flags|=flag_zero,e.safe_write32(t,e.reg32s[reg_ebx]),e.safe_write32(t+4|0,e.reg32s[reg_ecx])):(e.flags&=~flag_zero,e.reg32s[reg_eax]=s,e.reg32s[reg_edx]=r,e.safe_write32(t,s),e.safe_write32(t+4|0,r)),e.flags_changed&=~flag_zero;break;case 6:s=(t=v86util.has_rand_int())?v86util.get_rand_int():0,e.is_osize_32()?e.set_e32(s):e.set_e16(s),e.flags&=~flags_all,e.flags|=t,e.flags_changed=0;break;default:dbg_log(e.modrm_byte>>3&7,LOG_CPU),e.todo()}},t[200]=function(e){e.bswap(reg_eax)},t[201]=function(e){e.bswap(reg_ecx)},t[202]=function(e){e.bswap(reg_edx)},t[203]=function(e){e.bswap(reg_ebx)},t[204]=function(e){e.bswap(reg_esp)},t[205]=function(e){e.bswap(reg_ebp)},t[206]=function(e){e.bswap(reg_esi)},t[207]=function(e){e.bswap(reg_edi)},t[208]=function(e){e.unimplemented_sse()},t[209]=function(e){dbg_assert(0==(e.prefixes&(PREFIX_MASK_REP|PREFIX_MASK_OPSIZE))),e.task_switch_test_mmx(),e.read_modrm_byte();var t=e.read_mmx_mem64s(),s=e.reg_mmxs[2*(e.modrm_byte>>3&7)],r=e.reg_mmxs[2*(e.modrm_byte>>3&7)+1];t=t[0]>>>0;var i=0,_=0;15>=t&&(i=(65535&s)>>>t|s>>>16>>>t<<16,_=(65535&r)>>>t|r>>>16>>>t<<16),e.write_mmx64s(i,_)},t[210]=function(e){dbg_assert(0==(e.prefixes&(PREFIX_MASK_REP|PREFIX_MASK_OPSIZE))),e.task_switch_test_mmx(),e.read_modrm_byte();var t=e.read_mmx_mem64s(),s=e.reg_mmxs[2*(e.modrm_byte>>3&7)],r=e.reg_mmxs[2*(e.modrm_byte>>3&7)+1];t=t[0]>>>0;var i=0,_=0;31>=t&&(i=s>>>t,_=r>>>t),e.write_mmx64s(i,_)},t[211]=function(e){dbg_assert(0==(e.prefixes&(PREFIX_MASK_REP|PREFIX_MASK_OPSIZE))),e.task_switch_test_mmx(),e.read_modrm_byte();var t=e.read_mmx_mem64s(),s=e.reg_mmxs[2*(e.modrm_byte>>3&7)],r=e.reg_mmxs[2*(e.modrm_byte>>3&7)+1];if(0!==(t=t[0]>>>0)){var i=0,_=0;31>=t?(i=s>>>t|r<<32-t,_=r>>>t):63>=t&&(i=r>>>(31&t),_=0),e.write_mmx64s(i,_)}},t[212]=function(e){e.unimplemented_sse()},t[213]=function(e){if(e.task_switch_test_mmx(),e.read_modrm_byte(),(e.prefixes&(PREFIX_MASK_REP|PREFIX_MASK_OPSIZE))==PREFIX_MASK_OPSIZE){var t=e.read_xmm_mem128s();t=new Int16Array(t.buffer);var s=e.read_xmm128s();s=new Int16Array(s.buffer),e.write_xmm128s(t[0]*s[0]&65535|t[1]*s[1]<<16,t[2]*s[2]&65535|t[3]*s[3]<<16,t[4]*s[4]&65535|t[5]*s[5]<<16,t[6]*s[6]&65535|t[7]*s[7]<<16)}else{dbg_assert(0==(e.prefixes&(PREFIX_MASK_REP|PREFIX_MASK_OPSIZE))),t=e.read_mmx_mem64s(),s=e.reg_mmxs[2*(e.modrm_byte>>3&7)];var r=e.reg_mmxs[2*(e.modrm_byte>>3&7)+1];e.write_mmx64s((65535&s)*(65535&t[0])&65535|((s>>>16)*(t[0]>>>16)&65535)<<16,(65535&r)*(65535&t[1])&65535|((r>>>16)*(t[1]>>>16)&65535)<<16)}},t[214]=function(e){dbg_assert((e.prefixes&(PREFIX_MASK_REP|PREFIX_MASK_OPSIZE))===PREFIX_MASK_OPSIZE),e.task_switch_test_mmx(),e.read_modrm_byte();var t=e.read_xmm64s();dbg_assert(192>e.modrm_byte);var s=e.modrm_resolve(e.modrm_byte);e.safe_write64(s,t[0],t[1])},t[215]=function(e){dbg_assert((e.prefixes&(PREFIX_MASK_REP|PREFIX_MASK_OPSIZE))===PREFIX_MASK_OPSIZE),e.task_switch_test_mmx(),e.read_modrm_byte(),192>e.modrm_byte&&e.trigger_ud();var t=e.read_xmm_mem128s();t=new Uint8Array(t.buffer),e.write_g32(t[0]>>7<<0|t[1]>>7<<1|t[2]>>7<<2|t[3]>>7<<3|t[4]>>7<<4|t[5]>>7<<5|t[6]>>7<<6|t[7]>>7<<7|t[8]>>7<<8|t[9]>>7<<9|t[10]>>7<<10|t[11]>>7<<11|t[12]>>7<<12|t[13]>>7<<13|t[14]>>7<<14|t[15]>>7<<15)},t[216]=function(e){dbg_assert(0==(e.prefixes&(PREFIX_MASK_REP|PREFIX_MASK_OPSIZE))),e.task_switch_test_mmx(),e.read_modrm_byte();var t=e.read_mmx_mem64s(),s=new Uint8Array(t.buffer),r=8*(e.modrm_byte>>3&7),i=e.reg_mmx8;t=e.saturate_sd_to_ub(i[r]-s[0]);var _=e.saturate_sd_to_ub(i[r+1]-s[1]),a=e.saturate_sd_to_ub(i[r+2]-s[2]),o=e.saturate_sd_to_ub(i[r+3]-s[3]),n=e.saturate_sd_to_ub(i[r+4]-s[4]),d=e.saturate_sd_to_ub(i[r+5]-s[5]),h=e.saturate_sd_to_ub(i[r+6]-s[6]);s=e.saturate_sd_to_ub(i[r+7]-s[7]),e.write_mmx64s(t|_<<8|a<<16|o<<24,n|d<<8|h<<16|s<<24)},t[217]=function(e){dbg_assert(0==(e.prefixes&(PREFIX_MASK_REP|PREFIX_MASK_OPSIZE))),e.task_switch_test_mmx(),e.read_modrm_byte();var t=e.read_mmx_mem64s(),s=e.reg_mmxs[2*(e.modrm_byte>>3&7)],r=e.reg_mmxs[2*(e.modrm_byte>>3&7)+1],i=(65535&s)-(65535&t[0]);s=(s>>>16)-(t[0]>>>16),0>i&&(i=0),0>s&&(s=0);var _=(65535&r)-(65535&t[1]);t=(r>>>16)-(t[1]>>>16),0>_&&(_=0),0>t&&(t=0),e.write_mmx64s(i|s<<16,_|t<<16)},t[218]=function(e){dbg_assert((e.prefixes&(PREFIX_MASK_REP|PREFIX_MASK_OPSIZE))===PREFIX_MASK_OPSIZE),e.task_switch_test_mmx(),e.read_modrm_byte();var t=e.read_xmm_mem128s();t=new Uint8Array(t.buffer);var s=e.read_xmm128s();s=new Uint8Array(s.buffer);for(var r=e.create_atom128s(0,0,0,0),i=new Uint8Array(r.buffer),_=0;16>_;_++)i[_]=t[_]>3&7)],t[1]&e.reg_mmxs[2*(e.modrm_byte>>3&7)+1])},t[220]=function(e){if(e.task_switch_test_mmx(),e.read_modrm_byte(),(e.prefixes&(PREFIX_MASK_REP|PREFIX_MASK_OPSIZE))==PREFIX_MASK_OPSIZE){var t=e.read_xmm_mem128s();t=new Uint8Array(t.buffer);var s=e.read_xmm128s();s=new Uint8Array(s.buffer);for(var r=e.create_atom128s(0,0,0,0),i=new Uint8Array(r.buffer),_=0;16>_;_++)i[_]=e.saturate_ud_to_ub(t[_]+s[_]);e.write_xmm128s(r[0],r[1],r[2],r[3])}else{dbg_assert(0==(e.prefixes&(PREFIX_MASK_REP|PREFIX_MASK_OPSIZE))),t=e.read_mmx_mem64s();var a=new Uint8Array(t.buffer),o=8*(e.modrm_byte>>3&7),n=e.reg_mmx8;t=e.saturate_ud_to_ub(n[o]+a[0]),s=e.saturate_ud_to_ub(n[o+1]+a[1]),r=e.saturate_ud_to_ub(n[o+2]+a[2]),i=e.saturate_ud_to_ub(n[o+3]+a[3]),_=e.saturate_ud_to_ub(n[o+4]+a[4]);var d=e.saturate_ud_to_ub(n[o+5]+a[5]),h=e.saturate_ud_to_ub(n[o+6]+a[6]);a=e.saturate_ud_to_ub(n[o+7]+a[7]),e.write_mmx64s(t|s<<8|r<<16|i<<24,_|d<<8|h<<16|a<<24)}},t[221]=function(e){if(e.task_switch_test_mmx(),e.read_modrm_byte(),(e.prefixes&(PREFIX_MASK_REP|PREFIX_MASK_OPSIZE))==PREFIX_MASK_OPSIZE){var t=e.read_xmm_mem128s();t=new Uint16Array(t.buffer);var s=e.read_xmm128s();s=new Uint16Array(s.buffer),e.write_xmm128s(e.saturate_uw(t[0]+s[0])|e.saturate_uw(t[1]+s[1])<<16,e.saturate_uw(t[2]+s[2])|e.saturate_uw(t[3]+s[3])<<16,e.saturate_uw(t[4]+s[4])|e.saturate_uw(t[5]+s[5])<<16,e.saturate_uw(t[6]+s[6])|e.saturate_uw(t[7]+s[7])<<16)}else{dbg_assert(0==(e.prefixes&(PREFIX_MASK_REP|PREFIX_MASK_OPSIZE))),s=e.read_mmx_mem64s() +;var r=e.reg_mmxs[2*(e.modrm_byte>>3&7)],i=e.reg_mmxs[2*(e.modrm_byte>>3&7)+1];t=e.saturate_uw((65535&r)+(65535&s[0])),r=e.saturate_uw((r>>>16)+(s[0]>>>16));var _=e.saturate_uw((65535&i)+(65535&s[1]));s=e.saturate_uw((i>>>16)+(s[1]>>>16)),e.write_mmx64s(t|r<<16,_|s<<16)}},t[222]=function(e){if(e.task_switch_test_mmx(),e.read_modrm_byte(),(e.prefixes&(PREFIX_MASK_REP|PREFIX_MASK_OPSIZE))==PREFIX_MASK_OPSIZE){var t=e.read_xmm_mem128s();t=new Uint8Array(t.buffer);var s=e.read_xmm128s();s=new Uint8Array(s.buffer);for(var r=e.create_atom128s(0,0,0,0),i=new Uint8Array(r.buffer),_=0;16>_;_++)i[_]=t[_]>s[_]?t[_]:s[_];e.write_xmm128s(r[0],r[1],r[2],r[3])}else dbg_assert(!1)},t[223]=function(e){dbg_assert(0==(e.prefixes&(PREFIX_MASK_REP|PREFIX_MASK_OPSIZE))),e.task_switch_test_mmx(),e.read_modrm_byte();var t=e.read_mmx_mem64s();e.write_mmx64s(t[0]&~e.reg_mmxs[2*(e.modrm_byte>>3&7)],t[1]&~e.reg_mmxs[2*(e.modrm_byte>>3&7)+1])},t[224]=function(e){e.unimplemented_sse()},t[225]=function(e){dbg_assert(0==(e.prefixes&(PREFIX_MASK_REP|PREFIX_MASK_OPSIZE))),e.task_switch_test_mmx(),e.read_modrm_byte();var t=e.read_mmx_mem64s(),s=e.reg_mmxs[2*(e.modrm_byte>>3&7)],r=e.reg_mmxs[2*(e.modrm_byte>>3&7)+1];t=t[0]>>>0,15>16>>t&65535|(s>>16>>t&65535)<<16,r<<16>>16>>t&65535|(r>>16>>t&65535)<<16)},t[226]=function(e){dbg_assert(0==(e.prefixes&(PREFIX_MASK_REP|PREFIX_MASK_OPSIZE))),e.task_switch_test_mmx(),e.read_modrm_byte();var t=e.read_mmx_mem64s(),s=e.reg_mmxs[2*(e.modrm_byte>>3&7)],r=e.reg_mmxs[2*(e.modrm_byte>>3&7)+1];t=t[0]>>>0,31>t,r>>t)},t[227]=function(e){e.unimplemented_sse()},t[228]=function(e){dbg_assert((e.prefixes&(PREFIX_MASK_REP|PREFIX_MASK_OPSIZE))==PREFIX_MASK_OPSIZE),e.task_switch_test_mmx(),e.read_modrm_byte();var t=e.read_xmm_mem128s();t=new Uint16Array(t.buffer);var s=e.read_xmm128s();s=new Uint16Array(s.buffer),e.write_xmm128s(t[0]*s[0]>>>16|t[1]*s[1]&4294901760,t[2]*s[2]>>>16|t[3]*s[3]&4294901760,t[4]*s[4]>>>16|t[5]*s[5]&4294901760,t[6]*s[6]>>>16|t[7]*s[7]&4294901760)},t[229]=function(e){dbg_assert(0==(e.prefixes&(PREFIX_MASK_REP|PREFIX_MASK_OPSIZE))),e.task_switch_test_mmx(),e.read_modrm_byte();var t=e.read_mmx_mem64s(),s=e.reg_mmxs[2*(e.modrm_byte>>3&7)],r=e.reg_mmxs[2*(e.modrm_byte>>3&7)+1];e.write_mmx64s((s<<16>>16)*(t[0]<<16>>16)>>>16|(s>>16)*(t[0]>>16)>>>16<<16,(r<<16>>16)*(t[1]<<16>>16)>>>16|(r>>16)*(t[1]>>16)>>>16<<16)},t[230]=function(e){e.unimplemented_sse()},t[231]=function(e){if(e.task_switch_test_mmx(),e.read_modrm_byte(),192<=e.modrm_byte&&e.trigger_ud(),(e.prefixes&(PREFIX_MASK_REP|PREFIX_MASK_OPSIZE))==PREFIX_MASK_OPSIZE){var t=e.read_xmm128s(),s=e.modrm_resolve(e.modrm_byte);e.safe_write128(s,t[0],t[1],t[2],t[3])}else dbg_assert(!1)},t[232]=function(e){dbg_assert(0==(e.prefixes&(PREFIX_MASK_REP|PREFIX_MASK_OPSIZE))),e.task_switch_test_mmx(),e.read_modrm_byte();var t=e.read_mmx_mem64s(),s=new Int8Array(t.buffer),r=8*(e.modrm_byte>>3&7),i=e.reg_mmx8s;t=e.saturate_sd_to_sb(i[r]-s[0]);var _=e.saturate_sd_to_sb(i[r+1]-s[1]),a=e.saturate_sd_to_sb(i[r+2]-s[2]),o=e.saturate_sd_to_sb(i[r+3]-s[3]),n=e.saturate_sd_to_sb(i[r+4]-s[4]),d=e.saturate_sd_to_sb(i[r+5]-s[5]),h=e.saturate_sd_to_sb(i[r+6]-s[6]);s=e.saturate_sd_to_sb(i[r+7]-s[7]),e.write_mmx64s(t|_<<8|a<<16|o<<24,n|d<<8|h<<16|s<<24)},t[233]=function(e){dbg_assert(0==(e.prefixes&(PREFIX_MASK_REP|PREFIX_MASK_OPSIZE))),e.task_switch_test_mmx(),e.read_modrm_byte();var t=e.read_mmx_mem64s(),s=e.reg_mmxs[2*(e.modrm_byte>>3&7)],r=e.reg_mmxs[2*(e.modrm_byte>>3&7)+1],i=e.saturate_sd_to_sw((s<<16>>16)-(t[0]<<16>>16));s=e.saturate_sd_to_sw((s>>16)-(t[0]>>16));var _=e.saturate_sd_to_sw((r<<16>>16)-(t[1]<<16>>16));t=e.saturate_sd_to_sw((r>>16)-(t[1]>>16)),e.write_mmx64s(i|s<<16,_|t<<16)},t[234]=function(e){e.unimplemented_sse()},t[235]=function(e){if(e.task_switch_test_mmx(),e.read_modrm_byte(),(e.prefixes&(PREFIX_MASK_REP|PREFIX_MASK_OPSIZE))===PREFIX_MASK_OPSIZE){var t=e.read_xmm_mem128s(),s=e.read_xmm128s();e.write_xmm128s(t[0]|s[0],t[1]|s[1],t[2]|s[2],t[3]|s[3])}else dbg_assert(0==(e.prefixes&(PREFIX_MASK_REP|PREFIX_MASK_OPSIZE))),t=e.read_mmx_mem64s(),e.write_mmx64s(t[0]|e.reg_mmxs[2*(e.modrm_byte>>3&7)],t[1]|e.reg_mmxs[2*(e.modrm_byte>>3&7)+1])},t[236]=function(e){dbg_assert(0==(e.prefixes&(PREFIX_MASK_REP|PREFIX_MASK_OPSIZE))),e.task_switch_test_mmx(),e.read_modrm_byte();var t=e.read_mmx_mem64s(),s=new Int8Array(t.buffer),r=8*(e.modrm_byte>>3&7),i=e.reg_mmx8s;t=e.saturate_sd_to_sb(i[r]+s[0]);var _=e.saturate_sd_to_sb(i[r+1]+s[1]),a=e.saturate_sd_to_sb(i[r+2]+s[2]),o=e.saturate_sd_to_sb(i[r+3]+s[3]),n=e.saturate_sd_to_sb(i[r+4]+s[4]),d=e.saturate_sd_to_sb(i[r+5]+s[5]),h=e.saturate_sd_to_sb(i[r+6]+s[6]);s=e.saturate_sd_to_sb(i[r+7]+s[7]),e.write_mmx64s(t|_<<8|a<<16|o<<24,n|d<<8|h<<16|s<<24)},t[237]=function(e){dbg_assert(0==(e.prefixes&(PREFIX_MASK_REP|PREFIX_MASK_OPSIZE))),e.task_switch_test_mmx(),e.read_modrm_byte();var t=e.read_mmx_mem64s(),s=e.reg_mmxs[2*(e.modrm_byte>>3&7)],r=e.reg_mmxs[2*(e.modrm_byte>>3&7)+1],i=e.saturate_sd_to_sw((s<<16>>16)+(t[0]<<16>>16));s=e.saturate_sd_to_sw((s>>16)+(t[0]>>16));var _=e.saturate_sd_to_sw((r<<16>>16)+(t[1]<<16>>16));t=e.saturate_sd_to_sw((r>>16)+(t[1]>>16)),e.write_mmx64s(i|s<<16,_|t<<16)},t[238]=function(e){e.unimplemented_sse()},t[239]=function(e){if(e.task_switch_test_mmx(),e.read_modrm_byte(),(e.prefixes&(PREFIX_MASK_REP|PREFIX_MASK_OPSIZE))==PREFIX_MASK_OPSIZE){var t=e.read_xmm_mem128s(),s=e.read_xmm128s();e.write_xmm128s(t[0]^s[0],t[1]^s[1],t[2]^s[2],t[3]^s[3])}else dbg_assert(0==(e.prefixes&(PREFIX_MASK_REP|PREFIX_MASK_OPSIZE))),t=e.read_mmx_mem64s(),e.write_mmx64s(t[0]^e.reg_mmxs[2*(e.modrm_byte>>3&7)],t[1]^e.reg_mmxs[2*(e.modrm_byte>>3&7)+1])},t[240]=function(e){e.unimplemented_sse()},t[241]=function(e){dbg_assert(0==(e.prefixes&(PREFIX_MASK_REP|PREFIX_MASK_OPSIZE))),e.task_switch_test_mmx(),e.read_modrm_byte();var t=e.read_mmx_mem64s(),s=e.reg_mmxs[2*(e.modrm_byte>>3&7)],r=e.reg_mmxs[2*(e.modrm_byte>>3&7)+1];t=t[0]>>>0;var i=0,_=0;15>=t&&(i=(65535&s)<>>16<>>16<>3&7)],r=e.reg_mmxs[2*(e.modrm_byte>>3&7)+1];t=t[0]>>>0;var i=0,_=0;31>=t&&(i=s<>3&7)],r=e.reg_mmxs[2*(e.modrm_byte>>3&7)+1];if(0!==(t=t[0]>>>0)){var i=0,_=0;31>=t?(i=s<>>32-t):63>=t&&(_=s<<(31&t),i=0),e.write_mmx64s(i,_)}},t[244]=function(e){e.unimplemented_sse()},t[245]=function(e){dbg_assert(0==(e.prefixes&(PREFIX_MASK_REP|PREFIX_MASK_OPSIZE))),e.task_switch_test_mmx(),e.read_modrm_byte();var t=e.read_mmx_mem64s(),s=e.reg_mmxs[2*(e.modrm_byte>>3&7)],r=e.reg_mmxs[2*(e.modrm_byte>>3&7)+1];e.write_mmx64s((s<<16>>16)*(t[0]<<16>>16)+(s>>16)*(t[0]>>16)|0,(r<<16>>16)*(t[1]<<16>>16)+(r>>16)*(t[1]>>16)|0)},t[246]=function(e){e.unimplemented_sse()},t[247]=function(e){e.unimplemented_sse()},t[248]=function(e){dbg_assert(0==(e.prefixes&(PREFIX_MASK_REP|PREFIX_MASK_OPSIZE))),e.task_switch_test_mmx(),e.read_modrm_byte();var t=e.read_mmx_mem64s();t=new Int8Array(t.buffer);var s=8*(e.modrm_byte>>3&7),r=e.reg_mmx8s;e.write_mmx64s(r[s]-t[0]&255|(r[s+1]-t[1]&255)<<8|(r[s+2]-t[2]&255)<<16|(r[s+3]-t[3]&255)<<24,r[s+4]-t[4]&255|(r[s+5]-t[5]&255)<<8|(r[s+6]-t[6]&255)<<16|(r[s+7]-t[7]&255)<<24)},t[249]=function(e){dbg_assert(0==(e.prefixes&(PREFIX_MASK_REP|PREFIX_MASK_OPSIZE))),e.task_switch_test_mmx(),e.read_modrm_byte();var t=e.read_mmx_mem64s(),s=e.reg_mmxs[2*(e.modrm_byte>>3&7)],r=e.reg_mmxs[2*(e.modrm_byte>>3&7)+1];e.write_mmx64s(s-t[0]&65535|((s>>>16)-(t[0]>>>16)&65535)<<16,r-t[1]&65535|((r>>>16)-(t[1]>>>16)&65535)<<16)},t[250]=function(e){dbg_assert(0==(e.prefixes&(PREFIX_MASK_REP|PREFIX_MASK_OPSIZE))),e.task_switch_test_mmx(),e.read_modrm_byte();var t=e.read_mmx_mem64s();e.write_mmx64s(e.reg_mmxs[2*(e.modrm_byte>>3&7)]-t[0],e.reg_mmxs[2*(e.modrm_byte>>3&7)+1]-t[1])},t[251]=function(e){e.unimplemented_sse()},t[252]=function(e){dbg_assert(0==(e.prefixes&(PREFIX_MASK_REP|PREFIX_MASK_OPSIZE))),e.task_switch_test_mmx(),e.read_modrm_byte();var t=e.read_mmx_mem64s();t=new Int8Array(t.buffer);var s=8*(e.modrm_byte>>3&7),r=e.reg_mmx8s;e.write_mmx64s(r[s]+t[0]&255|(r[s+1]+t[1]&255)<<8|(r[s+2]+t[2]&255)<<16|(r[s+3]+t[3]&255)<<24,r[s+4]+t[4]&255|(r[s+5]+t[5]&255)<<8|(r[s+6]+t[6]&255)<<16|(r[s+7]+t[7]&255)<<24)},t[253]=function(e){dbg_assert(0==(e.prefixes&(PREFIX_MASK_REP|PREFIX_MASK_OPSIZE))),e.task_switch_test_mmx(),e.read_modrm_byte();var t=e.read_mmx_mem64s(),s=e.reg_mmxs[2*(e.modrm_byte>>3&7)],r=e.reg_mmxs[2*(e.modrm_byte>>3&7)+1];e.write_mmx64s(s+t[0]&65535|((s>>>16)+(t[0]>>>16)&65535)<<16,r+t[1]&65535|((r>>>16)+(t[1]>>>16)&65535)<<16)},t[254]=function(e){dbg_assert(0==(e.prefixes&(PREFIX_MASK_REP|PREFIX_MASK_OPSIZE))),e.task_switch_test_mmx(),e.read_modrm_byte();var t=e.read_mmx_mem64s();e.write_mmx64s(e.reg_mmxs[2*(e.modrm_byte>>3&7)]+t[0]|0,e.reg_mmxs[2*(e.modrm_byte>>3&7)+1]+t[1]|0)},t[255]=function(e){dbg_log("#ud: 0F FF"),e.trigger_ud()};var table0F_16=[],table0F_32=[];for(CPU.prototype.table0F_16=table0F_16,CPU.prototype.table0F_32=table0F_32,i=0;256>i;i++)t[i]?table0F_16[i]=table0F_32[i]=t[i]:t16[i]&&(table0F_16[i]=t16[i],table0F_32[i]=t32[i]);CPU.prototype.debug_init=function(){function e(){DEBUG&&(o.running||o.cycle(),r(),Date.now(),o.running=!1,_())}function t(e){var t=o.flags&flag_vm?1:0;t=o.protected_mode?t?"vm86":"prot":"real";var s=o.get_eflags(),r=o.getiopl(),i=o.cpl,_=h(o.sreg[reg_cs],4)+":"+h(o.get_real_eip()>>>0,8),a=h(o.sreg[reg_ss],4)+":"+h(o.get_stack_reg()>>>0,8),n=o.is_32?"32":"16",d=o.flags&flag_interrupt?1:0,g={};g[flag_carry]="c",g[flag_parity]="p",g[flag_adjust]="a",g[flag_zero]="z",g[flag_sign]="s",g[flag_trap]="t",g[flag_interrupt]="i",g[flag_direction]="d",g[flag_overflow]="o",g=g;for(var c="",p=0;16>p;p++)g[1<i;i++)s+=t[i]+"="+h(o.reg32[e[t[i]]],8)+" ",r+=t[i+4]+"="+h(o.reg32[e[t[i+4]]],8)+" ";return s+=" ds="+h(o.sreg[reg_ds],4)+" es="+h(o.sreg[reg_es],4)+" fs="+h(o.sreg[reg_fs],4),r+=" gs="+h(o.sreg[reg_gs],4)+" cs="+h(o.sreg[reg_cs],4)+" ss="+h(o.sreg[reg_ss],4),[s,r]}function r(){if(DEBUG){var e=s();dbg_log(e[0],LOG_CPU),dbg_log(e[1],LOG_CPU)}}function i(){if(DEBUG){n.step_mode=!0;var e,t="";if(n.trace_all&&n.all_ops?e=n.all_ops:n.ops&&(e=n.ops.toArray()),!e)return"";for(var s=0;s>>0}}}var o=this,n={};this.debug=n,n.step_mode=!1,n.ops=void 0,n.all_ops=[],n.trace_all=!1,n.show=function(e){if("undefined"!=typeof document){var t=document.getElementById("log");if(t)return t.textContent+=e+"\n",t.style.display="block",void(t.scrollTop=1e9)}console.log(e)},n.init=function(){function e(e){10===e?(dbg_log(t,LOG_BIOS),t=""):t+=String.fromCharCode(e)}if(DEBUG&&(n.ops=new CircularQueue(2e5),o.io)){var t="";o.io.register_write(1026,this,e),o.io.register_write(1280,this,e)}},n.get_regs_short=s,n.dump_regs=r,n.dump_instructions=_,n.get_instructions=i,n.get_state=t,n.dump_state=function(e){DEBUG&&dbg_log(t(e),LOG_CPU)},n.dump_stack=function(e,t){if(DEBUG){var s=o.reg32[reg_esp];for(dbg_log("========= STACK =========="),(t>=e||void 0===t)&&(e=5,t=-5);e>t;e--){var r=" ";e||(r="=> "),r+=h(e,2)+" | ",dbg_log(r+h(s+4*e,8)+" | "+h(o.read32s(s+4*e)>>>0))}}},n.dump_page_directory=function(){if(DEBUG)for(var e=0;1024>e;e++){var t=o.read32s(o.cr[3]+4*e),s=a(t,!0);if(s)if(t="",t+=s.size?"S ":" ",t+=s.accessed?"A ":" ",t+=s.cache_disable?"Cd ":" ",t+=s.user?"U ":" ",t+=s.read_write?"Rw ":" ",s.size)dbg_log("=== "+h(e<<22>>>0,8)+" -> "+h(s.address>>>0,8)+" | "+t);else{dbg_log("=== "+h(e<<22>>>0,8)+" | "+t);for(var r=0;1024>r;r++){var i=s.address+4*r;t=o.read32s(i);var _=a(t,!1);_&&(t="",t+=_.cache_disable?"Cd ":" ",t+=_.user?"U ":" ",t+=_.read_write?"Rw ":" ",t+=_.global?"G ":" ",t+=_.accessed?"A ":" ",t+=_.dirty?"Di ":" ",dbg_log("# "+h((e<<22|r<<12)>>>0,8)+" -> "+h(_.address,8)+" | "+t+" (at "+h(i,8)+")"))}}}},n.dump_gdt_ldt=function(){function e(e,t){for(var s=0;s>4,n="",d=_>>5&3;n=128&_?n+" P ":n+"NP ",16&_?(n=4&a?n+"32b ":n+"16b ",8&_?(n+="X ",4&_&&(n+="C ")):n+="R ",n+="RW "):n+="sys: "+h(15&_),8&a&&(i=i<<12|4095),dbg_log(h(-8&s,4)+" "+h(r>>>0,8)+" ("+h(i>>>0,8)+" bytes) "+n+"; dpl = "+d+", a = "+_.toString(2)+", f = "+a.toString(2))}}DEBUG&&(dbg_log("gdt: (len = "+h(o.gdtr_size)+")"),e(o.translate_address_system_read(o.gdtr_offset),o.gdtr_size),dbg_log("\nldt: (len = "+h(o.segment_limits[reg_ldtr])+")"),e(o.translate_address_system_read(o.segment_offsets[reg_ldtr]),o.segment_limits[reg_ldtr]))},n.dump_idt=function(){if(DEBUG)for(var e=0;e>5&3,_=5==(31&t)?"task gate ":14==(31&t)?"intr gate ":15==(31&t)?"trap gate ":"invalid ";_=128&t?_+" P":_+"NP",dbg_log(h(e>>3,4)+" "+h(s>>>0,8)+", "+h(r,4)+"; "+_+"; dpl = "+i+", t = "+t.toString(2))}},n.get_memory_dump=function(e,t){if(DEBUG)return void 0===e?(e=0,t=o.memory_size):void 0===t&&(t=e,e=0),o.mem8.slice(e,e+t).buffer},n.memory_hex_dump=function(e,t){if(DEBUG){t=t||64;for(var s,r,i=0;i>4;i++){s=h(e+(i<<4),5)+" ";for(var _=0;16>_;_++)r=o.read8(e+(i<<4)+_),s+=h(r,2)+" ";for(s+=" ",_=0;16>_;_++)r=o.read8(e+(i<<4)+_),s+=33>r||126s;s++){t=h(128*s*e,8)+" | ";for(var r=0;128>r;r++)t+=0e)){this.last_connect_attempt=Date.now();try{this.socket=new WebSocket(this.url)}catch(e){return void this.handle_close(void 0)}this.socket.binaryType="arraybuffer",this.socket.onopen=this.handle_open.bind(this),this.socket.onmessage=this.handle_message.bind(this),this.socket.onclose=this.handle_close.bind(this),this.socket.onerror=this.handle_error.bind(this)}},NetworkAdapter.prototype.send=function(e){this.socket&&1===this.socket.readyState?this.socket.send(e):(this.send_queue.push(e),this.send_queue.length>2*this.send_queue_limit&&(this.send_queue=this.send_queue.slice(-this.send_queue_limit)),this.connect())},function(){function e(e,t){var s=new XMLHttpRequest;if(s.open(t.method||"get",e,!0),t.as_text||(s.responseType="arraybuffer"),t.headers)for(var r=Object.keys(t.headers),i=0;i>20)+" MB ..."),this.buffer=new ArrayBuffer(e.size),this.onprogress=this.onload=void 0}function i(e){this.file=e,this.byteLength=e.size,this.block_size=256,this.loaded_blocks={},this.onprogress=this.onload=void 0}v86util.load_file="undefined"==typeof XMLHttpRequest?t:e,v86util.AsyncXHRBuffer=s,v86util.AsyncFileBuffer=i,v86util.SyncFileBuffer=r;var _="undefined"==typeof XMLHttpRequest?function(e,t){require("fs").stat(e,function(e,s){e?t(e):t(null,s.size)})}:function(e,t){v86util.load_file(e,{done:function(e,s){e=s.getResponseHeader("Content-Range")||"",(s=e.match(/\/(\d+)\s*$/))?t(null,+s[1]):t({header:e})},headers:{Range:"bytes=0-0"}})};s.prototype.load=function(){var e=this;void 0!==this.byteLength?this.onload&&this.onload({}):_(this.filename,function(t,s){t?console.assert(!1,"Cannot use: "+e.filename+". `Range: bytes=...` header not supported (Got `"+t.header+"`)"):(dbg_assert(0<=s),e.byteLength=s,e.onload&&e.onload({}))})},s.prototype.get_from_cache=function(e,t,s){s=t/this.block_size,e/=this.block_size;for(var r=0;r=r),_!==r&&(t.push(this.file.slice(r,_)),r=_),t.push(a),r+=a.length}return r!==this.file.size&&t.push(this.file.slice(r)),e=new File(t,e),console.assert(e.size===this.file.size),e}}(),V86Starter.prototype.run=function(){this.bus.send("cpu-run")},goog.exportProperty(V86Starter.prototype,"run",V86Starter.prototype.run),V86Starter.prototype.stop=function(){this.bus.send("cpu-stop")},goog.exportProperty(V86Starter.prototype,"stop",V86Starter.prototype.stop),V86Starter.prototype.destroy=function(){this.keyboard_adapter.destroy()},goog.exportProperty(V86Starter.prototype,"destroy",V86Starter.prototype.destroy),V86Starter.prototype.restart=function(){this.bus.send("cpu-restart")},goog.exportProperty(V86Starter.prototype,"restart",V86Starter.prototype.restart),V86Starter.prototype.add_listener=function(e,t){this.bus.register(e,t,this)},goog.exportProperty(V86Starter.prototype,"add_listener",V86Starter.prototype.add_listener),V86Starter.prototype.remove_listener=function(e,t){this.bus.unregister(e,t)},goog.exportProperty(V86Starter.prototype,"remove_listener",V86Starter.prototype.remove_listener),V86Starter.prototype.restore_state=function(e){this.v86.restore_state(e)},goog.exportProperty(V86Starter.prototype,"restore_state",V86Starter.prototype.restore_state),V86Starter.prototype.save_state=function(e){setTimeout(function(){try{e(null,this.v86.save_state())}catch(t){e(t,null)}}.bind(this),0)},goog.exportProperty(V86Starter.prototype,"save_state",V86Starter.prototype.save_state),V86Starter.prototype.get_statistics=function(){console.warn("V86Starter.prototype.get_statistics is deprecated. Use events instead.");var e={cpu:{instruction_counter:this.get_instruction_counter()}};if(!this.v86)return e;var t=this.v86.cpu.devices;return t.hda&&(e.hda=t.hda.stats),t.cdrom&&(e.cdrom=t.cdrom.stats),t.ps2&&(e.mouse={enabled:t.ps2.use_mouse}),t.vga&&(e.vga={is_graphical:t.vga.stats.is_graphical}),e},goog.exportProperty(V86Starter.prototype,"get_statistics",V86Starter.prototype.get_statistics),V86Starter.prototype.get_instruction_counter=function(){return this.v86?this.v86.cpu.timestamp_counter:0},goog.exportProperty(V86Starter.prototype,"get_instruction_counter",V86Starter.prototype.get_instruction_counter),V86Starter.prototype.is_running=function(){return this.cpu_is_running},goog.exportProperty(V86Starter.prototype,"is_running",V86Starter.prototype.is_running),V86Starter.prototype.keyboard_send_scancodes=function(e){for(var t=0;t>8,this.PushInode(s),this.NotifyListeners(this.inodes.length-1,"newdir"),this.inodes.length-1},FS.prototype.CreateFile=function(e,t){var s=this.CreateInode();return s.name=e,s.parentid=t,s.uid=this.inodes[t].uid,s.gid=this.inodes[t].gid,s.qid.type=S_IFREG>>8,s.mode=438&this.inodes[t].mode|S_IFREG,this.PushInode(s),this.NotifyListeners(this.inodes.length-1,"newfile"),this.inodes.length-1},FS.prototype.CreateNode=function(e,t,s,r){var i=this.CreateInode();return i.name=e,i.parentid=t,i.major=s,i.minor=r,i.uid=this.inodes[t].uid,i.gid=this.inodes[t].gid,i.qid.type=S_IFSOCK>>8,i.mode=438&this.inodes[t].mode,this.PushInode(i),this.inodes.length-1},FS.prototype.CreateSymlink=function(e,t,s){var r=this.CreateInode();return r.name=e,r.parentid=t,r.uid=this.inodes[t].uid,r.gid=this.inodes[t].gid,r.qid.type=S_IFLNK>>8,r.symlink=s,r.mode=S_IFLNK,this.PushInode(r),this.inodes.length-1},FS.prototype.CreateTextFile=function(e,t,s){e=this.CreateFile(e,t);var r=this.inodes[e];for(t=this.inodedata[e]=new Uint8Array(s.length),r.size=s.length,r=0;re||e>this.inodes.length?(message.Debug("Error in filesystem: Attempt to get inode with id "+e),0):this.inodes[e]},FS.prototype.ChangeSize=function(e,t){var s=this.GetInode(e),r=this.inodedata[e];if(t!=s.size&&(e=this.inodedata[e]=new Uint8Array(t),s.size=t,r))for(t=Math.min(r.length,s.size),s=0;st.parentid&&message.Debug("Error in filesystem: negative parent id "+e),0==t.name.length&&message.Debug("Error in filesystem: inode with no name and id "+e);for(var s in t.name)32>t.name.charCodeAt(s)&&message.Debug("Error in filesystem: Unallowed char in filename")}},FS.prototype.FillDirectory=function(e){var t=this.GetInode(e);if(t.updatedir){var s=t.parentid;-1==s&&(s=0);for(var r=0,i=this.inodes[e].firstid;-1!=i;)r+=24+UTF8.UTF8Length(this.inodes[i].name),i=this.inodes[i].nextid;r=r+25+26;var _=this.inodedata[e]=new Uint8Array(r);for(t.size=r,r=0,r+=marshall.Marshall(["Q","d","b","s"],[this.inodes[e].qid,r+13+8+1+2+1,this.inodes[e].mode>>12,"."],_,r),r+=marshall.Marshall(["Q","d","b","s"],[this.inodes[s].qid,r+13+8+1+2+2,this.inodes[s].mode>>12,".."],_,r),i=this.inodes[e].firstid;-1!=i;)r+=marshall.Marshall(["Q","d","b","s"],[this.inodes[i].qid,r+13+8+1+2+UTF8.UTF8Length(this.inodes[i].name),this.inodes[i].mode>>12,this.inodes[i].name],_,r),i=this.inodes[i].nextid;t.updatedir=!1}},FS.prototype.PrepareCAPs=function(e){return e=this.GetInode(e),e.caps?e.caps.length:(e.caps=new Uint8Array(12),e.caps[0]=0,e.caps[1]=0,e.caps[2]=0,e.caps[3]=1,e.caps[4]=255,e.caps[5]=255,e.caps[6]=255,e.caps[7]=255,e.caps[8]=255,e.caps[9]=255,e.caps[10]=255,e.caps[11]=255,e.caps.length)};var VIRTIO_MAGIC_REG=0,VIRTIO_VERSION_REG=4,VIRTIO_DEVICE_REG=8,VIRTIO_VENDOR_REG=12,VIRTIO_HOSTFEATURES_REG=16,VIRTIO_HOSTFEATURESSEL_REG=20,VIRTIO_GUESTFEATURES_REG=32,VIRTIO_GUESTFEATURESSEL_REG=36,VIRTIO_GUEST_PAGE_SIZE_REG=40,VIRTIO_QUEUESEL_REG=48,VIRTIO_QUEUENUMMAX_REG=52,VIRTIO_QUEUENUM_REG=56,VIRTIO_QUEUEALIGN_REG=60,VIRTIO_QUEUEPFN_REG=64,VIRTIO_QUEUENOTIFY_REG=80,VIRTIO_INTERRUPTSTATUS_REG=96,VIRTIO_INTERRUPTACK_REG=100,VIRTIO_STATUS_REG=112,VRING_DESC_F_NEXT=1,VRING_DESC_F_WRITE=2,VRING_DESC_F_INDIRECT=4,message={Debug:function(e){dbg_log([].slice.apply(arguments).join(" "),LOG_9P)},Abort:function(){if(DEBUG)throw"abort"}},LoadBinaryResource;LoadBinaryResource="undefined"!=typeof XMLHttpRequest?function(e,t,s){var r=new XMLHttpRequest;r.open("GET",e,!0),r.responseType="arraybuffer",r.onreadystatechange=function(){if(4==r.readyState)if(200!=r.status&&0!=r.status)s("Error: Could not load file "+e);else{var i=r.response;i?t(i):s("Error: No data received from: "+e)}},r.send(null)}:function(e,t,s){require("fs").readFile(e,function(e,r){e?s(e):t(new Uint8Array(r).buffer)})};var marshall={Marshall:function(e,t,s,r){for(var i,_=0,a=0;a>8&255,s[r++]=i>>16&255,s[r++]=i>>24&255,_+=4;break;case"d":s[r++]=255&i,s[r++]=i>>8&255,s[r++]=i>>16&255,s[r++]=i>>24&255,s[r++]=0,s[r++]=0,s[r++]=0,s[r++]=0,_+=8;break;case"h":s[r++]=255&i,s[r++]=i>>8,_+=2;break;case"b":s[r++]=i,_+=1;break;case"s":var o=r,n=0;s[r++]=0,s[r++]=0,_+=2;for(var d in i)UnicodeToUTF8Stream(i.charCodeAt(d)).forEach(function(e){s[r++]=e,_+=1,n++});s[o+0]=255&n,s[o+1]=n>>8&255;break;case"Q":marshall.Marshall(["b","w","d"],[i.type,i.version,i.path],s,r),r+=13,_+=13;break;default:message.Debug("Marshall: Unknown type="+e[a])}return _},Unmarshall:function(e,t,s){for(var r=[],i=0;i>>0,r.push(_);break;case"d":_=t[s++],_+=t[s++]<<8,_+=t[s++]<<16,_+=t[s++]<<24>>>0,s+=4,r.push(_);break;case"h":_=t[s++],r.push(_+(t[s++]<<8));break;case"b":r.push(t[s++]);break;case"s":_=t[s++],_+=t[s++]<<8;for(var a="",o=new UTF8StreamToUnicode,n=0;n<_;n++){var d=o.Put(t[s++]);-1!=d&&(a+=String.fromCharCode(d))}r.push(a);break;default:message.Debug("Error in Unmarshall: Unknown type="+e[i])}return r},Unmarshall2:function(e,t){for(var s=[],r=0;r>>0,s.push(i);break;case"d":i=t(),i+=t()<<8,i+=t()<<16,i+=t()<<24>>>0,t(),t(),t(),t(),s.push(i);break;case"h":i=t(),s.push(i+(t()<<8));break;case"b":s.push(t());break;case"s":i=t(),i+=t()<<8;for(var _="",a=new UTF8StreamToUnicode,o=0;o 1%, last 2 versions, Firefox ESR, Opera 12.1", + "babelAuxiliaryCommentAfter": "", + "babelAuxiliaryCommentBefore": "", + "babelConfigFileHandlingType": 0, + "babelCustomPluginsList": "", + "babelCustomPresetsList": "", + "babelInsertModuleIDs": 0, + "babelModuleID": "", + "babelNoComments": 0, + "babelPlugins": { + "async-generator-functions": { + "active": 0 + }, + "async-to-generator": { + "active": 0 + }, + "async-to-module-method": { + "active": 0 + }, + "class-properties": { + "active": 0 + }, + "decorators": { + "active": 0 + }, + "decorators-legacy": { + "active": 0 + }, + "do-expressions": { + "active": 0 + }, + "es2015-arrow-functions": { + "active": 0 + }, + "es2015-block-scoped-functions": { + "active": 0 + }, + "es2015-block-scoping": { + "active": 0 + }, + "es2015-classes": { + "active": 0 + }, + "es2015-computed-properties": { + "active": 0 + }, + "es2015-constants": { + "active": 0 + }, + "es2015-destructuring": { + "active": 0 + }, + "es2015-duplicate-keys": { + "active": 0 + }, + "es2015-for-of": { + "active": 0 + }, + "es2015-function-name": { + "active": 0 + }, + "es2015-literals": { + "active": 0 + }, + "es2015-modules-amd": { + "active": 0 + }, + "es2015-modules-commonjs": { + "active": 0 + }, + "es2015-modules-systemjs": { + "active": 0 + }, + "es2015-modules-umd": { + "active": 0 + }, + "es2015-object-super": { + "active": 0 + }, + "es2015-parameters": { + "active": 0 + }, + "es2015-shorthand-properties": { + "active": 0 + }, + "es2015-spread": { + "active": 0 + }, + "es2015-sticky-regex": { + "active": 0 + }, + "es2015-template-literals": { + "active": 0 + }, + "es2015-typeof-symbol": { + "active": 0 + }, + "es2015-unicode-regex": { + "active": 0 + }, + "es3-member-expression-literals": { + "active": 0 + }, + "es3-property-literals": { + "active": 0 + }, + "es5-property-mutators": { + "active": 0 + }, + "eval": { + "active": 0 + }, + "exponentiation-operator": { + "active": 0 + }, + "export-extensions": { + "active": 0 + }, + "external-helpers": { + "active": 0 + }, + "flow-comments": { + "active": 0 + }, + "flow-strip-types": { + "active": 0 + }, + "function-bind": { + "active": 0 + }, + "inline-environment-variables": { + "active": 0 + }, + "jscript": { + "active": 0 + }, + "member-expression-literals": { + "active": 0 + }, + "merge-sibling-variables": { + "active": 0 + }, + "minify-booleans": { + "active": 0 + }, + "node-env-inline": { + "active": 0 + }, + "object-assign": { + "active": 0 + }, + "object-rest-spread": { + "active": 0 + }, + "object-set-prototype-of-to-assign": { + "active": 0 + }, + "property-literals": { + "active": 0 + }, + "proto-to-assign": { + "active": 0 + }, + "react-constant-elements": { + "active": 0 + }, + "react-display-name": { + "active": 0 + }, + "react-inline-elements": { + "active": 0 + }, + "react-jsx": { + "active": 0 + }, + "react-jsx-compat": { + "active": 0 + }, + "react-jsx-self": { + "active": 0 + }, + "react-jsx-source": { + "active": 0 + }, + "regenerator": { + "active": 0 + }, + "remove-console": { + "active": 0 + }, + "remove-debugger": { + "active": 0 + }, + "runtime": { + "active": 0 + }, + "simplify-comparison-operators": { + "active": 0 + }, + "strict-mode": { + "active": 0 + }, + "syntax-async-generators": { + "active": 0 + }, + "syntax-class-properties": { + "active": 0 + }, + "syntax-decorators": { + "active": 0 + }, + "syntax-do-expressions": { + "active": 0 + }, + "syntax-export-extensions": { + "active": 0 + }, + "syntax-flow": { + "active": 0 + }, + "syntax-function-bind": { + "active": 0 + }, + "syntax-function-sent": { + "active": 0 + }, + "syntax-jsx": { + "active": 0 + }, + "syntax-object-rest-spread": { + "active": 0 + }, + "undeclared-variables-check": { + "active": 0 + }, + "undefined-to-void": { + "active": 0 + } + }, + "babelPresetType": 193, + "babelRetainLines": 0, + "bowerAbbreviatedPath": "bower_components", + "bowerAutoCreateInfoFile": 1, + "bowerInstallDevDependencies": 0, + "bowerSaveDependencies": 1, + "bowerSaveDevDependencies": 0, + "bowerUseExactVersion": 0, + "browserRefreshDelay": 0, + "buildFolderActive": 0, + "buildFolderName": "build", + "cleanBuild": 1, + "coffeeLintFlags2": { + "arrow_spacing": { + "active": 0, + "flagValue": -1 + }, + "camel_case_classes": { + "active": 1, + "flagValue": -1 + }, + "colon_assignment_spacing": { + "active": 0, + "flagValue": 1 + }, + "cyclomatic_complexity": { + "active": 0, + "flagValue": 10 + }, + "duplicate_key": { + "active": 1, + "flagValue": -1 + }, + "empty_constructor_needs_parens": { + "active": 0, + "flagValue": -1 + }, + "ensure_comprehensions": { + "active": 1, + "flagValue": -1 + }, + "indentation": { + "active": 1, + "flagValue": 2 + }, + "line_endings": { + "active": 0, + "flagValue": 0 + }, + "max_line_length": { + "active": 0, + "flagValue": 150 + }, + "missing_fat_arrows": { + "active": 0, + "flagValue": -1 + }, + "newlines_after_classes": { + "active": 0, + "flagValue": 3 + }, + "no_backticks": { + "active": 1, + "flagValue": -1 + }, + "no_debugger": { + "active": 1, + "flagValue": -1 + }, + "no_empty_functions": { + "active": 0, + "flagValue": -1 + }, + "no_empty_param_list": { + "active": 0, + "flagValue": -1 + }, + "no_implicit_braces": { + "active": 1, + "flagValue": -1 + }, + "no_implicit_parens": { + "active": 0, + "flagValue": -1 + }, + "no_interpolation_in_single_quotes": { + "active": 0, + "flagValue": -1 + }, + "no_nested_string_interpolation": { + "active": 1, + "flagValue": -1 + }, + "no_plusplus": { + "active": 0, + "flagValue": -1 + }, + "no_private_function_fat_arrows": { + "active": 1, + "flagValue": -1 + }, + "no_stand_alone_at": { + "active": 1, + "flagValue": -1 + }, + "no_tabs": { + "active": 1, + "flagValue": -1 + }, + "no_this": { + "active": 0, + "flagValue": -1 + }, + "no_throwing_strings": { + "active": 1, + "flagValue": -1 + }, + "no_trailing_semicolons": { + "active": 1, + "flagValue": -1 + }, + "no_trailing_whitespace": { + "active": 1, + "flagValue": -1 + }, + "no_unnecessary_double_quotes": { + "active": 0, + "flagValue": -1 + }, + "no_unnecessary_fat_arrows": { + "active": 1, + "flagValue": -1 + }, + "non_empty_constructor_needs_parens": { + "active": 0, + "flagValue": -1 + }, + "prefer_english_operator": { + "active": 0, + "flagValue": -1 + }, + "space_operators": { + "active": 0, + "flagValue": -1 + }, + "spacing_after_comma": { + "active": 1, + "flagValue": -1 + } + }, + "esLintConfigFileHandlingType": 0, + "esLintECMAVersion": 7, + "esLintEnvironmentsMask": 1, + "esLintRules": { + "accessor-pairs": { + "active": 0, + "optionString": "{'setWithoutGet': true, 'getWithoutSet': false}" + }, + "array-bracket-newline": { + "active": 0, + "optionString": "{'multiline': true, 'minItems': null}" + }, + "array-bracket-spacing": { + "active": 0, + "optionString": "'never', {'singleValue': false, 'objectsInArrays': false, 'arraysInArrays': false}" + }, + "array-callback-return": { + "active": 0, + "optionString": "" + }, + "array-element-newline": { + "active": 0, + "optionString": "'always'" + }, + "arrow-body-style": { + "active": 0, + "optionString": "'as-needed', {'requireReturnForObjectLiteral': false}" + }, + "arrow-parens": { + "active": 0, + "optionString": "'always'" + }, + "arrow-spacing": { + "active": 0, + "optionString": "{'before': true, 'after': true}" + }, + "block-scoped-var": { + "active": 0, + "optionString": "" + }, + "block-spacing": { + "active": 0, + "optionString": "'always'" + }, + "brace-style": { + "active": 0, + "optionString": "'1tbs', {'allowSingleLine': true}" + }, + "callback-return": { + "active": 0, + "optionString": "['callback', 'cb', 'next']" + }, + "camelcase": { + "active": 0, + "optionString": "{'properties': 'always'}" + }, + "capitalized-comments": { + "active": 0, + "optionString": "'always', {'ignoreInlineComments': false, 'ignoreConsecutiveComments': false}" + }, + "class-methods-use-this": { + "active": 0, + "optionString": "{'exceptMethods': []}" + }, + "comma-dangle": { + "active": 1, + "optionString": "'never'" + }, + "comma-spacing": { + "active": 0, + "optionString": "{'before': false, 'after': true}" + }, + "comma-style": { + "active": 0, + "optionString": "'last'" + }, + "complexity": { + "active": 0, + "optionString": "20" + }, + "computed-property-spacing": { + "active": 0, + "optionString": "'never'" + }, + "consistent-return": { + "active": 0, + "optionString": "{'treatUndefinedAsUnspecified': false}" + }, + "consistent-this": { + "active": 0, + "optionString": "'that'" + }, + "constructor-super": { + "active": 1, + "optionString": "" + }, + "curly": { + "active": 0, + "optionString": "'all'" + }, + "default-case": { + "active": 0, + "optionString": "" + }, + "dot-location": { + "active": 0, + "optionString": "'object'" + }, + "dot-notation": { + "active": 0, + "optionString": "{'allowKeywords': false}" + }, + "eol-last": { + "active": 0, + "optionString": "'always'" + }, + "eqeqeq": { + "active": 0, + "optionString": "'always', {'null': 'always'}" + }, + "for-direction": { + "active": 0, + "optionString": "" + }, + "func-call-spacing": { + "active": 0, + "optionString": "'never'" + }, + "func-name-matching": { + "active": 0, + "optionString": "'always', {'includeCommonJSModuleExports': false}" + }, + "func-names": { + "active": 0, + "optionString": "'always'" + }, + "func-style": { + "active": 0, + "optionString": "'expression'" + }, + "function-paren-newline": { + "active": 0, + "optionString": "'multiline'" + }, + "generator-star-spacing": { + "active": 0, + "optionString": "{'before': true, 'after': false}" + }, + "getter-return": { + "active": 0, + "optionString": "{'allowImplicit': false}" + }, + "global-require": { + "active": 0, + "optionString": "" + }, + "guard-for-in": { + "active": 0, + "optionString": "" + }, + "handle-callback-err": { + "active": 0, + "optionString": "'err'" + }, + "id-blacklist": { + "active": 0, + "optionString": "'data', 'err', 'e', 'cb', 'callback'" + }, + "id-length": { + "active": 0, + "optionString": "{'min': 2, 'max': 1000, 'properties': 'always', 'exceptions': ['x', 'i', 'y']}" + }, + "id-match": { + "active": 0, + "optionString": "'^[a-z]+([A-Z][a-z]+)*$', {'properties': false, 'onlyDeclarations': true}" + }, + "indent": { + "active": 0, + "optionString": "4, {'SwitchCase': 0, 'VariableDeclarator': 1, 'outerIIFEBody': 1, }" + }, + "init-declarations": { + "active": 0, + "optionString": "'always', {'ignoreForLoopInit': true}" + }, + "jsx-quotes": { + "active": 0, + "optionString": "'prefer-double'" + }, + "key-spacing": { + "active": 0, + "optionString": "{'singleLine': {'beforeColon': false, 'afterColon': true, 'mode':'strict'}, 'multiLine': {'beforeColon': false, 'afterColon': true, 'align': 'value', 'mode':'minimum'}}" + }, + "keyword-spacing": { + "active": 0, + "optionString": "{'before': true, 'after': true, 'overrides': {}}" + }, + "line-comment-position": { + "active": 0, + "optionString": "{'position': 'above'}" + }, + "linebreak-style": { + "active": 0, + "optionString": "'unix'" + }, + "lines-around-comment": { + "active": 0, + "optionString": "{'beforeBlockComment': true}" + }, + "lines-between-class-members": { + "active": 0, + "optionString": "'always', {exceptAfterSingleLine: false}" + }, + "max-depth": { + "active": 0, + "optionString": "{'max': 4}" + }, + "max-len": { + "active": 0, + "optionString": "{'code': 80, 'comments': 80, 'tabWidth': 4, 'ignoreUrls': true, 'ignoreStrings': true, 'ignoreTemplateLiterals': true, 'ignoreRegExpLiterals': true}" + }, + "max-lines": { + "active": 0, + "optionString": "{'max': 300, 'skipBlankLines': true, 'skipComments': true}" + }, + "max-nested-callbacks": { + "active": 0, + "optionString": "{'max': 10}" + }, + "max-params": { + "active": 0, + "optionString": "{'max': 4}" + }, + "max-statements": { + "active": 0, + "optionString": "{'max': 10}, {'ignoreTopLevelFunctions': true}" + }, + "max-statements-per-line": { + "active": 0, + "optionString": "{'max': 1}" + }, + "multiline-comment-style": { + "active": 0, + "optionString": "'starred-block'" + }, + "multiline-ternary": { + "active": 0, + "optionString": "'always'" + }, + "new-cap": { + "active": 0, + "optionString": "{'newIsCap': true, 'capIsNew': true, 'newIsCapExceptions': [], 'capIsNewExceptions': ['Array', 'Boolean', 'Date', 'Error', 'Function', 'Number', 'Object', 'RegExp', 'String', 'Symbol'], 'properties': true}" + }, + "new-parens": { + "active": 0, + "optionString": "" + }, + "newline-per-chained-call": { + "active": 0, + "optionString": "{'ignoreChainWithDepth': 2}" + }, + "no-alert": { + "active": 0, + "optionString": "" + }, + "no-array-constructor": { + "active": 0, + "optionString": "" + }, + "no-await-in-loop": { + "active": 0, + "optionString": "" + }, + "no-bitwise": { + "active": 0, + "optionString": "{'allow': ['~'], 'int32Hint': true}" + }, + "no-buffer-constructor": { + "active": 0, + "optionString": "" + }, + "no-caller": { + "active": 0, + "optionString": "" + }, + "no-case-declarations": { + "active": 1, + "optionString": "" + }, + "no-catch-shadow": { + "active": 0, + "optionString": "" + }, + "no-class-assign": { + "active": 1, + "optionString": "" + }, + "no-compare-neg-zero": { + "active": 0, + "optionString": "" + }, + "no-cond-assign": { + "active": 1, + "optionString": "'except-parens'" + }, + "no-confusing-arrow": { + "active": 0, + "optionString": "{'allowParens': false}" + }, + "no-console": { + "active": 1, + "optionString": "{'allow': ['warn', 'error']}" + }, + "no-const-assign": { + "active": 1, + "optionString": "" + }, + "no-constant-condition": { + "active": 1, + "optionString": "{'checkLoops': true}" + }, + "no-continue": { + "active": 0, + "optionString": "" + }, + "no-control-regex": { + "active": 1, + "optionString": "" + }, + "no-debugger": { + "active": 1, + "optionString": "" + }, + "no-delete-var": { + "active": 1, + "optionString": "" + }, + "no-div-regex": { + "active": 0, + "optionString": "" + }, + "no-dupe-args": { + "active": 1, + "optionString": "" + }, + "no-dupe-class-members": { + "active": 1, + "optionString": "" + }, + "no-dupe-keys": { + "active": 1, + "optionString": "" + }, + "no-duplicate-imports": { + "active": 0, + "optionString": "{'includeExports': false}" + }, + "no-else-return": { + "active": 0, + "optionString": "" + }, + "no-empty": { + "active": 1, + "optionString": "{'allowEmptyCatch': false}" + }, + "no-empty-character-class": { + "active": 1, + "optionString": "" + }, + "no-empty-function": { + "active": 0, + "optionString": "{'allow': []}" + }, + "no-empty-pattern": { + "active": 1, + "optionString": "" + }, + "no-eq-null": { + "active": 0, + "optionString": "" + }, + "no-eval": { + "active": 0, + "optionString": "{'allowIndirect': false}" + }, + "no-ex-assign": { + "active": 1, + "optionString": "" + }, + "no-extend-native": { + "active": 0, + "optionString": "{'exceptions': []}" + }, + "no-extra-bind": { + "active": 0, + "optionString": "" + }, + "no-extra-boolean-cast": { + "active": 1, + "optionString": "" + }, + "no-extra-labels": { + "active": 0, + "optionString": "" + }, + "no-extra-parens": { + "active": 0, + "optionString": "'all', {'conditionalAssign': false, 'returnAssign': false, 'nestedBinaryExpressions': false, 'ignoreJSX': 'none', 'enforceForArrowConditionals': false}" + }, + "no-extra-semi": { + "active": 1, + "optionString": "" + }, + "no-fallthrough": { + "active": 1, + "optionString": "" + }, + "no-floating-decimal": { + "active": 0, + "optionString": "" + }, + "no-func-assign": { + "active": 1, + "optionString": "" + }, + "no-global-assign": { + "active": 1, + "optionString": "{'exceptions': []}" + }, + "no-implicit-coercion": { + "active": 0, + "optionString": "{'boolean': true, 'number': true, 'string': true, 'allow': []}" + }, + "no-implicit-globals": { + "active": 0, + "optionString": "" + }, + "no-implied-eval": { + "active": 0, + "optionString": "" + }, + "no-inline-comments": { + "active": 0, + "optionString": "" + }, + "no-inner-declarations": { + "active": 1, + "optionString": "'functions'" + }, + "no-invalid-regexp": { + "active": 1, + "optionString": "{'allowConstructorFlags': ['u', 'y']}" + }, + "no-invalid-this": { + "active": 0, + "optionString": "" + }, + "no-irregular-whitespace": { + "active": 1, + "optionString": "{'skipStrings': true, 'skipComments': false, 'skipRegExps': true, 'skipTemplates': true}" + }, + "no-iterator": { + "active": 0, + "optionString": "" + }, + "no-label-var": { + "active": 0, + "optionString": "" + }, + "no-labels": { + "active": 0, + "optionString": "{'allowLoop': false, 'allowSwitch': false}" + }, + "no-lone-blocks": { + "active": 0, + "optionString": "" + }, + "no-lonely-if": { + "active": 0, + "optionString": "" + }, + "no-loop-func": { + "active": 0, + "optionString": "" + }, + "no-magic-numbers": { + "active": 0, + "optionString": "{'ignore': [], 'ignoreArrayIndexes': true, 'enforceConst': false, 'detectObjects': false}" + }, + "no-mixed-operators": { + "active": 0, + "optionString": "{'groups': [['+', '-', '*', '\/', '%', '**'], ['&', '|', '^', '~', '<<', '>>', '>>>'], ['==', '!=', '===', '!==', '>', '>=', '<', '<='], ['&&', '||'], ['in', 'instanceof']], 'allowSamePrecedence': true}" + }, + "no-mixed-requires": { + "active": 0, + "optionString": "{'grouping': false, 'allowCall': false }" + }, + "no-mixed-spaces-and-tabs": { + "active": 0, + "optionString": "" + }, + "no-multi-assign": { + "active": 0, + "optionString": "" + }, + "no-multi-spaces": { + "active": 0, + "optionString": "{'exceptions': {'Property': true, 'BinaryExpression': false, 'VariableDeclarator': false, 'ImportDeclaration': false}}" + }, + "no-multi-str": { + "active": 0, + "optionString": "" + }, + "no-multiple-empty-lines": { + "active": 0, + "optionString": "{'max': 2, 'maxBOF': 2, 'maxEOF': 2}" + }, + "no-negated-condition": { + "active": 0, + "optionString": "" + }, + "no-nested-ternary": { + "active": 0, + "optionString": "" + }, + "no-new": { + "active": 0, + "optionString": "" + }, + "no-new-func": { + "active": 0, + "optionString": "" + }, + "no-new-object": { + "active": 0, + "optionString": "" + }, + "no-new-require": { + "active": 0, + "optionString": "" + }, + "no-new-symbol": { + "active": 1, + "optionString": "" + }, + "no-new-wrappers": { + "active": 0, + "optionString": "" + }, + "no-obj-calls": { + "active": 1, + "optionString": "" + }, + "no-octal": { + "active": 1, + "optionString": "" + }, + "no-octal-escape": { + "active": 0, + "optionString": "" + }, + "no-param-reassign": { + "active": 0, + "optionString": "{'props': false}" + }, + "no-path-concat": { + "active": 0, + "optionString": "" + }, + "no-plusplus": { + "active": 0, + "optionString": "{'allowForLoopAfterthoughts': false}" + }, + "no-process-env": { + "active": 0, + "optionString": "" + }, + "no-process-exit": { + "active": 0, + "optionString": "" + }, + "no-proto": { + "active": 0, + "optionString": "" + }, + "no-prototype-builtins": { + "active": 0, + "optionString": "" + }, + "no-redeclare": { + "active": 1, + "optionString": "{'builtinGlobals': false}" + }, + "no-regex-spaces": { + "active": 1, + "optionString": "" + }, + "no-restricted-globals": { + "active": 0, + "optionString": "'event', 'fdescribe'" + }, + "no-restricted-imports": { + "active": 0, + "optionString": "" + }, + "no-restricted-modules": { + "active": 0, + "optionString": "" + }, + "no-restricted-properties": { + "active": 0, + "optionString": "[{'object': 'disallowedObjectName', 'property': 'disallowedPropertyName'}, {'object': 'disallowedObjectName', 'property': 'anotherDisallowedPropertyName', 'message': 'Please use allowedObjectName.allowedPropertyName.'}]" + }, + "no-restricted-syntax": { + "active": 0, + "optionString": "'FunctionExpression', 'WithStatement'" + }, + "no-return-assign": { + "active": 0, + "optionString": "'except-parens'" + }, + "no-return-await": { + "active": 0, + "optionString": "" + }, + "no-script-url": { + "active": 0, + "optionString": "" + }, + "no-self-assign": { + "active": 1, + "optionString": "{'props': false}" + }, + "no-self-compare": { + "active": 0, + "optionString": "" + }, + "no-sequences": { + "active": 0, + "optionString": "" + }, + "no-shadow": { + "active": 0, + "optionString": "{'builtinGlobals': false, 'hoist': 'functions', 'allow': []}" + }, + "no-shadow-restricted-names": { + "active": 0, + "optionString": "" + }, + "no-sparse-arrays": { + "active": 1, + "optionString": "" + }, + "no-sync": { + "active": 0, + "optionString": "{'allowAtRootLevel': false}" + }, + "no-tabs": { + "active": 0, + "optionString": "" + }, + "no-template-curly-in-string": { + "active": 0, + "optionString": "" + }, + "no-ternary": { + "active": 0, + "optionString": "" + }, + "no-this-before-super": { + "active": 1, + "optionString": "" + }, + "no-throw-literal": { + "active": 0, + "optionString": "" + }, + "no-trailing-spaces": { + "active": 0, + "optionString": "{'skipBlankLines': false, 'ignoreComments': false}" + }, + "no-undef": { + "active": 1, + "optionString": "{'typeof': false}" + }, + "no-undef-init": { + "active": 0, + "optionString": "" + }, + "no-undefined": { + "active": 0, + "optionString": "" + }, + "no-underscore-dangle": { + "active": 0, + "optionString": "{'allow': [], 'allowAfterThis': false, 'allowAfterSuper': false, 'enforceInMethodNames': false}" + }, + "no-unexpected-multiline": { + "active": 1, + "optionString": "" + }, + "no-unmodified-loop-condition": { + "active": 0, + "optionString": "" + }, + "no-unneeded-ternary": { + "active": 0, + "optionString": "{'defaultAssignment': true}" + }, + "no-unreachable": { + "active": 1, + "optionString": "" + }, + "no-unsafe-finally": { + "active": 1, + "optionString": "" + }, + "no-unsafe-negation": { + "active": 1, + "optionString": "" + }, + "no-unused-expressions": { + "active": 0, + "optionString": "{'allowShortCircuit': false, 'allowTernary': false, 'allowTaggedTemplates': false}" + }, + "no-unused-labels": { + "active": 1, + "optionString": "" + }, + "no-unused-vars": { + "active": 1, + "optionString": "{'vars': 'all', 'args': 'after-used', 'caughtErrors': 'none', 'ignoreRestSiblings': false}" + }, + "no-use-before-define": { + "active": 0, + "optionString": "{'functions': true, 'classes': true, 'variables': true}" + }, + "no-useless-call": { + "active": 0, + "optionString": "" + }, + "no-useless-computed-key": { + "active": 0, + "optionString": "" + }, + "no-useless-concat": { + "active": 0, + "optionString": "" + }, + "no-useless-constructor": { + "active": 0, + "optionString": "" + }, + "no-useless-escape": { + "active": 0, + "optionString": "" + }, + "no-useless-rename": { + "active": 0, + "optionString": "{'ignoreDestructuring': false, 'ignoreImport': false, 'ignoreExport': false}" + }, + "no-useless-return": { + "active": 0, + "optionString": "" + }, + "no-var": { + "active": 0, + "optionString": "" + }, + "no-void": { + "active": 0, + "optionString": "" + }, + "no-warning-comments": { + "active": 0, + "optionString": "{'terms': ['todo', 'fixme', 'xxx'], 'location': 'start'}" + }, + "no-whitespace-before-property": { + "active": 0, + "optionString": "" + }, + "no-with": { + "active": 0, + "optionString": "" + }, + "nonblock-statement-body-position": { + "active": 0, + "optionString": "'beside'" + }, + "object-curly-newline": { + "active": 0, + "optionString": "{'ObjectExpression': {'multiline': true}, 'ObjectPattern': {'multiline': true}}" + }, + "object-curly-spacing": { + "active": 0, + "optionString": "'never'" + }, + "object-property-newline": { + "active": 0, + "optionString": "{'allowMultiplePropertiesPerLine': true}" + }, + "object-shorthand": { + "active": 0, + "optionString": "'always', {'avoidQuotes': false, 'ignoreConstructors': false}" + }, + "one-var": { + "active": 0, + "optionString": "'always'" + }, + "one-var-declaration-per-line": { + "active": 0, + "optionString": "'always'" + }, + "operator-assignment": { + "active": 0, + "optionString": "'always'" + }, + "operator-linebreak": { + "active": 0, + "optionString": "'after', {'overrides': {'?': 'after', '+=': 'none'}}" + }, + "padded-blocks": { + "active": 0, + "optionString": "{'blocks': 'always', 'switches': 'always', 'classes': 'always'}" + }, + "padding-line-between-statements": { + "active": 0, + "optionString": "{blankLine: 'always', prev:'*', next:'return'}" + }, + "prefer-arrow-callback": { + "active": 0, + "optionString": "" + }, + "prefer-const": { + "active": 0, + "optionString": "{'destructuring': 'any', 'ignoreReadBeforeAssign': false}" + }, + "prefer-destructuring": { + "active": 0, + "optionString": "{'array': true, 'object': true}, {'enforceForRenamedProperties': false}" + }, + "prefer-numeric-literals": { + "active": 0, + "optionString": "" + }, + "prefer-promise-reject-errors": { + "active": 0, + "optionString": "{'allowEmptyReject': false}" + }, + "prefer-rest-params": { + "active": 0, + "optionString": "" + }, + "prefer-spread": { + "active": 0, + "optionString": "" + }, + "prefer-template": { + "active": 0, + "optionString": "" + }, + "quote-props": { + "active": 0, + "optionString": "'always'" + }, + "quotes": { + "active": 0, + "optionString": "'double', {'avoidEscape': true, 'allowTemplateLiterals': true}" + }, + "radix": { + "active": 0, + "optionString": "'always'" + }, + "require-await": { + "active": 0, + "optionString": "" + }, + "require-jsdoc": { + "active": 0, + "optionString": "{'require': {'FunctionDeclaration': true, 'MethodDefinition': false, 'ClassDeclaration': false, 'ArrowFunctionExpression': false}}" + }, + "require-yield": { + "active": 1, + "optionString": "" + }, + "rest-spread-spacing": { + "active": 0, + "optionString": "'never'" + }, + "semi": { + "active": 0, + "optionString": "'always', {'omitLastInOneLineBlock': false}" + }, + "semi-spacing": { + "active": 0, + "optionString": "{'before': false, 'after': true}" + }, + "semi-style": { + "active": 0, + "optionString": "'last'" + }, + "sort-imports": { + "active": 0, + "optionString": "{'ignoreCase': false, 'ignoreMemberSort': true, 'memberSyntaxSortOrder': ['none', 'all', 'multiple', 'single']}" + }, + "sort-keys": { + "active": 0, + "optionString": "'asc', {'caseSensitive': true, 'natural': false}" + }, + "sort-vars": { + "active": 0, + "optionString": "{'ignoreCase': false}" + }, + "space-before-blocks": { + "active": 0, + "optionString": "{'functions': 'always', 'keywords': 'always', 'classes': 'always'}" + }, + "space-before-function-paren": { + "active": 0, + "optionString": "{'anonymous': 'always', 'named': 'never'}" + }, + "space-in-parens": { + "active": 0, + "optionString": "'never', {'exceptions': []}" + }, + "space-infix-ops": { + "active": 0, + "optionString": "{'int32Hint': false}" + }, + "space-unary-ops": { + "active": 0, + "optionString": "{'words': true, 'nonwords': false, 'overrides': {}}" + }, + "spaced-comment": { + "active": 0, + "optionString": "'always', {'line': {'markers': ['\/'], 'exceptions': ['-', '+']}, 'block': {'markers': ['!'], 'exceptions': ['*'], 'balanced': false}}" + }, + "strict": { + "active": 0, + "optionString": "'safe'" + }, + "switch-colon-spacing": { + "active": 0, + "optionString": "{'after': true, 'before': false}" + }, + "symbol-description": { + "active": 0, + "optionString": "" + }, + "template-curly-spacing": { + "active": 0, + "optionString": "'never'" + }, + "template-tag-spacing": { + "active": 0, + "optionString": "'never'" + }, + "unicode-bom": { + "active": 0, + "optionString": "'never'" + }, + "use-isnan": { + "active": 1, + "optionString": "" + }, + "valid-jsdoc": { + "active": 0, + "optionString": "{'prefer': {'return': 'returns'}, 'requireReturn': true, 'requireReturnDescription': true, 'requireReturnType': true, 'requireParamDescription': true}" + }, + "valid-typeof": { + "active": 1, + "optionString": "{'requireStringLiterals': true}" + }, + "vars-on-top": { + "active": 0, + "optionString": "" + }, + "wrap-iife": { + "active": 0, + "optionString": "'outside'" + }, + "wrap-regex": { + "active": 0, + "optionString": "" + }, + "yield-star-spacing": { + "active": 0, + "optionString": "{'before': false, 'after': true}" + }, + "yoda": { + "active": 0, + "optionString": "'never', {'exceptRange': false, 'onlyEquality': false}" + } + }, + "esLintSourceType": 0, + "externalServerAddress": "http:\/\/localhost:8888", + "gitIgnoreBuildFolder": 1, + "hideConfigFile": 0, + "jsCheckerReservedNamesString": "", + "jsHintFlags2": { + "asi": { + "active": 0, + "flagValue": -1 + }, + "bitwise": { + "active": 1, + "flagValue": -1 + }, + "boss": { + "active": 0, + "flagValue": -1 + }, + "browser": { + "active": 1, + "flagValue": -1 + }, + "browserify": { + "active": 0, + "flagValue": -1 + }, + "camelcase": { + "active": 0, + "flagValue": -1 + }, + "couch": { + "active": 0, + "flagValue": -1 + }, + "curly": { + "active": 1, + "flagValue": -1 + }, + "debug": { + "active": 0, + "flagValue": -1 + }, + "devel": { + "active": 0, + "flagValue": -1 + }, + "dojo": { + "active": 0, + "flagValue": -1 + }, + "elision": { + "active": 1, + "flagValue": -1 + }, + "eqeqeq": { + "active": 1, + "flagValue": -1 + }, + "eqnull": { + "active": 0, + "flagValue": -1 + }, + "es3": { + "active": 0, + "flagValue": -1 + }, + "esnext": { + "active": 0, + "flagValue": -1 + }, + "evil": { + "active": 0, + "flagValue": -1 + }, + "expr": { + "active": 0, + "flagValue": -1 + }, + "forin": { + "active": 0, + "flagValue": -1 + }, + "freeze": { + "active": 1, + "flagValue": -1 + }, + "funcscope": { + "active": 0, + "flagValue": -1 + }, + "futurehostile": { + "active": 0, + "flagValue": -1 + }, + "globalstrict": { + "active": 0, + "flagValue": -1 + }, + "immed": { + "active": 0, + "flagValue": -1 + }, + "indent": { + "active": 0, + "flagValue": 4 + }, + "iterator": { + "active": 0, + "flagValue": -1 + }, + "jasmine": { + "active": 0, + "flagValue": -1 + }, + "jquery": { + "active": 1, + "flagValue": -1 + }, + "lastsemic": { + "active": 0, + "flagValue": -1 + }, + "latedef": { + "active": 1, + "flagValue": -1 + }, + "laxbreak": { + "active": 0, + "flagValue": -1 + }, + "laxcomma": { + "active": 0, + "flagValue": -1 + }, + "loopfunc": { + "active": 0, + "flagValue": -1 + }, + "maxcomplexity": { + "active": 0, + "flagValue": 10 + }, + "maxdepth": { + "active": 0, + "flagValue": 3 + }, + "maxlen": { + "active": 0, + "flagValue": 150 + }, + "maxparams": { + "active": 0, + "flagValue": 3 + }, + "maxstatements": { + "active": 0, + "flagValue": 4 + }, + "mocha": { + "active": 0, + "flagValue": -1 + }, + "mootools": { + "active": 0, + "flagValue": -1 + }, + "moz": { + "active": 0, + "flagValue": -1 + }, + "multistr": { + "active": 0, + "flagValue": -1 + }, + "newcap": { + "active": 1, + "flagValue": -1 + }, + "noarg": { + "active": 1, + "flagValue": -1 + }, + "nocomma": { + "active": 0, + "flagValue": -1 + }, + "node": { + "active": 0, + "flagValue": -1 + }, + "noempty": { + "active": 0, + "flagValue": -1 + }, + "nonbsp": { + "active": 0, + "flagValue": -1 + }, + "nonew": { + "active": 1, + "flagValue": -1 + }, + "nonstandard": { + "active": 0, + "flagValue": -1 + }, + "notypeof": { + "active": 1, + "flagValue": -1 + }, + "noyield": { + "active": 0, + "flagValue": -1 + }, + "onecase": { + "active": 0, + "flagValue": -1 + }, + "phantom": { + "active": 0, + "flagValue": -1 + }, + "plusplus": { + "active": 0, + "flagValue": -1 + }, + "proto": { + "active": 0, + "flagValue": -1 + }, + "prototypejs": { + "active": 0, + "flagValue": -1 + }, + "qunit": { + "active": 0, + "flagValue": -1 + }, + "regexp": { + "active": 1, + "flagValue": -1 + }, + "rhino": { + "active": 0, + "flagValue": -1 + }, + "scripturl": { + "active": 0, + "flagValue": -1 + }, + "shadow": { + "active": 0, + "flagValue": -1 + }, + "shelljs": { + "active": 0, + "flagValue": -1 + }, + "singleGroups": { + "active": 0, + "flagValue": -1 + }, + "strict": { + "active": 0, + "flagValue": -1 + }, + "sub": { + "active": 0, + "flagValue": -1 + }, + "supernew": { + "active": 0, + "flagValue": -1 + }, + "typed": { + "active": 0, + "flagValue": -1 + }, + "undef": { + "active": 1, + "flagValue": -1 + }, + "unused": { + "active": 1, + "flagValue": -1 + }, + "varstmt": { + "active": 0, + "flagValue": -1 + }, + "withstmt": { + "active": 0, + "flagValue": -1 + }, + "worker": { + "active": 0, + "flagValue": -1 + }, + "wsh": { + "active": 0, + "flagValue": -1 + }, + "yui": { + "active": 0, + "flagValue": -1 + } + }, + "jsLintFlags2": { + "bitwise": { + "active": 0, + "flagValue": -1 + }, + "browser": { + "active": 1, + "flagValue": -1 + }, + "couch": { + "active": 0, + "flagValue": -1 + }, + "devel": { + "active": 0, + "flagValue": -1 + }, + "es6": { + "active": 0, + "flagValue": -1 + }, + "eval": { + "active": 0, + "flagValue": -1 + }, + "for": { + "active": 0, + "flagValue": -1 + }, + "maxlen": { + "active": 0, + "flagValue": 150 + }, + "node": { + "active": 0, + "flagValue": -1 + }, + "this": { + "active": 0, + "flagValue": -1 + }, + "white": { + "active": 0, + "flagValue": -1 + } + }, + "languageDefaultsCOFFEE": { + "autoOutputAction": 0, + "autoOutputPathFilenamePattern": "*.js", + "autoOutputPathRelativePath": "", + "autoOutputPathReplace1": "", + "autoOutputPathReplace2": "", + "autoOutputPathStyle": 0, + "createSourceMap": 0, + "minifyOutput": 1, + "outputStyle": 0, + "syntaxCheckerStyle": 1, + "transpilerStyle": 1 + }, + "languageDefaultsCSS": { + "autoOutputAction": 0, + "autoOutputPathFilenamePattern": "*-min.css", + "autoOutputPathRelativePath": "", + "autoOutputPathReplace1": "", + "autoOutputPathReplace2": "", + "autoOutputPathStyle": 0, + "createSourceMap": 0, + "outputStyle": 3, + "shouldRunAutoprefixer": 1, + "shouldRunBless": 0 + }, + "languageDefaultsGIF": { + "autoOutputAction": 0, + "autoOutputPathFilenamePattern": "*.gif", + "autoOutputPathRelativePath": "", + "autoOutputPathReplace1": "", + "autoOutputPathReplace2": "", + "autoOutputPathStyle": 0 + }, + "languageDefaultsHAML": { + "autoOutputAction": 0, + "autoOutputPathFilenamePattern": "*.html", + "autoOutputPathRelativePath": "", + "autoOutputPathReplace1": "", + "autoOutputPathReplace2": "", + "autoOutputPathStyle": 0, + "escapeHTMLCharacters": 0, + "noEscapeInAttributes": 0, + "outputFormat": 2, + "outputStyle": 0, + "shouldRunCacheBuster": 0, + "useCDATA": 0, + "useDoubleQuotes": 0, + "useUnixNewlines": 0 + }, + "languageDefaultsJPG": { + "autoOutputAction": 0, + "autoOutputPathFilenamePattern": "*.jpg", + "autoOutputPathRelativePath": "", + "autoOutputPathReplace1": "", + "autoOutputPathReplace2": "", + "autoOutputPathStyle": 0, + "quality": 100 + }, + "languageDefaultsJS": { + "autoOutputAction": 0, + "autoOutputPathFilenamePattern": "*-min.js", + "autoOutputPathRelativePath": "\/min", + "autoOutputPathReplace1": "", + "autoOutputPathReplace2": "", + "autoOutputPathStyle": 0, + "createSourceMap": 0, + "minifyOutput": 1, + "syntaxCheckerStyle": 1, + "transpilerStyle": 0 + }, + "languageDefaultsJSON": { + "autoOutputAction": 1, + "autoOutputPathFilenamePattern": "*-min.json", + "autoOutputPathRelativePath": "", + "autoOutputPathReplace1": "", + "autoOutputPathReplace2": "", + "autoOutputPathStyle": 0, + "orderOutput": 0, + "outputStyle": 1 + }, + "languageDefaultsKIT": { + "autoOutputAction": 0, + "autoOutputPathFilenamePattern": "*.html", + "autoOutputPathRelativePath": "", + "autoOutputPathReplace1": "kit", + "autoOutputPathReplace2": "html", + "autoOutputPathStyle": 0, + "shouldRunCacheBuster": 0 + }, + "languageDefaultsLESS": { + "allowInsecureImports": 0, + "autoOutputAction": 0, + "autoOutputPathFilenamePattern": "*.css", + "autoOutputPathRelativePath": "..\/css", + "autoOutputPathReplace1": "less", + "autoOutputPathReplace2": "css", + "autoOutputPathStyle": 0, + "createSourceMap": 1, + "disableJavascript": 0, + "ieCompatibility": 1, + "outputStyle": 0, + "relativeURLS": 0, + "shouldRunAutoprefixer": 0, + "shouldRunBless": 0, + "strictImports": 0, + "strictMath": 0, + "strictUnits": 0 + }, + "languageDefaultsMARKDOWN": { + "autoOutputAction": 0, + "autoOutputPathFilenamePattern": "*.html", + "autoOutputPathRelativePath": "", + "autoOutputPathReplace1": "", + "autoOutputPathReplace2": "", + "autoOutputPathStyle": 0, + "criticStyle": 0, + "enableFootnotes": 1, + "enableLabels": 1, + "enableSmartQuotes": 1, + "maskEmailAddresses": 1, + "outputFormat": 0, + "outputStyle": 0, + "parseMetadata": 1, + "processHTML": 0, + "randomFootnoteNumbers": 0, + "shouldRunCacheBuster": 0, + "useCompatibilityMode": 0 + }, + "languageDefaultsOTHER": { + "autoOutputAction": 0, + "autoOutputPathFilenamePattern": "*.*", + "autoOutputPathRelativePath": "", + "autoOutputPathReplace1": "", + "autoOutputPathReplace2": "", + "autoOutputPathStyle": 0, + "shouldRunCacheBuster": 0 + }, + "languageDefaultsPNG": { + "autoOutputAction": 0, + "autoOutputPathFilenamePattern": "*.png", + "autoOutputPathRelativePath": "", + "autoOutputPathReplace1": "", + "autoOutputPathReplace2": "", + "autoOutputPathStyle": 0, + "optimizerType": 1, + "quality": 100 + }, + "languageDefaultsPUG": { + "autoOutputAction": 0, + "autoOutputPathFilenamePattern": "*.html", + "autoOutputPathRelativePath": "", + "autoOutputPathReplace1": "", + "autoOutputPathReplace2": "", + "autoOutputPathStyle": 0, + "compileDebug": 1, + "outputStyle": 0, + "shouldRunCacheBuster": 0 + }, + "languageDefaultsSASS": { + "autoOutputAction": 0, + "autoOutputPathFilenamePattern": "*.css", + "autoOutputPathRelativePath": "..\/css", + "autoOutputPathReplace1": "sass", + "autoOutputPathReplace2": "css", + "autoOutputPathStyle": 0, + "createSourceMap": 0, + "debugStyle": 0, + "decimalPrecision": 10, + "outputStyle": 0, + "shouldRunAutoprefixer": 0, + "shouldRunBless": 0, + "useLibsass": 1 + }, + "languageDefaultsSLIM": { + "autoOutputAction": 0, + "autoOutputPathFilenamePattern": "*.html", + "autoOutputPathRelativePath": "", + "autoOutputPathReplace1": "", + "autoOutputPathReplace2": "", + "autoOutputPathStyle": 0, + "compileOnly": 0, + "logicless": 0, + "outputFormat": 0, + "outputStyle": 1, + "railsCompatible": 0, + "shouldRunCacheBuster": 0 + }, + "languageDefaultsSTYLUS": { + "autoOutputAction": 0, + "autoOutputPathFilenamePattern": "*.css", + "autoOutputPathRelativePath": "..\/css", + "autoOutputPathReplace1": "stylus", + "autoOutputPathReplace2": "css", + "autoOutputPathStyle": 0, + "createSourceMap": 0, + "debugStyle": 0, + "importCSS": 0, + "outputStyle": 0, + "resolveRelativeURLS": 0, + "shouldRunAutoprefixer": 0, + "shouldRunBless": 0 + }, + "languageDefaultsSVG": { + "autoOutputAction": 2, + "autoOutputPathFilenamePattern": "*.svg", + "autoOutputPathRelativePath": "", + "autoOutputPathReplace1": "", + "autoOutputPathReplace2": "", + "autoOutputPathStyle": 0, + "pluginMask": 3758088159 + }, + "languageDefaultsTS": { + "autoOutputAction": 0, + "autoOutputPathFilenamePattern": "*.js", + "autoOutputPathRelativePath": "\/js", + "autoOutputPathReplace1": "", + "autoOutputPathReplace2": "", + "autoOutputPathStyle": 0, + "createDeclarationFile": 0, + "createSourceMap": 0, + "jsxMode": 0, + "minifyOutput": 0, + "moduleResolutionType": 0, + "moduleType": 2, + "noImplicitAny": 0, + "preserveConstEnums": 0, + "removeComments": 0, + "suppressImplicitAnyIndexErrors": 0, + "targetECMAVersion": 0 + }, + "languageDefaultsUserDefined": [ + ], + "overrideExternalServerCSS": 0, + "previewPathAddition": "", + "skippedFoldersString": "log, _logs, logs, _cache, cache, \/storage\/framework\/sessions, node_modules", + "sourceFolderName": "source", + "susyVersion": 3, + "uglifyDefinesString": "", + "uglifyFlags2": { + "ascii-only": { + "active": 0, + "flagValue": -1 + }, + "bare-returns": { + "active": 0, + "flagValue": -1 + }, + "booleans": { + "active": 1, + "flagValue": -1 + }, + "bracketize": { + "active": 0, + "flagValue": -1 + }, + "cascade": { + "active": 1, + "flagValue": -1 + }, + "comments": { + "active": 1, + "flagValue": -1 + }, + "comparisons": { + "active": 1, + "flagValue": -1 + }, + "compress": { + "active": 1, + "flagValue": -1 + }, + "conditionals": { + "active": 1, + "flagValue": -1 + }, + "dead_code": { + "active": 0, + "flagValue": -1 + }, + "drop_console": { + "active": 0, + "flagValue": -1 + }, + "drop_debugger": { + "active": 1, + "flagValue": -1 + }, + "eval": { + "active": 0, + "flagValue": -1 + }, + "evaluate": { + "active": 1, + "flagValue": -1 + }, + "hoist_funs": { + "active": 1, + "flagValue": -1 + }, + "hoist_vars": { + "active": 0, + "flagValue": -1 + }, + "if_return": { + "active": 1, + "flagValue": -1 + }, + "indent-level": { + "active": 0, + "flagValue": 4 + }, + "indent-start": { + "active": 0, + "flagValue": 0 + }, + "inline-script": { + "active": 0, + "flagValue": -1 + }, + "join_vars": { + "active": 1, + "flagValue": -1 + }, + "keep_fargs": { + "active": 0, + "flagValue": -1 + }, + "keep_fnames": { + "active": 0, + "flagValue": -1 + }, + "loops": { + "active": 1, + "flagValue": -1 + }, + "mangle": { + "active": 1, + "flagValue": -1 + }, + "max-line-len": { + "active": 1, + "flagValue": 32000 + }, + "negate_iife": { + "active": 1, + "flagValue": -1 + }, + "properties": { + "active": 1, + "flagValue": -1 + }, + "pure_getters": { + "active": 0, + "flagValue": -1 + }, + "quote-keys": { + "active": 0, + "flagValue": -1 + }, + "screw-ie8": { + "active": 1, + "flagValue": -1 + }, + "semicolons": { + "active": 1, + "flagValue": -1 + }, + "sequences": { + "active": 1, + "flagValue": -1 + }, + "sort": { + "active": 0, + "flagValue": -1 + }, + "space-colon": { + "active": 1, + "flagValue": -1 + }, + "support-ie8": { + "active": 0, + "flagValue": -1 + }, + "toplevel": { + "active": 0, + "flagValue": -1 + }, + "unsafe": { + "active": 0, + "flagValue": -1 + }, + "unused": { + "active": 0, + "flagValue": -1 + }, + "warnings": { + "active": 0, + "flagValue": -1 + }, + "width": { + "active": 1, + "flagValue": 80 + } + }, + "uglifyReservedNamesString": "$", + "websiteRelativeRoot": "" + }, +"settingsFileVersion": "3" +} \ No newline at end of file diff --git a/docs/www/emulator/index.html b/docs/www/emulator/index.html index 4d293ade6..487f7a2e4 100644 --- a/docs/www/emulator/index.html +++ b/docs/www/emulator/index.html @@ -1,49 +1,76 @@ - - - - - - - - Minimal Linux Live in JavaScript PC emulator - - -
- Minimal Linux Live (version 28-Jan-2018) -
-
-
-
- -
-
- This is JavaScript based PC emulator which works entirely in your browser and some OS features may not behave properly in it. - All CPU instructions are emulated via JavaScript and the boot process may take 10-20 minutes. -
- - - + + + + + JavaScript Emulator for MML - Minimal Linux Live + + + + + + + + +
+
+

Minimal Linux Live

+

ver: 28-Jan-2018

+ +
+
+ +
+
+
+ +
+
+ + +
+ + + + + \ No newline at end of file diff --git a/docs/www/emulator/libv86.min.js b/docs/www/emulator/libv86.min.js deleted file mode 100644 index 52ddd9f9c..000000000 --- a/docs/www/emulator/libv86.min.js +++ /dev/null @@ -1,431 +0,0 @@ -'use strict';var l;function aa(a,c){this.g=a;this.J=c;this.ha=function(){};this.K=9;this.L=1;this.v=new Uint8Array([6,0,104,111,115,116,57,112]);this.D="9P2000.L";this.m=this.o=8192;this.ua=new Uint8Array(2*this.m);this.ce=0;this.b=[]}aa.prototype.La=function(){var a=[];a[0]=this.K;a[1]=this.L;a[2]=this.v;a[3]=this.D;a[4]=this.o;a[5]=this.m;a[6]=this.ua;a[7]=this.ce;a[8]=this.b.map(function(a){return[a.$,a.type,a.uid]});return a}; -aa.prototype.Ra=function(a){this.K=a[0];this.L=a[1];this.v=a[2];this.D=a[3];this.o=a[4];this.m=a[5];this.ua=a[6];this.ce=a[7];this.b=a[8].map(function(a){return{$:a[0],type:a[1],uid:a[2]}})};function ba(a,c,d,e){ca(["w","b","h"],[e+7,c+1,d],a.ua,0);a.ce=e+7}function da(a,c,d){d=ca(["w"],[d],a.ua,7);ba(a,6,c,d)} -function ea(a,c,d){var e=fa(["w","b","h"],d),f=e[0],h=e[1],r=e[2];switch(h){case 8:var f=a.g.K,k=[16914839];k[1]=a.o;k[2]=Math.floor(274877906944/k[1]);k[3]=k[2]-Math.floor(f/k[1]);k[4]=k[2]-Math.floor(f/k[1]);k[5]=a.g.b.length;k[6]=1048576;k[7]=0;k[8]=256;f=ca("wwddddddw".split(""),k,a.ua,7);ba(a,h,r,f);a.ha(0,c);break;case 112:case 12:var k=fa(["w","w"],d),t=k[0],e=k[1];d=a.b[t].$;var u=ga(a.g,d);d=ha(a.g,d);ia(a.g,a.b[t].$,function(){k[0]=u.Xa;k[1]=this.m-24;ca(["Q","w"],k,this.ua,7);ba(this,h, -r,17);this.ha(0,c)}.bind(a));break;case 70:k=fa(["w","w","s"],d);f=k[0];t=k[1];d=k[2];var u=ja(a.g),e=ga(a.g,a.b[t].$),z=a.g.g[a.b[t].$];u.mode=e.mode;u.size=e.size;u.Gd=e.Gd;for(var G=a.g.g[a.g.b.length]=new Uint8Array(u.size),e=0;eZa;Za++)Xb=127Za?Zf[Za]:Za,Wb[Za]=String.fromCharCode(Xb);k.imageSmoothingEnabled=!1;k.mozImageSmoothingEnabled= -!1;u.style.position="absolute";u.style.backgroundColor="#ccc";u.style.width="7px";u.style.display="inline-block";t.style.display="block";r.style.display="none";this.J=c;c.register("screen-set-mode",function(a){this.dh(a)},this);c.register("screen-fill-buffer-end",function(a){this.kh(a[0],a[1])},this);c.register("screen-put-char",function(a){this.Xg(a[0],a[1],a[2],a[3],a[4])},this);c.register("screen-update-cursor",function(a){this.Kd(a[0],a[1])},this);c.register("screen-update-cursor-scanline",function(a){this.Ld(a[0], -a[1])},this);c.register("screen-set-size-text",function(a){this.zc(a[0],a[1])},this);c.register("screen-set-size-graphical",function(a){this.Fd(a[0],a[1])},this);this.ob=function(){this.zc(80,25);this.zb()};this.m=function(){try{window.open(r.toDataURL())}catch(a){}};this.Xg=function(a,c,f,d,e){ac;)t.removeChild(t.firstChild);for(;t.childNodes.lengthd||2147483648<=d)&&(alert("Invalid memory size - ignored."),d=33554432);var h=a.Ca;!h&&(h=1048576*parseInt(f("video_memory_size").value, -10),65536>=h||2147483648<=h)&&(alert("Invalid video memory size - ignored."),h=8388608);if(a.lh)var r="bochs-bios.bin",t="bochs-vgabios.bin";else r="seabios.bin",t="vgabios.bin";var u,z;a.Qc||(u={url:"bios/"+r},z={url:"bios/"+t});var F=new n({memory_size:d,vga_memory_size:h,screen_container:f("screen_container"),serial_container:f("serial"),boot_order:a.Ic||parseInt(f("boot_order").value,16)||0,network_relay_url:"ws://relay.widgetry.org/",bios:u,vga_bios:z,fda:a.Oa,hda:a.Ma,cdrom:a.Ka,initial_state:a.Qc, -filesystem:a.filesystem||{},autostart:!0});F.Sa("emulator-ready",function(){k(a,F);c&&c(F)});F.Sa("download-progress",function(a){var c=f("loading");c.style.display="block";if(a.xe===a.we-1&&a.loaded>=a.total-2048)c.textContent="Done downloading. Starting now ...";else{var d="Downloading images ";"number"===typeof a.xe&&a.we&&(d+="["+(a.xe+1)+"/"+a.we+"] ");if(a.total&&"number"===typeof a.loaded){a=Math.floor(a.loaded/a.total*100);a=Math.min(100,Math.max(0,a));var h=Math.floor(a/2),d=d+(a+"% [")+ -e("#",h),d=d+(e(" ",50-h)+"]")}else d+=e(".",L++%50);c.textContent=d}})}function k(d,e){function h(){var a=Date.now(),c=e.b?e.b.s.V:0,d=c-F;F=c;var r=a-z;L+=r;z=a;f("speed").textContent=d/r|0;f("avg_speed").textContent=c/L|0;a=f("running_time");c=L/1E3|0;a.textContent=60>c?c+"s":3600>c?(c/60|0)+"m "+za(c%60,2)+"s":(c/3600|0)+"h "+za((c/60|0)%60,2)+"m "+za(c%60,2)+"s"}function r(h,k){var t=f("get_"+k+"_image");!h||104857600c;c++)this.ports[c]={da:this.Wf,ma:this.Uf,qf:this.Vf,sa:this.te,ad:this.te,Cc:this.te,U:void 0};for(var d=a.size,c=0;c<<17>8&255)}function k(a){f.call(this,a&255);h.call(this,a>>8&255)}function t(a){d.call(this,a&255);e.call(this,a>>8&255);f.call(this,a>>16&255);h.call(this,a>>>24)}f&&h?(q(this,a,c,d,r,t),q(this,a+1,c,e),q(this,a+2,c,f,k),q(this,a+3,c,h)):(q(this,a,c,d,r),q(this,a+1,c,e))};function Da(a,c,d){c>>>=0;d=c+(d>>>0);if(d>=a.memory.size)return!0;for(c&=-131072;c>17])return!0;c+=131072}return!1} -l.hg=function(a){var c=this.memory.g[a>>>17];return c(a)|c(a+1)<<8|c(a+2)<<16|c(a+3)<<24};l.ig=function(a,c){var d=this.memory.m[a>>>17];d(a,c&255);d(a+1,c>>8&255);d(a+2,c>>16&255);d(a+3,c>>>24)};function Ca(a,c,d,e,f,h,r){h||(h=a.hg.bind(a));r||(r=a.ig.bind(a));for(c>>>=17;0=c?a.b():a.v(c)}}Ka.prototype.L=function(){this.g&&(this.m=!0)};Ka.prototype.D=function(){this.s.reset();Ma(this.s)};Ka.prototype.ob=function(a){this.o&&(this.o=!1,Na(this));this.s.ob(a,this.J);this.J.send("emulator-ready")}; -function Na(a){"undefined"!==typeof setImmediate?a.b=function(){setImmediate(function(){La(a)})}:"undefined"!==typeof window&&"undefined"!==typeof postMessage?(window.addEventListener("message",function(c){c.source===window&&43605===c.data&&La(a)},!1),a.b=function(){window.postMessage(43605,"*")}):a.b=function(){setTimeout(function(){La(a)},0)};a.v="undefined"!==typeof document&&"boolean"===typeof document.hidden?function(c){4>c||document.hidden?this.b():setTimeout(function(){La(a)},c)}:function(c){setTimeout(function(){La(a)}, -c)}}var Oa="object"===typeof performance&&performance.now?function(){return performance.now()}:Date.now;if("undefined"!==typeof window&&window.crypto&&window.crypto.getRandomValues)var Pa=new Int32Array(1),Qa=function(){return!0},Ta=function(){window.crypto.getRandomValues(Pa);return Pa[0]};else Qa=function(){return!1},Ta=function(){console.assert(!1)};var Aa,Ua,Va,Wa,Xa,Ya;function za(a,c){for(a=a?a+"":"";a.lengthc;c++)c&c-1||d++,a[c]=d;Ua=function(c){return a[c]};Va=function(c){var f=c>>>16;if(f){var d=f>>>8;return d?24+a[d]:16+a[f]}return(d=c>>>8)?8+a[d]:a[c]}})();function bb(a){var c=new Uint8Array(a),d,e;this.length=0;this.push=function(f){this.length!==a&&this.length++;c[e]=f;e=e+1&a-1};this.shift=function(){if(this.length){var f=c[d];d=d+1&a-1;this.length--;return f}return-1};this.clear=function(){this.length=e=d=0};this.clear()};function cb(a){this.s=a;this.g=new Float64Array(8);this.N=new Float32Array(1);new Uint8Array(this.N.buffer);this.Fa=new Int32Array(this.N.buffer);this.L=new Float64Array(1);this.v=new Uint8Array(this.L.buffer);this.D=new Int32Array(this.L.buffer);this.tb=new Uint8Array(this.g.buffer);new Int32Array(this.g.buffer);this.o=255;this.b=0;this.K=895;this.aa=this.W=this.ja=this.wa=this.ba=this.m=0;this.Ja=NaN;this.sb=new Float64Array([1,Math.log(10)/Math.LN2,Math.LOG2E,Math.PI,Math.log(2)/Math.LN10,Math.LN2, -0])}l=cb.prototype;l.La=function(){var a=[];a[0]=this.g;a[1]=this.o;a[2]=this.b;a[3]=this.K;a[4]=this.aa;a[5]=this.ba;a[6]=this.wa;a[7]=this.W;a[8]=this.aa;a[9]=this.ja;return a};l.Ra=function(a){this.g.set(a[0]);this.o=a[1];this.b=a[2];this.K=a[3];this.ba=a[5];this.wa=a[6];this.W=a[7];this.aa=a[8];this.ja=a[9]};function db(a){w(a.s)}function fb(a){a.m|=1}function gb(a,c){var d=hb(a);a.m&=-18177;d>c||(a.m=c>d?a.m|256:d===c?a.m|16384:a.m|17664)} -function ib(a,c){var d=a.g[a.b];a.s.u&=-70;a.s.h&=-70;d>c||(a.s.h=c>d?a.s.h|1:d===c?a.s.h|64:a.s.h|69)}function jb(a){a.K=895;a.m=0;a.ba=0;a.W=0;a.ja=0;a.o=255;a.b=0}function kb(a,c){if(a.s.Da){lb(a.s,c,26);mb(a.s,c,a.K);mb(a.s,c+4,a.m&-14337|a.b<<11);for(var d=0,e,f=0;8>f;f++)e=a.g[f],a.o>>f&1?d|=3<<(f<<1):e?isFinite(e)||(d|=2<<(f<<1)):d|=1<<(f<<1);mb(a.s,c+8,d);x(a.s,c+12,a.ba);mb(a.s,c+16,a.wa);mb(a.s,c+18,a.ja);x(a.s,c+20,a.W);mb(a.s,c+24,a.aa)}else db(a)} -function nb(a,c){if(a.s.Da){a.K=y(a.s,c);var d=y(a.s,c+4);a.m=d&-14337;a.b=d>>11&7;for(var d=y(a.s,c+8),e=a.o=0;8>e;e++)a.o|=d>>e&d>>e+1&1<>10&3)return 1===a||3===a&&0>this.b&1?(this.m&=-513,this.o&=~(1<>c&1?(a.m&=-513,a.m|=65,a.Ja):a.g[c]}function hb(a){return a.o>>a.b&1?(a.m&=-513,a.m|=65,a.Ja):a.g[a.b]} -function sb(a,c){var d=y(a.s,c+8),e=A(a.s,c)>>>0,f=A(a.s,c+4)>>>0;c=d>>15;d&=-32769;if(0===d)return 0;if(!(32767>d))return a.v[7]=127|c<<7,a.v[6]=240|f>>30<<3&8,a.v[5]=0,a.v[4]=0,a.D[0]=0,a.L[0];a=e+4294967296*f;c&&(a=-a);return a*Math.pow(2,d-16383-63)} -function tb(a,c,d){a.L[0]=a.g[a.b+d&7];d=a.v[7]&128;var e=(a.v[7]&127)<<4|a.v[6]>>4,f,h;2047===e?(e=32767,f=0,h=2147483648|(a.D[1]&524288)<<11):e?(e+=15360,f=a.D[0]<<11,h=2147483648|(a.D[1]&1048575)<<11|a.D[0]>>>21):h=f=0;x(a.s,c,f);x(a.s,c+4,h);mb(a.s,c+8,d<<8|e)}function ub(a,c){var d=A(a.s,c);c=A(a.s,c+4);a.D[0]=d;a.D[1]=c;return a.L[0]}function vb(a,c){lb(a.s,c,8);a.L[0]=rb(a,0);x(a.s,c,a.D[0]);x(a.s,c+4,a.D[1])}function wb(a,c){a.Fa[0]=A(a.s,c);return a.N[0]} -l.sign=function(a){return this.tb[(this.b+a&7)<<3|7]>>7};function xb(a,c,d,e,f){this.pa=new yb(this,a,c,d,e,0,f);this.na=new yb(this,a,void 0,!1,e,0,f);this.za=this.pa;this.s=a;e?1===e&&(this.b=368,this.Ha=15,this.Tb=248):(this.b=496,this.Ha=14,this.Tb=240);this.m=this.b|516;this.g=46080;this.Uc=[134,128,32,58,5,0,160,2,0,143,1,1,0,0,0,0,this.b&255|1,this.b>>8,0,0,this.m&255|1,this.m>>8,0,0,0,0,0,0,0,0,0,0,this.g&255|1,this.g>>8,0,0,0,0,0,0,0,0,0,0,67,16,212,130,0,0,0,0,0,0,0,0,0,0,0,0,this.Ha,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];this.dc=[{size:8},{size:4},!1,!1,{size:16}];this.name="ide"+e;zb(a.H.Tc,this);this.o=2;p(a.A,this.b|7,this,function(){Ab(this.s,this.Ha);return this.sf()});p(a.A,this.m|2,this,this.sf);q(a.A,this.m|2,this,this.nh);p(a.A,this.b|0,this,function(){return Bb(this.za)},function(){return Bb(this.za)|Bb(this.za)<<8},function(){return Bb(this.za)|Bb(this.za)<<8|Bb(this.za)<< -16|Bb(this.za)<<24});p(a.A,this.b|1,this,function(){return this.za.error});p(a.A,this.b|2,this,function(){return this.za.ta&255});p(a.A,this.b|3,this,function(){return this.za.nb&255});p(a.A,this.b|4,this,function(){return this.za.ia&255});p(a.A,this.b|5,this,function(){return this.za.Aa&255});p(a.A,this.b|6,this,function(){return this.za.Mc});q(a.A,this.b|0,this,function(a){Db(this.za,a)},function(a){var c=this.za;Db(c,a&255);Db(c,a>>8&255)},function(a){var c=this.za;Db(c,a&255);Db(c,a>>8&255);Db(c, -a>>16&255);Db(c,a>>24&255)});q(a.A,this.b|1,this,function(a){this.pa.qc=(this.pa.qc<<8|a)&65535;this.na.qc=(this.na.qc<<8|a)&65535});q(a.A,this.b|2,this,function(a){this.pa.ta=(this.pa.ta<<8|a)&65535;this.na.ta=(this.na.ta<<8|a)&65535});q(a.A,this.b|3,this,function(a){this.pa.nb=(this.pa.nb<<8|a)&65535;this.na.nb=(this.na.nb<<8|a)&65535});q(a.A,this.b|4,this,function(a){this.pa.ia=(this.pa.ia<<8|a)&65535;this.na.ia=(this.na.ia<<8|a)&65535});q(a.A,this.b|5,this,function(a){this.pa.Aa=(this.pa.Aa<< -8|a)&65535;this.na.Aa=(this.na.Aa<<8|a)&65535});q(a.A,this.b|6,this,function(a){this.za=a&16?this.na:this.pa;this.pa.Mc=a;this.na.Mc=a;this.pa.Rc=this.na.Rc=a>>6&1;this.pa.head=this.na.head=a&15});this.oa=this.wc=0;q(a.A,this.b|7,this,function(a){var c=this.za;if(c.buffer)switch(c.error=0,a){case 0:c.Y();c.status=80;break;case 8:c.D=0;Eb(c,0);Fb(c);c.Y();break;case 16:c.Y();break;case 248:case 39:c.Y();Gb(c,new Uint8Array([0,0,0,0,c.buffer.byteLength&255,c.buffer.byteLength>>8&255,c.buffer.byteLength>> -16&255,c.buffer.byteLength>>24&255,0,0,0,0]));c.status=88;break;case 32:case 36:case 41:case 196:Hb(c,a);break;case 48:case 52:case 57:case 197:a:{if(48===a||197===a){a=c.ta&255;var f=c.Rc?Ib(c):Jb(c);a||(a=256)}else if(52===a||57===a)a=c.ta,f=Kb(c),a||(a=65536);else break a;var d=a*c.o,f=f*c.o;c.ia+=a;f+d>c.buffer.byteLength?c.status=255:(c.status=88,Lb(c,d),c.Fa=f,c.ja=1);c.Y()}break;case 144:c.Y();c.error=257;c.status=80;break;case 145:c.Y();break;case 160:c.ba&&(c.status=88,Lb(c,12),c.ja=2,c.ta= -1,c.Y());break;case 161:c.ba?(Mb(c),c.status=88,c.ia=20,c.Aa=235):c.status=80;c.Y();break;case 198:c.wa=c.ta;c.Y();break;case 200:Nb(c);break;case 64:c.Y();c.status=80;c.Y();break;case 202:Ob(c);break;case 218:c.status=65;c.error=4;break;case 225:c.Y();break;case 236:if(c.ba){c.status=65;c.error=4;c.Y();break}Mb(c);c.status=88;c.Y();break;case 234:c.Y();break;case 239:c.Y();break;case 245:c.status=80;c.Y();break;default:c.status=65,c.error=4}});p(a.A,this.g|4,this,void 0,void 0,this.Nf);q(a.A,this.g| -4,this,void 0,void 0,this.Rf);p(a.A,this.g,this,this.Pf,void 0,this.Of);q(a.A,this.g,this,this.Tf,void 0,this.Sf);p(a.A,this.g|2,this,this.Qf);q(a.A,this.g|2,this,this.Qe);p(a.A,this.g|8,this,function(){return 0});p(a.A,this.g|10,this,function(){return 0})}l=xb.prototype;l.sf=function(){return this.za.buffer?this.za.status:0};l.nh=function(a){this.o=a;a&4&&(Fb(this.pa),Fb(this.na))};l.Nf=function(){return this.wc};l.Rf=function(a){this.wc=a};l.Qf=function(){return this.oa}; -l.Qe=function(a){this.oa&=~a};l.Of=function(){return 1|this.oa<<16};l.Pf=function(){return 1};l.Sf=function(a){a&1&&this.Y();this.Qe(a>>16&255)};l.Tf=function(a){a&1&&this.Y()};l.Y=function(){this.o&2||this.s.v(this.Ha)};l.La=function(){var a=[];a[0]=this.pa;a[1]=this.na;a[2]=this.b;a[3]=this.Ha;a[4]=this.Tb;a[5]=this.m;a[6]=this.g;a[7]=this.name;a[8]=this.o;a[9]=this.wc;a[10]=this.oa;a[11]=this.za===this.pa;return a}; -l.Ra=function(a){this.pa=a[0];this.na=a[1];this.b=a[2];this.Ha=a[3];this.Tb=a[4];this.m=a[5];this.g=a[6];this.name=a[7];this.o=a[8];this.wc=a[9];this.oa=a[10];this.za=a[11]?this.pa:this.na}; -function yb(a,c,d,e,f,h,r){this.U=a;this.J=r;this.Ja=f;this.s=c;this.memory=c.memory;this.buffer=d;this.o=e?2048:512;this.ba=e;this.v=this.K=this.L=this.g=0;this.buffer&&(this.g=this.buffer.byteLength/this.o,this.g!==(this.g|0)&&(this.g=Math.ceil(this.g)),e?(this.L=1,this.K=0):(this.L=16,this.K=63),this.v=this.g/this.L/this.K,this.v!==(this.v|0)&&(this.v=Math.floor(this.v)),a=c.H.fc,a.ea[57]|=1<<4*this.Ja,a.ea[18]=a.ea[18]&15|240,a.ea[27]=this.v&255,a.ea[28]=this.v>>8&255,a.ea[29]=this.L&255,a.ea[30]= -255,a.ea[31]=255,a.ea[32]=200,a.ea[33]=this.v&255,a.ea[34]=this.v>>8&255,a.ea[35]=this.K&255);this.Ia={xf:0,yf:0,Ke:0,Le:0,bf:!1};this.buffer=d;this.Mc=this.head=this.Aa=this.ia=this.qc=this.nb=this.ta=this.Rc=0;this.status=80;this.wa=1;this.D=this.error=0;this.m=new Uint8Array(65536);this.aa=this.W=this.Fa=0;this.b=new Uint8Array(4096);this.ja=0}function Fb(a){a.ba?(a.status=0,a.ta=1,a.error=1,a.nb=1,a.ia=20,a.Aa=235):(a.status=81,a.ta=1,a.error=1,a.nb=1,a.ia=0,a.Aa=0)}yb.prototype.Y=function(){this.U.Y()}; -function Pb(a){var c=a.N,d=a.Aa<<8&65280|a.ia&255;d||(d=32768);c=Math.min(c,d);c&=-2;a.ia=c;a.Aa=c>>8}function Qb(a){a.status=80;a.buffer.set(a.Fa,a.b.subarray(0,a.W),function(){this.Y()}.bind(a));Rb(a,a.W)}function Lb(a,c){c>a.b.length&&(a.b=new Uint8Array(c));a.W=c;a.aa=0} -function Sb(a,c){var d=(c[7]<<8|c[8])*a.o;c=(c[2]<<24|c[3]<<16|c[4]<<8|c[5])*a.o;Tb(a,0);a.ia=a.Aa=0;c>=a.buffer.byteLength?(a.status=255,a.Y()):d?(d=Math.min(d,a.buffer.byteLength-c),a.status=208,Ub(a),a.buffer.get(c,d,function(a){Gb(this,a);this.status=88;this.ta|=2;this.D=0;this.Y();Pb(this);Yb(this,d)}.bind(a))):(a.status=80,a.D=0)} -function Zb(a,c){var d=(c[7]<<8|c[8])*a.o;c=(c[2]<<24|c[3]<<16|c[4]<<8|c[5])*a.o;Tb(a,d);c>=a.buffer.byteLength?(a.status=255,a.Y()):(d=Math.min(d,a.buffer.byteLength-c),a.status=128,Ub(a),a.buffer.get(c,d,function(a){var c=this.U.wc,h=0;do{var r=$b(this.memory,c),k=this.memory.ma(c+4),t=this.memory.da(c+7)&128;k||(k=65536);this.memory.fa.set(a.subarray(h,h+k),r);h+=k;c+=8}while(!t);this.status=80;this.U.oa&=-4;this.U.oa|=4;this.Y();Yb(this,d)}.bind(a)))} -function Bb(a){if(a.D>8,a.ia=d)}a.D+1>=a.N&&(a.status=80,a.ta=a.ta&-8|3,c=!0);c&&a.Y();return a.m[a.D++]}a.D++;return 0} -function Db(a,c){if(!(a.aa>=a.W)&&(a.b[a.aa++]=c,a.aa%(512*a.wa)||a.Y(),a.aa===a.W))switch(a.ja){case 1:Qb(a);break;case 2:a.D=0;switch(a.b[0]){case 0:Eb(a,0);a.status=80;break;case 3:Eb(a,a.b[4]);a.status=88;a.m[0]=240;a.m[7]=8;break;case 18:c=a.b[4]|a.b[3]<<8;Eb(a,c);a.status=88;a.m.set([5,128,1,49,31,0,0,0,83,79,78,89,32,32,32,32,67,68,45,82,79,77,32,67,68,85,45,49,48,48,48,32,49,46,49,97]);break;case 30:Eb(a,0);a.status=80;break;case 37:c=a.g-1;Gb(a,new Uint8Array([c>>24&255,c>>16&255,c>>8&255, -c&255,0,0,a.o>>8&255,a.o&255]));a.status=88;break;case 40:a.qc&1?Zb(a,a.b):Sb(a,a.b);break;case 66:c=a.b[8];Eb(a,Math.min(8,c));a.status=88;break;case 67:var d=a.b[9]>>6;c=a.b[8]|a.b[7]<<8;Eb(a,c);1===d&&a.m.set(new Uint8Array([0,10,1,1,0,0,0,0,0,0,0,0]));a.status=88;break;case 70:Eb(a,a.b[8]|a.b[7]<<8);a.status=88;break;case 74:Eb(a,a.b[8]|a.b[7]<<8);a.status=88;break;case 81:Eb(a,0);a.status=80;break;case 26:Eb(a,a.b[4]);a.status=88;break;case 90:c=a.b[8]|a.b[7]<<8;42===a.b[2]&&Eb(a,Math.min(30, -c));a.status=88;break;case 189:Eb(a,a.b[9]|a.b[8]<<8);a.m[5]=1;a.status=88;break;default:a.status=80}a.ta=a.ta&-8|2;a.status&128||(Pb(a),a.Y());a.status&128||0!==a.N||(a.ta|=1,a.status&=-9)}} -function Hb(a,c){if(32===c||196===c){c=a.ta&255;var d=a.Rc?Ib(a):Jb(a);c||(c=256)}else if(36===c||41===c)c=a.ta,d=Kb(a),c||(c=65536);else return;var e=c*a.o,d=d*a.o;a.ia+=c;d+e>a.buffer.byteLength?(a.status=255,a.Y()):(a.status=128,Ub(a),a.buffer.get(d,e,function(a){Gb(this,a);this.status=88;this.D=0;this.Y();Yb(this,e)}.bind(a)))} -function Nb(a){var c=a.ta&255,d=c*a.o,e=Ib(a)*a.o;a.ia+=c;e+d>a.buffer.byteLength?(a.status=255,a.Y()):(a.status=216,a.U.oa|=1,Ub(a),a.buffer.get(e,d,function(a){var c=this.U.wc,e=0;do{var k=$b(this.memory,c),t=this.memory.ma(c+4),u=this.memory.da(c+7)&128;t||(t=65536);this.memory.fa.set(a.subarray(e,e+t),k);e+=t;c+=8}while(!u);this.status=80;this.U.oa&=-4;this.U.oa|=4;this.Y();Yb(this,d)}.bind(a)))} -function Ob(a){var c=a.ta&255,d=c*a.o,e=Ib(a)*a.o;a.ia+=c;if(e+d>a.buffer.byteLength)a.status=255,a.Y();else{a.status=128;a.U.oa|=1;var c=a.U.wc,f=0,h=0,r=0;do{var k=$b(a.memory,c),t=a.memory.ma(c+4),u=a.memory.da(c+7)&128;t||(t=65536);a.buffer.set(e+r,a.memory.fa.subarray(k,k+t),function(){h++;h===f&&(this.status=80,this.Y(),this.U.oa&=-4,this.U.oa|=4)}.bind(a));r+=t;c+=8;f++}while(!u);h===f&&(a.status=80,a.Y(),a.U.oa&=-4,a.U.oa|=4);Rb(a,d)}} -function Jb(a){return((a.ia&255|a.Aa<<8&65280)*a.L+a.head)*a.K+(a.nb&255)-1}function Ib(a){return a.nb&255|a.ia<<8&65280|a.Aa<<16&16711680|(a.head&15)<<24}function Kb(a){return(a.nb&255|a.ia<<8&65280|a.Aa<<16&16711680|a.nb>>8<<24&4278190080)>>>0} -function Mb(a){a.D=0;if(a.Mc&16)Eb(a,0);else{for(var c=0;512>c;c++)a.m[c]=0;Gb(a,[64,a.ba?133:0,a.v,a.v>>8,0,0,a.L,a.L>>8,a.K/512,a.K/512>>8,0,2,a.K,a.K>>8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,0,0,2,4,0,0,0,0,0,0,0,0,0,56,118,32,54,68,72,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,255,0,1,0,0,3,0,0,0,2,0,2,7,0,a.v,a.v>>8,a.L,a.L>>8,a.K,0,a.g&255,a.g>>8&255,a.g>>16&255,a.g>>24&255,0,0,a.g&255,a.g>>8&255,a.g>>16&255,a.g>>24& -255,0,0,0,4,0,0,30,0,30,0,30,0,30,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,126,0,0,0,0,0,0,116,0,64,0,64,0,116,0,64,0,0,0,0,0,0,0,0,0,0,1,96,0,0,0,0,0,0,0,0,0,0,0,0,a.g&255,a.g>>8&255,a.g>>16&255,a.g>>24&255]);a.N=512;16383c;c++)this.mc[c]=void 0,this.H[c]=void 0,this.Zd[c]=void 0;this.A=a.A;a.A.Dd(3324,this,function(a){this.vc[0]=a},function(a){this.vc[1]=a},function(a){this.vc[2]=a},function(a){this.vc[3]= -a;a=this.lb[2]<<8|this.lb[1];var c=this.lb[0]&252,f=this.mc[a],h=this.H[a];if(f){var r=this.kg[0];if(16<=c&&40>c){var k=c-16>>2;if(h=h.dc[k]){var c=c>>2,t=f[c]&1;-1===(r|3|h.size-1)?(r=~(h.size-1)|t,t||(f[c]=r)):t||(f[c]=this.Zd[a][k]&-4);1===t&&(bc(this,f[c]&65534,r&65534,h.size),f[c]=r|1)}else f[c>>2]=0}else f[c>>2]=r}});a.A.tf(3324,this,function(){return this.tc[0]},function(){return this.tc[1]},function(){return this.tc[2]},function(){return this.tc[3]});a.A.tf(3320,this,function(){return this.uc[0]}, -function(){return this.uc[1]},function(){return this.uc[2]},function(){return this.uc[3]});a.A.Dd(3320,this,function(a){this.lb[0]=a},function(a){this.lb[1]=a},function(a){this.lb[2]=a},function(a){this.lb[3]=a;a=this.lb[0]&252;var c=this.mc[this.lb[2]<<8|this.lb[1]];void 0!==c?(this.jf[0]=-2147483648,this.hf[0]=a>2]:0):(this.hf[0]=-1,this.jf[0]=0)});zb(this,{Tb:0,Uc:[134,128,55,18,0,0,0,0,2,0,0,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0],dc:[],name:"82441FX PMC"});zb(this,{Tb:8,Uc:[134,128,0,112,7,0,0,2,0,0,1,6,0,0,128,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],dc:[],name:"82371SB PIIX3 ISA"})}ac.prototype.La=function(){for(var a=[],c=0;256>c;c++)a[c]=this.mc[c];a[256]=this.lb;a[257]=this.vc;a[258]=this.tc;a[259]=this.uc;return a}; -ac.prototype.Ra=function(a){for(var c=0;256>c;c++){var d=this.H[c],e=a[c];if(d&&e){for(var f=0;f>10];if(!d||this.K&1023)throw"Unknown floppy size: "+$a(c.byteLength);a.H.fc.ea[16]=d.type<<4;a=d.xb;c=d.ub;d=d.Ab;this.L=a;this.W=c;this.Ja=d}else a.H.fc.ea[16]=64,this.K=this.Ja=this.W=this.L=0;p(this.A,1008,this,this.Ig);p(this.A,1010,this,this.Jg);p(this.A,1012,this,this.Lg);p(this.A,1013,this,this.Mg);p(this.A,1015,this,this.Og);q(this.A,1010,this,this.Kg);q(this.A,1013,this,this.Ng)} -l=cc.prototype;l.La=function(){var a=[];a[0]=this.g;a[1]=this.ba;a[2]=this.ja;a[4]=this.b;a[5]=this.m;a[6]=this.v;a[7]=this.K;a[8]=this.tb;a[9]=this.Mb;a[10]=this.Nb;a[11]=this.sb;a[12]=this.N;a[13]=this.aa;a[14]=this.Fa;a[15]=this.D;a[16]=this.L;a[17]=this.W;a[18]=this.Ja;return a}; -l.Ra=function(a){this.g=a[0];this.ba=a[1];this.ja=a[2];this.o=a[3];this.b=a[4];this.m=a[5];this.v=a[6];this.K=a[7];this.tb=a[8];this.Mb=a[9];this.Nb=a[10];this.sb=a[11];this.N=a[12];this.aa=a[13];this.Fa=a[14];this.D=a[15];this.L=a[16];this.W=a[17];this.Ja=a[18]};l.Ig=function(){return 0};l.Lg=function(){var a=128;this.m>2&1;ec(this)};l.Ff=function(){ec(this)};function dc(a,c,d){var e=d[2],f=d[1],h=d[3],r=((e+a.W*f)*a.L+h-1)*(128<this.L&&(e=1,d++,d>=this.W&&(d=0,c++)),this.N=c,this.aa=d,this.Fa=e,this.m=0,this.v=7,this.b[0]=d<<2|32,this.b[1]=0,this.b[2]=0,this.b[3]=c,this.b[4]=d,this.b[5]=e,this.b[6]=a[4],ec(this))};l.Yf=function(){};l.Yg=function(){this.m=0;this.v=7;this.b[0]=0;this.b[1]=0;this.b[2]=0;this.b[3]=0;this.b[4]=0;this.b[5]=0;this.b[6]=0;ec(this)};function ec(a){a.D&8&&a.s.v(6)};function hc(a,c){this.size=a;this.b=new Uint8Array(32768);this.g=[];this.m=[];this.o=[];this.v=[];a=c?new ArrayBuffer(0):new ArrayBuffer(a);this.fa=new Uint8Array(a);this.D=new Uint16Array(a);this.Hb=new Int32Array(a)}l=hc.prototype;l.La=function(){return[this.size,this.fa]};l.Ra=function(a){this.size=a[0];this.fa=a[1];this.D=new Uint16Array(this.fa.buffer,this.fa.byteOffset,this.fa.length>>1);this.Hb=new Int32Array(this.fa.buffer,this.fa.byteOffset,this.fa.length>>2)}; -function ic(a,c){a=a.g[c>>>17];return a(c)|a(c+1|0)<<8}function jc(a,c,d){a=a.m[c>>>17];a(c,d&255);a(c+1|0,d>>8&255)}l.da=function(a){return this.b[a>>>17]?this.g[a>>>17](a):this.fa[a]};l.ma=function(a){return this.b[a>>>17]?ic(this,a):this.fa[a]|this.fa[a+1|0]<<8};function kc(a,c){return a.b[c>>>16]?ic(a,c<<1):a.D[c]}function $b(a,c){return a.b[c>>>17]?a.o[c>>>17](c):a.fa[c]|a.fa[c+1|0]<<8|a.fa[c+2|0]<<16|a.fa[c+3|0]<<24}function lc(a,c){a.b[c>>>15]?(c<<=2,a=a.o[c>>>17](c)):a=a.Hb[c];return a} -l.sa=function(a,c){if(this.b[a>>>17])this.m[a>>>17](a,c);else this.fa[a]=c};l.ad=function(a,c){this.b[a>>>17]?jc(this,a,c):(this.fa[a]=c,this.fa[a+1|0]=c>>8)};function mc(a,c,d){a.b[c>>>16]?jc(a,c<<1,d):a.D[c]=d}l.Cc=function(a,c){if(this.b[a>>>17])this.v[a>>>17](a,c);else this.fa[a]=c,this.fa[a+1|0]=c>>8,this.fa[a+2|0]=c>>16,this.fa[a+3|0]=c>>24};function nc(a,c,d){a.b[c>>>15]?(c<<=2,a.v[c>>>17](c,d)):a.Hb[c]=d};function oc(a){this.memory=a.memory;this.b=new Int32Array(4);this.g=new Int32Array(4);this.m=0;a=a.A;q(a,4,this,this.mf.bind(this,4));q(a,5,this,this.mf.bind(this,5));q(a,10,this,this.Ug);q(a,11,this,this.Vg);q(a,12,this,this.Wg);q(a,129,this,this.Tg)}l=oc.prototype;l.La=function(){return[this.b,this.g,this.m]};l.Ra=function(a){this.b=a[0];this.g=a[1];this.m=a[2]};l.mf=function(a,c){if(8>a){var d=a>>1;a&1?this.g[d]=pc(this,this.g[d],c):this.b[d]=pc(this,this.b[d],c)}};l.Ug=function(){};l.Vg=function(){}; -l.Wg=function(){this.m=0};l.Tg=function(a){this.b[2]=this.b[2]&65535|a<<16};function gc(a,c,d,e){var f=a.g[2]+1,h=a.b[2];if(d+f>c.byteLength)e(!0);else{var r=a.memory;a.b[2]+=f;c.get(d,f,function(a){r.fa.set(a,h);e(!1)})}}function fc(a,c,d,e){var f=a.g[2],h=a.b[2];d+f>c.byteLength?e(!0):(a.b[2]+=f,c.set(d,a.memory.fa.subarray(h,h+f+1),function(){e(!1)}))}function pc(a,c,d){a.m^=1;return a.m?c&-256|d:c&-65281|d<<8};function qc(a){this.s=a;this.o=new Float64Array(3);this.v=new Uint16Array(3);this.b=new Uint8Array(4);this.m=new Uint8Array(4);this.L=new Uint8Array(4);this.N=new Uint8Array(4);this.D=new Uint8Array(4);this.K=new Uint16Array(3);this.g=new Uint16Array(3);p(a.A,97,this,function(){var a=Oa(),d=66.66666666666667*a&1,a=rc(this,2,a);return d<<4|a<<5});p(a.A,64,this,function(){return sc(this,0)});p(a.A,65,this,function(){return sc(this,1)});p(a.A,66,this,function(){return sc(this,2)});q(a.A,64,this,function(a){tc(this, -0,a)});q(a.A,65,this,function(a){tc(this,1,a)});q(a.A,66,this,function(a){tc(this,2,a)});q(a.A,67,this,this.W)}qc.prototype.La=function(){var a=[];a[0]=this.b;a[1]=this.m;a[2]=this.L;a[3]=this.N;a[4]=this.D;a[5]=this.K;a[6]=this.g;a[7]=this.o;a[8]=this.v;return a};qc.prototype.Ra=function(a){this.b=a[0];this.m=a[1];this.L=a[2];this.N=a[3];this.D=a[4];this.K=a[5];this.g=a[6];this.o=a[7];this.v=a[8]}; -qc.prototype.zb=function(a,c){!c&&this.m[0]&&rc(this,0,a)&&(this.v[0]=uc(this,0,a),this.o[0]=a,this.s.v(0),0===this.L[0]&&(this.m[0]=0));return 0};function uc(a,c,d){if(!a.m[c])return 0;d=a.v[c]-Math.floor(1193.1816666*(d-a.o[c]));0>d&&(a=a.g[c],d=d%a+a);return d}function rc(a,c,d){d-=a.o[c];return 0>d?!0:a.v[c]>8;d=a.b[c];3===a.L[c]&&(a.b[c]^=1);a=uc(a,c,Oa());return d?a&255:a>>8} -function tc(a,c,d){a.g[c]=a.b[c]?a.g[c]&-256|d:a.g[c]&255|d<<8;3===a.N[c]&&a.b[c]||(a.g[c]||(a.g[c]=65535),a.v[c]=a.g[c],a.m[c]=!0,a.o[c]=Oa());3===a.N[c]&&(a.b[c]^=1)}qc.prototype.W=function(a){var c=a>>1&7,d=a>>6&3;a=a>>4&3;3!==d&&(a?(6<=c&&(c&=-5),this.b[d]=1===a?0:1,this.L[d]=c,this.N[d]=a):(this.D[d]=2,c=uc(this,d,Oa()),this.K[d]=c?c-1:0))};function vc(a,c,d){this.J=c;this.Ca=d;this.D=0;this.cd=14;this.bd=15;this.ba=80;this.Mb=25;this.m=this.Rd=this.Nb=0;this.Qb=!0;this.Db=!1;this.Lb=new Int32Array(256);this.K=this.v=this.aa=this.W=this.N=this.L=0;this.Ec=80;this.gc=!1;this.Wb=32;this.oe=this.wa=0;this.Uc=[222,16,32,10,7,0,0,0,162,0,0,3,0,0,128,0,8,0,0,224,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,10,1,0,0];this.Tb=144;this.dc=[];this.name="vga";zb(a.H.Tc,this);this.Ia={ze:!1,$g:0,ah:0,Ef:0};this.Fa= -this.Ja=this.Pd=this.dd=0;this.o=-1;this.Md=new Uint8Array(16);this.Dc=-1;this.g=15;this.Sd=0;this.tb=-1;this.fd=this.ed=this.gd=0;this.b=255;this.Nd=0;this.hd=this.Od=255;a=a.A;q(a,960,this,this.pg);p(a,960,this,this.kf,this.og);p(a,961,this,this.lf);q(a,962,this,this.qg);a.Dd(964,this,this.sg,this.ug);p(a,964,this,this.rg);p(a,965,this,this.tg);a.Dd(974,this,this.Bg,this.Dg);p(a,974,this,this.Ag);p(a,975,this,this.Cg);q(a,967,this,this.vg);q(a,968,this,this.wg);q(a,969,this,this.yg);p(a,969,this, -this.xg);p(a,972,this,this.zg);a.Dd(980,this,this.Eg,this.Gg);p(a,981,this,this.Fg);p(a,986,this,this.Hg);this.sb=-1;this.ja=0;q(a,462,this,void 0,this.lg);q(a,463,this,void 0,this.ng);p(a,463,this,void 0,this.mg);void 0===this.Ca||262144>this.Ca?this.Ca=262144:this.Ca&65535&&(this.Ca|=65535,this.Ca++);this.ra=new Uint8Array(this.Ca);this.Ua=this.Ca;this.Ta=0;this.se=void 0;c.register("screen-tell-buffer",function(a){this.se=a[0]},this);c.register("screen-fill-buffer",function(){if(this.Db&&this.se&& -!(this.Ta>2,z=(t>>2)+1;for(a=u;a>16&255|t&65280|4278190080;break;case 24:var u=e/3|0,z=(t/3|0)+1,G=3*u;for(a=u;G>1;z=(t>>1)+1;for(a=u;a>11)/31|0,c=255*(t>>5&63)/63|0,F=255*(t&31)/31|0,d[a]=F<<16|c<<8|e|4278190080; -break;case 8:for(u=e-c,z=t-c+1,a=e;a>16|4278190080}this.Ua=this.Ca;this.Ta=0;this.J.send("screen-fill-buffer-end",[u,z])}},this);this.fh=new Uint16Array(this.ra.buffer);this.zf=new Int32Array(this.ra.buffer);this.Fc=new Uint8Array(this.ra.buffer,0,262144);this.ke=new Uint8Array(this.ra.buffer,0,65536);this.le=new Uint8Array(this.ra.buffer,65536,65536);this.ie=new Uint8Array(this.ra.buffer,131072,65536);this.me=new Uint8Array(this.ra.buffer,196608, -65536);var e=this;Ca(a,655360,131072,function(a){a-=655360;!e.Db||e.Qb?(a|=e.wa,a=e.ra[a]):(a&=65535,e.L=e.ke[a],e.N=e.le[a],e.W=e.ie[a],e.aa=e.me[a],a=e.Fc[e.gd<<16|a]);return a},function(a,c){a-=655360;if(e.Db)if(e.Qb){var d=a,d=d|e.wa;e.Ua=de.Ta?d:e.Ta;e.ra[d]=c}else{if(!(65535=e.Nb*e.Rd<<3))for(k<<=1,t<<=2,u<<=3,c=a<<3|7,a=c+262144,e.Ua=a-7e.Ta?a:e.Ta,a=0;8>a;a++)e.ra[c+ -262144]=e.Md[d>>a&1|k>>a&2|t>>a&4|u>>a&8],c--}}else d=a,98304>d||(t=(d-98304>>1)-e.m,k=t/e.ba|0,t%=e.ba,d&1?(a=c,u=e.Fc[d&-2]):(u=c,a=e.Fc[d|1]),e.J.send("screen-put-char",[k,t,u,e.Lb[a>>4&15],e.Lb[a&15]]),e.Fc[d]=c)});Ca(a,3758096384,this.Ca,function(a){return e.ra[a&268435455]},function(a,c){a&=268435455;e.ra[a]=c;e.Ua=ae.Ta?a:e.Ta},function(a){a&=268435455;return a&3?e.ra[a]|e.ra[a+1]<<8|e.ra[a+2]<<16|e.ra[a+3]<<24:e.zf[a>>2]},function(a,c){a&=268435455;e.Ua=ae.Ta?a+3:e.Ta;e.ra[a]=c;e.ra[a+1]=c>>8;e.ra[a+2]=c>>16;e.ra[a+3]=c>>24})}l=vc.prototype; -l.La=function(){var a=[];a[0]=this.Ca;a[1]=this.D;a[2]=this.cd;a[3]=this.bd;a[4]=this.ba;a[5]=this.Mb;a[6]=this.Nb;a[7]=this.Rd;a[8]=this.m;a[9]=this.Db;a[10]=this.Lb;a[11]=this.L;a[12]=this.N;a[13]=this.W;a[14]=this.aa;a[15]=this.v;a[16]=this.K;a[17]=this.Ec;a[18]=this.gc;a[19]=this.Wb;a[20]=this.wa;a[21]=this.oe;a[22]=this.dd;a[23]=this.Ja;a[24]=this.Fa;a[25]=this.Md;a[26]=this.Dc;a[27]=this.g;a[28]=this.Sd;a[29]=this.tb;a[30]=this.gd;a[31]=this.ed;a[32]=this.fd;a[33]=this.b;a[34]=this.Nd;a[35]= -this.Od;a[36]=this.hd;a[37]=this.sb;a[38]=this.ja;a[39]=this.ra;a[40]=this.Qb;a[41]=this.o;a[42]=this.Pd;return a}; -l.Ra=function(a){this.Ca=a[0];this.D=a[1];this.cd=a[2];this.bd=a[3];this.ba=a[4];this.Mb=a[5];this.Nb=a[6];this.Rd=a[7];this.m=a[8];this.Db=a[9];this.Lb=a[10];this.L=a[11];this.N=a[12];this.W=a[13];this.aa=a[14];this.v=a[15];this.K=a[16];this.Ec=a[17];this.gc=a[18];this.Wb=a[19];this.wa=a[20];this.oe=a[21];this.dd=a[22];this.Ja=a[23];this.Fa=a[24];this.Md=a[25];this.Dc=a[26];this.g=a[27];this.Sd=a[28];this.tb=a[29];this.gd=a[30];this.ed=a[31];this.fd=a[32];this.b=a[33];this.Nd=a[34];this.Od=a[35]; -this.hd=a[36];this.sb=a[37];this.ja=a[38];this.ra.set(a[39]);this.Qb=a[40];this.o=a[41];this.Pd=a[42];this.J.send("screen-set-mode",this.Db);this.Db?this.Fd(this.v,this.K,this.Wb):(this.zc(this.ba,this.Mb),this.Ld(),this.Kd());wc(this)};l.Kd=function(){var a=(this.D-this.m)/this.ba|0,c=(this.D-this.m)%this.ba,a=Math.min(this.Mb-1,a);this.J.send("screen-update-cursor",[a,c])}; -function wc(a){if(a.Db)a.Ua=0,a.Ta=a.Ca;else for(var c=98304|a.m<<1,d,e,f=0;f>4&15],a.Lb[e&15]]),c+=2}l.cb=function(){};l.zc=function(a,c){this.ba=a;this.Mb=c;this.J.send("screen-set-size-text",[a,c])};l.Fd=function(a,c,d){this.Nb=a;this.Rd=c;this.Ia.Ef=d;this.Ia.ze=!0;this.Ia.$g=a;this.Ia.ah=c;this.J.send("screen-set-size-graphical",[a,c,d])}; -l.Ld=function(){this.J.send("screen-update-cursor-scanline",[this.cd,this.bd])};function xc(a,c){var d=!1,e=0,f=0;switch(c){case 3:a.zc(a.Ec,25);break;case 16:e=640;f=350;d=!0;a.Qb=!1;break;case 18:e=640;f=480;d=!0;a.Qb=!1;break;case 19:e=320,f=200,d=!0,a.Qb=!0}a.J.send("screen-set-mode",d);if(a.Ia.ze=d)a.v=e,a.K=f,a.Fd(e,f,8);a.Db=d}l.pg=function(a){-1===this.o?this.o=a:(16>this.o&&(this.Md[this.o]=a),this.o=-1)};l.kf=function(){var a=this.o;this.o=-1;return a}; -l.og=function(){return this.kf()&255|this.lf()<<8&65280};l.lf=function(){return this.o=-1};l.qg=function(a){this.Od=a;103===a?xc(this,3):227===a?xc(this,18):99===a?xc(this,19):163===a?xc(this,16):xc(this,3)};l.sg=function(a){this.Dc=a};l.rg=function(){return this.Dc};l.ug=function(a){switch(this.Dc){case 2:this.g=a;break;case 4:this.Sd=a}};l.tg=function(){switch(this.Dc){case 2:return this.g;case 4:return this.Sd;case 6:return 18}return 0};l.vg=function(a){this.Fa=3*a}; -l.wg=function(a){this.Ja=3*a};l.yg=function(a){var c=this.Ja/3|0,d=this.Ja%3,e=this.Lb[c];a=255*a/63&255;this.Lb[c]=d?1===d?e&-65281|a<<8:e&-256|a:e&-16711681|a<<16;this.Ja++};l.xg=function(){var a=this.Fa%3,c=this.Lb[this.Fa/3|0];this.Fa++;return(c>>8*(2-a)&255)/255*63|0};l.zg=function(){return this.Od};l.Bg=function(a){this.tb=a};l.Ag=function(){return this.tb};l.Dg=function(a){switch(this.tb){case 3:this.fd=a;break;case 4:this.gd=a;break;case 5:this.ed=a;break;case 8:this.b=a}}; -l.Cg=function(){switch(this.tb){case 3:return this.fd;case 4:return this.gd;case 5:return this.ed;case 8:return this.b}return 0};l.Eg=function(a){this.dd=a}; -l.Gg=function(a){switch(this.dd){case 2:this.Ec=a;break;case 9:this.Nd=a;7===(a&31)?this.zc(this.Ec,50):this.zc(this.Ec,25);break;case 10:this.cd=a;this.Ld();break;case 11:this.bd=a;this.Ld();break;case 12:this.m=this.m&255|a<<8;wc(this);break;case 13:this.m=this.m&65280|a;wc(this);break;case 14:this.D=this.D&255|a<<8;this.Kd();break;case 15:this.D=this.D&65280|a;this.Kd();break;case 19:this.Pd=a}}; -l.Fg=function(){switch(this.dd){case 9:return this.Nd;case 10:return this.cd;case 11:return this.bd;case 12:return this.m&255;case 13:return this.m>>8;case 14:return this.D>>8;case 15:return this.D&255;case 19:return this.Pd}return 0};l.Hg=function(){this.hd^=8;this.o=-1;return this.hd};l.lg=function(a){this.sb=a}; -l.ng=function(a){switch(this.sb){case 1:this.v=a;2560>>16;case 6:return a.Nb?a.Nb:1;case 8:return 0;case 10:return a.Ca/65536|0}return 255};function zc(a,c){this.s=a;this.J=c;this.ic=this.Yb=!1;this.ud=!0;this.sc=this.Jb=this.Ib=0;this.ja=!0;this.N=this.L=this.v=this.K=this.W=this.D=this.qd=!1;this.ka=new bb(1024);this.m=0;this.Yc=100;this.Xc=4;this.o=!1;this.b=new bb(1024);this.J.register("keyboard-code",function(a){this.qd&&(this.ka.push(a),Ac(this))},this);this.J.register("mouse-click",function(a){this.ud&&this.ic&&(this.sc=a[0]|a[2]<<1|a[1]<<2,this.Yb&&Bc(this,0,0))},this);this.J.register("mouse-delta",function(a){var c=a[1];if(this.ud&& -this.ic){var f=this.Xc*this.Yc/80;this.Ib+=a[0]*f;this.Jb+=c*f;this.Yb&&(a=this.Ib|0,c=this.Jb|0,a||c)&&(this.Ib-=a,this.Jb-=c,Bc(this,a,c))}},this);this.J.register("mouse-wheel",function(){},this);this.g=5;this.aa=this.ba=!1;p(a.A,96,this,this.Pg);p(a.A,100,this,this.Rg);q(a.A,96,this,this.Qg);q(a.A,100,this,this.Sg)}l=zc.prototype; -l.La=function(){var a=[];a[0]=this.Yb;a[1]=this.ic;a[2]=this.ud;a[3]=this.Ib;a[4]=this.Jb;a[5]=this.sc;a[6]=this.ja;a[7]=this.qd;a[8]=this.D;a[9]=this.W;a[10]=this.K;a[11]=this.v;a[12]=this.L;a[13]=this.N;a[15]=this.m;a[16]=this.Yc;a[17]=this.Xc;a[18]=this.o;a[20]=this.g;a[21]=this.ba;a[22]=this.aa;return a}; -l.Ra=function(a){this.Yb=a[0];this.ic=a[1];this.ud=a[2];this.Ib=a[3];this.Jb=a[4];this.sc=a[5];this.ja=a[6];this.qd=a[7];this.D=a[8];this.W=a[9];this.K=a[10];this.v=a[11];this.L=a[12];this.N=a[13];this.m=a[15];this.Yc=a[16];this.Xc=a[17];this.o=a[18];this.g=a[20];this.ba=a[21];this.aa=a[22];this.J.send("mouse-enable",this.ic)};function Cc(a){a.g&2&&a.s.v(12)}function Ac(a){a.g&1&&a.s.v(1)}function Bc(a,c,d){a.b.push((0>d)<<5|(0>c)<<4|8|a.sc);a.b.push(c);a.b.push(d);Cc(a)}l.cb=function(){}; -l.Pg=function(){if(!this.ka.length&&!this.b.length)return this.m;this.b.length&&!this.ka.length?(this.m=this.b.shift(),1<=this.b.length&&Cc(this)):(this.m=this.ka.shift(),1<=this.ka.length&&Ac(this));return this.m};l.Rg=function(){var a=16;if(this.b.length||this.ka.length)a|=1;this.b.length&&!this.ka.length&&(a|=32);return a}; -l.Qg=function(a){if(this.aa)Ac(this),this.g=a,this.aa=!1;else if(this.ba)this.ba=!1,this.b.clear(),this.b.push(a),Cc(this);else if(this.W)this.W=!1,this.b.clear(),this.b.push(250),this.Yc=a,Cc(this);else if(this.N)this.N=!1,this.b.clear(),this.b.push(250),this.Xc=3>5;1===c?this.Z&=this.Z-1:3===c&&(this.Z&=~(1<<(a&7)));Fc(this.s)}});p(this.s.A,a,this,function(){return this.ae?this.Z:this.ab});q(this.s.A,a|1,this,function(a){0===this.state?this.rd?(this.rd=!1,this.Gc=a&2):(this.Sb=~a,Fc(this.s)):1===this.state?(this.wd=a,this.state++):2===this.state&&(this.state=0)});p(this.s.A,a|1,this,function(){return~this.Sb&255});q(this.s.A,c,this,function(a){this.Re=a});p(this.s.A,c,this,function(){return this.Re});this.b?(this.Ed=function(a){8<= -a&&(this.na.Ed(a-8),a=2);a=1<>7});q(a.A,113,this,this.If);p(a.A,113,this,this.Hf)}l=Hc.prototype;l.La=function(){var a=[];a[0]=this.Jc;a[1]=this.ea;a[2]=this.b;a[3]=this.L;a[4]=this.g;a[5]=this.D;a[6]=this.N;a[7]=this.K;a[8]=this.v;a[9]=this.m;a[10]=this.o;a[11]=this.Fe;return a}; -l.Ra=function(a){this.Jc=a[0];this.ea=a[1];this.b=a[2];this.L=a[3];this.g=a[4];this.D=a[5];this.N=a[6];this.K=a[7];this.v=a[8];this.m=a[9];this.o=a[10];this.Fe=a[11]};l.zb=function(a){a=Date.now();this.b+=a-this.L;this.L=a;return this.N&&this.D&&this.g>(this.v&15)-1);break;case 11:this.m=a,this.m&64&&(this.g=Date.now())}this.N=64===(this.m&64)&&0<(this.v&15)};function Jc(a,c,d){function e(a){if(this.cc&128)this.Xb=this.Xb&-256|a;else if(Kc(this),255!==a){var c=String.fromCharCode(a);this.J.send("serial0-output-char",c);this.re.push(a);"\n"===c&&(this.J.send("serial0-output-line",String.fromCharCode.apply("",this.re)),this.re=[])}}this.J=d;this.s=a;this.Rb=this.ve=this.b=this.cc=this.Xb=this.pb=0;this.$a=1;this.Ha=this.fe=this.Ee=this.Yd=0;this.input=new bb(4096);this.re=[];if(1E3===c||1016===c)this.Ha=4;else if(1E3===c||1E3===c)this.Ha=3;else return;this.J.register("serial0-input", -function(a){this.input.push(a);this.pb|=4096;this.Rb&1&&Lc(this)},this);a=a.A;q(a,c,this,function(a){e.call(this,a)},function(a){e.call(this,a&255);e.call(this,a>>8)});q(a,c|1,this,function(a){this.cc&128?this.Xb=this.Xb&255|a<<8:(this.Rb=a,Mc(this))});p(a,c,this,function(){if(this.cc&128)return this.Xb&255;var a=this.input.shift();this.input.length&&Lc(this);return a});p(a,c|1,this,function(){return this.cc&128?this.Xb>>8:this.Rb});p(a,c|2,this,function(){var a=this.$a&15|192;2===this.$a?Nc(this, -2):12===this.$a&&Nc(this,12);return a});q(a,c|2,this,function(a){this.ve=a});p(a,c|3,this,function(){return this.cc});q(a,c|3,this,function(a){this.cc=a});p(a,c|4,this,function(){return this.Yd});q(a,c|4,this,function(a){this.Yd=a});p(a,c|5,this,function(){var a=0;this.input.length&&(a|=1);return a|96});q(a,c|5,this,function(){});p(a,c|6,this,function(){return this.Ee});q(a,c|6,this,function(){});p(a,c|7,this,function(){return this.fe});q(a,c|7,this,function(a){this.fe=a})} -Jc.prototype.La=function(){var a=[];a[0]=this.pb;a[1]=this.Xb;a[2]=this.cc;a[3]=this.b;a[4]=this.ve;a[5]=this.Rb;a[6]=this.$a;a[7]=this.Yd;a[8]=this.Ee;a[9]=this.fe;a[10]=this.Ha;return a};Jc.prototype.Ra=function(a){this.pb=a[0];this.Xb=a[1];this.cc=a[2];this.b=a[3];this.ve=a[4];this.Rb=a[5];this.$a=a[6];this.Yd=a[7];this.Ee=a[8];this.fe=a[9];this.Ha=a[10]};Jc.prototype.Y=function(){this.s.v(this.Ha)};function Nc(a,c){a.pb&=~(1<d)throw new Oc("Invalid length: "+d);var e=new Int32Array(c,0,4);if(-2039052682!==e[0])throw new Oc("Invalid header: "+$a(e[0]>>>0));if(3!==e[1])throw new Oc("Version mismatch: dump="+e[1]+" we=3");if(e[2]!==d)throw new Oc("Length doesn't match header: real="+d+" header="+e[2]);e=e[3];if(0>e||e+12>=d||e%2)throw new Oc("Invalid info block length: "+e);for(var f=e/2,h=new Uint16Array(c,16,f),r="",d=0;d>8);if(c+d>this.memory.length){var t= -this.memory.length-r;this.memory.set(a.subarray(0,t),r);this.memory.set(a.subarray(t),76)}else if(this.memory.set(a,r),60>a.length)for(a=a.length;60>a;a++)this.memory[r+a]=0;k>=this.xc&&(k+=this.Vc-this.xc);this.memory[c]=1;this.memory[c+1]=k;this.memory[c+2]=d;this.memory[c+3]=d>>8;this.kc=k;Tc(this,1)}},this);this.name="ne2k";this.Uc=[236,16,41,128,3,1,0,0,0,0,0,2,0,0,0,0,1,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,244,26,0,17,0,0,184,254,0,0,0,0,0,0,0,0,11,1,0,0];this.Tb=40;this.dc= -[{size:32}];zb(a.H.Tc,this);this.vd=this.Z=0;this.G=1;this.od=0;this.Ha=11;this.ge=this.Bc=this.wb=0;this.memory=new Uint8Array(32768);this.ee=0;this.jh=1;c=[0,34,21,255*Math.random()|0,255*Math.random()|0,255*Math.random()|0];for(var d=0;6>d;d++)this.memory[d<<1]=this.memory[d<<1|1]=c[d];this.memory[14]=this.memory[15]=87;this.Ya=0;this.Vc=64;this.xc=128;this.Td=this.kc=76;a=a.A;p(a,768,this,function(){return this.G});q(a,768,this,function(a){this.G=a&-5;this.G&1||(a|24&&0===this.wb&&Tc(this,64), -a&4&&(a=this.ge<<8,a=this.memory.subarray(a,a+this.Bc),this.J.send("net0-send",a),this.J.send("eth-transmit-end",[a.length]),Tc(this,2)))});p(a,781,this,function(){return 0});p(a,782,this,function(){return 0});p(a,783,this,function(){return 0});p(a,799,this,function(){this.G&192||Tc(this,128);return 0});q(a,799,this,function(){});q(a,769,this,function(a){this.G&192||(this.Vc=a)});q(a,770,this,function(a){this.G&192||(this.xc=a)});p(a,775,this,function(){return this.G&192?this.kc:this.Z});q(a,775, -this,function(a){this.G&192?this.kc=a:this.Z&=~a});q(a,781,this,function(){});q(a,782,this,function(a){this.G&192||(this.od=a)});q(a,778,this,function(a){this.G&192||(this.wb=this.wb&65280|a&255)});q(a,779,this,function(a){this.G&192||(this.wb=this.wb&255|a<<8&65280)});q(a,776,this,function(a){this.G&192||(this.Ya=this.Ya&65280|a&255)});q(a,777,this,function(a){this.G&192||(this.Ya=this.Ya&255|a<<8&65280)});q(a,783,this,function(a){this.G&192||(this.vd=a,this.vd&this.Z&&this.s.v(this.Ha))});p(a,771, -this,function(){return this.G&192?0:this.Td});q(a,771,this,function(a){this.G&192||(this.Td=a)});p(a,772,this,function(){return this.G&192?0:this.jh});q(a,772,this,function(a){this.G&192||(this.ge=a)});q(a,773,this,function(a){this.G&192||(this.Bc=this.Bc&-256|a)});q(a,774,this,function(a){this.G&192||(this.Bc=this.Bc&255|a<<8)});p(a,780,this,function(){return this.G&192?0:9});q(a,780,this,function(a){this.ee=a});p(a,784,this,this.Lf,this.Oe,this.Kf);q(a,784,this,this.Pe,this.Pe,this.Mf)}l=Sc.prototype; -l.La=function(){var a=[];a[0]=this.Z;a[1]=this.vd;a[2]=this.G;a[3]=this.od;a[4]=this.wb;a[5]=this.Bc;a[6]=this.ge;a[7]=this.Ya;a[8]=this.Vc;a[9]=this.kc;a[10]=this.Td;return a};l.Ra=function(a){this.Z=a[0];this.vd=a[1];this.G=a[2];this.od=a[3];this.wb=a[4];this.Bc=a[5];this.ge=a[6];this.Ya=a[7];this.Vc=a[8];this.kc=a[9];this.Td=a[10]};function Tc(a,c){a.Z|=c;a.vd&a.Z&&a.s.v(a.Ha)} -function Uc(a,c){16a.Ya||(a.wb--,a.memory[a.Ya++]=c,a.Ya>=a.xc<<8&&(a.Ya+=a.Vc-a.xc<<8),0===a.wb&&Tc(a,64))}l.Pe=function(a){Uc(this,a);this.od&1&&Uc(this,a>>8)};l.Mf=function(a){Uc(this,a);Uc(this,a>>8);Uc(this,a>>16);Uc(this,a>>24)};function Vc(a){var c=a.memory[a.Ya++];a.wb--;a.Ya>=a.xc<<8&&(a.Ya+=a.Vc-a.xc<<8);0===a.wb&&Tc(a,64);return c}l.Lf=function(){return this.Oe()&255};l.Oe=function(){return this.od&1?Vc(this)|Vc(this)<<8:Vc(this)}; -l.Kf=function(){return Vc(this)|Vc(this)<<8|Vc(this)<<16|Vc(this)<<24};function Wc(a,c,d){this.Uc=[244,26,9,16,7,5,16,0,0,0,2,0,0,0,0,0,1,168,0,0,0,16,191,254,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,244,26,9,0,0,0,0,0,64,0,0,0,0,0,0,0,12,1,0,0];this.Tb=48;this.dc=[{size:256}];this.name="virtio";zb(a.H.Tc,this);var e=a.A;p(e,43008,this,void 0,void 0,function(){return 1});q(e,43012,this,void 0,void 0,function(){});q(e,43022,this,void 0,function(a){this.Cd=a},void 0);p(e,43020,this,void 0,function(){return this.Vb},void 0);p(e,43016,this,void 0,void 0,function(){return 0=== -this.Cd?this.Ub:0});q(e,43016,this,void 0,void 0,function(a){this.Ub=a});q(e,43026,this,function(a){0===a&&this.reset();this.pd=a});p(e,43026,this,function(){return this.pd});p(e,43027,this,function(){var a=this.Z;this.Z=0;return a});q(e,43024,this,void 0,function(){for(var a=(this.Ub<<12)+16*this.Vb,c=a+4,a=this.memory.ma(a+2),d=this.Vb-1,a=a&d;this.pc!==a;){var e=this.memory.ma(c+2*this.pc);Xc(this,e);this.pc=this.pc+1&d}});this.Ha=12;this.s=a;this.J=c;this.pc=this.Z=this.pd=this.Cd=0;this.Vb=32; -this.Ub=0;this.memory=a.memory;for(a=0;128>a;a++)p(e,43028+a,this,function(a){return a>>0;h.push({ne:t,Df:d,De:u});if(k&1)d=a.memory.ma(r+14);else{d=-1;break}}while(1);var z=-1,G=0;ea(a.U,{start:c,next:d},function(){if(G>=z){if(f===h.length)return 0;var a=h[f++];t=a.ne;z=a.De;G=0}return this.memory.da(t+G++)}.bind(a))} -Wc.prototype.b=function(a,c){if(-1!==c.next){var d=this.Vb-1;a=this.U.ce;var e=c.next,f=this.Ub<<12,h=0,r=[];do{var e=f+16*e,k=this.memory.ma(e+12);if(!(k&2))break;var t=$b(this.memory,e),u=$b(this.memory,e+4),z=$b(this.memory,e+8)>>>0;r.push({ne:t,Df:u,De:z});if(k&1)e=this.memory.ma(e+14);else break}while(1);k=-1;for(f=u=0;f=k){if(h===r.length)return 0;k=r[h++];t=k.ne;k=k.De;u=0}this.memory.sa(t+u++,e)}t=(this.Ub<<12)+16*this.Vb+4+2*this.Vb;t=t+4095&-4096;this.memory.ma(t); -h=this.memory.ma(t+2);this.memory.ad(t+2,h+1);d=t+4+8*(h&d);this.memory.Cc(d,c.start);this.memory.Cc(d+4,a);this.Z|=1;this.s.v(this.Ha)}};function Yc(){this.yd={};this.b=void 0}Yc.prototype.register=function(a,c,d){var e=this.yd[a];void 0===e&&(e=this.yd[a]=[]);e.push({Ve:c,ih:d})};Yc.prototype.unregister=function(a,c){var d=this.yd[a];void 0!==d&&(this.yd[a]=d.filter(function(a){return a.Ve!==c}))};Yc.prototype.send=function(a,c){if(this.b&&(a=this.b.yd[a],void 0!==a))for(var d=0;d>4&240;c.ea[61]=d&255;c.ea[21]=128;c.ea[22]=2;d=0;1048576<=a.bb&&(d=a.bb-1048576>>10,d=Math.min(d,65535));c.ea[23]=d&255;c.ea[24]=d>>8&255;c.ea[48]=d&255;c.ea[49]=d>>8&255;d=0;16777216<=a.bb&&(d=a.bb-16777216>>16,d=Math.min(d,65535));c.ea[52]=d&255;c.ea[53]=d>>8&255;c.ea[91]=0;c.ea[92]=0;c.ea[93]=0;c.ea[20]=47;c.ea[95]=0} -function Ma(a){var c=a.Hc.cf,d=a.Hc.jc;if(c){var e=new Uint8Array(c);a.memory.fa.set(e,1048576-c.byteLength);d&&(e=new Uint8Array(d),a.memory.fa.set(e,786432));Ca(a.A,4293918720,1048576,function(a){return this.memory.fa[a&1048575]}.bind(a),function(a,c){this.memory.fa[a&1048575]=c}.bind(a))}}v.prototype.W=function(){for(var a=Oa(),c=a;33>c-a;){this.H.$d.zb(c,!1);this.H.fc.zb(c,!1);Fc(this);for(c=11001;c--;)fd(this);c=Oa()}}; -"undefined"!==typeof window&&(window.b=v.prototype.W,window.g=v.prototype.ue,window.m=v.prototype.ba);function fd(a){a.ga=a.w;a.V++;var c=C(a);a.table[c](a)}v.prototype.Jf=function(){try{fd(this)}catch(a){this.ue(a)}};v.prototype.cycle=v.prototype.Jf;function gd(a){a.table[C(a)](a)}v.prototype.ba=function(){var a=Oa();this.H.$d.zb(a,!1);this.H.fc.zb(a,!1);return 0};function dd(a){a.ca=0;a.ya=-1;a.la!==a.Na&&(a.la=a.Na,$c(a));a.Da!==a.Na&&(a.Da=a.Na,ad(a))} -function hd(a){var c=-2147483648===(a.G[0]&-2147483648);a.Ba||(a.G[0]|=4);a.G[0]|=16;c!==a.X&&(a.X=c,cd(a))}function id(a){a.Gb=-1;a.Sc=-1}function C(a){a.w&-4096^a.Gb&&(a.L=jd(a,a.w)^a.w,a.Gb=a.w&-4096);var c=a.memory.da(a.L^a.w);a.w=a.w+1|0;return c}function D(a){return C(a)<<24>>24}function E(a){if(4094<(a.w^a.Gb)>>>0)return C(a)|C(a)<<8;var c=a.memory.ma(a.L^a.w);a.w=a.w+2|0;return c}function H(a){if(4092<(a.w^a.Gb)>>>0)return E(a)|E(a)<<16;var c=$b(a.memory,a.L^a.w);a.w=a.w+4|0;return c} -function kd(a,c,d,e){a.memory.sa(c,e);a.memory.sa(d,e>>24);c&1?c&2?(a.memory.sa(d-2,e>>8),a.memory.sa(d-1,e>>16)):(a.memory.sa(c+1|0,e>>8),a.memory.sa(c+2|0,e>>16)):(a.memory.sa(c+1|0,e>>8),a.memory.sa(d-1,e>>16))}function ld(a,c){return a.memory.da(jd(a,c))}function y(a,c){return a.X&&4095===(c&4095)?ld(a,c)|ld(a,c+1|0)<<8:a.memory.ma(jd(a,c))}function A(a,c){return a.X&&4093<=(c&4095)?y(a,c)|y(a,c+2|0)<<16:$b(a.memory,jd(a,c))}function md(a,c,d){a.memory.sa(nd(a,c),d)} -function mb(a,c,d){var e=nd(a,c);4095===(c&4095)?(c=nd(a,c+1|0),a.memory.sa(e,d),a.memory.sa(c,d>>8)):a.memory.ad(e,d)}function x(a,c,d){var e=nd(a,c);4093<=(c&4095)?kd(a,e,nd(a,c+3|0),d):a.memory.Cc(e,d)}function od(a){return a.la?pd(a,3)+H(a)|0:pd(a,3)+E(a)|0}function qd(a){return a.h>>12&3}function rd(a){return!!(a.h&131072)}function sd(a){return a.h&-2262|!!a.Pa()|!!a.Ze()<<2|!!td(a)<<4|!!a.Pb()<<6|!!a.Ud()<<7|!!a.td()<<11}function ud(a){a.h=sd(a);a.u=0} -function vd(a,c){var d=1769472,e=2588629;a.h&131072?(d|=12288,e|=1572864):a.O&&(d|=12288,a.O>qd(a)&&(d|=512));a.h=(c^(a.h^c)&d)&e|2;a.u=0}function wd(a,c){a.gb?a.a[4]=c:a.l[8]=c}function I(a,c){a.gb?a.a[4]+=c:a.l[8]+=c}function J(a,c){return a.gb?K(a,2)+a.a[4]+c|0:K(a,2)+(a.l[8]+c&65535)|0}function xd(a){return a.w-K(a,1)|0} -function Ec(a,c,d,e){a.Pc=!1;if(a.qa){if(rd(a)&&a.G[4]&1)throw a.debug.S("VME");rd(a)&&d&&3>qd(a)&&M(a,0);if((c<<3|7)>a.Oc)throw a.debug.S("#GP handler");var f=a.ac+(c<<3)|0;a.X&&(f=yd(a,f));var h=a.memory.ma(f)|a.memory.ma(f+6|0)<<16,r=a.memory.ma(f+2|0),k=a.memory.da(f+5|0),t=k>>5&3,f=k&31;if(!(k&128))throw a.debug.S("#NP handler");d&&th.Ob)throw a.debug.S("#NP handler");c=a.Ea[6];d=sd(a);lb(a,c,102);x(a,c+32,xd(a));x(a,c+36,d);x(a,c+40,a.a[0]);x(a,c+44,a.a[1]);x(a,c+48,a.a[2]);x(a,c+52,a.a[3]);x(a,c+56,a.a[4]);x(a,c+60,a.a[5]);x(a,c+64,a.a[6]);x(a,c+68,a.a[7]);x(a,c+72,a.R[0]);x(a,c+76,a.R[1]);x(a,c+80,a.R[2]);x(a,c+84,a.R[3]);x(a,c+88,a.R[4]);x(a,c+92,a.R[5]);x(a,c+96,a.R[7]);a.memory.sa(h.Hd+5|0,a.memory.da(h.Hd+5|0)|2);d=h.Cb;f=A(a,d+28);a.h&=-131073;B(a,1,y(a,d+76));k=A(a,d+36);x(a,c+0,r);k|=16384;if(k&131072)throw a.debug.S("task switch to VM mode"); -vd(a,k);c=y(a,d+96);Ad(a,c);a.a[0]=A(a,d+40);a.a[1]=A(a,d+44);a.a[2]=A(a,d+48);a.a[3]=A(a,d+52);a.a[4]=A(a,d+56);a.a[5]=A(a,d+60);a.a[6]=A(a,d+64);a.a[7]=A(a,d+68);B(a,0,y(a,d+72));B(a,2,y(a,d+80));B(a,3,y(a,d+84));B(a,4,y(a,d+88));B(a,5,y(a,d+92));a.w=K(a,1)+A(a,d+32)|0;a.Ea[6]=h.Cb;a.Qa[6]=h.Ob;a.R[6]=r;a.G[3]=f;Bd(a);a.G[0]|=8;!1!==e&&N(a,e)}else{if(6!==(f&-10))throw a.debug.S("#GP handler");c=1===(f&1);d=!(f&8);f=zd(a,r);if(f.kb)throw a.debug.S("#GP handler");if(!f.oc||f.xa>a.O)throw a.debug.S("#GP handler"); -if(!f.Eb)throw a.debug.S("#NP handler");ud(a);k=a.h;if(!f.lc&&f.xaa.Qa[6])throw a.debug.S("#TS handler");u=u+a.Ea[6]|0;a.X&&(u=yd(a,u));var t=$b(a.memory,u),u=a.memory.ma(u+4|0),z=zd(a,u);if(z.kb)throw a.debug.S("#TS handler");if(z.mb!==f.xa)throw a.debug.S("#TS handler");if(z.xa!==f.xa||!z.de)throw a.debug.S("#TS handler");if(!z.Eb)throw a.debug.S("#TS handler");var G=a.a[4],F=a.R[2],L=(d?2:4)*(5+(!1!==e)+4*(131072===(k&131072)));Cd(a,z.Cb+(z.size?t-L:t-L&65535)); -Cd(a,z.Cb+t-1);a.O=f.xa;id(a);a.Na!==f.size&&Dd(a,f.size);a.h&=-196609;B(a,2,u);wd(a,t);k&131072&&!d&&(N(a,a.R[5]),N(a,a.R[4]),N(a,a.R[3]),N(a,a.R[0]));d?(O(a,F),O(a,G)):(N(a,F),N(a,G))}else if(f.lc||f.xa===a.O)a.h&131072&&M(a,r&-4),L=(d?2:4)*(3+(!1!==e)),lb(a,J(a,-L),L);else throw a.debug.S("#GP handler");d?(O(a,k),O(a,a.R[1]),O(a,xd(a)),!1!==e&&O(a,e),h&=65535):(N(a,k),N(a,a.R[1]),N(a,xd(a)),!1!==e&&N(a,e));k&131072&&(B(a,5,0),B(a,4,0),B(a,3,0),B(a,0,0));a.R[1]=r&-4|a.O;a.Na!==f.size&&Dd(a,f.size); -a.Qa[1]=f.Ob;a.Ea[1]=f.Cb;a.w=K(a,1)+h|0;a.h&=-213249;c?a.K||Fc(a):a.h&=-513}}else r=c<<2,e=a.memory.ma(r),r=a.memory.ma(r+2|0),ud(a),O(a,a.h),O(a,a.R[1]),O(a,xd(a)),a.h&=-513,B(a,1,r),a.w=K(a,1)+e|0} -function Ed(a,c){if(c)var d=y(a,J(a,0)),e=y(a,J(a,2)),f=y(a,J(a,4));else d=A(a,J(a,0)),e=y(a,J(a,4)),f=A(a,J(a,8));if(!a.qa||rd(a)&&3===qd(a)){if(d&4294901760)throw a.debug.S("#GP handler");B(a,1,e);a.w=d+K(a,1)|0;c?(vd(a,f|a.h&-65536),I(a,6)):(vd(a,f),I(a,12))}else{rd(a)&&M(a,0);a.h&16384&&M(a,0);if(f&131072)if(a.O)f&=-131073;else{var h=A(a,J(a,12)),r=y(a,J(a,16));c=y(a,J(a,20));var k=y(a,J(a,24)),t=y(a,J(a,28)),u=y(a,J(a,32));vd(a,f);a.h|=131072;B(a,1,e);a.w=(d&65535)+K(a,1)|0;B(a,0,c);B(a,3,k); -B(a,4,t);B(a,5,u);I(a,36);a.a[4]=h;B(a,2,r);a.O=3;id(a);Dd(a,!1);return}k=zd(a,e);if(k.kb)throw a.debug.S("is null");if(!k.Eb)throw a.debug.S("not present");if(!k.oc)throw a.debug.S("not exec");if(k.mbk.mb)throw a.debug.S("conforming and dpl > rpl");k.mb>a.O?(c?(h=y(a,J(a,6)),r=y(a,J(a,8))):(h=A(a,J(a,12)),r=y(a,J(a,16))),c?vd(a,f|a.h&-65536):vd(a,f),a.O=k.mb,id(a),B(a,2,r),wd(a,h),a.O||(a.h=a.h&-1572865|f&1572864)):k.mb===a.O&&(c?(I(a,6),vd(a,f|a.h& --65536)):(I(a,12),vd(a,f)),a.O||(a.h=a.h&-1572865|f&1572864));a.R[1]=e;k.size!==a.Na&&Dd(a,k.size);a.Qa[1]=k.Ob;a.Ea[1]=k.Cb;a.w=d+K(a,1)|0}Fc(a)}function Fd(a,c){Ec(a,c,!1,!1);throw 233495534;}function Gd(a){a.w=a.ga;Fd(a,0)}function w(a){a.w=a.ga;Fd(a,6)}function M(a,c){a.w=a.ga;Ec(a,13,!1,c);throw 233495534;}function Hd(a){a.G[0]&12&&(a.w=a.ga,Fd(a,7))}function P(a){return pd(a,3)}function Q(a){return pd(a,2)}function pd(a,c){return-1===a.ya?K(a,c):9===a.ya?0:K(a,a.ya)} -function K(a,c){a.qa&&a.yb[c]&&M(a,0);return a.Ea[c]}function Id(a){return 192>a.f?ld(a,a.P(a.f)):a.C[a.f<<2&12|a.f>>2&1]}function R(a){return 192>a.f?y(a,a.P(a.f)):a.l[a.f<<1&14]}function Jd(a){return 192>a.f?A(a,a.P(a.f)):a.a[a.f&7]}function Kd(a,c){if(192>a.f){var d=a.P(a.f);md(a,d,c)}else a.C[a.f<<2&12|a.f>>2&1]=c}function Ld(a,c){if(192>a.f){var d=a.P(a.f);mb(a,d,c)}else a.l[a.f<<1&14]=c}function Md(a,c){if(192>a.f){var d=a.P(a.f);x(a,d,c)}else a.a[a.f&7]=c} -function Nd(a){if(192>a.f){var c=a.P(a.f);a.o=nd(a,c);return a.memory.da(a.o)}return a.C[a.f<<2&12|a.f>>2&1]}function Od(a,c){192>a.f?a.memory.sa(a.o,c):a.C[a.f<<2&12|a.f>>2&1]=c}function S(a){if(192>a.f){var c=a.P(a.f);a.o=nd(a,c);if(a.X&&4095===(c&4095))return a.D=nd(a,c+1|0),c=a.D,a.memory.da(a.o)|a.memory.da(c)<<8;a.D=0;return a.memory.ma(a.o)}return a.l[a.f<<1&14]} -function T(a,c){if(192>a.f)if(a.D){var d=a.D;a.memory.sa(a.o,c);a.memory.sa(d,c>>8)}else a.memory.ad(a.o,c);else a.l[a.f<<1&14]=c}function U(a){if(192>a.f){var c=a.P(a.f);a.o=nd(a,c);if(a.X&&4093<=(c&4095)){a.D=nd(a,c+3|0);var c=a.o,d=a.D,e;c&1?e=c&2?kc(a.memory,d-2>>1):kc(a.memory,c+1>>1):(e=d-1|0,e=a.memory.da(c+1|0)|a.memory.da(e)<<8);return a.memory.da(c)|e<<8|a.memory.da(d)<<24}a.D=0;return $b(a.memory,a.o)}return a.a[a.f&7]} -function V(a,c){192>a.f?a.D?kd(a,a.o,a.D,c):a.memory.Cc(a.o,c):a.a[a.f&7]=c}function Pd(a){return a.l[a.f<<1&14]}function Qd(a,c){a.l[a.f<<1&14]=c}function Rd(a){return a.a[a.f&7]}function Sd(a,c){a.a[a.f&7]=c}function Td(a){return a.C[a.f>>1&12|a.f>>5&1]}function Ud(a,c){a.C[a.f>>1&12|a.f>>5&1]=c}function Vd(a){return a.l[a.f>>2&14]}function Wd(a){return a.yc[a.f>>2&14]}function Xd(a,c){a.l[a.f>>2&14]=c}function W(a){return a.a[a.f>>3&7]}function Yd(a,c){a.Wc[a.f>>3&7]=c} -function Fc(a){a.h&512&&!a.K&&(a.H.ec&&a.H.ec.md(),a.H.jd&&a.H.jd.md())}v.prototype.v=function(a){this.H.ec&&this.H.ec.Ed(a);this.H.jd&&this.H.jd.Ed(a);Ab(this,a)};function Ab(a,c){a.H.ec&&a.H.ec.nd(c);a.H.jd&&a.H.jd.nd(c)}function Zd(a,c,d){if(a.qa&&(a.O>qd(a)||a.h&131072)){var e=a.Qa[6],f=a.Ea[6];if(103<=e){var h=a.memory.ma(yd(a,f+100+2|0));if(e>=(h+((c+d-1|0)>>3)|0)&&(d=(1<>3)|0),!((d&65280?a.memory.ma(c):a.memory.da(c))&d)))return}M(a,0)}} -function Dd(a,c){a.Na=a.Da=a.la=c;ad(a);$c(a)}function ad(a){a.table=a.Da?a.wa:a.ja}function $c(a){a.la?(a.j=a.a,a.M=1,a.I=6,a.B=7):(a.j=a.l,a.M=2,a.I=12,a.B=14)} -function zd(a,c){var d=!(c&4),e=c&-8,f,h;f={mb:c&3,ye:d,kb:!1,bc:!0,Cb:0,Bb:0,h:0,type:0,xa:0,Fb:!1,Eb:!1,oc:!1,de:!1,lc:!1,size:!1,xd:!1,Ob:0,Ce:!1,Ae:!1,Hd:0,pf:0};d?(d=a.$b,h=a.Nc):(d=a.Ea[7],h=a.Qa[7]);if(!e)return f.kb=!0,f;if((c|7)>h)return f.bc=!1,f;d=d+e|0;a.X&&(d=yd(a,d));f.Hd=d;f.Cb=a.memory.ma(d+2|0)|a.memory.da(d+4|0)<<16|a.memory.da(d+7|0)<<24;f.Bb=a.memory.da(d+5|0);f.h=a.memory.da(d+6|0)>>4;f.pf=$b(a.memory,d+4|0);f.type=f.Bb&15;f.xa=f.Bb>>5&3;f.Fb=!(f.Bb&16);f.Eb=128===(f.Bb&128); -f.oc=8===(f.Bb&8);f.de=2===(f.Bb&2);f.lc=4===(f.Bb&4);f.xd=f.lc&&f.oc;f.size=4===(f.h&4);a=a.memory.ma(d)|(a.memory.da(d+6|0)&15)<<16;f.Ob=f.h&8?(a<<12|4095)>>>0:a;f.Ce=f.de&&!f.oc;f.Ae=f.de||!f.oc;return f} -function B(a,c,d){1===c&&(a.qa=1===(a.G[0]&1));if(!a.qa||rd(a))a.R[c]=d,a.yb[c]=0,a.Ea[c]=d<<4,2===c&&(a.gb=!1);else{var e=zd(a,d);if(2===c){e.kb&&M(a,0);e.bc&&!e.Fb&&e.mb===a.O&&e.Ce&&e.xa===a.O||M(a,d&-4);if(!e.Eb)throw a.w=a.ga,Ec(a,12,!1,d&-4),233495534;a.gb=e.size}else if(1===c){if(e.Fb)throw a.debug.S("load system segment descriptor, type = "+(e.Bb&15));e.oc||M(a,d&-4);if(!e.Eb)throw a.w=a.ga,Ec(a,11,!1,d&-4),233495534;if(e.mb>a.O)throw a.debug.S("privilege change");if(!e.lc&&e.xae.xa||a.O>e.xa))&&M(a,d&-4);if(!e.Eb)throw a.w=a.ga,Ec(a,11,!1,d&-4),233495534;}a.yb[c]=0;a.Qa[c]=e.Ob;a.Ea[c]=e.Cb;a.R[c]=d}} -function Ad(a,c){var d=zd(a,c);if(d.kb)a.Ea[7]=0,a.Qa[7]=0;else{if(!d.ye)throw a.debug.S("LDTR can only be loaded from GDT");if(!d.Eb)throw a.debug.S("#GP handler");if(!d.Fb)throw a.debug.S("#GP handler");if(2!==d.type)throw a.debug.S("#GP handler");a.Ea[7]=d.Cb;a.Qa[7]=d.Ob;a.R[7]=c}}function $d(a,c,d){c=zd(a,c);a.u&=-65;var e=c.xa>c.type&1||e:!c.xd&&e))return a.h&=-65,d;a.h|=64;return c.pf&16776960} -function ae(a,c,d){c=zd(a,c);a.u&=-65;var e=c.xa>c.type&1||e:!c.xd&&e))return a.h&=-65,d;a.h|=64;return c.Ob|0}function Bd(a){a.Gb=-1;a.Sc=-1;a.Kb.set(a.Id)}function cd(a){for(var c=new Int32Array(a.Id.buffer),d=0;262144>d;)c[d++]=c[d++]=c[d++]=c[d++]=0;Bd(a)}function jd(a,c){if(a.X)if(3===a.O)if(a.X){var d=c>>>12;a=a.Kb[d]&4?a.N[d]^c:be(a,c,0,1)|c&4095}else a=c;else a=yd(a,c);else a=c;return a} -function nd(a,c){if(a.X)if(3===a.O)if(a.X){var d=c>>>12;a=a.Kb[d]&8?a.N[d]^c:be(a,c,1,1)|c&4095}else a=c;else a=Cd(a,c);else a=c;return a}function Cd(a,c){if(!a.X)return c;var d=c>>>12;return a.Kb[d]&2?a.N[d]^c:be(a,c,1,0)|c&4095}function yd(a,c){if(!a.X)return c;var d=c>>>12;return a.Kb[d]&1?a.N[d]^c:be(a,c,0,0)|c&4095} -function be(a,c,d,e){var f=c>>>12,h=(a.G[3]>>>2)+(f>>10)|0,r=a.memory.Hb[h],k=!0,t=!0;r&1||(a.G[2]=c,ce(a,d,e,0));r&2||(k=!1,d&&(e||a.G[0]&65536)&&(a.G[2]=c,ce(a,d,e,1)));r&4||(t=!1,e&&(a.G[2]=c,ce(a,d,e,1)));if(r&a.Ad)a.memory.Hb[h]=r|32|d<<6,c=r&4290772992|c&4190208,r&=256;else{var u=((r&4294963200)>>>2)+(f&1023)|0,z=a.memory.Hb[u];z&1||(a.G[2]=c,ce(a,d,e,0));z&2||(k=!1,d&&(e||a.G[0]&65536)&&(a.G[2]=c,ce(a,d,e,1)));z&4||(t=!1,e&&(a.G[2]=c,ce(a,d,e,1)));a.memory.Hb[h]=r|32;a.memory.Hb[u]=z|32|d<< -6;c=z&4294963200;r=z&256}a.N[f]=c^f<<12;k=t?k?15:5:k?3:1;a.Kb[f]=k;r&&a.G[4]&128&&(a.Id[f]=k);return c}function lb(a,c,d){if(a.X){var e=3===a.O?1:0,f=e?8:2,h=c>>>12;a.Kb[h]&f||be(a,c,1,e);4096<=(c&4095)+d-1&&(a.Kb[h+1|0]&f||be(a,c+d-1|0,1,e))}}function ce(a,c,d,e){if(a.K)throw a.debug.S("Double fault");var f=a.G[2]>>>12;a.Kb[f]=0;a.Id[f]=0;a.w=a.ga;a.K=!0;Ec(a,14,!1,d<<2|c<<1|e);throw 233495534;};(function(){v.prototype.g=Array(192);v.prototype.b=Array(192);v.prototype.i=Array(256);v.prototype.g[0]=function(a){return P(a)+(a.l[6]+a.l[12]&65535)|0};v.prototype.g[64]=function(a){return P(a)+(a.l[6]+a.l[12]+D(a)&65535)|0};v.prototype.g[128]=function(a){return P(a)+(a.l[6]+a.l[12]+E(a)&65535)|0};v.prototype.g[1]=function(a){return P(a)+(a.l[6]+a.l[14]&65535)|0};v.prototype.g[65]=function(a){return P(a)+(a.l[6]+a.l[14]+D(a)&65535)|0};v.prototype.g[129]=function(a){return P(a)+(a.l[6]+a.l[14]+E(a)& -65535)|0};v.prototype.g[2]=function(a){return Q(a)+(a.l[10]+a.l[12]&65535)|0};v.prototype.g[66]=function(a){return Q(a)+(a.l[10]+a.l[12]+D(a)&65535)|0};v.prototype.g[130]=function(a){return Q(a)+(a.l[10]+a.l[12]+E(a)&65535)|0};v.prototype.g[3]=function(a){return Q(a)+(a.l[10]+a.l[14]&65535)|0};v.prototype.g[67]=function(a){return Q(a)+(a.l[10]+a.l[14]+D(a)&65535)|0};v.prototype.g[131]=function(a){return Q(a)+(a.l[10]+a.l[14]+E(a)&65535)|0};v.prototype.g[4]=function(a){return P(a)+(a.l[12]&65535)| -0};v.prototype.g[68]=function(a){return P(a)+(a.l[12]+D(a)&65535)|0};v.prototype.g[132]=function(a){return P(a)+(a.l[12]+E(a)&65535)|0};v.prototype.g[5]=function(a){return P(a)+(a.l[14]&65535)|0};v.prototype.g[69]=function(a){return P(a)+(a.l[14]+D(a)&65535)|0};v.prototype.g[133]=function(a){return P(a)+(a.l[14]+E(a)&65535)|0};v.prototype.g[6]=function(a){return Q(a)+(a.l[10]&65535)|0};v.prototype.g[70]=function(a){return Q(a)+(a.l[10]+D(a)&65535)|0};v.prototype.g[134]=function(a){return Q(a)+(a.l[10]+ -E(a)&65535)|0};v.prototype.g[7]=function(a){return P(a)+(a.l[6]&65535)|0};v.prototype.g[71]=function(a){return P(a)+(a.l[6]+D(a)&65535)|0};v.prototype.g[135]=function(a){return P(a)+(a.l[6]+E(a)&65535)|0};v.prototype.b[0]=function(a){return P(a)+a.a[0]|0};v.prototype.b[64]=function(a){return P(a)+a.a[0]+D(a)|0};v.prototype.b[128]=function(a){return P(a)+a.a[0]+H(a)|0};v.prototype.b[1]=function(a){return P(a)+a.a[1]|0};v.prototype.b[65]=function(a){return P(a)+a.a[1]+D(a)|0};v.prototype.b[129]=function(a){return P(a)+ -a.a[1]+H(a)|0};v.prototype.b[2]=function(a){return P(a)+a.a[2]|0};v.prototype.b[66]=function(a){return P(a)+a.a[2]+D(a)|0};v.prototype.b[130]=function(a){return P(a)+a.a[2]+H(a)|0};v.prototype.b[3]=function(a){return P(a)+a.a[3]|0};v.prototype.b[67]=function(a){return P(a)+a.a[3]+D(a)|0};v.prototype.b[131]=function(a){return P(a)+a.a[3]+H(a)|0};v.prototype.b[4]=function(a){return a.i[C(a)](a,!1)|0};v.prototype.b[68]=function(a){return a.i[C(a)](a,!1)+D(a)|0};v.prototype.b[132]=function(a){return a.i[C(a)](a, -!1)+H(a)|0};v.prototype.b[5]=function(a){return Q(a)+a.a[5]|0};v.prototype.b[69]=function(a){return Q(a)+a.a[5]+D(a)|0};v.prototype.b[133]=function(a){return Q(a)+a.a[5]+H(a)|0};v.prototype.b[6]=function(a){return P(a)+a.a[6]|0};v.prototype.b[70]=function(a){return P(a)+a.a[6]+D(a)|0};v.prototype.b[134]=function(a){return P(a)+a.a[6]+H(a)|0};v.prototype.b[7]=function(a){return P(a)+a.a[7]|0};v.prototype.b[71]=function(a){return P(a)+a.a[7]+D(a)|0};v.prototype.b[135]=function(a){return P(a)+a.a[7]+ -H(a)|0};v.prototype.g[6]=function(a){return P(a)+E(a)|0};v.prototype.b[5]=function(a){return P(a)+H(a)|0};v.prototype.b[4]=function(a){return a.i[C(a)](a,!1)|0};v.prototype.b[68]=function(a){return a.i[C(a)](a,!0)+D(a)|0};v.prototype.b[132]=function(a){return a.i[C(a)](a,!0)+H(a)|0};for(var a=0;8>a;a++)for(var c=0;3>c;c++)for(var d=a|c<<6,e=1;8>e;e++)v.prototype.b[d|e<<3]=v.prototype.b[d],v.prototype.g[d|e<<3]=v.prototype.g[d];v.prototype.i[0]=function(a){return a.a[0]+P(a)+a.a[0]|0};v.prototype.i[1]= -function(a){return a.a[0]+P(a)+a.a[1]|0};v.prototype.i[2]=function(a){return a.a[0]+P(a)+a.a[2]|0};v.prototype.i[3]=function(a){return a.a[0]+P(a)+a.a[3]|0};v.prototype.i[4]=function(a){return a.a[0]+Q(a)+a.a[4]|0};v.prototype.i[5]=function(a,c){return a.a[0]+(c?Q(a)+a.a[5]:P(a)+H(a))|0};v.prototype.i[6]=function(a){return a.a[0]+P(a)+a.a[6]|0};v.prototype.i[7]=function(a){return a.a[0]+P(a)+a.a[7]|0};v.prototype.i[64]=function(a){return(a.a[0]<<1)+P(a)+a.a[0]|0};v.prototype.i[65]=function(a){return(a.a[0]<< -1)+P(a)+a.a[1]|0};v.prototype.i[66]=function(a){return(a.a[0]<<1)+P(a)+a.a[2]|0};v.prototype.i[67]=function(a){return(a.a[0]<<1)+P(a)+a.a[3]|0};v.prototype.i[68]=function(a){return(a.a[0]<<1)+Q(a)+a.a[4]|0};v.prototype.i[69]=function(a,c){return(a.a[0]<<1)+(c?Q(a)+a.a[5]:P(a)+H(a))|0};v.prototype.i[70]=function(a){return(a.a[0]<<1)+P(a)+a.a[6]|0};v.prototype.i[71]=function(a){return(a.a[0]<<1)+P(a)+a.a[7]|0};v.prototype.i[128]=function(a){return(a.a[0]<<2)+P(a)+a.a[0]|0};v.prototype.i[129]=function(a){return(a.a[0]<< -2)+P(a)+a.a[1]|0};v.prototype.i[130]=function(a){return(a.a[0]<<2)+P(a)+a.a[2]|0};v.prototype.i[131]=function(a){return(a.a[0]<<2)+P(a)+a.a[3]|0};v.prototype.i[132]=function(a){return(a.a[0]<<2)+Q(a)+a.a[4]|0};v.prototype.i[133]=function(a,c){return(a.a[0]<<2)+(c?Q(a)+a.a[5]:P(a)+H(a))|0};v.prototype.i[134]=function(a){return(a.a[0]<<2)+P(a)+a.a[6]|0};v.prototype.i[135]=function(a){return(a.a[0]<<2)+P(a)+a.a[7]|0};v.prototype.i[192]=function(a){return(a.a[0]<<3)+P(a)+a.a[0]|0};v.prototype.i[193]= -function(a){return(a.a[0]<<3)+P(a)+a.a[1]|0};v.prototype.i[194]=function(a){return(a.a[0]<<3)+P(a)+a.a[2]|0};v.prototype.i[195]=function(a){return(a.a[0]<<3)+P(a)+a.a[3]|0};v.prototype.i[196]=function(a){return(a.a[0]<<3)+Q(a)+a.a[4]|0};v.prototype.i[197]=function(a,c){return(a.a[0]<<3)+(c?Q(a)+a.a[5]:P(a)+H(a))|0};v.prototype.i[198]=function(a){return(a.a[0]<<3)+P(a)+a.a[6]|0};v.prototype.i[199]=function(a){return(a.a[0]<<3)+P(a)+a.a[7]|0};v.prototype.i[8]=function(a){return a.a[1]+P(a)+a.a[0]|0}; -v.prototype.i[9]=function(a){return a.a[1]+P(a)+a.a[1]|0};v.prototype.i[10]=function(a){return a.a[1]+P(a)+a.a[2]|0};v.prototype.i[11]=function(a){return a.a[1]+P(a)+a.a[3]|0};v.prototype.i[12]=function(a){return a.a[1]+Q(a)+a.a[4]|0};v.prototype.i[13]=function(a,c){return a.a[1]+(c?Q(a)+a.a[5]:P(a)+H(a))|0};v.prototype.i[14]=function(a){return a.a[1]+P(a)+a.a[6]|0};v.prototype.i[15]=function(a){return a.a[1]+P(a)+a.a[7]|0};v.prototype.i[72]=function(a){return(a.a[1]<<1)+P(a)+a.a[0]|0};v.prototype.i[73]= -function(a){return(a.a[1]<<1)+P(a)+a.a[1]|0};v.prototype.i[74]=function(a){return(a.a[1]<<1)+P(a)+a.a[2]|0};v.prototype.i[75]=function(a){return(a.a[1]<<1)+P(a)+a.a[3]|0};v.prototype.i[76]=function(a){return(a.a[1]<<1)+Q(a)+a.a[4]|0};v.prototype.i[77]=function(a,c){return(a.a[1]<<1)+(c?Q(a)+a.a[5]:P(a)+H(a))|0};v.prototype.i[78]=function(a){return(a.a[1]<<1)+P(a)+a.a[6]|0};v.prototype.i[79]=function(a){return(a.a[1]<<1)+P(a)+a.a[7]|0};v.prototype.i[136]=function(a){return(a.a[1]<<2)+P(a)+a.a[0]|0}; -v.prototype.i[137]=function(a){return(a.a[1]<<2)+P(a)+a.a[1]|0};v.prototype.i[138]=function(a){return(a.a[1]<<2)+P(a)+a.a[2]|0};v.prototype.i[139]=function(a){return(a.a[1]<<2)+P(a)+a.a[3]|0};v.prototype.i[140]=function(a){return(a.a[1]<<2)+Q(a)+a.a[4]|0};v.prototype.i[141]=function(a,c){return(a.a[1]<<2)+(c?Q(a)+a.a[5]:P(a)+H(a))|0};v.prototype.i[142]=function(a){return(a.a[1]<<2)+P(a)+a.a[6]|0};v.prototype.i[143]=function(a){return(a.a[1]<<2)+P(a)+a.a[7]|0};v.prototype.i[200]=function(a){return(a.a[1]<< -3)+P(a)+a.a[0]|0};v.prototype.i[201]=function(a){return(a.a[1]<<3)+P(a)+a.a[1]|0};v.prototype.i[202]=function(a){return(a.a[1]<<3)+P(a)+a.a[2]|0};v.prototype.i[203]=function(a){return(a.a[1]<<3)+P(a)+a.a[3]|0};v.prototype.i[204]=function(a){return(a.a[1]<<3)+Q(a)+a.a[4]|0};v.prototype.i[205]=function(a,c){return(a.a[1]<<3)+(c?Q(a)+a.a[5]:P(a)+H(a))|0};v.prototype.i[206]=function(a){return(a.a[1]<<3)+P(a)+a.a[6]|0};v.prototype.i[207]=function(a){return(a.a[1]<<3)+P(a)+a.a[7]|0};v.prototype.i[16]=function(a){return a.a[2]+ -P(a)+a.a[0]|0};v.prototype.i[17]=function(a){return a.a[2]+P(a)+a.a[1]|0};v.prototype.i[18]=function(a){return a.a[2]+P(a)+a.a[2]|0};v.prototype.i[19]=function(a){return a.a[2]+P(a)+a.a[3]|0};v.prototype.i[20]=function(a){return a.a[2]+Q(a)+a.a[4]|0};v.prototype.i[21]=function(a,c){return a.a[2]+(c?Q(a)+a.a[5]:P(a)+H(a))|0};v.prototype.i[22]=function(a){return a.a[2]+P(a)+a.a[6]|0};v.prototype.i[23]=function(a){return a.a[2]+P(a)+a.a[7]|0};v.prototype.i[80]=function(a){return(a.a[2]<<1)+P(a)+a.a[0]| -0};v.prototype.i[81]=function(a){return(a.a[2]<<1)+P(a)+a.a[1]|0};v.prototype.i[82]=function(a){return(a.a[2]<<1)+P(a)+a.a[2]|0};v.prototype.i[83]=function(a){return(a.a[2]<<1)+P(a)+a.a[3]|0};v.prototype.i[84]=function(a){return(a.a[2]<<1)+Q(a)+a.a[4]|0};v.prototype.i[85]=function(a,c){return(a.a[2]<<1)+(c?Q(a)+a.a[5]:P(a)+H(a))|0};v.prototype.i[86]=function(a){return(a.a[2]<<1)+P(a)+a.a[6]|0};v.prototype.i[87]=function(a){return(a.a[2]<<1)+P(a)+a.a[7]|0};v.prototype.i[144]=function(a){return(a.a[2]<< -2)+P(a)+a.a[0]|0};v.prototype.i[145]=function(a){return(a.a[2]<<2)+P(a)+a.a[1]|0};v.prototype.i[146]=function(a){return(a.a[2]<<2)+P(a)+a.a[2]|0};v.prototype.i[147]=function(a){return(a.a[2]<<2)+P(a)+a.a[3]|0};v.prototype.i[148]=function(a){return(a.a[2]<<2)+Q(a)+a.a[4]|0};v.prototype.i[149]=function(a,c){return(a.a[2]<<2)+(c?Q(a)+a.a[5]:P(a)+H(a))|0};v.prototype.i[150]=function(a){return(a.a[2]<<2)+P(a)+a.a[6]|0};v.prototype.i[151]=function(a){return(a.a[2]<<2)+P(a)+a.a[7]|0};v.prototype.i[208]= -function(a){return(a.a[2]<<3)+P(a)+a.a[0]|0};v.prototype.i[209]=function(a){return(a.a[2]<<3)+P(a)+a.a[1]|0};v.prototype.i[210]=function(a){return(a.a[2]<<3)+P(a)+a.a[2]|0};v.prototype.i[211]=function(a){return(a.a[2]<<3)+P(a)+a.a[3]|0};v.prototype.i[212]=function(a){return(a.a[2]<<3)+Q(a)+a.a[4]|0};v.prototype.i[213]=function(a,c){return(a.a[2]<<3)+(c?Q(a)+a.a[5]:P(a)+H(a))|0};v.prototype.i[214]=function(a){return(a.a[2]<<3)+P(a)+a.a[6]|0};v.prototype.i[215]=function(a){return(a.a[2]<<3)+P(a)+a.a[7]| -0};v.prototype.i[24]=function(a){return a.a[3]+P(a)+a.a[0]|0};v.prototype.i[25]=function(a){return a.a[3]+P(a)+a.a[1]|0};v.prototype.i[26]=function(a){return a.a[3]+P(a)+a.a[2]|0};v.prototype.i[27]=function(a){return a.a[3]+P(a)+a.a[3]|0};v.prototype.i[28]=function(a){return a.a[3]+Q(a)+a.a[4]|0};v.prototype.i[29]=function(a,c){return a.a[3]+(c?Q(a)+a.a[5]:P(a)+H(a))|0};v.prototype.i[30]=function(a){return a.a[3]+P(a)+a.a[6]|0};v.prototype.i[31]=function(a){return a.a[3]+P(a)+a.a[7]|0};v.prototype.i[88]= -function(a){return(a.a[3]<<1)+P(a)+a.a[0]|0};v.prototype.i[89]=function(a){return(a.a[3]<<1)+P(a)+a.a[1]|0};v.prototype.i[90]=function(a){return(a.a[3]<<1)+P(a)+a.a[2]|0};v.prototype.i[91]=function(a){return(a.a[3]<<1)+P(a)+a.a[3]|0};v.prototype.i[92]=function(a){return(a.a[3]<<1)+Q(a)+a.a[4]|0};v.prototype.i[93]=function(a,c){return(a.a[3]<<1)+(c?Q(a)+a.a[5]:P(a)+H(a))|0};v.prototype.i[94]=function(a){return(a.a[3]<<1)+P(a)+a.a[6]|0};v.prototype.i[95]=function(a){return(a.a[3]<<1)+P(a)+a.a[7]|0}; -v.prototype.i[152]=function(a){return(a.a[3]<<2)+P(a)+a.a[0]|0};v.prototype.i[153]=function(a){return(a.a[3]<<2)+P(a)+a.a[1]|0};v.prototype.i[154]=function(a){return(a.a[3]<<2)+P(a)+a.a[2]|0};v.prototype.i[155]=function(a){return(a.a[3]<<2)+P(a)+a.a[3]|0};v.prototype.i[156]=function(a){return(a.a[3]<<2)+Q(a)+a.a[4]|0};v.prototype.i[157]=function(a,c){return(a.a[3]<<2)+(c?Q(a)+a.a[5]:P(a)+H(a))|0};v.prototype.i[158]=function(a){return(a.a[3]<<2)+P(a)+a.a[6]|0};v.prototype.i[159]=function(a){return(a.a[3]<< -2)+P(a)+a.a[7]|0};v.prototype.i[216]=function(a){return(a.a[3]<<3)+P(a)+a.a[0]|0};v.prototype.i[217]=function(a){return(a.a[3]<<3)+P(a)+a.a[1]|0};v.prototype.i[218]=function(a){return(a.a[3]<<3)+P(a)+a.a[2]|0};v.prototype.i[219]=function(a){return(a.a[3]<<3)+P(a)+a.a[3]|0};v.prototype.i[220]=function(a){return(a.a[3]<<3)+Q(a)+a.a[4]|0};v.prototype.i[221]=function(a,c){return(a.a[3]<<3)+(c?Q(a)+a.a[5]:P(a)+H(a))|0};v.prototype.i[222]=function(a){return(a.a[3]<<3)+P(a)+a.a[6]|0};v.prototype.i[223]= -function(a){return(a.a[3]<<3)+P(a)+a.a[7]|0};v.prototype.i[32]=function(a){return P(a)+a.a[0]|0};v.prototype.i[33]=function(a){return P(a)+a.a[1]|0};v.prototype.i[34]=function(a){return P(a)+a.a[2]|0};v.prototype.i[35]=function(a){return P(a)+a.a[3]|0};v.prototype.i[36]=function(a){return Q(a)+a.a[4]|0};v.prototype.i[37]=function(a,c){return(c?Q(a)+a.a[5]:P(a)+H(a))|0};v.prototype.i[38]=function(a){return P(a)+a.a[6]|0};v.prototype.i[39]=function(a){return P(a)+a.a[7]|0};v.prototype.i[96]=function(a){return P(a)+ -a.a[0]|0};v.prototype.i[97]=function(a){return P(a)+a.a[1]|0};v.prototype.i[98]=function(a){return P(a)+a.a[2]|0};v.prototype.i[99]=function(a){return P(a)+a.a[3]|0};v.prototype.i[100]=function(a){return Q(a)+a.a[4]|0};v.prototype.i[101]=function(a,c){return(c?Q(a)+a.a[5]:P(a)+H(a))|0};v.prototype.i[102]=function(a){return P(a)+a.a[6]|0};v.prototype.i[103]=function(a){return P(a)+a.a[7]|0};v.prototype.i[160]=function(a){return P(a)+a.a[0]|0};v.prototype.i[161]=function(a){return P(a)+a.a[1]|0};v.prototype.i[162]= -function(a){return P(a)+a.a[2]|0};v.prototype.i[163]=function(a){return P(a)+a.a[3]|0};v.prototype.i[164]=function(a){return Q(a)+a.a[4]|0};v.prototype.i[165]=function(a,c){return(c?Q(a)+a.a[5]:P(a)+H(a))|0};v.prototype.i[166]=function(a){return P(a)+a.a[6]|0};v.prototype.i[167]=function(a){return P(a)+a.a[7]|0};v.prototype.i[224]=function(a){return P(a)+a.a[0]|0};v.prototype.i[225]=function(a){return P(a)+a.a[1]|0};v.prototype.i[226]=function(a){return P(a)+a.a[2]|0};v.prototype.i[227]=function(a){return P(a)+ -a.a[3]|0};v.prototype.i[228]=function(a){return Q(a)+a.a[4]|0};v.prototype.i[229]=function(a,c){return(c?Q(a)+a.a[5]:P(a)+H(a))|0};v.prototype.i[230]=function(a){return P(a)+a.a[6]|0};v.prototype.i[231]=function(a){return P(a)+a.a[7]|0};v.prototype.i[40]=function(a){return a.a[5]+P(a)+a.a[0]|0};v.prototype.i[41]=function(a){return a.a[5]+P(a)+a.a[1]|0};v.prototype.i[42]=function(a){return a.a[5]+P(a)+a.a[2]|0};v.prototype.i[43]=function(a){return a.a[5]+P(a)+a.a[3]|0};v.prototype.i[44]=function(a){return a.a[5]+ -Q(a)+a.a[4]|0};v.prototype.i[45]=function(a,c){return a.a[5]+(c?Q(a)+a.a[5]:P(a)+H(a))|0};v.prototype.i[46]=function(a){return a.a[5]+P(a)+a.a[6]|0};v.prototype.i[47]=function(a){return a.a[5]+P(a)+a.a[7]|0};v.prototype.i[104]=function(a){return(a.a[5]<<1)+P(a)+a.a[0]|0};v.prototype.i[105]=function(a){return(a.a[5]<<1)+P(a)+a.a[1]|0};v.prototype.i[106]=function(a){return(a.a[5]<<1)+P(a)+a.a[2]|0};v.prototype.i[107]=function(a){return(a.a[5]<<1)+P(a)+a.a[3]|0};v.prototype.i[108]=function(a){return(a.a[5]<< -1)+Q(a)+a.a[4]|0};v.prototype.i[109]=function(a,c){return(a.a[5]<<1)+(c?Q(a)+a.a[5]:P(a)+H(a))|0};v.prototype.i[110]=function(a){return(a.a[5]<<1)+P(a)+a.a[6]|0};v.prototype.i[111]=function(a){return(a.a[5]<<1)+P(a)+a.a[7]|0};v.prototype.i[168]=function(a){return(a.a[5]<<2)+P(a)+a.a[0]|0};v.prototype.i[169]=function(a){return(a.a[5]<<2)+P(a)+a.a[1]|0};v.prototype.i[170]=function(a){return(a.a[5]<<2)+P(a)+a.a[2]|0};v.prototype.i[171]=function(a){return(a.a[5]<<2)+P(a)+a.a[3]|0};v.prototype.i[172]= -function(a){return(a.a[5]<<2)+Q(a)+a.a[4]|0};v.prototype.i[173]=function(a,c){return(a.a[5]<<2)+(c?Q(a)+a.a[5]:P(a)+H(a))|0};v.prototype.i[174]=function(a){return(a.a[5]<<2)+P(a)+a.a[6]|0};v.prototype.i[175]=function(a){return(a.a[5]<<2)+P(a)+a.a[7]|0};v.prototype.i[232]=function(a){return(a.a[5]<<3)+P(a)+a.a[0]|0};v.prototype.i[233]=function(a){return(a.a[5]<<3)+P(a)+a.a[1]|0};v.prototype.i[234]=function(a){return(a.a[5]<<3)+P(a)+a.a[2]|0};v.prototype.i[235]=function(a){return(a.a[5]<<3)+P(a)+a.a[3]| -0};v.prototype.i[236]=function(a){return(a.a[5]<<3)+Q(a)+a.a[4]|0};v.prototype.i[237]=function(a,c){return(a.a[5]<<3)+(c?Q(a)+a.a[5]:P(a)+H(a))|0};v.prototype.i[238]=function(a){return(a.a[5]<<3)+P(a)+a.a[6]|0};v.prototype.i[239]=function(a){return(a.a[5]<<3)+P(a)+a.a[7]|0};v.prototype.i[48]=function(a){return a.a[6]+P(a)+a.a[0]|0};v.prototype.i[49]=function(a){return a.a[6]+P(a)+a.a[1]|0};v.prototype.i[50]=function(a){return a.a[6]+P(a)+a.a[2]|0};v.prototype.i[51]=function(a){return a.a[6]+P(a)+ -a.a[3]|0};v.prototype.i[52]=function(a){return a.a[6]+Q(a)+a.a[4]|0};v.prototype.i[53]=function(a,c){return a.a[6]+(c?Q(a)+a.a[5]:P(a)+H(a))|0};v.prototype.i[54]=function(a){return a.a[6]+P(a)+a.a[6]|0};v.prototype.i[55]=function(a){return a.a[6]+P(a)+a.a[7]|0};v.prototype.i[112]=function(a){return(a.a[6]<<1)+P(a)+a.a[0]|0};v.prototype.i[113]=function(a){return(a.a[6]<<1)+P(a)+a.a[1]|0};v.prototype.i[114]=function(a){return(a.a[6]<<1)+P(a)+a.a[2]|0};v.prototype.i[115]=function(a){return(a.a[6]<<1)+ -P(a)+a.a[3]|0};v.prototype.i[116]=function(a){return(a.a[6]<<1)+Q(a)+a.a[4]|0};v.prototype.i[117]=function(a,c){return(a.a[6]<<1)+(c?Q(a)+a.a[5]:P(a)+H(a))|0};v.prototype.i[118]=function(a){return(a.a[6]<<1)+P(a)+a.a[6]|0};v.prototype.i[119]=function(a){return(a.a[6]<<1)+P(a)+a.a[7]|0};v.prototype.i[176]=function(a){return(a.a[6]<<2)+P(a)+a.a[0]|0};v.prototype.i[177]=function(a){return(a.a[6]<<2)+P(a)+a.a[1]|0};v.prototype.i[178]=function(a){return(a.a[6]<<2)+P(a)+a.a[2]|0};v.prototype.i[179]=function(a){return(a.a[6]<< -2)+P(a)+a.a[3]|0};v.prototype.i[180]=function(a){return(a.a[6]<<2)+Q(a)+a.a[4]|0};v.prototype.i[181]=function(a,c){return(a.a[6]<<2)+(c?Q(a)+a.a[5]:P(a)+H(a))|0};v.prototype.i[182]=function(a){return(a.a[6]<<2)+P(a)+a.a[6]|0};v.prototype.i[183]=function(a){return(a.a[6]<<2)+P(a)+a.a[7]|0};v.prototype.i[240]=function(a){return(a.a[6]<<3)+P(a)+a.a[0]|0};v.prototype.i[241]=function(a){return(a.a[6]<<3)+P(a)+a.a[1]|0};v.prototype.i[242]=function(a){return(a.a[6]<<3)+P(a)+a.a[2]|0};v.prototype.i[243]= -function(a){return(a.a[6]<<3)+P(a)+a.a[3]|0};v.prototype.i[244]=function(a){return(a.a[6]<<3)+Q(a)+a.a[4]|0};v.prototype.i[245]=function(a,c){return(a.a[6]<<3)+(c?Q(a)+a.a[5]:P(a)+H(a))|0};v.prototype.i[246]=function(a){return(a.a[6]<<3)+P(a)+a.a[6]|0};v.prototype.i[247]=function(a){return(a.a[6]<<3)+P(a)+a.a[7]|0};v.prototype.i[56]=function(a){return a.a[7]+P(a)+a.a[0]|0};v.prototype.i[57]=function(a){return a.a[7]+P(a)+a.a[1]|0};v.prototype.i[58]=function(a){return a.a[7]+P(a)+a.a[2]|0};v.prototype.i[59]= -function(a){return a.a[7]+P(a)+a.a[3]|0};v.prototype.i[60]=function(a){return a.a[7]+Q(a)+a.a[4]|0};v.prototype.i[61]=function(a,c){return a.a[7]+(c?Q(a)+a.a[5]:P(a)+H(a))|0};v.prototype.i[62]=function(a){return a.a[7]+P(a)+a.a[6]|0};v.prototype.i[63]=function(a){return a.a[7]+P(a)+a.a[7]|0};v.prototype.i[120]=function(a){return(a.a[7]<<1)+P(a)+a.a[0]|0};v.prototype.i[121]=function(a){return(a.a[7]<<1)+P(a)+a.a[1]|0};v.prototype.i[122]=function(a){return(a.a[7]<<1)+P(a)+a.a[2]|0};v.prototype.i[123]= -function(a){return(a.a[7]<<1)+P(a)+a.a[3]|0};v.prototype.i[124]=function(a){return(a.a[7]<<1)+Q(a)+a.a[4]|0};v.prototype.i[125]=function(a,c){return(a.a[7]<<1)+(c?Q(a)+a.a[5]:P(a)+H(a))|0};v.prototype.i[126]=function(a){return(a.a[7]<<1)+P(a)+a.a[6]|0};v.prototype.i[127]=function(a){return(a.a[7]<<1)+P(a)+a.a[7]|0};v.prototype.i[184]=function(a){return(a.a[7]<<2)+P(a)+a.a[0]|0};v.prototype.i[185]=function(a){return(a.a[7]<<2)+P(a)+a.a[1]|0};v.prototype.i[186]=function(a){return(a.a[7]<<2)+P(a)+a.a[2]| -0};v.prototype.i[187]=function(a){return(a.a[7]<<2)+P(a)+a.a[3]|0};v.prototype.i[188]=function(a){return(a.a[7]<<2)+Q(a)+a.a[4]|0};v.prototype.i[189]=function(a,c){return(a.a[7]<<2)+(c?Q(a)+a.a[5]:P(a)+H(a))|0};v.prototype.i[190]=function(a){return(a.a[7]<<2)+P(a)+a.a[6]|0};v.prototype.i[191]=function(a){return(a.a[7]<<2)+P(a)+a.a[7]|0};v.prototype.i[248]=function(a){return(a.a[7]<<3)+P(a)+a.a[0]|0};v.prototype.i[249]=function(a){return(a.a[7]<<3)+P(a)+a.a[1]|0};v.prototype.i[250]=function(a){return(a.a[7]<< -3)+P(a)+a.a[2]|0};v.prototype.i[251]=function(a){return(a.a[7]<<3)+P(a)+a.a[3]|0};v.prototype.i[252]=function(a){return(a.a[7]<<3)+Q(a)+a.a[4]|0};v.prototype.i[253]=function(a,c){return(a.a[7]<<3)+(c?Q(a)+a.a[5]:P(a)+H(a))|0};v.prototype.i[254]=function(a){return(a.a[7]<<3)+P(a)+a.a[6]|0};v.prototype.i[255]=function(a){return(a.a[7]<<3)+P(a)+a.a[7]|0};v.prototype.P=function(a){return 192>a?(this.la?this.b:this.g)[a](this):-1}})();function de(a,c){return 0>a?(c&4095)>>(-a>>1):(~c&4095)>>a}function ee(a,c,d){return Math.min(de(a,c),de(a,d))}function fe(a){var c=a.l[4];Zd(a,c,1);var d=K(a,0)+a.j[a.B]|0,e=a.h&1024?-1:1;if(0!==a.ca){var f=a.j[a.M]>>>0;if(f){var h=f,r=4096,k=nd(a,d);a.X&&(r=de(e,d));do a.memory.sa(k,Ha(a.A,c)),k+=e,d=!!--f;while(d&&r--);a.j[a.B]+=e*(h-f)|0;a.j[a.M]=f;a.V+=h-f;d&&fe(a)}}else md(a,d,Ha(a.A,c)),a.j[a.B]+=e} -function ge(a){var c=a.l[4];Zd(a,c,2);var d=K(a,0)+a.j[a.B]|0,e=a.h&1024?-2:2;if(0!==a.ca){var f=a.j[a.M]>>>0;if(f){var h,r=f,k=4096;if(d&1){do mb(a,d,Ia(a.A,c)),d+=e,a.j[a.B]+=e,h=!!--a.j[a.M];while(h&&k--)}else{var t=0>e?-1:1,u=nd(a,d)>>1;a.X&&(k=de(e,d));do mc(a.memory,u,Ia(a.A,c)),u+=t,h=!!--f;while(h&&k--);a.j[a.B]+=e*(r-f)|0;a.j[a.M]=f;a.V+=r-f}h&&ge(a)}}else mb(a,d,Ia(a.A,c)),a.j[a.B]+=e} -function he(a){var c=a.l[4];Zd(a,c,4);var d=K(a,0)+a.j[a.B]|0,e=a.h&1024?-4:4;if(0!==a.ca){var f=a.j[a.M]>>>0;if(f){var h,r=f,k=4096;if(d&3){do x(a,d,Ja(a.A,c)),d+=e,a.j[a.B]+=e,h=!!--a.j[a.M];while(h&&k--)}else{var t=0>e?-1:1,u=nd(a,d)>>>2;a.X&&(k=de(e,d));do nc(a.memory,u,Ja(a.A,c)),u+=t,h=!!--f;while(h&&k--);a.j[a.B]+=e*(r-f)|0;a.j[a.M]=f;a.V+=r-f}h&&he(a)}}else x(a,d,Ja(a.A,c)),a.j[a.B]+=e} -function ie(a){var c=a.l[4];Zd(a,c,1);var d=pd(a,3)+a.j[a.I]|0,e=a.h&1024?-1:1;if(0!==a.ca){var f=a.j[a.M]>>>0;if(f){var h=f,r=4096,k=jd(a,d);a.X&&(r=de(e,d));do Ea(a.A,c,a.memory.da(k)),k+=e,d=!!--f;while(d&&r--);a.j[a.I]+=e*(h-f)|0;a.j[a.M]=f;a.V+=h-f;d&&ie(a)}}else Ea(a.A,c,ld(a,d)),a.j[a.I]+=e} -function je(a){var c=a.l[4];Zd(a,c,2);var d=pd(a,3)+a.j[a.I]|0,e=a.h&1024?-2:2;if(0!==a.ca){var f=a.j[a.M]>>>0;if(f){var h,r=f,k=4096;if(d&1){do Fa(a.A,c,y(a,d)),d+=e,a.j[a.I]+=e,h=!!--a.j[a.M];while(h&&k--)}else{var t=0>e?-1:1,u=jd(a,d)>>1;a.X&&(k=de(e,d));do Fa(a.A,c,kc(a.memory,u)),u+=t,h=!!--f;while(h&&k--);a.j[a.I]+=e*(r-f)|0;a.j[a.M]=f;a.V+=r-f}h&&je(a)}}else Fa(a.A,c,y(a,d)),a.j[a.I]+=e} -function ke(a){var c=a.l[4];Zd(a,c,4);var d=pd(a,3)+a.j[a.I]|0,e=a.h&1024?-4:4;if(0!==a.ca){var f=a.j[a.M]>>>0;if(f){var h,r=f,k=4096;if(d&3){do Ga(a.A,c,A(a,d)),d+=e,a.j[a.I]+=e,h=!!--a.j[a.M];while(h&&k--)}else{var t=0>e?-1:1,u=jd(a,d)>>>2;a.X&&(k=de(e,d));do Ga(a.A,c,lc(a.memory,u)),u+=t,h=!!--f;while(h&&k--);a.j[a.I]+=e*(r-f)|0;a.j[a.M]=f;a.V+=r-f}h&&ke(a)}}else Ga(a.A,c,A(a,d)),a.j[a.I]+=e};function le(a,c,d){return a.add(c,d,7)}function me(a,c,d){return a.add(c,d,15)}function ne(a,c,d){return a.add(c,d,31)}function oe(a,c,d){return pe(a,c,d,7)}function qe(a,c,d){return pe(a,c,d,15)}function ye(a,c,d){return pe(a,c,d,31)}function ze(a,c,d){return Ae(a,c,d,7)}function Be(a,c,d){return Ae(a,c,d,15)}function Ce(a,c,d){return Ae(a,c,d,31)}function De(a,c,d){return Ee(a,c,d,7)}function Fe(a,c,d){return Ee(a,c,d,15)}function Ge(a,c,d){return Ee(a,c,d,31)} -v.prototype.add=function(a,c,d){this.Va=a;this.Wa=c;this.m=this.F=a+c|0;this.T=d;this.u=2261;return this.F};function pe(a,c,d,e){var f=a.Pa();a.Va=c;a.Wa=d;a.m=a.F=(c+d|0)+f|0;a.T=e;a.u=2261;return a.F}function Ae(a,c,d,e){a.m=c;a.Wa=d;a.Va=a.F=c-d|0;a.T=e;a.u=2261;return a.F}function Ee(a,c,d,e){var f=a.Pa();a.m=c;a.Wa=d;a.Va=a.F=c-d-f|0;a.T=e;a.u=2261;return a.F}function He(a,c,d){a.h=a.h&-2|a.Pa();a.Va=c;a.Wa=1;a.m=a.F=c+1|0;a.T=d;a.u=2260;return a.F} -function Ie(a,c,d){a.h=a.h&-2|a.Pa();a.m=c;a.Wa=1;a.Va=a.F=c-1|0;a.T=d;a.u=2260;return a.F}function Je(a,c,d){a.Va=a.F=-c|0;a.u=2261;a.m=0;a.Wa=c;a.T=d;return a.F}function Ke(a,c,d){c*=d;a.F=c&65535;a.T=15;a.h=32767c?a.h|2049:a.h&-2050;a.u=212;return c}var Le=new Int32Array(2);function Me(a,c){var d=a&65535;a>>>=16;var e=c&65535;c>>>=16;var f=d*e,e=(f>>>16)+(a*e|0)|0,h=e>>>16,e=(e&65535)+(d*c|0)|0;Le[0]=e<<16|f&65535;Le[1]=((e>>>16)+(a*c|0)|0)+h|0;return Le} -function Ne(a,c){var d=!1;0>a&&(d=!0,a=-a|0);0>c&&(d=!d,c=-c|0);a=Me(a,c);d&&(a[0]=-a[0]|0,a[1]=~a[1]+!a[0]|0);return a}function Oe(a,c,d){c=Ne(c,d);a.F=c[0];a.T=31;a.h=c[1]===c[0]>>31?a.h&-2050:a.h|2049;a.u=212;return c[0]}var Pe=new Float64Array(2);function Qe(a,c,d,e){(d>=e||0===e)&&Gd(a);a=0;if(1048576d;)h>>>=1,f--;for(;1048576=h){d-=h;var r=e<>>0;r>c&&d--;c=c-r>>>0;a|=1<>=1}a>>>=0}c+=4294967296*d;Pe[0]=a+(c/e|0);Pe[1]=c%e;return Pe} -function Re(a,c,d){return Se(a,c,d,7)}function Te(a,c,d){return Se(a,c,d,15)}function Ue(a,c,d){return Se(a,c,d,31)}function Ve(a,c,d){return We(a,c,d,7)}function Xe(a,c,d){return We(a,c,d,15)}function Ye(a,c,d){return We(a,c,d,31)}function Ze(a,c,d){return $e(a,c,d,7)}function af(a,c,d){return $e(a,c,d,15)}function bf(a,c,d){return $e(a,c,d,31)}function Se(a,c,d,e){a.F=c&d;a.T=e;a.h&=-2066;a.u=196;return a.F}function We(a,c,d,e){a.F=c|d;a.T=e;a.h&=-2066;a.u=196;return a.F} -function $e(a,c,d,e){a.F=c^d;a.T=e;a.h&=-2066;a.u=196;return a.F}function cf(a,c,d){if(!d)return c;d&=7;c=c<>8-d;a.u&=-2050;a.h=a.h&-2050|c&1|(c<<11^c<<4)&2048;return c}function df(a,c,d){if(!d)return c;d&=15;c=c<>16-d;a.u&=-2050;a.h=a.h&-2050|c&1|(c<<11^c>>4)&2048;return c}function ef(a,c,d){if(!d)return c;c=c<>>32-d;a.u&=-2050;a.h=a.h&-2050|c&1|(c<<11^c>>20)&2048;return c} -function ff(a,c,d){d%=9;if(!d)return c;c=c<>9-d;a.u&=-2050;a.h=a.h&-2050|c>>8&1|(c<<3^c<<4)&2048;return c}function gf(a,c,d){d%=17;if(!d)return c;c=c<>17-d;a.u&=-2050;a.h=a.h&-2050|c>>16&1|(c>>5^c>>4)&2048;return c}function hf(a,c,d){if(!d)return c;var e=c<>>33-d);a.u&=-2050;a.h=a.h&-2050|c>>>32-d&1;a.h|=(a.h<<11^e>>20)&2048;return e} -function jf(a,c,d){if(!d)return c;d&=7;c=c>>d|c<<8-d;a.u&=-2050;a.h=a.h&-2050|c>>7&1|(c<<4^c<<5)&2048;return c}function kf(a,c,d){if(!d)return c;d&=15;c=c>>d|c<<16-d;a.u&=-2050;a.h=a.h&-2050|c>>15&1|(c>>4^c>>3)&2048;return c}function lf(a,c,d){if(!d)return c;c=c>>>d|c<<32-d;a.u&=-2050;a.h=a.h&-2050|c>>31&1|(c>>20^c>>19)&2048;return c}function mf(a,c,d){d%=9;if(!d)return c;c=c>>d|a.Pa()<<8-d|c<<9-d;a.u&=-2050;a.h=a.h&-2050|c>>8&1|(c<<4^c<<5)&2048;return c} -function nf(a,c,d){d%=17;if(!d)return c;c=c>>d|a.Pa()<<16-d|c<<17-d;a.u&=-2050;a.h=a.h&-2050|c>>16&1|(c>>4^c>>3)&2048;return c}function of(a,c,d){if(!d)return c;var e=c>>>d|a.Pa()<<32-d;1>d-1&1|(e>>20^e>>19)&2048;return e}function pf(a,c,d){if(0===d)return c;a.F=c<>8&1|(a.F<<3^a.F<<4)&2048;return a.F}function qf(a,c,d){if(0===d)return c;a.F=c<>16&1|(a.F>>5^a.F>>4)&2048;return a.F} -function rf(a,c,d){if(0===d)return c;a.F=c<>>32-d&1;a.h|=(a.h&1^a.F>>31&1)<<11&2048;return a.F}function sf(a,c,d){if(0===d)return c;a.F=c>>d;a.T=7;a.u=212;a.h=a.h&-2050|c>>d-1&1|(c>>7&1)<<11&2048;return a.F}function tf(a,c,d){if(0===d)return c;a.F=c>>d;a.T=15;a.u=212;a.h=a.h&-2050|c>>d-1&1|c>>4&2048;return a.F}function uf(a,c,d){if(0===d)return c;a.F=c>>>d;a.T=31;a.u=212;a.h=a.h&-2050|c>>>d-1&1|c>>20&2048;return a.F} -function vf(a,c,d){if(0===d)return c;8>d?(a.F=c<<24>>d+24,a.h=a.h&-2050|c>>d-1&1):(a.F=c<<24>>31,a.h=a.h&-2050|a.F&1);a.T=7;a.u=212;return a.F}function wf(a,c,d){if(0===d)return c;16>d?(a.F=c<<16>>d+16,a.h=a.h&-2050|c>>d-1&1):(a.F=c<<16>>31,a.h=a.h&-2050|a.F&1);a.T=15;a.u=212;return a.F}function xf(a,c,d){if(0===d)return c;a.F=c>>d;a.T=31;a.u=212;a.h=a.h&-2050|c>>>d-1&1;return a.F} -function yf(a,c,d,e){if(0===e)return c;16>=e?(a.F=c>>e|d<<16-e,a.h=a.h&-2|c>>e-1&1):(a.F=c<<32-e|d>>e-16,a.h=a.h&-2|d>>e-17&1);a.T=15;a.u=212;a.h=a.h&-2049|(a.F^c)>>4&2048;return a.F}function zf(a,c,d,e){if(0===e)return c;a.F=c>>>e|d<<32-e;a.T=31;a.u=212;a.h=a.h&-2|c>>>e-1&1;a.h=a.h&-2049|(a.F^c)>>20&2048;return a.F} -function Af(a,c,d,e){if(0===e)return c;16>=e?(a.F=c<>>16-e,a.h=a.h&-2|c>>>16-e&1):(a.F=c>>32-e|d<>>32-e&1);a.T=15;a.u=212;a.h=a.h&-2049|(a.h&1^a.F>>15&1)<<11;return a.F}function Bf(a,c,d,e){if(0===e)return c;a.F=c<>>32-e;a.T=31;a.u=212;a.h=a.h&-2|c>>>32-e&1;a.h=a.h&-2049|(a.h&1^a.F>>31&1)<<11;return a.F}function Cf(a,c,d){a.h=a.h&-2|c>>d&1;a.u&=-2}function Df(a,c,d){a.h=a.h&-2|c>>d&1;a.u&=-2;return c^1<>d&1;a.u&=-2;return c|1<>d&1;a.u&=-2;return c&~(1<>3)|0);a.h=a.h&-2|c>>(d&7)&1;a.u&=-2}function Hf(a,c,d){c=nd(a,c+(d>>3)|0);var e=a.memory.da(c);d&=7;a.h=a.h&-2|e>>d&1;a.u&=-2;a.memory.sa(c,e^1<>3)|0);var e=a.memory.da(c);d&=7;a.h=a.h&-2|e>>d&1;a.u&=-2;a.memory.sa(c,e&~(1<>3)|0);var e=a.memory.da(c);d&=7;a.h=a.h&-2|e>>d&1;a.u&=-2;a.memory.sa(c,e|1<>1&1431655765,c=(c&858993459)+(c>>2&858993459),16843009*(c+(c>>4)&252645135)>>24;a.h|=64;return 0};function Lf(a,c){c?(c=D(a),a.w=a.w+c|0):a.w=a.w+1|0}function Mf(a,c){var d=K(a,1);a.w-=d;a.w=a.w+c&65535;a.w=a.w+d|0}function Nf(a,c){c?Mf(a,E(a)):a.w=a.w+2|0}function Of(a,c){c?(c=H(a),a.w=a.w+c|0):a.w=a.w+4|0}function Pf(a,c){var d=R(a);c&&Xd(a,d)}function Qf(a,c){var d=Jd(a);c&&Yd(a,d)}function Rf(a,c){Kd(a,c?1:0)}l=v.prototype;l.loop=function(a){--this.j[this.M]&&(this.w=this.w+a|0,this.Da||xd(this))}; -l.Pa=function(){return this.u&1?(this.Va^(this.Va^this.Wa)&(this.Wa^this.m))>>>this.T&1:this.h&1};l.Ze=function(){return this.u&4?154020>>((this.F^this.F>>4)&15)&4:this.h&4};function td(a){return a.u&16?(a.Va^a.Wa^a.m)&16:a.h&16}l.Pb=function(){return this.u&64?(~this.F&this.F-1)>>>this.T&1:this.h&64};l.Ud=function(){return this.u&128?this.F>>>this.T&1:this.h&128};l.td=function(){return this.u&2048?((this.Va^this.m)&(this.Wa^this.m))>>>this.T&1:this.h&2048};l.qb=v.prototype.td;l.hb=v.prototype.Pa; -l.jb=v.prototype.Pb;l.rb=v.prototype.Ud;l.ib=v.prototype.Ze;function Sf(a){return a.Pa()||a.Pb()}function Tf(a){return!a.Ud()!==!a.td()}function Uf(a){return a.Pb()||!a.Ud()!==!a.td()}function O(a,c){var d=J(a,-2);mb(a,d,c);I(a,-2)}function N(a,c){var d=J(a,-4);x(a,d,c);I(a,-4)}function Vf(a){var c=K(a,2)+(a.gb?a.a[4]:a.l[8])|0,c=y(a,c);I(a,2);return c}function Wf(a){var c=K(a,2)+(a.gb?a.a[4]:a.l[8])|0,c=A(a,c);I(a,4);return c}function Xf(a,c){var d=a.l[0];a.l[0]=a.l[c];a.l[c]=d} -function Yf(a,c){var d=a.a[0];a.a[0]=a.a[c];a.a[c]=d}function $f(a,c){192<=a.f&&w(a);var d=a.P(a.f),e=y(a,d),d=y(a,d+2|0);B(a,c,d);a.l[a.f>>2&14]=e}function ag(a,c){192<=a.f&&w(a);var d=a.P(a.f),e=A(a,d),d=y(a,d+4|0);B(a,c,d);a.a[a.f>>3&7]=e}function bg(a,c){var d=a.a[c];a.a[c]=d>>>24|d<<24|d>>8&65280|d<<8&16711680};var X=[],Y=[],Z=[];X[0]=function(a){a.f=C(a);Od(a,le(a,Nd(a),Td(a)))};Y[1]=function(a){a.f=C(a);T(a,me(a,S(a),Vd(a)))};Z[1]=function(a){a.f=C(a);V(a,ne(a,U(a),W(a)))};X[2]=function(a){a.f=C(a);Ud(a,le(a,Td(a),Id(a)))};Y[3]=function(a){a.f=C(a);Xd(a,me(a,Vd(a),R(a)))};Z[3]=function(a){a.f=C(a);Yd(a,ne(a,W(a),Jd(a)))};X[4]=function(a){a.C[0]=le(a,a.C[0],C(a))};Y[5]=function(a){a.l[0]=me(a,a.l[0],E(a))};Z[5]=function(a){a.a[0]=ne(a,a.a[0],H(a))};Y[6]=function(a){O(a,a.R[0])};Z[6]=function(a){N(a,a.R[0])}; -Y[7]=function(a){B(a,0,y(a,J(a,0)));I(a,2)};Z[7]=function(a){B(a,0,y(a,J(a,0)));I(a,4)};X[8]=function(a){a.f=C(a);Od(a,Ve(a,Nd(a),Td(a)))};Y[9]=function(a){a.f=C(a);T(a,Xe(a,S(a),Vd(a)))};Z[9]=function(a){a.f=C(a);V(a,Ye(a,U(a),W(a)))};X[10]=function(a){a.f=C(a);Ud(a,Ve(a,Td(a),Id(a)))};Y[11]=function(a){a.f=C(a);Xd(a,Xe(a,Vd(a),R(a)))};Z[11]=function(a){a.f=C(a);Yd(a,Ye(a,W(a),Jd(a)))};X[12]=function(a){a.C[0]=Ve(a,a.C[0],C(a))};Y[13]=function(a){a.l[0]=Xe(a,a.l[0],E(a))}; -Z[13]=function(a){a.a[0]=Ye(a,a.a[0],H(a))};Y[14]=function(a){O(a,a.R[1])};Z[14]=function(a){N(a,a.R[1])};Y[15]=function(a){a.gh[C(a)](a)};Z[15]=function(a){a.hh[C(a)](a)};X[16]=function(a){a.f=C(a);Od(a,oe(a,Nd(a),Td(a)))};Y[17]=function(a){a.f=C(a);T(a,qe(a,S(a),Vd(a)))};Z[17]=function(a){a.f=C(a);V(a,ye(a,U(a),W(a)))};X[18]=function(a){a.f=C(a);Ud(a,oe(a,Td(a),Id(a)))};Y[19]=function(a){a.f=C(a);Xd(a,qe(a,Vd(a),R(a)))};Z[19]=function(a){a.f=C(a);Yd(a,ye(a,W(a),Jd(a)))}; -X[20]=function(a){a.C[0]=oe(a,a.C[0],C(a))};Y[21]=function(a){a.l[0]=qe(a,a.l[0],E(a))};Z[21]=function(a){a.a[0]=ye(a,a.a[0],H(a))};Y[22]=function(a){O(a,a.R[2])};Z[22]=function(a){N(a,a.R[2])};Y[23]=function(a){B(a,2,y(a,J(a,0)));I(a,2);dd(a);fd(a)};Z[23]=function(a){B(a,2,y(a,J(a,0)));I(a,4);dd(a);fd(a)};X[24]=function(a){a.f=C(a);Od(a,De(a,Nd(a),Td(a)))};Y[25]=function(a){a.f=C(a);T(a,Fe(a,S(a),Vd(a)))};Z[25]=function(a){a.f=C(a);V(a,Ge(a,U(a),W(a)))}; -X[26]=function(a){a.f=C(a);Ud(a,De(a,Td(a),Id(a)))};Y[27]=function(a){a.f=C(a);Xd(a,Fe(a,Vd(a),R(a)))};Z[27]=function(a){a.f=C(a);Yd(a,Ge(a,W(a),Jd(a)))};X[28]=function(a){a.C[0]=De(a,a.C[0],C(a))};Y[29]=function(a){a.l[0]=Fe(a,a.l[0],E(a))};Z[29]=function(a){a.a[0]=Ge(a,a.a[0],H(a))};Y[30]=function(a){O(a,a.R[3])};Z[30]=function(a){N(a,a.R[3])};Y[31]=function(a){B(a,3,y(a,J(a,0)));I(a,2)};Z[31]=function(a){B(a,3,y(a,J(a,0)));I(a,4)};X[32]=function(a){a.f=C(a);Od(a,Re(a,Nd(a),Td(a)))}; -Y[33]=function(a){a.f=C(a);T(a,Te(a,S(a),Vd(a)))};Z[33]=function(a){a.f=C(a);V(a,Ue(a,U(a),W(a)))};X[34]=function(a){a.f=C(a);Ud(a,Re(a,Td(a),Id(a)))};Y[35]=function(a){a.f=C(a);Xd(a,Te(a,Vd(a),R(a)))};Z[35]=function(a){a.f=C(a);Yd(a,Ue(a,W(a),Jd(a)))};X[36]=function(a){a.C[0]=Re(a,a.C[0],C(a))};Y[37]=function(a){a.l[0]=Te(a,a.l[0],E(a))};Z[37]=function(a){a.a[0]=Ue(a,a.a[0],H(a))};X[38]=function(a){a.ya=0;gd(a);a.ya=-1}; -X[39]=function(a){var c=a.C[0],d=a.Pa(),e=td(a);a.h&=-18;if(9<(c&15)||e)a.C[0]+=6,a.h|=16;if(153>7):a.h&=-17;if(153>2&14;a.u&=-65;(c&3)<(a.l[d]&3)?(a.h|=64,c=c&-4|a.l[d]&3):a.h&=-65;T(a,c)}else w(a)};X[100]=function(a){a.ya=4;gd(a);a.ya=-1};X[101]=function(a){a.ya=5;gd(a);a.ya=-1};X[102]=function(a){a.Da=!a.Na;ad(a);gd(a);a.Da=a.Na;ad(a)};X[103]=function(a){a.la=!a.Na;$c(a);gd(a);a.la=a.Na;$c(a)}; -Y[104]=function(a){O(a,E(a))};Z[104]=function(a){N(a,H(a))};Y[105]=function(a){a.f=C(a);Xd(a,Ke(a,R(a)<<16>>16,E(a)<<16>>16))};Z[105]=function(a){a.f=C(a);Yd(a,Oe(a,Jd(a),H(a)))};Y[106]=function(a){O(a,D(a))};Z[106]=function(a){N(a,D(a))};Y[107]=function(a){a.f=C(a);Xd(a,Ke(a,R(a)<<16>>16,D(a)))};Z[107]=function(a){a.f=C(a);Yd(a,Oe(a,Jd(a),D(a)))};X[108]=function(a){fe(a)};Y[109]=function(a){ge(a)};Z[109]=function(a){he(a)};X[110]=function(a){ie(a)};Y[111]=function(a){je(a)};Z[111]=function(a){ke(a)}; -X[112]=function(a){Lf(a,a.qb())};X[113]=function(a){Lf(a,!a.qb())};X[114]=function(a){Lf(a,a.hb())};X[115]=function(a){Lf(a,!a.hb())};X[116]=function(a){Lf(a,a.jb())};X[117]=function(a){Lf(a,!a.jb())};X[118]=function(a){Lf(a,Sf(a))};X[119]=function(a){Lf(a,!Sf(a))};X[120]=function(a){Lf(a,a.rb())};X[121]=function(a){Lf(a,!a.rb())};X[122]=function(a){Lf(a,a.ib())};X[123]=function(a){Lf(a,!a.ib())};X[124]=function(a){Lf(a,Tf(a))};X[125]=function(a){Lf(a,!Tf(a))};X[126]=function(a){Lf(a,Uf(a))}; -X[127]=function(a){Lf(a,!Uf(a))};X[128]=function(a){a.f=C(a);switch(a.f>>3&7){case 0:Od(a,le(a,Nd(a),C(a)));break;case 1:Od(a,Ve(a,Nd(a),C(a)));break;case 2:Od(a,oe(a,Nd(a),C(a)));break;case 3:Od(a,De(a,Nd(a),C(a)));break;case 4:Od(a,Re(a,Nd(a),C(a)));break;case 5:Od(a,ze(a,Nd(a),C(a)));break;case 6:Od(a,Ze(a,Nd(a),C(a)));break;case 7:var c=Id(a),d=C(a);Ae(a,c,d,7)}}; -Y[129]=function(a){a.f=C(a);switch(a.f>>3&7){case 0:T(a,me(a,S(a),E(a)));break;case 1:T(a,Xe(a,S(a),E(a)));break;case 2:T(a,qe(a,S(a),E(a)));break;case 3:T(a,Fe(a,S(a),E(a)));break;case 4:T(a,Te(a,S(a),E(a)));break;case 5:T(a,Be(a,S(a),E(a)));break;case 6:T(a,af(a,S(a),E(a)));break;case 7:var c=R(a),d=E(a);Ae(a,c,d,15)}}; -Z[129]=function(a){a.f=C(a);switch(a.f>>3&7){case 0:V(a,ne(a,U(a),H(a)));break;case 1:V(a,Ye(a,U(a),H(a)));break;case 2:V(a,ye(a,U(a),H(a)));break;case 3:V(a,Ge(a,U(a),H(a)));break;case 4:V(a,Ue(a,U(a),H(a)));break;case 5:V(a,Ce(a,U(a),H(a)));break;case 6:V(a,bf(a,U(a),H(a)));break;case 7:var c=Jd(a),d=H(a);Ae(a,c,d,31)}};X[130]=function(a){a.table[128](a)}; -Y[131]=function(a){a.f=C(a);switch(a.f>>3&7){case 0:T(a,me(a,S(a),D(a)));break;case 1:T(a,Xe(a,S(a),D(a)));break;case 2:T(a,qe(a,S(a),D(a)));break;case 3:T(a,Fe(a,S(a),D(a)));break;case 4:T(a,Te(a,S(a),D(a)));break;case 5:T(a,Be(a,S(a),D(a)));break;case 6:T(a,af(a,S(a),D(a)));break;case 7:var c=R(a),d=D(a);Ae(a,c,d,15)}}; -Z[131]=function(a){a.f=C(a);switch(a.f>>3&7){case 0:V(a,ne(a,U(a),D(a)));break;case 1:V(a,Ye(a,U(a),D(a)));break;case 2:V(a,ye(a,U(a),D(a)));break;case 3:V(a,Ge(a,U(a),D(a)));break;case 4:V(a,Ue(a,U(a),D(a)));break;case 5:V(a,Ce(a,U(a),D(a)));break;case 6:V(a,bf(a,U(a),D(a)));break;case 7:var c=Jd(a),d=D(a);Ae(a,c,d,31)}};X[132]=function(a){a.f=C(a);var c=Id(a);Se(a,c,Td(a),7)};Y[133]=function(a){a.f=C(a);var c=R(a);Se(a,c,Vd(a),15)};Z[133]=function(a){a.f=C(a);var c=Jd(a);Se(a,c,W(a),31)}; -X[134]=function(a){a.f=C(a);var c=Nd(a),d=a.f,d=d>>1&12|d>>5&1,e=a.C[d];a.C[d]=c;Od(a,e)};Y[135]=function(a){a.f=C(a);var c=S(a),d=a.f>>2&14,e=a.l[d];a.l[d]=c;T(a,e)};Z[135]=function(a){a.f=C(a);var c=U(a),d=a.f>>3&7,e=a.a[d];a.a[d]=c;V(a,e)};X[136]=function(a){a.f=C(a);Kd(a,Td(a))};Y[137]=function(a){a.f=C(a);Ld(a,Vd(a))};Z[137]=function(a){a.f=C(a);Md(a,W(a))};X[138]=function(a){a.f=C(a);var c=Id(a);Ud(a,c)};Y[139]=function(a){a.f=C(a);var c=R(a);Xd(a,c)}; -Z[139]=function(a){a.f=C(a);var c=Jd(a);Yd(a,c)};Y[140]=function(a){a.f=C(a);Ld(a,a.R[a.f>>3&7])};Z[140]=function(a){a.f=C(a);Md(a,a.R[a.f>>3&7])};Y[141]=function(a){a.f=C(a);192<=a.f&&w(a);var c=a.f>>3&7;a.ya=9;a.l[c<<1]=a.P(a.f);a.ya=-1};Z[141]=function(a){a.f=C(a);192<=a.f&&w(a);var c=a.f>>3&7;a.ya=9;a.a[c]=a.P(a.f);a.ya=-1};X[142]=function(a){a.f=C(a);var c=a.f>>3&7,d=R(a);B(a,c,d);2===c&&(dd(a),fd(a))}; -Y[143]=function(a){a.f=C(a);var c=y(a,J(a,0));I(a,2);if(192>a.f){var d=a.P(a.f);I(a,-2);mb(a,d,c);I(a,2)}else Qd(a,c)};Z[143]=function(a){a.f=C(a);var c=A(a,J(a,0));I(a,4);if(192>a.f){var d=a.P(a.f);I(a,-4);x(a,d,c);I(a,4)}else Sd(a,c)};X[144]=function(){};Y[145]=function(a){Xf(a,2)};Z[145]=function(a){Yf(a,1)};Y[146]=function(a){Xf(a,4)};Z[146]=function(a){Yf(a,2)};Y[147]=function(a){Xf(a,6)};Z[147]=function(a){Yf(a,3)};Y[148]=function(a){Xf(a,8)};Z[148]=function(a){Yf(a,4)}; -Y[149]=function(a){Xf(a,10)};Z[149]=function(a){Yf(a,5)};Y[150]=function(a){Xf(a,12)};Z[150]=function(a){Yf(a,6)};Y[151]=function(a){Xf(a,14)};Z[151]=function(a){Yf(a,7)};Y[152]=function(a){a.l[0]=a.be[0]};Z[152]=function(a){a.a[0]=a.yc[0]};Y[153]=function(a){a.l[4]=a.yc[0]>>15};Z[153]=function(a){a.a[2]=a.a[0]>>31};Y[154]=function(a){var c=E(a),d=E(a),e=a.R[1],f=xd(a);lb(a,J(a,-4),4);B(a,1,d);O(a,e);O(a,f);a.w=K(a,1)+c|0;a.la||xd(a)}; -Z[154]=function(a){var c=H(a),d=E(a);if((!a.qa||rd(a))&&c&4294901760)throw a.debug.S("#GP handler");var e=a.R[1],f=xd(a);lb(a,J(a,-8),8);B(a,1,d);N(a,e);N(a,f);a.w=K(a,1)+c|0;a.la||xd(a)};X[155]=function(a){10===(a.G[0]&10)&&(a.w=a.ga,Fd(a,7))};Y[156]=function(a){a.h&131072&&3>qd(a)?M(a,0):(ud(a),O(a,a.h))};Z[156]=function(a){a.h&131072&&3>qd(a)?M(a,0):(ud(a),N(a,a.h&16580607))};Y[157]=function(a){a.h&131072&&3>qd(a)&&M(a,0);vd(a,a.h&-65536|Vf(a));Fc(a)}; -Z[157]=function(a){a.h&131072&&3>qd(a)&&M(a,0);vd(a,Wf(a));Fc(a)};X[158]=function(a){a.h=a.h&-256|a.C[1];a.h=a.h&4161493|2;a.u=0};X[159]=function(a){ud(a);a.C[1]=a.h};X[160]=function(a){var c=ld(a,od(a));a.C[0]=c};Y[161]=function(a){var c=y(a,od(a));a.l[0]=c};Z[161]=function(a){var c=A(a,od(a));a.a[0]=c};X[162]=function(a){md(a,od(a),a.C[0])};Y[163]=function(a){mb(a,od(a),a.l[0])};Z[163]=function(a){x(a,od(a),a.a[0])}; -X[164]=function(a){var c=pd(a,3)+a.j[a.I]|0,d=K(a,0)+a.j[a.B]|0,e=a.h&1024?-1:1;if(0!==a.ca){var f=a.j[a.M]>>>0;if(f){var h=f,r=4096,k=jd(a,c),t=nd(a,d);a.X&&(r=ee(e,c,d));do a.memory.sa(t,a.memory.da(k)),t+=e,k+=e,c=!!--f;while(c&&r--);e=e*(h-f)|0;a.j[a.B]+=e;a.j[a.I]+=e;a.j[a.M]=f;a.V+=h-f;c&&(a.w=a.ga)}}else md(a,d,ld(a,c)),a.j[a.B]+=e,a.j[a.I]+=e}; -Y[165]=function(a){var c=pd(a,3)+a.j[a.I]|0,d=K(a,0)+a.j[a.B]|0,e=a.h&1024?-2:2;if(0!==a.ca){var f=a.j[a.M]>>>0;if(f){var h,r=f,k=4096;if(d&1||c&1){do mb(a,d,y(a,c)),d+=e,a.j[a.B]+=e,c+=e,a.j[a.I]+=e,h=!!--a.j[a.M];while(h&&k--)}else{var t=0>e?-1:1,u=jd(a,c)>>1,z=nd(a,d)>>1;a.X&&(k=ee(e,c,d));do mc(a.memory,z,kc(a.memory,u)),z+=t,u+=t,h=!!--f;while(h&&k--);c=e*(r-f)|0;a.j[a.B]+=c;a.j[a.I]+=c;a.j[a.M]=f;a.V+=r-f}h&&(a.w=a.ga)}}else mb(a,d,y(a,c)),a.j[a.B]+=e,a.j[a.I]+=e}; -Z[165]=function(a){a:{if(0!==a.ca){var c=pd(a,3)+a.j[a.I]|0,d=K(a,0)+a.j[a.B]|0,e=a.j[a.M]>>>0;if(!e)break a;var f=a.X?4095:3;if(!(d&f||c&f||a.h&1024||(f=!1,a.X&&(c=jd(a,c),d=nd(a,d),1024>=2;a.memory.Hb.set(a.memory.Hb.subarray(c,c+e),d>>2);f&&(a.w=a.ga);break a}}c=pd(a,3)+a.j[a.I]|0;d=K(a,0)+a.j[a.B]|0;h=a.h&1024?-4:4;if(0!==a.ca){if(e=a.j[a.M]>>>0){var r=e,k=4096;if(d&3||c&3){do x(a,d,A(a,c)),d+=h,a.j[a.B]+= -h,c+=h,a.j[a.I]+=h,f=!!--a.j[a.M];while(f&&k--)}else{var t=0>h?-1:1,u=jd(a,c)>>>2,z=nd(a,d)>>>2;a.X&&(k=ee(h,c,d));do nc(a.memory,z,lc(a.memory,u)),z+=t,u+=t,f=!!--e;while(f&&k--);h=h*(r-e)|0;a.j[a.B]+=h;a.j[a.I]+=h;a.j[a.M]=e;a.V+=r-e}f&&(a.w=a.ga)}}else x(a,d,A(a,c)),a.j[a.B]+=h,a.j[a.I]+=h}}; -X[166]=function(a){a:{var c=pd(a,3)+a.j[a.I]|0,d=K(a,0)+a.j[a.B]|0,e=a.h&1024?-1:1;if(0!==a.ca){var f=a.j[a.M]>>>0;if(!f)break a;var h,r=f,k=2===a.ca,t=4096,u=jd(a,c),z=jd(a,d);a.X&&(t=ee(e,c,d));do d=a.memory.da(z),c=a.memory.da(u),z+=e,u+=e,h=!!--f&&c===d===k;while(h&&t--);e=e*(r-f)|0;a.j[a.B]+=e;a.j[a.I]+=e;a.j[a.M]=f;a.V+=r-f;h&&(a.w=a.ga)}else c=ld(a,c),d=ld(a,d),a.j[a.B]+=e,a.j[a.I]+=e;Ae(a,c,d,7)}}; -Y[167]=function(a){a:{var c=pd(a,3)+a.j[a.I]|0,d=K(a,0)+a.j[a.B]|0,e,f,h=a.h&1024?-2:2;if(0!==a.ca){var r=a.j[a.M]>>>0;if(!r)break a;var k,t=r,u=2===a.ca,z=4096;if(d&1||c&1){do f=y(a,d),e=y(a,c),d+=h,a.j[a.B]+=h,c+=h,a.j[a.I]+=h,k=!!--a.j[a.M]&&e===f===u;while(k&&z--)}else{var G=0>h?-1:1,F=jd(a,c)>>1,L=jd(a,d)>>1;a.X&&(z=ee(h,c,d));do f=kc(a.memory,L),e=kc(a.memory,F),L+=G,F+=G,k=!!--r&&e===f===u;while(k&&z--);c=h*(t-r)|0;a.j[a.B]+=c;a.j[a.I]+=c;a.j[a.M]=r;a.V+=t-r}k&&(a.w=a.ga)}else f=y(a,d),e=y(a, -c),a.j[a.B]+=h,a.j[a.I]+=h;Ae(a,e,f,15)}}; -Z[167]=function(a){a:{var c=pd(a,3)+a.j[a.I]|0,d=K(a,0)+a.j[a.B]|0,e,f,h=a.h&1024?-4:4;if(0!==a.ca){var r=a.j[a.M]>>>0;if(!r)break a;var k,t=r,u=2===a.ca,z=4096;if(d&3||c&3){do f=A(a,d),e=A(a,c),d+=h,a.j[a.B]+=h,c+=h,a.j[a.I]+=h,k=!!--a.j[a.M]&&e===f===u;while(k&&z--)}else{var G=0>h?-1:1,F=jd(a,c)>>>2,L=jd(a,d)>>>2;a.X&&(z=ee(h,c,d));do f=lc(a.memory,L),e=lc(a.memory,F),L+=G,F+=G,k=!!--r&&e===f===u;while(k&&z--);c=h*(t-r)|0;a.j[a.B]+=c;a.j[a.I]+=c;a.j[a.M]=r;a.V+=t-r}k&&(a.w=a.ga)}else f=A(a,d),e= -A(a,c),a.j[a.B]+=h,a.j[a.I]+=h;Ae(a,e,f,31)}};X[168]=function(a){var c=C(a);Se(a,a.C[0],c,7)};Y[169]=function(a){var c=E(a);Se(a,a.l[0],c,15)};Z[169]=function(a){var c=H(a);Se(a,a.a[0],c,31)};X[170]=function(a){var c=a.C[0],d=K(a,0)+a.j[a.B]|0,e=a.h&1024?-1:1;if(0!==a.ca){var f=a.j[a.M]>>>0;if(f){var h=f,r=4096,k=nd(a,d);a.X&&(r=de(e,d));do a.memory.sa(k,c),k+=e,d=!!--f;while(d&&r--);a.j[a.B]+=e*(h-f)|0;a.j[a.M]=f;a.V+=h-f;d&&(a.w=a.ga)}}else md(a,d,c),a.j[a.B]+=e}; -Y[171]=function(a){var c=a.l[0],d=K(a,0)+a.j[a.B]|0,e=a.h&1024?-2:2;if(0!==a.ca){var f=a.j[a.M]>>>0;if(f){var h,r=f,k=4096;if(d&1){do mb(a,d,c),d+=e,a.j[a.B]+=e,h=!!--a.j[a.M];while(h&&k--)}else{var t=0>e?-1:1,u=nd(a,d)>>1;a.X&&(k=de(e,d));do mc(a.memory,u,c),u+=t,h=!!--f;while(h&&k--);a.j[a.B]+=e*(r-f)|0;a.j[a.M]=f;a.V+=r-f}h&&(a.w=a.ga)}}else mb(a,d,c),a.j[a.B]+=e}; -Z[171]=function(a){var c=a.a[0],d=K(a,0)+a.j[a.B]|0,e=a.h&1024?-4:4;if(0!==a.ca){var f=a.j[a.M]>>>0;if(f){var h,r=f,k=4096;if(d&3){do x(a,d,c),d+=e,a.j[a.B]+=e,h=!!--a.j[a.M];while(h&&k--)}else{var t=0>e?-1:1,u=nd(a,d)>>>2;a.X&&(k=de(e,d));do nc(a.memory,u,c),u+=t,h=!!--f;while(h&&k--);a.j[a.B]+=e*(r-f)|0;a.j[a.M]=f;a.V+=r-f}h&&(a.w=a.ga)}}else x(a,d,c),a.j[a.B]+=e}; -X[172]=function(a){var c=pd(a,3)+a.j[a.I]|0,d=a.h&1024?-1:1;if(0!==a.ca){var e=a.j[a.M]>>>0;if(e){var f=e,h=4096,r=jd(a,c);a.X&&(h=de(d,c));do a.C[0]=a.memory.da(r),r+=d,c=!!--e;while(c&&h--);a.j[a.I]+=d*(f-e)|0;a.j[a.M]=e;a.V+=f-e;c&&(a.w=a.ga)}}else a.C[0]=ld(a,c),a.j[a.I]+=d};Y[173]=function(a){var c=pd(a,3)+a.j[a.I]|0,d=a.h&1024?-2:2;if(0!==a.ca){if(a.j[a.M]>>>0){var e,f=4096;do a.l[0]=y(a,c),c+=d,a.j[a.I]+=d,e=!!--a.j[a.M];while(e&&f--);e&&(a.w=a.ga)}}else a.l[0]=y(a,c),a.j[a.I]+=d}; -Z[173]=function(a){var c=pd(a,3)+a.j[a.I]|0,d=a.h&1024?-4:4;if(0!==a.ca){if(a.j[a.M]>>>0){var e,f=4096;do a.a[0]=A(a,c),c+=d,a.j[a.I]+=d,e=!!--a.j[a.M];while(e&&f--);e&&(a.w=a.ga)}}else a.a[0]=A(a,c),a.j[a.I]+=d}; -X[174]=function(a){a:{var c=K(a,0)+a.j[a.B]|0,d=a.h&1024?-1:1,e=a.C[0];if(0!==a.ca){var f=a.j[a.M]>>>0;if(!f)break a;var h,r=f,k=2===a.ca,t=4096,u=jd(a,c);a.X&&(t=de(d,c));do c=a.memory.da(u),u+=d,h=!!--f&&e===c===k;while(h&&t--);a.j[a.B]+=d*(r-f)|0;a.j[a.M]=f;a.V+=r-f;h&&(a.w=a.ga)}else c=ld(a,c),a.j[a.B]+=d;Ae(a,e,c,7)}}; -Y[175]=function(a){a:{var c=K(a,0)+a.j[a.B]|0,d=a.h&1024?-2:2,e,f=a.l[0];if(0!==a.ca){var h=a.j[a.M]>>>0;if(!h)break a;var r,k=h,t=2===a.ca,u=4096;if(c&1){do e=y(a,c),c+=d,a.j[a.B]+=d,r=!!--a.j[a.M]&&f===e===t;while(r&&u--)}else{var z=0>d?-1:1,G=jd(a,c)>>1;a.X&&(u=de(d,c));do e=kc(a.memory,G),G+=z,r=!!--h&&f===e===t;while(r&&u--);a.j[a.B]+=d*(k-h)|0;a.j[a.M]=h;a.V+=k-h}r&&(a.w=a.ga)}else e=y(a,c),a.j[a.B]+=d;Ae(a,f,e,15)}}; -Z[175]=function(a){a:{var c=K(a,0)+a.j[a.B]|0,d=a.h&1024?-4:4,e,f=a.a[0];if(0!==a.ca){var h=a.j[a.M]>>>0;if(!h)break a;var r,k=h,t=2===a.ca,u=4096;if(c&3){do e=A(a,c),c+=d,a.j[a.B]+=d,r=!!--a.j[a.M]&&f===e===t;while(r&&u--)}else{var z=0>d?-1:1,G=jd(a,c)>>>2;a.X&&(u=de(d,c));do e=lc(a.memory,G),G+=z,r=!!--h&&f===e===t;while(r&&u--);a.j[a.B]+=d*(k-h)|0;a.j[a.M]=h;a.V+=k-h}r&&(a.w=a.ga)}else e=A(a,c),a.j[a.B]+=d;Ae(a,f,e,31)}};X[176]=function(a){a.C[0]=C(a)};X[177]=function(a){a.C[4]=C(a)}; -X[178]=function(a){a.C[8]=C(a)};X[179]=function(a){a.C[12]=C(a)};X[180]=function(a){a.C[1]=C(a)};X[181]=function(a){a.C[5]=C(a)};X[182]=function(a){a.C[9]=C(a)};X[183]=function(a){a.C[13]=C(a)};Y[184]=function(a){a.l[0]=E(a)};Z[184]=function(a){a.a[0]=H(a)};Y[185]=function(a){a.l[2]=E(a)};Z[185]=function(a){a.a[1]=H(a)};Y[186]=function(a){a.l[4]=E(a)};Z[186]=function(a){a.a[2]=H(a)};Y[187]=function(a){a.l[6]=E(a)};Z[187]=function(a){a.a[3]=H(a)};Y[188]=function(a){a.l[8]=E(a)}; -Z[188]=function(a){a.a[4]=H(a)};Y[189]=function(a){a.l[10]=E(a)};Z[189]=function(a){a.a[5]=H(a)};Y[190]=function(a){a.l[12]=E(a)};Z[190]=function(a){a.a[6]=H(a)};Y[191]=function(a){a.l[14]=E(a)};Z[191]=function(a){a.a[7]=H(a)};X[192]=function(a){a.f=C(a);var c=Nd(a),d=C(a)&31,e=0;switch(a.f>>3&7){case 0:e=cf(a,c,d);break;case 1:e=jf(a,c,d);break;case 2:e=ff(a,c,d);break;case 3:e=mf(a,c,d);break;case 4:e=pf(a,c,d);break;case 5:e=sf(a,c,d);break;case 6:e=pf(a,c,d);break;case 7:e=vf(a,c,d)}Od(a,e)}; -Y[193]=function(a){a.f=C(a);var c=S(a),d=C(a)&31,e=0;switch(a.f>>3&7){case 0:e=df(a,c,d);break;case 1:e=kf(a,c,d);break;case 2:e=gf(a,c,d);break;case 3:e=nf(a,c,d);break;case 4:e=qf(a,c,d);break;case 5:e=tf(a,c,d);break;case 6:e=qf(a,c,d);break;case 7:e=wf(a,c,d)}T(a,e)}; -Z[193]=function(a){a.f=C(a);var c=U(a),d=C(a)&31,e=0;switch(a.f>>3&7){case 0:e=ef(a,c,d);break;case 1:e=lf(a,c,d);break;case 2:e=hf(a,c,d);break;case 3:e=of(a,c,d);break;case 4:e=rf(a,c,d);break;case 5:e=uf(a,c,d);break;case 6:e=rf(a,c,d);break;case 7:e=xf(a,c,d)}V(a,e)};Y[194]=function(a){var c=E(a);a.w=K(a,1)+Vf(a)|0;a.la||xd(a);I(a,c)};Z[194]=function(a){var c=E(a),d=Wf(a);a.w=K(a,1)+d|0;I(a,c)};Y[195]=function(a){a.w=K(a,1)+Vf(a)|0};Z[195]=function(a){var c=Wf(a);a.w=K(a,1)+c|0}; -Y[196]=function(a){a.f=C(a);$f(a,0)};Z[196]=function(a){a.f=C(a);ag(a,0)};Y[197]=function(a){a.f=C(a);$f(a,3)};Z[197]=function(a){a.f=C(a);ag(a,3)};X[198]=function(a){a.f=C(a);192>a.f?md(a,a.P(a.f),C(a)):a.C[a.f<<2&12|a.f>>2&1]=C(a)};Y[199]=function(a){a.f=C(a);192>a.f?mb(a,a.P(a.f),E(a)):a.l[a.f<<1&14]=E(a)};Z[199]=function(a){a.f=C(a);192>a.f?x(a,a.P(a.f),H(a)):a.a[a.f&7]=H(a)}; -Y[200]=function(a){var c=E(a),d=C(a),d=d&31;O(a,a.l[10]);var e=a.l[8];if(0>3&7){case 0:d=cf(a,c,1);break;case 1:d=jf(a,c,1);break;case 2:d=ff(a,c,1);break;case 3:d=mf(a,c,1);break;case 4:d=pf(a,c,1);break;case 5:d=sf(a,c,1);break;case 6:d=pf(a,c,1);break;case 7:d=vf(a,c,1)}Od(a,d)}; -Y[209]=function(a){a.f=C(a);var c=S(a),d=0;switch(a.f>>3&7){case 0:d=df(a,c,1);break;case 1:d=kf(a,c,1);break;case 2:d=gf(a,c,1);break;case 3:d=nf(a,c,1);break;case 4:d=qf(a,c,1);break;case 5:d=tf(a,c,1);break;case 6:d=qf(a,c,1);break;case 7:d=wf(a,c,1)}T(a,d)}; -Z[209]=function(a){a.f=C(a);var c=U(a),d=0;switch(a.f>>3&7){case 0:d=ef(a,c,1);break;case 1:d=lf(a,c,1);break;case 2:d=hf(a,c,1);break;case 3:d=of(a,c,1);break;case 4:d=rf(a,c,1);break;case 5:d=uf(a,c,1);break;case 6:d=rf(a,c,1);break;case 7:d=xf(a,c,1)}V(a,d)}; -X[210]=function(a){a.f=C(a);var c=Nd(a),d=a.C[4]&31,e=0;switch(a.f>>3&7){case 0:e=cf(a,c,d);break;case 1:e=jf(a,c,d);break;case 2:e=ff(a,c,d);break;case 3:e=mf(a,c,d);break;case 4:e=pf(a,c,d);break;case 5:e=sf(a,c,d);break;case 6:e=pf(a,c,d);break;case 7:e=vf(a,c,d)}Od(a,e)}; -Y[211]=function(a){a.f=C(a);var c=S(a),d=a.C[4]&31,e=0;switch(a.f>>3&7){case 0:e=df(a,c,d);break;case 1:e=kf(a,c,d);break;case 2:e=gf(a,c,d);break;case 3:e=nf(a,c,d);break;case 4:e=qf(a,c,d);break;case 5:e=tf(a,c,d);break;case 6:e=qf(a,c,d);break;case 7:e=wf(a,c,d)}T(a,e)}; -Z[211]=function(a){a.f=C(a);var c=U(a),d=a.C[4]&31,e=0;switch(a.f>>3&7){case 0:e=ef(a,c,d);break;case 1:e=lf(a,c,d);break;case 2:e=hf(a,c,d);break;case 3:e=of(a,c,d);break;case 4:e=rf(a,c,d);break;case 5:e=uf(a,c,d);break;case 6:e=rf(a,c,d);break;case 7:e=xf(a,c,d)}V(a,e)};X[212]=function(a){var c=C(a);if(0===c)Gd(a);else{var d=a.C[0];a.C[1]=d/c;a.C[0]=d%c;a.F=a.C[0];a.u=196;a.h&=-2066}};X[213]=function(a){var c=C(a),c=a.C[0]+a.C[1]*c;a.F=c&255;a.l[0]=a.F;a.T=7;a.u=196;a.h&=-2066;65535a.f){var c=a.Ba,d=a.f,e=a.P(a.f);a=d>>3&7;d=wb(c,e)}else c=a.Ba,d=a.f,a=d>>3&7,d=rb(c,d&7);e=hb(c);switch(a){case 0:c.g[c.b]=e+d;break;case 1:c.g[c.b]=e*d;break;case 2:gb(c,d);break;case 3:gb(c,d);c.pop();break;case 4:c.g[c.b]=e-d;break;case 5:c.g[c.b]=d-e;break;case 6:c.g[c.b]=e/d;break;case 7:c.g[c.b]=d/e}}; -X[217]=function(a){a.f=C(a);Hd(a);if(192>a.f){var c=a.Ba,d=a.f;a=a.P(a.f);switch(d>>3&7){case 0:a=wb(c,a);c.push(a);break;case 1:db(c);break;case 2:d=hb(c);c.N[0]=d;x(c.s,a,c.Fa[0]);break;case 3:d=hb(c);c.N[0]=d;x(c.s,a,c.Fa[0]);c.pop();break;case 4:nb(c,a);break;case 5:c.K=y(c.s,a);break;case 6:kb(c,a);break;case 7:mb(c.s,a,c.K)}}else switch(c=a.Ba,d=a.f,a=d&7,d>>3&7){case 0:d=rb(c,a);c.push(d);break;case 1:d=rb(c,a);c.g[c.b+a&7]=hb(c);c.g[c.b]=d;break;case 2:switch(a){case 0:break;default:db(c)}break; -case 3:db(c);break;case 4:d=hb(c);switch(a){case 0:c.g[c.b]=-d;break;case 1:c.g[c.b]=Math.abs(d);break;case 4:a=d;c.m&=-18177;isNaN(a)?c.m|=17664:0===a?c.m|=16384:0>a&&(c.m|=256);break;case 5:a=d;c.m&=-18177;c.m|=c.sign(0)<<9;c.m=c.o>>c.b&1?c.m|16640:isNaN(a)?c.m|256:0===a?c.m|16384:Infinity===a||-Infinity===a?c.m|1280:c.m|1024;break;default:db(c)}break;case 5:c.push(c.sb[a]);break;case 6:d=hb(c);switch(a){case 0:c.g[c.b]=Math.pow(2,d)-1;break;case 1:c.g[c.b+1&7]=rb(c,1)*Math.log(d)/Math.LN2;c.pop(); -break;case 2:c.g[c.b]=Math.tan(d);c.push(1);break;case 3:c.g[c.b+1&7]=Math.atan2(rb(c,1),d);c.pop();break;case 4:c.L[0]=hb(c);a=((c.v[7]&127)<<4|c.v[6]>>4)-1023;c.v[7]=63|c.v[7]&128;c.v[6]|=240;c.g[c.b]=a;c.push(c.L[0]);break;case 5:c.g[c.b]=d%rb(c,1);break;case 6:c.b=c.b-1&7;c.m&=-513;break;case 7:c.b=c.b+1&7,c.m&=-513}break;case 7:switch(d=hb(c),a){case 0:c.g[c.b]=d%rb(c,1);break;case 1:c.g[c.b+1&7]=rb(c,1)*Math.log(d+1)/Math.LN2;c.pop();break;case 2:c.g[c.b]=Math.sqrt(d);break;case 3:c.g[c.b]= -Math.sin(d);c.push(Math.cos(d));break;case 4:c.g[c.b]=pb(c,d);break;case 5:c.g[c.b]=d*Math.pow(2,qb(rb(c,1)));break;case 6:c.g[c.b]=Math.sin(d);break;case 7:c.g[c.b]=Math.cos(d)}}}; -X[218]=function(a){a.f=C(a);Hd(a);if(192>a.f){var c=a.Ba,d=a.f,e=a.P(a.f);a=d>>3&7;d=A(c.s,e);e=hb(c);switch(a){case 0:c.g[c.b]=e+d;break;case 1:c.g[c.b]=e*d;break;case 2:gb(c,d);break;case 3:gb(c,d);c.pop();break;case 4:c.g[c.b]=e-d;break;case 5:c.g[c.b]=d-e;break;case 6:c.g[c.b]=e/d;break;case 7:c.g[c.b]=d/e}}else switch(c=a.Ba,a=a.f,d=a&7,a>>3&7){case 0:c.s.hb()&&(c.g[c.b]=rb(c,d),c.o&=~(1<a.f){var c=a.Ba,d=a.f;a=a.P(a.f);switch(d>>3&7){case 0:a=A(c.s,a);c.push(a);break;case 2:d=pb(c,hb(c));2147483647>=d&&-2147483648<=d?x(c.s,a,d):(fb(c),x(c.s,a,-2147483648));break;case 3:d=pb(c,hb(c));2147483647>=d&&-2147483648<=d?x(c.s,a,d):(fb(c),x(c.s,a,-2147483648));c.pop();break;case 5:c.push(sb(c,a));break;case 7:lb(c.s,a,10);tb(c,a,0);c.pop();break;default:db(c)}}else switch(c=a.Ba,a=a.f,d=a&7,a>>3&7){case 0:c.s.hb()||(c.g[c.b]=rb(c,d),c.o&=~(1<a.f){var c=a.Ba,d=a.f,e=a.P(a.f);a=d>>3&7;d=ub(c,e);e=hb(c);switch(a){case 0:c.g[c.b]=e+d;break;case 1:c.g[c.b]=e*d;break;case 2:gb(c,d);break;case 3:gb(c,d);c.pop();break;case 4:c.g[c.b]=e-d;break;case 5:c.g[c.b]=d-e;break;case 6:c.g[c.b]=e/d;break;case 7:c.g[c.b]=d/e}}else{c=a.Ba;d=a.f;a=d>>3&7;var e=d&7,d=c.b+e&7,e=rb(c,e),f=hb(c);switch(a){case 0:c.g[d]=e+f;break;case 1:c.g[d]=e*f;break;case 2:gb(c,e);break;case 3:gb(c,e);c.pop();break;case 4:c.g[d]=f- -e;break;case 5:c.g[d]=e-f;break;case 6:c.g[d]=f/e;break;case 7:c.g[d]=e/f}}}; -X[221]=function(a){a.f=C(a);Hd(a);if(192>a.f){var c=a.Ba,d=a.f;a=a.P(a.f);switch(d>>3&7){case 0:a=ub(c,a);c.push(a);break;case 1:db(c);break;case 2:vb(c,a);break;case 3:vb(c,a);c.pop();break;case 4:nb(c,a);a+=28;for(d=0;8>d;d++)c.g[d]=sb(c,a),a+=10;break;case 5:db(c);break;case 6:lb(c.s,a,108);kb(c,a);a+=28;for(d=0;8>d;d++)tb(c,a,d-c.b&7),a+=10;jb(c);break;case 7:mb(c.s,a,c.m&-14337|c.b<<11)}}else switch(c=a.Ba,a=a.f,d=a&7,a>>3&7){case 0:c.o|=1<<(c.b+d&7);break;case 2:c.g[c.b+d&7]=hb(c);break;case 3:d&& -(c.g[c.b+d&7]=hb(c));c.pop();break;case 4:a=rb(c,d);gb(c,a);break;case 5:a=rb(c,d);gb(c,a);c.pop();break;default:db(c)}}; -X[222]=function(a){a.f=C(a);Hd(a);if(192>a.f){var c=a.Ba,d=a.f,e=a.P(a.f);a=d>>3&7;d=y(c.s,e)<<16>>16;e=hb(c);switch(a){case 0:c.g[c.b]=e+d;break;case 1:c.g[c.b]=e*d;break;case 2:gb(c,d);break;case 3:gb(c,d);c.pop();break;case 4:c.g[c.b]=e-d;break;case 5:c.g[c.b]=d-e;break;case 6:c.g[c.b]=e/d;break;case 7:c.g[c.b]=d/e}}else{c=a.Ba;d=a.f;a=d>>3&7;var d=d&7,e=c.b+d&7,f=rb(c,d),h=hb(c);switch(a){case 0:c.g[e]=f+h;break;case 1:c.g[e]=f*h;break;case 2:gb(c,f);break;case 3:1===d?(gb(c,c.g[e]),c.pop()): -db(c);break;case 4:c.g[e]=h-f;break;case 5:c.g[e]=f-h;break;case 6:c.g[e]=h/f;break;case 7:c.g[e]=f/h}c.pop()}}; -X[223]=function(a){a.f=C(a);Hd(a);if(192>a.f){var c=a.Ba,d=a.f;a=a.P(a.f);switch(d>>3&7){case 0:a=y(c.s,a)<<16>>16;c.push(a);break;case 1:db(c);break;case 2:d=pb(c,hb(c));32767>=d&&-32768<=d?mb(c.s,a,d):(fb(c),mb(c.s,a,32768));break;case 3:d=pb(c,hb(c));32767>=d&&-32768<=d?mb(c.s,a,d):(fb(c),mb(c.s,a,32768));c.pop();break;case 4:db(c);break;case 5:d=A(c.s,a)>>>0;a=A(c.s,a+4);c.push(d+4294967296*a);break;case 6:db(c);break;case 7:lb(c.s,a,8);var d=pb(c,hb(c)),e,f;0x7fffffffffffffff>d&&-9223372036854775808<= -d?(e=d|0,f=d/4294967296|0,!f&&0>d&&(f=-1)):(e=0,f=-2147483648,fb(c));x(c.s,a,e);x(c.s,a+4,f);c.pop()}}else switch(c=a.Ba,a=a.f,d=a&7,a>>3&7){case 4:224===a?c.s.l[0]=c.m&-14337|c.b<<11:db(c);break;case 5:a=rb(c,d);ib(c,a);c.pop();break;case 6:ib(c,rb(c,d));c.pop();break;default:db(c)}};X[224]=function(a){var c=D(a);--a.j[a.M]&&!a.Pb()&&(a.w=a.w+c|0,a.Da||xd(a))};X[225]=function(a){var c=D(a);--a.j[a.M]&&a.Pb()&&(a.w=a.w+c|0,a.Da||xd(a))};X[226]=function(a){a.loop(D(a))}; -X[227]=function(a){var c=D(a);0===a.j[a.M]&&(a.w=a.w+c|0,a.Da||xd(a))};X[228]=function(a){var c=C(a);Zd(a,c,1);a.C[0]=Ha(a.A,c)};Y[229]=function(a){var c=C(a);Zd(a,c,2);a.l[0]=Ia(a.A,c)};Z[229]=function(a){var c=C(a);Zd(a,c,4);a.a[0]=Ja(a.A,c)};X[230]=function(a){var c=C(a);Zd(a,c,1);Ea(a.A,c,a.C[0])};Y[231]=function(a){var c=C(a);Zd(a,c,2);Fa(a.A,c,a.l[0])};Z[231]=function(a){var c=C(a);Zd(a,c,4);Ga(a.A,c,a.a[0])};Y[232]=function(a){var c=E(a)<<16>>16;O(a,xd(a));Mf(a,c)}; -Z[232]=function(a){var c=H(a);N(a,xd(a));a.w=a.w+c|0;a.la||xd(a)};Y[233]=function(a){var c=E(a)<<16>>16;Mf(a,c)};Z[233]=function(a){var c=H(a);a.w=a.w+c|0;a.la||xd(a)};Y[234]=function(a){var c=E(a);B(a,1,E(a));a.w=c+K(a,1)|0;a.la||xd(a)};Z[234]=function(a){var c=H(a);B(a,1,E(a));if((!a.qa||rd(a))&&c&4294901760)throw a.debug.S("#GP handler");a.w=c+K(a,1)|0;a.la||xd(a)};X[235]=function(a){var c=D(a);a.w=a.w+c|0;a.la||xd(a);a.qa=1===(a.G[0]&1)}; -X[236]=function(a){var c=a.l[4];Zd(a,c,1);a.C[0]=Ha(a.A,c)};Y[237]=function(a){var c=a.l[4];Zd(a,c,2);a.l[0]=Ia(a.A,c)};Z[237]=function(a){var c=a.l[4];Zd(a,c,4);a.a[0]=Ja(a.A,c)};X[238]=function(a){var c=a.l[4];Zd(a,c,1);Ea(a.A,c,a.C[0])};Y[239]=function(a){var c=a.l[4];Zd(a,c,2);Fa(a.A,c,a.l[0])};Z[239]=function(a){var c=a.l[4];Zd(a,c,4);Ga(a.A,c,a.a[0])};X[240]=function(a){gd(a)};X[241]=function(a){throw a.debug.S("int1 instruction");};X[242]=function(a){a.ca=1;gd(a);a.ca=0}; -X[243]=function(a){a.ca=2;gd(a);a.ca=0};X[244]=function(a){a.O&&M(a,0);if(a.h&512)throw a.Pc=!0,233495534;a.debug.show("cpu halted");throw"HALT";};X[245]=function(a){a.h=(a.h|1)^a.Pa();a.u&=-2}; -X[246]=function(a){a.f=C(a);switch(a.f>>3&7){case 0:var c=Id(a),d=C(a);Se(a,c,d,7);break;case 1:c=Id(a);d=C(a);Se(a,c,d,7);break;case 2:c=Nd(a);Od(a,~c);break;case 3:c=Nd(a);Od(a,Je(a,c,7));break;case 4:c=Id(a);c*=a.C[0];a.l[0]=c;a.F=c&255;a.T=7;a.h=256>c?a.h&-2050:a.h|2049;a.u=212;break;case 5:c=Id(a)<<24>>24;c*=a.be[0];a.l[0]=c;a.F=c&255;a.T=7;a.h=127c?a.h|2049:a.h&-2050;a.u=212;break;case 6:c=Id(a);if(0===c)Gd(a);else{var d=a.l[0],e=d/c|0;256<=e?Gd(a):(a.C[0]=e,a.C[1]=d%c)}break;case 7:c= -Id(a)<<24>>24,0===c?Gd(a):(d=a.yc[0],e=d/c|0,128<=e||-129>=e?Gd(a):(a.C[0]=e,a.C[1]=d%c))}}; -Y[247]=function(a){a.f=C(a);switch(a.f>>3&7){case 0:var c=R(a),d=E(a);Se(a,c,d,15);break;case 1:c=R(a);d=E(a);Se(a,c,d,15);break;case 2:c=S(a);T(a,~c);break;case 3:c=S(a);T(a,Je(a,c,15));break;case 4:c=R(a);c*=a.l[0];d=c>>>16;a.l[0]=c;a.l[4]=d;a.F=c&65535;a.T=15;a.h=d?a.h|2049:a.h&-2050;a.u=212;break;case 5:c=R(a)<<16>>16;c*=a.yc[0];a.l[0]=c;a.l[4]=c>>16;a.F=c&65535;a.T=15;a.h=32767c?a.h|2049:a.h&-2050;a.u=212;break;case 6:c=R(a);if(0===c)Gd(a);else{var d=(a.l[0]|a.l[4]<<16)>>>0,e=d/c| -0;65536<=e||0>e?Gd(a):(a.l[0]=e,a.l[4]=d%c)}break;case 7:c=R(a)<<16>>16,0===c?Gd(a):(d=a.l[0]|a.l[4]<<16,e=d/c|0,32768<=e||-32769>=e?Gd(a):(a.l[0]=e,a.l[4]=d%c))}}; -Z[247]=function(a){a.f=C(a);switch(a.f>>3&7){case 0:var c=Jd(a),d=H(a);Se(a,c,d,31);break;case 1:c=Jd(a);d=H(a);Se(a,c,d,31);break;case 2:c=U(a);V(a,~c);break;case 3:c=U(a);V(a,Je(a,c,31));break;case 4:c=Jd(a)>>>0;c=Me(a.a[0],c);a.a[0]=c[0];a.a[2]=c[1];a.F=c[0];a.T=31;a.h=0===c[1]?a.h&-2050:a.h|2049;a.u=212;break;case 5:c=Jd(a);c=Ne(a.a[0],c);a.a[0]=c[0];a.a[2]=c[1];a.F=c[0];a.T=31;a.h=c[1]===c[0]>>31?a.h&-2050:a.h|2049;a.u=212;break;case 6:c=Jd(a)>>>0;d=Qe(a,a.Wc[0],a.Wc[2],c);c=d[0];d=d[1];4294967296<= -c?Gd(a):(a.a[0]=c,a.a[2]=d);break;case 7:var e=c=Jd(a),f=a.Wc[0],h=a.a[2],d=c=!1;0>e&&(d=!0,e=-e);0>h&&(c=!0,d=!d,f=-f>>>0,h=~h+!f);f=Qe(a,f,h,e);e=f[0];f=f[1];d&&(e=-e|0);c&&(f=-f|0);2147483648<=e||-2147483649>=e?Gd(a):(a.a[0]=e,a.a[2]=f)}};X[248]=function(a){a.h&=-2;a.u&=-2};X[249]=function(a){a.h|=1;a.u&=-2};X[250]=function(a){!a.qa||(a.h&131072?3===qd(a):qd(a)>=a.O)?a.h&=-513:M(a,0)};X[251]=function(a){!a.qa||(a.h&131072?3===qd(a):qd(a)>=a.O)?(a.h|=512,dd(a),fd(a),Fc(a)):M(a,0)}; -X[252]=function(a){a.h&=-1025};X[253]=function(a){a.h|=1024};X[254]=function(a){a.f=C(a);var c=a.f&56;c?8===c?(c=Nd(a),Od(a,Ie(a,c,7))):w(a):(c=Nd(a),Od(a,He(a,c,7)))}; -Y[255]=function(a){a.f=C(a);switch(a.f>>3&7){case 0:var c=S(a);T(a,He(a,c,15));break;case 1:c=S(a);T(a,Ie(a,c,15));break;case 2:c=R(a);O(a,xd(a));a.w=K(a,1)+c|0;a.la||xd(a);break;case 3:192<=a.f&&w(a);var d=a.P(a.f),c=y(a,d),d=y(a,d+2|0),e=a.R[1],f=xd(a);lb(a,J(a,-4),4);B(a,1,d);O(a,e);O(a,f);a.w=K(a,1)+c|0;a.la||xd(a);break;case 4:c=R(a);a.w=K(a,1)+c|0;a.la||xd(a);break;case 5:192<=a.f&&w(a);d=a.P(a.f);c=y(a,d);d=y(a,d+2|0);B(a,1,d);a.w=K(a,1)+c|0;a.la||xd(a);break;case 6:c=R(a);O(a,c);break;case 7:w(a)}}; -Z[255]=function(a){a.f=C(a);switch(a.f>>3&7){case 0:var c=U(a);V(a,He(a,c,31));break;case 1:c=U(a);V(a,Ie(a,c,31));break;case 2:c=Jd(a);N(a,xd(a));a.w=K(a,1)+c|0;break;case 3:192<=a.f&&w(a);var d=a.P(a.f),c=A(a,d),d=y(a,d+4|0),e=a.R[1],f=xd(a);if((!a.qa||rd(a))&&c&4294901760)throw a.debug.S("#GP handler");lb(a,J(a,-8),8);B(a,1,d);N(a,e);N(a,f);a.w=K(a,1)+c|0;break;case 4:c=Jd(a);a.w=K(a,1)+c|0;break;case 5:192<=a.f&&w(a);d=a.P(a.f);c=A(a,d);d=y(a,d+4|0);if((!a.qa||rd(a))&&c&4294901760)throw a.debug.S("#GP handler"); -B(a,1,d);a.w=K(a,1)+c|0;break;case 6:c=Jd(a);N(a,c);break;case 7:w(a)}};var cg=[],dg=[];v.prototype.ja=cg;v.prototype.wa=dg;for(var eg=0;256>eg;eg++)X[eg]?cg[eg]=dg[eg]=X[eg]:Y[eg]&&(cg[eg]=Y[eg],dg[eg]=Z[eg]);X=[];Y=[];Z=[]; -X[0]=function(a){a.f=C(a);a.qa&&!rd(a)||w(a);switch(a.f>>3&7){case 0:Ld(a,a.R[7]);192<=a.f&&(a.a[a.f&7]&=65535);break;case 1:Ld(a,a.R[6]);192<=a.f&&(a.a[a.f&7]&=65535);break;case 2:a.O&&M(a,0);var c=R(a);Ad(a,c);break;case 3:a.O&&M(a,0);var c=R(a),d=zd(a,c);if(!d.ye)throw a.debug.S("TR can only be loaded from GDT");if(d.kb)throw a.debug.S("#GP handler");if(!d.Eb)throw a.debug.S("#GP handler");if(!d.Fb)throw a.debug.S("#GP handler");if(9!==d.type&&1!==d.type)throw a.debug.S("#GP handler");if(1===d.type)throw a.debug.S("286 tss"); -a.Ea[6]=d.Cb;a.Qa[6]=d.Ob;a.R[6]=c;a.memory.sa(d.Hd+5|0,a.memory.da(d.Hd+5|0)|2);break;case 4:c=R(a);c=zd(a,c);a.u&=-65;a.h=c.kb||!c.bc||c.Fb||!c.Ae||!c.xd&&(c.xa>3&7;if(4===c)Ld(a,a.G[0]);else if(6===c){a.O&&M(a,0);var d=R(a);a.G[0]=a.G[0]&-16|d&15;a.qa&&(a.G[0]|=1);hd(a)}else switch(192<=a.f&&w(a),2!==c&&3!==c||!a.qa||(a.ya=9),d=a.P(a.f),a.ya=-1,c){case 0:lb(a,d,6);mb(a,d,a.Nc);c=a.Da?-1:16777215;x(a,d+2,a.$b&c);break;case 1:lb(a,d,6);mb(a,d,a.Oc);c=a.Da?-1:16777215;x(a,d+2,a.ac&c);break;case 2:a.O&&M(a,0);c=y(a,d);d=A(a,d+2);a.Nc=c;a.$b=d;a.Da||(a.$b&=16777215);break;case 3:a.O&&M(a,0);c=y(a,d);d=A(a,d+2);a.Oc=c;a.ac= -d;a.Da||(a.ac&=16777215);break;case 7:a.O&&M(a,0);d>>>=12;a.Kb[d]=0;a.Id[d]=0;a.Gb=-1;a.Sc=-1;break;default:w(a)}};Y[2]=function(a){a.f=C(a);a.qa&&!rd(a)||w(a);var c=R(a);Xd(a,$d(a,c,Vd(a)))};Z[2]=function(a){a.f=C(a);a.qa&&!rd(a)||w(a);var c=R(a);Yd(a,$d(a,c,W(a)))};Y[3]=function(a){a.f=C(a);a.qa&&!rd(a)||w(a);var c=R(a);Xd(a,ae(a,c,Vd(a)))};Z[3]=function(a){a.f=C(a);a.qa&&!rd(a)||w(a);var c=R(a);Yd(a,ae(a,c,W(a)))};X[4]=function(a){w(a)};X[5]=function(a){w(a)}; -X[6]=function(a){a.O?M(a,0):a.G[0]&=-9};X[7]=function(a){w(a)};X[8]=function(a){w(a)};X[9]=function(a){a.O&&M(a,0)};X[10]=function(a){w(a)};X[11]=function(a){w(a)};X[12]=function(a){w(a)};X[13]=function(a){w(a)};X[14]=function(a){w(a)};X[15]=function(a){w(a)};X[16]=function(a){w(a)};X[17]=function(a){w(a)};X[18]=function(a){w(a)};X[19]=function(a){w(a)};X[20]=function(a){w(a)};X[21]=function(a){w(a)};X[22]=function(a){w(a)};X[23]=function(a){w(a)};X[24]=function(a){a.f=C(a);192>a.f&&a.P(a.f)}; -X[25]=function(a){w(a)};X[26]=function(a){w(a)};X[27]=function(a){w(a)};X[28]=function(a){w(a)};X[29]=function(a){w(a)};X[30]=function(a){w(a)};X[31]=function(a){w(a)};X[32]=function(a){a.f=C(a);a.O&&M(a,0);switch(a.f>>3&7){case 0:Sd(a,a.G[0]);break;case 2:Sd(a,a.G[2]);break;case 3:Sd(a,a.G[3]);break;case 4:Sd(a,a.G[4]);break;default:w(a)}};X[33]=function(a){a.f=C(a);a.O&&M(a,0);a.a[a.f&7]=a.nc[a.f>>3&7]}; -X[34]=function(a){a.f=C(a);a.O&&M(a,0);var c=Rd(a);switch(a.f>>3&7){case 0:a.G[0]=c;if(-2147483648===(a.G[0]&-2147483647))throw a.debug.S("#GP handler");hd(a);break;case 2:a.G[2]=c;break;case 3:a.G[3]=c;Bd(a);break;case 4:c&-3565568&&M(a,0);(a.G[4]^c)&128&&(c&128?Bd(a):cd(a));a.G[4]=c;a.Ad=a.G[4]&16?128:0;if(a.G[4]&32)throw a.debug.S("PAE");break;default:w(a)}};X[35]=function(a){a.f=C(a);a.O&&M(a,0);a.nc[a.f>>3&7]=Rd(a)};X[36]=function(a){w(a)};X[37]=function(a){w(a)};X[38]=function(a){w(a)}; -X[39]=function(a){w(a)};X[40]=function(a){w(a)};X[41]=function(a){w(a)};X[42]=function(a){w(a)};X[43]=function(a){w(a)};X[44]=function(a){w(a)};X[45]=function(a){w(a)};X[46]=function(a){w(a)};X[47]=function(a){w(a)};X[48]=function(a){a.O&&M(a,0);var c=a.a[0],d=a.a[2];switch(a.a[1]){case 372:a.Ac=c&65535;break;case 374:a.Zc=c;break;case 373:a.$c=c;break;case 16:c=(c>>>0)+4294967296*(d>>>0),a.Jd=Oa()-c/8192}}; -X[49]=function(a){if(a.O&&a.G[4]&4)M(a,0);else{var c=Oa()-a.Jd;a.a[0]=8192*c;a.a[2]=1.9073486328125E-6*c}};X[50]=function(a){a.O&&M(a,0);var c=0,d=0;switch(a.a[1]){case 372:c=a.Ac;break;case 374:c=a.Zc;break;case 373:c=a.$c;break;case 16:d=Oa()-a.Jd;c=8192*d;d*=1.9073486328125E-6;break;case 27:c=4276092928}a.a[0]=c;a.a[2]=d};X[51]=function(a){w(a)}; -X[52]=function(a){var c=a.Ac&65532;a.qa&&c||M(a,0);a.h&=-131585;a.w=a.Zc;a.a[4]=a.$c;a.R[1]=c;a.yb[1]=0;a.Qa[1]=-1;a.Ea[1]=0;a.Na||Dd(a,!0);a.O=0;id(a);a.R[2]=c+8;a.yb[2]=0;a.Qa[2]=-1;a.Ea[2]=0;a.gb=!0};X[53]=function(a){var c=a.Ac&65532;a.qa&&!a.O&&c||M(a,0);a.w=a.a[2];a.a[4]=a.a[1];a.R[1]=c+16|3;a.yb[1]=0;a.Qa[1]=-1;a.Ea[1]=0;a.Na||Dd(a,!0);a.O=3;id(a);a.R[2]=c+24|3;a.yb[2]=0;a.Qa[2]=-1;a.Ea[2]=0;a.gb=!0};X[54]=function(a){w(a)};X[55]=function(a){w(a)};X[56]=function(a){w(a)};X[57]=function(a){w(a)}; -X[58]=function(a){w(a)};X[59]=function(a){w(a)};X[60]=function(a){w(a)};X[61]=function(a){w(a)};X[62]=function(a){w(a)};X[63]=function(a){w(a)};Y[64]=function(a){a.f=C(a);Pf(a,a.qb())};Z[64]=function(a){a.f=C(a);Qf(a,a.qb())};Y[65]=function(a){a.f=C(a);Pf(a,!a.qb())};Z[65]=function(a){a.f=C(a);Qf(a,!a.qb())};Y[66]=function(a){a.f=C(a);Pf(a,a.hb())};Z[66]=function(a){a.f=C(a);Qf(a,a.hb())};Y[67]=function(a){a.f=C(a);Pf(a,!a.hb())};Z[67]=function(a){a.f=C(a);Qf(a,!a.hb())}; -Y[68]=function(a){a.f=C(a);Pf(a,a.jb())};Z[68]=function(a){a.f=C(a);Qf(a,a.jb())};Y[69]=function(a){a.f=C(a);Pf(a,!a.jb())};Z[69]=function(a){a.f=C(a);Qf(a,!a.jb())};Y[70]=function(a){a.f=C(a);Pf(a,Sf(a))};Z[70]=function(a){a.f=C(a);Qf(a,Sf(a))};Y[71]=function(a){a.f=C(a);Pf(a,!Sf(a))};Z[71]=function(a){a.f=C(a);Qf(a,!Sf(a))};Y[72]=function(a){a.f=C(a);Pf(a,a.rb())};Z[72]=function(a){a.f=C(a);Qf(a,a.rb())};Y[73]=function(a){a.f=C(a);Pf(a,!a.rb())};Z[73]=function(a){a.f=C(a);Qf(a,!a.rb())}; -Y[74]=function(a){a.f=C(a);Pf(a,a.ib())};Z[74]=function(a){a.f=C(a);Qf(a,a.ib())};Y[75]=function(a){a.f=C(a);Pf(a,!a.ib())};Z[75]=function(a){a.f=C(a);Qf(a,!a.ib())};Y[76]=function(a){a.f=C(a);Pf(a,Tf(a))};Z[76]=function(a){a.f=C(a);Qf(a,Tf(a))};Y[77]=function(a){a.f=C(a);Pf(a,!Tf(a))};Z[77]=function(a){a.f=C(a);Qf(a,!Tf(a))};Y[78]=function(a){a.f=C(a);Pf(a,Uf(a))};Z[78]=function(a){a.f=C(a);Qf(a,Uf(a))};Y[79]=function(a){a.f=C(a);Pf(a,!Uf(a))};Z[79]=function(a){a.f=C(a);Qf(a,!Uf(a))};X[80]=function(a){w(a)}; -X[81]=function(a){w(a)};X[82]=function(a){w(a)};X[83]=function(a){w(a)};X[84]=function(a){w(a)};X[85]=function(a){w(a)};X[86]=function(a){w(a)};X[87]=function(a){w(a)};X[88]=function(a){w(a)};X[89]=function(a){w(a)};X[90]=function(a){w(a)};X[91]=function(a){w(a)};X[92]=function(a){w(a)};X[93]=function(a){w(a)};X[94]=function(a){w(a)};X[95]=function(a){w(a)};X[96]=function(a){w(a)};X[97]=function(a){w(a)};X[98]=function(a){w(a)};X[99]=function(a){w(a)};X[100]=function(a){w(a)};X[101]=function(a){w(a)}; -X[102]=function(a){w(a)};X[103]=function(a){w(a)};X[104]=function(a){w(a)};X[105]=function(a){w(a)};X[106]=function(a){w(a)};X[107]=function(a){w(a)};X[108]=function(a){w(a)};X[109]=function(a){w(a)};X[110]=function(a){w(a)};X[111]=function(a){w(a)};X[112]=function(a){w(a)};X[113]=function(a){w(a)};X[114]=function(a){w(a)};X[115]=function(a){w(a)};X[116]=function(a){w(a)};X[117]=function(a){w(a)};X[118]=function(a){w(a)};X[119]=function(a){w(a)};X[120]=function(a){w(a)};X[121]=function(a){w(a)}; -X[122]=function(a){w(a)};X[123]=function(a){w(a)};X[124]=function(a){w(a)};X[125]=function(a){w(a)};X[126]=function(a){w(a)};X[127]=function(a){w(a)};Y[128]=function(a){Nf(a,a.qb())};Z[128]=function(a){Of(a,a.qb())};Y[129]=function(a){Nf(a,!a.qb())};Z[129]=function(a){Of(a,!a.qb())};Y[130]=function(a){Nf(a,a.hb())};Z[130]=function(a){Of(a,a.hb())};Y[131]=function(a){Nf(a,!a.hb())};Z[131]=function(a){Of(a,!a.hb())};Y[132]=function(a){Nf(a,a.jb())};Z[132]=function(a){Of(a,a.jb())}; -Y[133]=function(a){Nf(a,!a.jb())};Z[133]=function(a){Of(a,!a.jb())};Y[134]=function(a){Nf(a,Sf(a))};Z[134]=function(a){Of(a,Sf(a))};Y[135]=function(a){Nf(a,!Sf(a))};Z[135]=function(a){Of(a,!Sf(a))};Y[136]=function(a){Nf(a,a.rb())};Z[136]=function(a){Of(a,a.rb())};Y[137]=function(a){Nf(a,!a.rb())};Z[137]=function(a){Of(a,!a.rb())};Y[138]=function(a){Nf(a,a.ib())};Z[138]=function(a){Of(a,a.ib())};Y[139]=function(a){Nf(a,!a.ib())};Z[139]=function(a){Of(a,!a.ib())};Y[140]=function(a){Nf(a,Tf(a))}; -Z[140]=function(a){Of(a,Tf(a))};Y[141]=function(a){Nf(a,!Tf(a))};Z[141]=function(a){Of(a,!Tf(a))};Y[142]=function(a){Nf(a,Uf(a))};Z[142]=function(a){Of(a,Uf(a))};Y[143]=function(a){Nf(a,!Uf(a))};Z[143]=function(a){Of(a,!Uf(a))};X[144]=function(a){a.f=C(a);Rf(a,a.qb())};X[145]=function(a){a.f=C(a);Rf(a,!a.qb())};X[146]=function(a){a.f=C(a);Rf(a,a.hb())};X[147]=function(a){a.f=C(a);Rf(a,!a.hb())};X[148]=function(a){a.f=C(a);Rf(a,a.jb())};X[149]=function(a){a.f=C(a);Rf(a,!a.jb())}; -X[150]=function(a){a.f=C(a);Rf(a,Sf(a))};X[151]=function(a){a.f=C(a);Rf(a,!Sf(a))};X[152]=function(a){a.f=C(a);Rf(a,a.rb())};X[153]=function(a){a.f=C(a);Rf(a,!a.rb())};X[154]=function(a){a.f=C(a);Rf(a,a.ib())};X[155]=function(a){a.f=C(a);Rf(a,!a.ib())};X[156]=function(a){a.f=C(a);Rf(a,Tf(a))};X[157]=function(a){a.f=C(a);Rf(a,!Tf(a))};X[158]=function(a){a.f=C(a);Rf(a,Uf(a))};X[159]=function(a){a.f=C(a);Rf(a,!Uf(a))};Y[160]=function(a){O(a,a.R[4])};Z[160]=function(a){N(a,a.R[4])}; -Y[161]=function(a){B(a,4,y(a,J(a,0)));I(a,2)};Z[161]=function(a){B(a,4,y(a,J(a,0)));I(a,4)}; -X[162]=function(a){var c=0,d=0,e=0,f=0;switch(a.a[0]){case 0:c=5;f=1970169159;e=1231384169;d=1818588270;break;case 1:c=3939;f=67584;d=1082130432;e=(a.Ba?1:0)|43322;e|=512;break;case 2:c=1717260289;d=f=0;e=8024064;break;case 4:switch(a.a[1]){case 0:c=289;f=29360191;d=63;e=1;break;case 1:c=290;f=29360191;d=63;e=1;break;case 2:c=323,f=96469055,d=4095,e=1}break;case -2147483648:c=5}a.a[0]=c;a.a[1]=d;a.a[2]=e;a.a[3]=f};Y[163]=function(a){a.f=C(a);192>a.f?Gf(a,a.P(a.f),Wd(a)):Cf(a,Pd(a),Vd(a)&15)}; -Z[163]=function(a){a.f=C(a);192>a.f?Gf(a,a.P(a.f),W(a)):Cf(a,Rd(a),W(a)&31)};Y[164]=function(a){a.f=C(a);var c=S(a);T(a,Af(a,c,Vd(a),C(a)&31))};Z[164]=function(a){a.f=C(a);var c=U(a);V(a,Bf(a,c,W(a),C(a)&31))};Y[165]=function(a){a.f=C(a);var c=S(a);T(a,Af(a,c,Vd(a),a.C[4]&31))};Z[165]=function(a){a.f=C(a);var c=U(a);V(a,Bf(a,c,W(a),a.C[4]&31))};X[166]=function(a){w(a)};X[167]=function(a){w(a)};Y[168]=function(a){O(a,a.R[5])};Z[168]=function(a){N(a,a.R[5])}; -Y[169]=function(a){B(a,5,y(a,J(a,0)));I(a,2)};Z[169]=function(a){B(a,5,y(a,J(a,0)));I(a,4)};X[170]=function(a){w(a)};Y[171]=function(a){a.f=C(a);192>a.f?Jf(a,a.P(a.f),Wd(a)):Qd(a,Ef(a,Pd(a),Wd(a)&15))};Z[171]=function(a){a.f=C(a);192>a.f?Jf(a,a.P(a.f),W(a)):Sd(a,Ef(a,Rd(a),W(a)&31))};Y[172]=function(a){a.f=C(a);var c=S(a);T(a,yf(a,c,Vd(a),C(a)&31))};Z[172]=function(a){a.f=C(a);var c=U(a);V(a,zf(a,c,W(a),C(a)&31))};Y[173]=function(a){a.f=C(a);var c=S(a);T(a,yf(a,c,Vd(a),a.C[4]&31))}; -Z[173]=function(a){a.f=C(a);var c=U(a);V(a,zf(a,c,W(a),a.C[4]&31))};X[174]=function(a){a.f=C(a);switch(a.f>>3&7){case 5:break;case 6:break;default:w(a)}};Y[175]=function(a){a.f=C(a);var c=R(a)<<16>>16;Xd(a,Ke(a,Wd(a),c))};Z[175]=function(a){a.f=C(a);var c=Jd(a);Yd(a,Oe(a,W(a),c))};X[176]=function(a){a.f=C(a);if(192>a.f){var c=a.P(a.f);lb(a,c,1);var d=ld(a,c)}else d=a.C[a.f<<2&12|a.f>>2&1];Ae(a,a.C[0],d,7);a.Pb()?192>a.f?md(a,c,Td(a)):a.C[a.f<<2&12|a.f>>2&1]=Td(a):a.C[0]=d}; -Y[177]=function(a){a.f=C(a);if(192>a.f){var c=a.P(a.f);lb(a,c,2);var d=y(a,c)}else d=Pd(a);Ae(a,a.l[0],d,15);a.Pb()?192>a.f?mb(a,c,Vd(a)):Qd(a,Vd(a)):a.l[0]=d};Z[177]=function(a){a.f=C(a);if(192>a.f){var c=a.P(a.f);lb(a,c,4);var d=A(a,c)}else d=Rd(a);Ae(a,a.a[0],d,31);a.Pb()?192>a.f?x(a,c,W(a)):Sd(a,W(a)):a.a[0]=d};Y[178]=function(a){a.f=C(a);$f(a,2)};Z[178]=function(a){a.f=C(a);ag(a,2)};Y[179]=function(a){a.f=C(a);192>a.f?If(a,a.P(a.f),Wd(a)):Qd(a,Ff(a,Pd(a),Wd(a)&15))}; -Z[179]=function(a){a.f=C(a);192>a.f?If(a,a.P(a.f),W(a)):Sd(a,Ff(a,Rd(a),W(a)&31))};Y[180]=function(a){a.f=C(a);$f(a,4)};Z[180]=function(a){a.f=C(a);ag(a,4)};Y[181]=function(a){a.f=C(a);$f(a,5)};Z[181]=function(a){a.f=C(a);ag(a,5)};Y[182]=function(a){a.f=C(a);var c=Id(a);Xd(a,c)};Z[182]=function(a){a.f=C(a);var c=Id(a);Yd(a,c)};X[183]=function(a){a.f=C(a);var c=R(a);Yd(a,c)};Y[184]=function(a){a.f=C(a);var c=R(a);Xd(a,Kf(a,c))};Z[184]=function(a){a.f=C(a);var c=Jd(a);Yd(a,Kf(a,c))};X[185]=function(a){w(a)}; -Y[186]=function(a){a.f=C(a);switch(a.f>>3&7){case 4:192>a.f?Gf(a,a.P(a.f),C(a)&15):Cf(a,Pd(a),C(a)&15);break;case 5:192>a.f?Jf(a,a.P(a.f),C(a)&15):Qd(a,Ef(a,Pd(a),C(a)&15));break;case 6:192>a.f?If(a,a.P(a.f),C(a)&15):Qd(a,Ff(a,Pd(a),C(a)&15));break;case 7:192>a.f?Hf(a,a.P(a.f),C(a)&15):Qd(a,Df(a,Pd(a),C(a)&15));break;default:w(a)}}; -Z[186]=function(a){a.f=C(a);switch(a.f>>3&7){case 4:192>a.f?Gf(a,a.P(a.f),C(a)&31):Cf(a,Rd(a),C(a)&31);break;case 5:192>a.f?Jf(a,a.P(a.f),C(a)&31):Sd(a,Ef(a,Rd(a),C(a)&31));break;case 6:192>a.f?If(a,a.P(a.f),C(a)&31):Sd(a,Ff(a,Rd(a),C(a)&31));break;case 7:192>a.f?Hf(a,a.P(a.f),C(a)&31):Sd(a,Df(a,Rd(a),C(a)&31));break;default:w(a)}};Y[187]=function(a){a.f=C(a);192>a.f?Hf(a,a.P(a.f),Wd(a)):Qd(a,Df(a,Pd(a),Wd(a)&15))};Z[187]=function(a){a.f=C(a);192>a.f?Hf(a,a.P(a.f),W(a)):Sd(a,Df(a,Rd(a),W(a)&31))}; -Y[188]=function(a){a.f=C(a);var c=R(a);var d=Vd(a);a.u=2197;a.T=15;0===c?(a.h|=64,c=d):(a.h&=-65,c=a.F=Va(-c&c));Xd(a,c)};Z[188]=function(a){a.f=C(a);var c=Jd(a);var d=W(a);a.u=2197;a.T=31;0===c?(a.h|=64,c=d):(a.h&=-65,c=a.F=Va((-c&c)>>>0));Yd(a,c)};Y[189]=function(a){a.f=C(a);var c=R(a);var d=Vd(a);a.u=2197;a.T=15;0===c?(a.h|=64,c=d):(a.h&=-65,c=a.F=Va(c));Xd(a,c)};Z[189]=function(a){a.f=C(a);var c=Jd(a);var d=W(a);a.u=2197;a.T=31;0===c?(a.h|=64,c=d):(a.h&=-65,c=a.F=Va(c>>>0));Yd(a,c)}; -Y[190]=function(a){a.f=C(a);var c=Id(a)<<24>>24;Xd(a,c)};Z[190]=function(a){a.f=C(a);var c=Id(a)<<24>>24;Yd(a,c)};X[191]=function(a){a.f=C(a);var c=R(a)<<16>>16;Yd(a,c)};X[192]=function(a){a.f=C(a);var c;c=Nd(a);var d=a.f>>1&12|a.f>>5&1,e=a.C[d];a.C[d]=c;c=a.add(c,e,7);Od(a,c)};Y[193]=function(a){a.f=C(a);var c;c=S(a);var d=a.f>>2&14,e=a.l[d];a.l[d]=c;c=a.add(c,e,15);T(a,c)};Z[193]=function(a){a.f=C(a);var c;c=U(a);var d=a.f>>3&7,e=a.a[d];a.a[d]=c;c=a.add(c,e,31);V(a,c)};X[194]=function(a){w(a)}; -X[195]=function(a){w(a)};X[196]=function(a){w(a)};X[197]=function(a){w(a)};X[198]=function(a){w(a)};X[199]=function(a){a.f=C(a);switch(a.f>>3&7){case 1:192<=a.f&&w(a);var c=a.P(a.f);lb(a,c,8);var d=A(a,c),e=A(a,c+4|0);a.a[0]===d&&a.a[2]===e?(a.h|=64,x(a,c,a.a[3]),x(a,c+4|0,a.a[1])):(a.h&=-65,a.a[0]=d,a.a[2]=e);a.u&=-65;break;case 6:d=(c=Qa())?Ta():0;a.Da?Md(a,d):Ld(a,d);a.h&=-2262;a.h|=c;a.u=0;break;default:w(a)}};X[200]=function(a){bg(a,0)};X[201]=function(a){bg(a,1)};X[202]=function(a){bg(a,2)}; -X[203]=function(a){bg(a,3)};X[204]=function(a){bg(a,4)};X[205]=function(a){bg(a,5)};X[206]=function(a){bg(a,6)};X[207]=function(a){bg(a,7)};X[208]=function(a){w(a)};X[209]=function(a){w(a)};X[210]=function(a){w(a)};X[211]=function(a){w(a)};X[212]=function(a){w(a)};X[213]=function(a){w(a)};X[214]=function(a){w(a)};X[215]=function(a){w(a)};X[216]=function(a){w(a)};X[217]=function(a){w(a)};X[218]=function(a){w(a)};X[219]=function(a){w(a)};X[220]=function(a){w(a)};X[221]=function(a){w(a)};X[222]=function(a){w(a)}; -X[223]=function(a){w(a)};X[224]=function(a){w(a)};X[225]=function(a){w(a)};X[226]=function(a){w(a)};X[227]=function(a){w(a)};X[228]=function(a){w(a)};X[229]=function(a){w(a)};X[230]=function(a){w(a)};X[231]=function(a){w(a)};X[232]=function(a){w(a)};X[233]=function(a){w(a)};X[234]=function(a){w(a)};X[235]=function(a){w(a)};X[236]=function(a){w(a)};X[237]=function(a){w(a)};X[238]=function(a){w(a)};X[239]=function(a){w(a)};X[240]=function(a){w(a)};X[241]=function(a){w(a)};X[242]=function(a){w(a)}; -X[243]=function(a){w(a)};X[244]=function(a){w(a)};X[245]=function(a){w(a)};X[246]=function(a){w(a)};X[247]=function(a){w(a)};X[248]=function(a){w(a)};X[249]=function(a){w(a)};X[250]=function(a){w(a)};X[251]=function(a){w(a)};X[252]=function(a){w(a)};X[253]=function(a){w(a)};X[254]=function(a){w(a)};X[255]=function(a){w(a)};var fg=[],gg=[];v.prototype.gh=fg;v.prototype.hh=gg;for(eg=0;256>eg;eg++)X[eg]?fg[eg]=gg[eg]=X[eg]:Y[eg]&&(fg[eg]=Y[eg],gg[eg]=Z[eg]);function bd(a){var c={};a.debug=c;c.Hh=!1;c.Fh=void 0;c.oh=[];c.Ih=!1;c.show=function(a){if("undefined"!==typeof document){var c=document.getElementById("log");if(c){c.textContent+=a+"\n";c.style.display="block";c.scrollTop=1E9;return}}console.log(a)};c.ob=function(){};c.vh=function(){};c.th=function(){};c.Ah=function(){};c.wh=function(){};c.yh=function(){};c.xh=function(){};c.uh=function(){};c.rh=function(){};c.sh=function(){};c.Bh=function(){};c.Eh=function(){};c.Jh=function(){};c.step=function(){}; -c.Gh=function(){};c.qh=function(){};c.S=function(a){a="Unimplemented"+(a?": "+a:"");c.show(a);c.show("Execution stopped");return a};c.Dh=function(){};c.ph=function(){}};var oa=16384;function hg(a){this.b=[];this.m=[];this.D=a;this.o=this.L=0;this.v=function(){};this.g={};this.K=0;na(this,"",-1)}function ia(a,c,d){0==ga(a,c).status?d():a.m.push({id:c,Cf:d})}function ig(a,c){a.o||(a.v=function(){});for(var d=[],e=0;e>8;ka(a,e);return a.b.length-1}function pa(a,c,d){var e=ja(a);e.name=c;e.va=d;e.uid=a.b[d].uid;e.Za=a.b[d].Za;e.Xa.type=128;e.mode=a.b[d].mode&438|32768;ka(a,e);return a.b.length-1}function ma(a,c,d,e,f){var h=ja(a);h.name=c;h.va=d;h.df=e;h.ef=f;h.uid=a.b[d].uid;h.Za=a.b[d].Za;h.Xa.type=192;h.mode=a.b[d].mode&438;ka(a,h);return a.b.length-1} -function la(a,c,d,e){var f=ja(a);f.name=c;f.va=d;f.uid=a.b[d].uid;f.Za=a.b[d].Za;f.Xa.type=160;f.Gd=e;f.mode=40960;ka(a,f);return a.b.length-1}function pg(a,c,d,e){c=pa(a,c,d);d=a.b[c];(a.g[c]=new Uint8Array(e.length)).set(e);d.size=e.length} -function ha(a,c){var d=ga(a,c);if((d.mode&61440)==oa){var e=ga(a,c);if(e.hc){var f=e.va;-1==f&&(f=0);for(var h=0,r=a.b[c].eb;-1!=r;)h+=24+qg(a.b[r].name),r=a.b[r].fb;var h=h+25+26,k=a.g[c]=new Uint8Array(h);e.size=h;h=0;h+=ca(["Q","d","b","s"],[a.b[c].Xa,h+25,a.b[c].mode>>12,"."],k,h);h+=ca(["Q","d","b","s"],[a.b[f].Xa,h+13+8+1+2+2,a.b[f].mode>>12,".."],k,h);for(r=a.b[c].eb;-1!=r;)h+=ca(["Q","d","b","s"],[a.b[r].Xa,h+13+8+1+2+qg(a.b[r].name),a.b[r].mode>>12,a.b[r].name],k,h),r=a.b[r].fb;e.hc=!1}}return 2== -d.status?(lg(a,c),!1):!0}function va(a,c){var d=ga(a,c);4==d.status&&(d.status=-1,delete a.g[c],d.size=0)}function sa(a,c,d,e,f){if(c==e&&d==f)return!0;d=ta(a,c,d);if(-1==d)return!1;var h=ta(a,e,f);-1!=h&&ua(a,h);h=a.b[d];if(a.b[h.va].eb==d)a.b[h.va].eb=h.fb;else{var r=rg(a,d);a.b[r].fb=h.fb}h.va=e;h.name=f;h.Xa.version++;h.fb=a.b[h.va].eb;a.b[h.va].eb=d;a.b[c].hc=!0;return a.b[e].hc=!0} -function ra(a,c,d,e,f){var h=a.b[c],r=a.g[c];!r||r.lengthc||c>a.b.length?0:a.b[c]}function qa(a,c,d){var e=ga(a,c),f=a.g[c];if(d!=e.size&&(a=a.g[c]=new Uint8Array(d),e.size=d,f))for(d=Math.min(f.length,e.size),e=0;e>8&255;d[e++]=f>>16&255;d[e++]=f>>24&255;h+=4;break;case "d":d[e++]=f&255;d[e++]=f>>8&255;d[e++]=f>>16&255;d[e++]=f>>24&255;d[e++]=0;d[e++]=0;d[e++]=0;d[e++]=0;h+=8;break;case "h":d[e++]=f&255;d[e++]=f>>8;h+=2;break;case "b":d[e++]=f;h+=1;break;case "s":var k=e,t=0;d[e++]=0;d[e++]=0;var h=h+2,u;for(u in f)tg(f.charCodeAt(u)).forEach(function(a){d[e++]=a;h+=1;t++});d[k+0]=t&255;d[k+1]=t>>8&255; -break;case "Q":ca(["b","w","d"],[f.type,f.version,f.path],d,e),e+=13,h+=13}return h} -function fa(a,c){for(var d=[],e=0;e>>0);d.push(f);break;case "d":f=c();f+=c()<<8;f+=c()<<16;f+=c()<<24>>>0;c();c();c();c();d.push(f);break;case "h":f=c();d.push(f+(c()<<8));break;case "b":d.push(c());break;case "s":for(var f=c(),f=f+(c()<<8),h="",r=new ug,k=0;kthis.b[0])return this.g=0,this.b[0];break;case 2:if(192==(this.b[0]&224)&&128==(this.b[1]&192))return this.g=0,(this.b[0]&31)<<6|this.b[1]&63}return-1}}function tg(a){if(128>a)return[a];if(2048>a)return[192|a>>6&31,128|a&63]}function qg(a){for(var c=0,d=0;da.charCodeAt(d)?1:2;return c};function vg(a){function c(a){return f(a,!1)}function d(a){return f(a,!0)}function e(){for(var a=Object.keys(k),c,d=0;d>8),r(a&255)):r(a)}function r(a){t.J.send("keyboard-code",a)}var k={},t=this;this.g=!0;var u=new Uint16Array([0,0,0,0,0,0,0,0,14,15,0,0,0,28,0,0,42,29,56,0,58,0,0,0,0,0,0,1,0,0,0,0,57,57417,57425,57423,57415,57419,57416,57421,80,0,0,0,0,82,83,0,11,2,3,4,5,6,7,8,9,10,0,39,0,13,0,0,0,30,48,46,32,18,33,34,35,23,36,37,38,50,49,24,25,16,19,31,20,22,47,17,45,21,44,57435,57436,57437,0,0,82,79,80, -81,75,76,77,71,72,73,0,0,0,0,0,0,59,60,61,62,63,64,65,66,67,68,87,88,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,69,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,0,0,0,0,0,0,0,0,0,0,0,0,39,13,51,12,52,53,41,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,26,43,27,40,0,57435,57400,0,0,0,0,0,0,0,0,0,0,0,0,0,0]),z={10:13,32:32,39:222,44:188,45:189,46:190,47:191,48:48,49:49,50:50,51:51,52:52,53:53,54:54,55:55,56:56,57:57,59:186,61:187,91:219,92:220,93:221,96:192,97:65,98:66,99:67,100:68, -101:69,102:70,103:71,104:72,105:73,106:74,107:75,108:76,109:77,110:78,111:79,112:80,113:81,114:82,115:83,116:84,117:85,118:86,119:87,120:88,121:89,122:90},G={33:49,34:222,35:51,36:52,37:53,38:55,40:57,41:48,42:56,43:187,58:186,60:188,62:190,63:191,64:50,65:65,66:66,67:67,68:68,69:69,70:70,71:71,72:72,73:73,74:74,75:75,76:76,77:77,78:78,79:79,80:80,81:81,82:82,83:83,84:84,85:85,86:86,87:87,88:88,89:89,90:90,94:54,95:189,123:219,124:220,125:221,126:192},F={Escape:1,Digit1:2,Digit2:3,Digit3:4,Digit4:5, -Digit5:6,Digit6:7,Digit7:8,Digit8:9,Digit9:10,Digit0:11,Minus:12,Equal:13,Backspace:14,Tab:15,KeyQ:16,KeyW:17,KeyE:18,KeyR:19,KeyT:20,KeyY:21,KeyU:22,KeyI:23,KeyO:24,KeyP:25,BracketLeft:26,BracketRight:27,Enter:28,ControlLeft:29,KeyA:30,KeyS:31,KeyD:32,KeyF:33,KeyG:34,KeyH:35,KeyJ:36,KeyK:37,KeyL:38,Semicolon:39,Quote:40,Backquote:41,ShiftLeft:42,Backslash:43,KeyZ:44,KeyX:45,KeyC:46,KeyV:47,KeyB:48,KeyN:49,KeyM:50,Comma:51,Period:52,Slash:53,ShiftRight:54,NumpadMultiply:55,AltLeft:56,Space:57,CapsLock:58, -F1:59,F2:60,F3:61,F4:62,F5:63,F6:64,F7:65,F8:66,F9:67,F10:68,NumLock:69,ScrollLock:70,Numpad7:71,Numpad8:72,Numpad9:73,NumpadSubtract:74,Numpad4:75,Numpad5:76,Numpad6:77,NumpadAdd:78,Numpad1:79,Numpad2:80,Numpad3:81,Numpad0:82,NumpadDecimal:83,IntlBackslash:86,F11:87,F12:88,NumpadEnter:57372,ControlRight:57373,NumpadDivide:57397,AltRight:57400,Home:57423,ArrowUp:57416,PageUp:57417,ArrowLeft:57419,ArrowRight:57421,End:57423,ArrowDown:57424,PageDown:57425,Insert:57426,Delete:57427,OSLeft:57435,OSRight:57436, -ContextMenu:57437};this.J=a;this.cb=function(){"undefined"!==typeof window&&(window.removeEventListener("keyup",c,!1),window.removeEventListener("keydown",d,!1),window.removeEventListener("blur",e,!1))};this.ob=function(){"undefined"!==typeof window&&(this.cb(),window.addEventListener("keyup",c,!1),window.addEventListener("keydown",d,!1),window.addEventListener("blur",e,!1))};this.ob();this.b=function(a){a={keyCode:a};f(a,!0);f(a,!1)};this.m=function(a){var c=a.charCodeAt(0);c in z?this.b(z[c]):c in -G?(r(42),this.b(G[c]),r(170)):console.log("ascii -> keyCode not found: ",c,a)}};function wg(a,c){function d(a){if(Ra.enabled&&Ra.b)if("mousemove"===a.type||"touchmove"===a.type)a=!0;else if("mousewheel"===a.type||"DOMMouseScroll"===a.type)a:{for(a=a.target;a.parentNode;){if(a===(c||document.body)){a=!0;break a}a=a.parentNode}a=!1}else a=!a.target||"INPUT"!==a.target.nodeName&&"TEXTAREA"!==a.target.nodeName;else a=!1;return a}function e(a){d(a)&&(a=a.changedTouches)&&a.length&&(a=a[a.length-1],ya=a.clientX,Sa=a.clientY)}function f(){if(G||L||F)Ra.J.send("mouse-click",[!1,!1,!1]), -G=L=F=!1}function h(a){if(Ra.J&&d(a)){var c=0,e=0,f=a.changedTouches;f?f.length&&(f=f[f.length-1],c=f.clientX-ya,e=f.clientY-Sa,ya=f.clientX,Sa=f.clientY,a.preventDefault()):"number"===typeof a.movementX?(c=a.movementX,e=a.movementY):"number"===typeof a.webkitMovementX?(c=a.webkitMovementX,e=a.webkitMovementY):"number"===typeof a.mozMovementX?(c=a.mozMovementX,e=a.mozMovementY):(c=a.clientX-ya,e=a.clientY-Sa,ya=a.clientX,Sa=a.clientY);Ra.J.send("mouse-delta",[.15*c,-(.15*e)])}}function r(a){d(a)&& -a.preventDefault()}function k(a){d(a)&&u(a,!0)}function t(a){d(a)&&u(a,!1)}function u(a,c){Ra.J&&(1===a.which?G=c:2===a.which?L=c:3===a.which?F=c:console.log("Unknown event.which: "+a.which),Ra.J.send("mouse-click",[G,L,F]),a.preventDefault())}function z(a){if(d(a)){var c=a.wheelDelta||-a.detail;0>c?c=-1:0Date.now())){this.m=Date.now();try{this.b=new WebSocket(this.url)}catch(c){this.$e();return}this.b.binaryType="arraybuffer";this.b.onopen=this.bg.bind(this);this.b.onmessage=this.ag.bind(this);this.b.onclose=this.$e.bind(this);this.b.onerror=this.$f.bind(this)}};l.send=function(a){this.b&&1===this.b.readyState?this.b.send(a):(this.g.push(a),128>20)+" MB ...");this.buffer=new ArrayBuffer(a.size);this.onload=void 0}function f(a){this.m=a;this.byteLength=a.size;this.b=256;this.g={};this.onload=void 0}"undefined"===typeof XMLHttpRequest? -Wa=c:Wa=a;Xa=d;Ya=f;Aa=e;d.prototype.load=function(){void 0!==this.byteLength?this.onload&&this.onload({}):a(this.m,{done:function(a,c){a=c.getResponseHeader("Content-Range")||"";(c=a.match(/\/(\d+)\s*$/))?(this.byteLength=+c[1],this.onload&&this.onload({})):console.assert(!1,"Cannot use: "+this.m+". `Range: bytes=...` header not supported (Got `"+a+"`)")}.bind(this),headers:{Range:"bytes=0-0"}})};d.prototype.o=function(a,c){var d=c/this.b;a/=this.b;for(var e=0;e=e);z!==e&&(c.push(this.m.slice(e,z)),e=z);c.push(G);e+=G.length}e!==this.m.size&&c.push(this.m.slice(e));a=new File(c,a);console.assert(a.size===this.m.size);return a}})();function n(a){function c(a,c){switch(a){case "hda":k.Ma=this.Kc.hda=c;break;case "hdb":k.Vd=this.Kc.hdb=c;break;case "cdrom":k.Ka=this.Kc.cdrom=c;break;case "fda":k.Oa=this.Kc.fda=c;break;case "fdb":k.Se=this.Kc.fdb=c;break;case "bios":k.Hc=c.buffer;break;case "vga_bios":k.mh=c.buffer;break;case "initial_state":k.Qc=c.buffer;break;case "fs9p_json":k.We=c.buffer}}function d(a,c){if(c)if(c.get&&c.set&&c.load)t.push({name:a,rc:c});else{c={buffer:c.buffer,async:c.async,url:c.url,size:c.size};if("bios"=== -a||"vga_bios"===a||"initial_state"===a)c.async=!1;c.buffer instanceof ArrayBuffer?(c=new ab(c.buffer),t.push({name:a,rc:c})):c.buffer instanceof File?(void 0===c.async&&(c.async=268435456>c.buffer.size),c=c.async?new Aa(c.buffer):new Ya(c.buffer),t.push({name:a,rc:c})):c.url&&(c.async?(c=new Xa(c.url,c.size),t.push({name:a,rc:c})):t.push({name:a,url:c.url,size:c.size}))}}function e(){k.Qc&&(k.jg=!0);this.J.send("cpu-init",k);setTimeout(function(){k.Qc&&Rc(r.s,k.Qc);setTimeout(function(){k.Zb&&k.We&& -jg(k.Zb,k.We);a.autostart&&this.J.send("cpu-run")}.bind(this),0)}.bind(this),0)}this.pe=!1;var f=Zc(),h=this.J=f[0];this.o=f[1];var r=this.b=new Ka(this.o);this.J.register("emulator-stopped",function(){this.pe=!1},this);this.J.register("emulator-started",function(){this.pe=!0},this);var k={};this.Kc={fda:void 0,fdb:void 0,hda:void 0,hdb:void 0,cdrom:void 0};k.gg=!0;k.bb=a.memory_size||67108864;k.Ca=a.vga_memory_size||8388608;k.Ic=a.boot_order||531;k.Oa=void 0;k.Se=void 0;a.network_relay_url&&(new yg(a.network_relay_url, -h),k.Xf=!0);a.disable_keyboard||(this.g=new vg(h));a.disable_mouse||(this.v=new wg(h,a.screen_container));a.screen_container&&(this.m=new xa(a.screen_container,h));a.serial_container&&new xg(a.serial_container,h);for(var t=[],f="bios vga_bios cdrom hda hdb fda fdb initial_state".split(" "),h=0;hminimal_linux_live_28-Jan-2018_src.tar.xz - from GitHub.
  • - minimal_linux_live_28-Jan-2018_src.tar.xz - from this website. + minimal_linux_live_28-Jan-2018_src.tar.xz - from this website.
  • @@ -540,17 +540,17 @@ minimal_linux_live_28-Jan-2018_32-bit_bios.iso - 32-bit ISO image from GitHub.
  • - minimal_linux_live_28-Jan-2018_64-bit_bios.iso - 64-bit ISO image from this website. + minimal_linux_live_28-Jan-2018_64-bit_bios.iso - 64-bit ISO image from this website.
  • - minimal_linux_live_28-Jan-2018_32-bit_bios.iso - 32-bit ISO image from this website. + minimal_linux_live_28-Jan-2018_32-bit_bios.iso - 32-bit ISO image from this website.
  • - You can browse the GitHub releases or browse the download directory in this website where you will find all source archives and pre-built ISO images with support for BIOS, UEFI and mixed BIOS/UEFI. + You can browse the GitHub releases or browse the download directory in this website where you will find all source archives and pre-built ISO images with support for BIOS, UEFI and mixed BIOS/UEFI.