Implemented (but have not yet tested) ASHC opcode for PDP-10

This commit is contained in:
Jeff 2017-03-05 14:14:14 -08:00 committed by Jeff Parsons
commit 286a122b05
5 changed files with 626 additions and 374 deletions

View file

@ -1404,7 +1404,7 @@ PDP10.opASH = function(op, acc)
*/
var s = ((this.regEA << 14) >> 14) % 256;
if (s) {
var w = this.readWord(acc), bitsShifted;
var w = this.readWord(acc), bits;
/*
* Convert the unsigned word (w) to a signed value (i), for convenience.
*/
@ -1412,15 +1412,15 @@ PDP10.opASH = function(op, acc)
if (s > 0) {
if (s >= 35) {
i = (i < 0? PDP10.INT_LIMIT : 0);
bitsShifted = PDP10.INT_MASK;
bits = PDP10.INT_MASK;
} else {
i = (i * Math.pow(2, s)) % PDP10.INT_LIMIT;
/*
* bitsShifted must be set to the mask of all magnitude bits shifted out of
* bits must be set to the mask of all magnitude bits shifted out of
* the original word. Using 8-bit signed words as an example, this table shows
* the bitsShifted values that would correspond to shifting 1-7 bits left:
* the bits values that would correspond to shifting 1-7 bits left:
*
* shifts bitsShifted value calculation
* shifts bits value calculation
* ------ ----------- ------ -----------
* 1 0b01000000 128-64 128-Math.pow(2, 7-1)
* 2 0b01100000 128-32 128-Math.pow(2, 7-2)
@ -1428,22 +1428,22 @@ PDP10.opASH = function(op, acc)
* ...
* 7 0b01111111 128-1 128-Math.pow(2, 7-7)
*/
bitsShifted = PDP10.INT_LIMIT - Math.pow(2, 35-s);
bits = PDP10.INT_LIMIT - Math.pow(2, 35 - s);
}
if (w <= PDP10.MAX_POS36) {
/*
* Since w was positive, overflow occurs ONLY if any of the bits we shifted out were 1s.
* If all those bits in the original value (w) were 0s, then adding bitsShifted to it could NOT
* If all those bits in the original value (w) were 0s, then adding bits to it could NOT
* produce a value > MAX_POS36.
*/
if (w + bitsShifted > PDP10.MAX_POS36) this.regPS |= PDP10.PSFLAG.OVFL;
if (w + bits > PDP10.MAX_POS36) this.regPS |= PDP10.PSFLAG.OVFL;
} else {
/*
* Since w was negative, overflow occurs ONLY if any of the bits we shifted out were 0s.
* If all those bits in the original value (w) were 1s, subtracting bitsShifted from it could NOT
* If all those bits in the original value (w) were 1s, subtracting bits from it could NOT
* produce a value <= MAX_POS36.
*/
if (w - bitsShifted <= PDP10.MAX_POS36) this.regPS |= PDP10.PSFLAG.OVFL;
if (w - bits <= PDP10.MAX_POS36) this.regPS |= PDP10.PSFLAG.OVFL;
}
} else {
if (s <= -35) {
@ -1576,7 +1576,133 @@ PDP10.opJFFO = function(op, acc)
*/
PDP10.opASHC = function(op, acc)
{
this.opUndefined(op);
/*
* Convert the unsigned 18-bit value in regEA to a signed 8-bit value (+/-255).
*/
var s = ((this.regEA << 14) >> 14) % 256;
if (s) {
var bits;
var wLeft = this.readWord(acc);
var wRight = this.readWord((acc + 1) & 0o17);
if (s > 0) {
/*
* Handle all the left shift cases below, which don't need to worry about sign-extension
* but DO need to worry about overflow.
*/
var wLeftOrig = wLeft;
if (s >= 36) {
/*
* Since all wLeft bits are being shifted out, any positive value other than zero OR any negative value
* other than WORD_MASK indicates an overflow.
*/
if (wLeft > 0 && wLeft < PDP10.INT_LIMIT || wLeft > PDP10.INT_MASK && wLeft < PDP10.WORD_MASK) {
this.regPS |= PDP10.PSFLAG.OVFL;
}
if (s >= 71) {
/*
* Since all wRight bits are being shifted out, any positive value other than zero OR any negative value
* other than WORD_MASK indicates an overflow.
*/
if (wRight > 0 && wRight < PDP10.INT_LIMIT || wRight > PDP10.INT_MASK && wRight < PDP10.WORD_MASK) {
this.regPS |= PDP10.PSFLAG.OVFL;
}
wLeft = 0;
} else {
/*
* Left shift 36-70 bits.
*/
wLeft = (wRight * Math.pow(2, s - 35)) % PDP10.INT_LIMIT;
bits = PDP10.INT_LIMIT - Math.pow(2, 70 - s);
if (wLeftOrig <= PDP10.MAX_POS36) {
/*
* Since wLeft was positive, overflow occurs ONLY if any of the bits we shifted out were 1s.
* If all those bits in the original value were 0s, then adding bits to it could NOT produce
* a value > MAX_POS36.
*/
if (wRight + bits > PDP10.MAX_POS36) this.regPS |= PDP10.PSFLAG.OVFL;
} else {
/*
* Since wLeft was negative, overflow occurs ONLY if any of the bits we shifted out were 0s.
* If all those bits in the original value were 1s, subtracting bits from it could NOT produce
* a value <= MAX_POS36.
*/
if (wRight - bits <= PDP10.MAX_POS36) this.regPS |= PDP10.PSFLAG.OVFL;
}
}
wRight = 0;
if (wLeftOrig > PDP10.INT_MASK) {
wLeft += PDP10.INT_LIMIT;
wRight += PDP10.INT_LIMIT;
}
} else {
/*
* Left shift 1-35 bits.
*/
wLeft = ((wLeft * Math.pow(2, s)) % PDP10.INT_LIMIT) + Math.trunc((wRight % PDP10.INT_LIMIT) / Math.pow(2, 35 - s));
wRight = (wRight * Math.pow(2, s)) % PDP10.INT_LIMIT;
/*
* Determine overflow and update the sign bits.
*/
bits = PDP10.INT_LIMIT - Math.pow(2, 35 - s);
if (wLeftOrig <= PDP10.MAX_POS36) {
/*
* Since wLeft was positive, overflow occurs ONLY if any of the bits we shifted out were 1s.
* If all those bits in the original value were 0s, then adding bits to it could NOT produce
* a value > MAX_POS36.
*/
if (wLeftOrig + bits > PDP10.MAX_POS36) this.regPS |= PDP10.PSFLAG.OVFL;
} else {
/*
* Since wLeft was negative, overflow occurs ONLY if any of the bits we shifted out were 0s.
* If all those bits in the original value were 1s, subtracting bits from it could NOT produce
* a value <= MAX_POS36.
*/
if (wLeftOrig - bits <= PDP10.MAX_POS36) this.regPS |= PDP10.PSFLAG.OVFL;
/*
* Last but not least, update the sign bits of wLeft and wRight to indicate negative values.
*/
wLeft += PDP10.INT_LIMIT;
wRight += PDP10.INT_LIMIT;
}
}
} else {
/*
* Handle all the right shift cases below, which don't need to worry about overflow but DO
* need to worry about sign-extension.
*/
if (s <= -36) {
if (s <= -72) {
wRight = (wLeft > PDP10.INT_MASK? PDP10.WORD_MASK : 0);
} else {
wRight = Math.trunc((wLeft % PDP10.INT_LIMIT) / Math.pow(2, -s - 35));
}
if (wLeft <= PDP10.INT_MASK) {
wLeft = 0;
} else {
wLeft = PDP10.WORD_MASK;
wRight += PDP10.INT_LIMIT;
}
} else {
/*
* For this right shift of 1-35 bits, determine the value of bits shifted in from the left.
*/
bits = (wLeft > PDP10.INT_MASK? PDP10.WORD_LIMIT - Math.pow(2, 36 - s) : 0);
/*
* The bits that we add to wRight from wLeft must be shifted right one additional bit, because
* they must "skip over" the sign bit of wRight. This means we must zero the sign bit of wRight,
* which can be done by performing a "mod" with INT_LIMIT.
*/
wRight = Math.trunc((wRight % PDP10.INT_LIMIT) / Math.pow(2, -s)) + (((wLeft % PDP10.INT_LIMIT) * Math.pow(2, 35 + s)) % PDP10.INT_LIMIT);
wLeft = Math.trunc(wLeft / Math.pow(2, -s)) + bits;
/*
* Last but not least, we must set the sign of wRight to the sign of wLeft.
*/
if (wLeft > PDP10.INT_MASK) wRight += PDP10.INT_LIMIT;
}
}
this.writeWord(acc, wLeft);
this.writeWord((acc + 1) & 0o17, wRight);
}
};
/**
@ -1644,24 +1770,24 @@ PDP10.opLSHC = function(op, acc)
var wRight = this.readWord((acc + 1) & 0o17);
if (s > 0) {
if (s >= 36) {
wRight = 0;
if (s >= 72) {
wLeft = 0;
} else {
wLeft = (wRight * Math.pow(2, s - 36)) % PDP10.WORD_LIMIT;
}
wRight = 0;
} else {
wLeft = ((wLeft * Math.pow(2, s)) % PDP10.WORD_LIMIT) + Math.trunc(wRight / Math.pow(2, 36 - s));
wRight = (wRight * Math.pow(2, s)) % PDP10.WORD_LIMIT;
}
} else {
if (s <= -36) {
wLeft = 0;
if (s <= -72) {
wRight = 0;
} else {
wRight = Math.trunc(wLeft / Math.pow(2, -s - 36));
}
wLeft = 0;
} else {
wRight = Math.trunc(wRight / Math.pow(2, -s)) + ((wLeft * Math.pow(2, 36 + s)) % PDP10.WORD_LIMIT);
wLeft = Math.trunc(wLeft / Math.pow(2, -s));

View file

@ -109,17 +109,18 @@ var PDP10 = {
* values as unsigned quantities, these are the unsigned equivalents.
*/
WORD_INVALID: -1,
HALF_MASK: Math.pow(2, 18) - 1, // 262,143 (000000 777777): unsigned half-word mask
HALF_SHIFT: Math.pow(2, 18), // 262,144 (000001 000000): unsigned half-word shift
INT_MASK: Math.pow(2, 35) - 1, // 34,359,738,367 (377777 777777): signed word (magnitude) mask
INT_LIMIT: Math.pow(2, 35), // -34,359,738,368 (400000 000000): signed word (magnitude) limit
INT_LIMIT: Math.pow(2, 35), // 34,359,738,368 (400000 000000): signed word (magnitude) limit
WORD_MASK: Math.pow(2, 36) - 1, // 68,719,476,735 (777777 777777): unsigned word mask
WORD_LIMIT: Math.pow(2, 36), // 68,719,476,735 (1 000000 000000): unsigned word limit
HALF_MASK: Math.pow(2, 18) - 1, // unsigned half-word mask
HALF_SHIFT: Math.pow(2, 18), // unsigned half-word shift
WORD_LIMIT: Math.pow(2, 36), // 68,719,476,736 (1 000000 000000): unsigned word limit
MAX_POS18: Math.pow(2, 17) - 1, // 131,071 (377777)
MIN_NEG18: Math.pow(2, 17), // -131,072 (400000)
MAX_POS36: Math.pow(2, 35) - 1, // 34,359,738,367 (377777 777777)
MIN_NEG36: Math.pow(2, 35), // -34,359,738,368 (400000 000000)
TWO_POW36: Math.pow(2, 36), // the two's complement of a 36-bit value is (value? TWO_POW36 - value : 0)
TWO_POW32: Math.pow(2, 32),

View file

@ -154,7 +154,7 @@ class Int36 {
*
* The lower bound is ZERO and the upper bound is Int36.WORD_MASK. Whenever an Int36 value should be
* interpreted as a signed value, values above Int36.MAX_POS36 (ie, values with bit 35 set) should be
* converted to their signed counterpart by subtracting the value from Int36.BIT36 (aka WORD_MASK + 1);
* converted to their signed counterpart by subtracting the value from Int36.WORD_LIMIT (aka WORD_MASK + 1);
* the easiest way to do that is call isNeg() to check the sign bit and then call negate() as
* appropriate.
*
@ -314,7 +314,7 @@ class Int36 {
* because after 52 bits, JavaScript will start dropping least-significant bits. Until
* then, you're better off sticking with octal (see above).
*/
value = extended * Int36.BIT36 + value;
value = extended * Int36.WORD_LIMIT + value;
}
return value.toString(radix);
}
@ -380,10 +380,10 @@ class Int36 {
this.error = Int36.ERROR.NONE;
if (result < 0) {
result += Int36.BIT36;
result += Int36.WORD_LIMIT;
}
result %= Int36.BIT36;
result %= Int36.WORD_LIMIT;
/*
* We don't actually need to know what the operand was to determine overflow or underflow
@ -401,7 +401,7 @@ class Int36 {
*/
var e = 0;
if (DEBUG) {
var v = this.value / Int36.BIT35, r = result / Int36.BIT35, o = operand / Int36.BIT35;
var v = this.value / Int36.INT_LIMIT, r = result / Int36.INT_LIMIT, o = operand / Int36.INT_LIMIT;
e = ((v ^ r) & (o ^ (fSub? v : r))) & 1;
}
if ((result > Int36.MAX_POS36) != (this.value > Int36.MAX_POS36)) {
@ -503,31 +503,31 @@ class Int36 {
this.error = Int36.ERROR.NONE;
if (n1 > Int36.MAX_POS36) {
n1 = Int36.BIT36 - n1;
n1 = Int36.WORD_LIMIT - n1;
fNeg = !fNeg;
}
if (n2 > Int36.MAX_POS36) {
n2 = Int36.BIT36 - n2;
n2 = Int36.WORD_LIMIT - n2;
fNeg = !fNeg;
}
if (n1 < Int36.BIT18 && n2 < Int36.BIT18) {
if (n1 < Int36.HALF_SHIFT && n2 < Int36.HALF_SHIFT) {
value = n1 * n2;
extended = 0;
}
else {
var n1d1 = (n1 % Int36.BIT18);
var n1d2 = Math.trunc(n1 / Int36.BIT18);
var n2d1 = (n2 % Int36.BIT18);
var n2d2 = Math.trunc(n2 / Int36.BIT18);
var n1d1 = (n1 % Int36.HALF_SHIFT);
var n1d2 = Math.trunc(n1 / Int36.HALF_SHIFT);
var n2d1 = (n2 % Int36.HALF_SHIFT);
var n2d2 = Math.trunc(n2 / Int36.HALF_SHIFT);
var m1d1 = n1d1 * n2d1;
var m1d2 = (n1d2 * n2d1) + Math.trunc(m1d1 / Int36.BIT18);
extended = Math.trunc(m1d2 / Int36.BIT18);
m1d2 = (m1d2 % Int36.BIT18) + (n1d1 * n2d2);
value = (m1d2 * Int36.BIT18) + (m1d1 % Int36.BIT18);
extended += Math.trunc(m1d2 / Int36.BIT18) + (n1d2 * n2d2);
var m1d2 = (n1d2 * n2d1) + Math.trunc(m1d1 / Int36.HALF_SHIFT);
extended = Math.trunc(m1d2 / Int36.HALF_SHIFT);
m1d2 = (m1d2 % Int36.HALF_SHIFT) + (n1d1 * n2d2);
value = (m1d2 * Int36.HALF_SHIFT) + (m1d1 % Int36.HALF_SHIFT);
extended += Math.trunc(m1d2 / Int36.HALF_SHIFT) + (n1d2 * n2d2);
}
this.value = this.truncate(value);
@ -585,7 +585,7 @@ class Int36 {
var fNegQ = false, fNegR = false;
if (divisor > Int36.MAX_POS36) {
divisor = Int36.BIT36 - divisor;
divisor = Int36.WORD_LIMIT - divisor;
fNegQ = !fNegQ;
}
@ -649,7 +649,7 @@ class Int36 {
this.reduce();
if (fNegR && this.remainder) {
this.remainder = Int36.BIT36 - this.remainder;
this.remainder = Int36.WORD_LIMIT - this.remainder;
}
}
@ -687,13 +687,13 @@ class Int36 {
/*
* Convert the unsigned word (w) to a signed value (i), for convenience.
*/
var i = w > Int36.MAX_POS36? -(Int36.BIT36 - w) : w;
var i = w > Int36.MAX_POS36? -(Int36.WORD_LIMIT - w) : w;
if (s > 0) {
if (s >= 35) {
i = (i < 0? Int36.BIT35 : 0);
i = (i < 0? Int36.INT_LIMIT : 0);
bitsShifted = Int36.MAX_POS36;
} else {
i = (i * Math.pow(2, s)) % Int36.BIT35;
i = (i * Math.pow(2, s)) % Int36.INT_LIMIT;
/*
* bitsShifted must be set to the mask of all magnitude bits shifted out of
* the original word. Using 8-bit signed words as an example, this table shows
@ -707,7 +707,7 @@ class Int36 {
* ...
* 7 0b01111111 128-1 128-Math.pow(2, 7-7)
*/
bitsShifted = Int36.BIT35 - Math.pow(2, 35 - s);
bitsShifted = Int36.INT_LIMIT - Math.pow(2, 35 - s);
}
if (w <= Int36.MAX_POS36) {
/*
@ -731,14 +731,134 @@ class Int36 {
i = Math.trunc(i / Math.pow(2, -s));
}
}
w = (i < 0? i + Int36.BIT36 : i);
w = (i < 0? i + Int36.WORD_LIMIT : i);
this.value = w;
}
else {
/*
* Simulate opASHC()
*/
console.log("ASHC unimplemented");
var bits;
var wRight = this.value;
var wLeft = this.extended;
if (s > 0) {
/*
* Handle all the left shift cases below, which don't need to worry about sign-extension
* but DO need to worry about overflow.
*/
var wLeftOrig = wLeft;
if (s >= 36) {
/*
* Since all wLeft bits are being shifted out, any positive value other than zero OR any negative value
* other than WORD_MASK indicates an overflow.
*/
if (wLeft > 0 && wLeft < Int36.INT_LIMIT || wLeft > Int36.INT_MASK && wLeft < Int36.WORD_MASK) {
this.error |= Int36.ERROR.OVERFLOW;
}
if (s >= 71) {
/*
* Since all wRight bits are being shifted out, any positive value other than zero OR any negative value
* other than WORD_MASK indicates an overflow.
*/
if (wRight > 0 && wRight < Int36.INT_LIMIT || wRight > Int36.INT_MASK && wRight < Int36.WORD_MASK) {
this.error |= Int36.ERROR.OVERFLOW;
}
wLeft = 0;
} else {
/*
* Left shift 36-70 bits.
*/
wLeft = (wRight * Math.pow(2, s - 35)) % Int36.INT_LIMIT;
bits = Int36.INT_LIMIT - Math.pow(2, 70 - s);
if (wLeftOrig <= Int36.MAX_POS36) {
/*
* Since wLeft was positive, overflow occurs ONLY if any of the bits we shifted out were 1s.
* If all those bits in the original value were 0s, then adding bits to it could NOT produce
* a value > MAX_POS36.
*/
if (wRight + bits > Int36.MAX_POS36) this.error |= Int36.ERROR.OVERFLOW;
} else {
/*
* Since wLeft was negative, overflow occurs ONLY if any of the bits we shifted out were 0s.
* If all those bits in the original value were 1s, subtracting bits from it could NOT produce
* a value <= MAX_POS36.
*/
if (wRight - bits <= Int36.MAX_POS36) this.error |= Int36.ERROR.OVERFLOW;
}
}
wRight = 0;
if (wLeftOrig > Int36.INT_MASK) {
wLeft += Int36.INT_LIMIT;
wRight += Int36.INT_LIMIT;
}
} else {
/*
* Left shift 1-35 bits.
*/
wLeft = ((wLeft * Math.pow(2, s)) % Int36.INT_LIMIT) + Math.trunc((wRight % Int36.INT_LIMIT) / Math.pow(2, 35 - s));
wRight = (wRight * Math.pow(2, s)) % Int36.INT_LIMIT;
/*
* Determine overflow and update the sign bits.
*/
bits = Int36.INT_LIMIT - Math.pow(2, 35 - s);
if (wLeftOrig <= Int36.MAX_POS36) {
/*
* Since wLeft was positive, overflow occurs ONLY if any of the bits we shifted out were 1s.
* If all those bits in the original value were 0s, then adding bits to it could NOT produce
* a value > MAX_POS36.
*/
if (wLeftOrig + bits > Int36.MAX_POS36) this.error |= Int36.ERROR.OVERFLOW;
} else {
/*
* Since wLeft was negative, overflow occurs ONLY if any of the bits we shifted out were 0s.
* If all those bits in the original value were 1s, subtracting bits from it could NOT produce
* a value <= MAX_POS36.
*/
if (wLeftOrig - bits <= Int36.MAX_POS36) this.error |= Int36.ERROR.OVERFLOW;
/*
* Last but not least, update the sign bits of wLeft and wRight to indicate negative values.
*/
wLeft += Int36.INT_LIMIT;
wRight += Int36.INT_LIMIT;
}
}
} else {
/*
* Handle all the right shift cases below, which don't need to worry about overflow but DO
* need to worry about sign-extension.
*/
if (s <= -36) {
if (s <= -72) {
wRight = (wLeft > Int36.INT_MASK? Int36.WORD_MASK : 0);
} else {
wRight = Math.trunc((wLeft % Int36.INT_LIMIT) / Math.pow(2, -s - 35));
}
if (wLeft <= Int36.INT_MASK) {
wLeft = 0;
} else {
wLeft = Int36.WORD_MASK;
wRight += Int36.INT_LIMIT;
}
} else {
/*
* For this right shift of 1-35 bits, determine the value of bits shifted in from the left.
*/
bits = (wLeft > Int36.INT_MASK? Int36.WORD_LIMIT - Math.pow(2, 36 - s) : 0);
/*
* The bits that we add to wRight from wLeft must be shifted right one additional bit, because
* they must "skip over" the sign bit of wRight. This means we must zero the sign bit of wRight,
* which can be done by performing a "mod" with INT_LIMIT.
*/
wRight = Math.trunc((wRight % Int36.INT_LIMIT) / Math.pow(2, -s)) + (((wLeft % Int36.INT_LIMIT) * Math.pow(2, 35 + s)) % Int36.INT_LIMIT);
wLeft = Math.trunc(wLeft / Math.pow(2, -s)) + bits;
/*
* Last but not least, we must set the sign of wRight to the sign of wLeft.
*/
if (wLeft > Int36.INT_MASK) wRight += Int36.INT_LIMIT;
}
}
this.value = wRight;
this.extended = wLeft;
}
}
}
@ -775,7 +895,7 @@ class Int36 {
if (s >= 36) {
w = 0;
} else {
w = (w * Math.pow(2, s)) % Int36.BIT36;
w = (w * Math.pow(2, s)) % Int36.WORD_LIMIT;
}
} else {
if (s <= -36) {
@ -794,11 +914,11 @@ class Int36 {
if (s >= 72) {
wLeft = 0;
} else {
wLeft = (wRight * Math.pow(2, s - 36)) % Int36.BIT36;
wLeft = (wRight * Math.pow(2, s - 36)) % Int36.WORD_LIMIT;
}
} else {
wLeft = ((wLeft * Math.pow(2, s)) % Int36.BIT36) + Math.trunc(wRight / Math.pow(2, 36 - s));
wRight = (wRight * Math.pow(2, s)) % Int36.BIT36;
wLeft = ((wLeft * Math.pow(2, s)) % Int36.WORD_LIMIT) + Math.trunc(wRight / Math.pow(2, 36 - s));
wRight = (wRight * Math.pow(2, s)) % Int36.WORD_LIMIT;
}
} else {
if (s <= -36) {
@ -809,7 +929,7 @@ class Int36 {
wRight = Math.trunc(wLeft / Math.pow(2, -s - 36));
}
} else {
wRight = Math.trunc(wRight / Math.pow(2, -s)) + ((wLeft * Math.pow(2, 36 + s)) % Int36.BIT36);
wRight = Math.trunc(wRight / Math.pow(2, -s)) + ((wLeft * Math.pow(2, 36 + s)) % Int36.WORD_LIMIT);
wLeft = Math.trunc(wLeft / Math.pow(2, -s));
}
}
@ -853,7 +973,7 @@ class Int36 {
* Note that a right rotation (s < 0) of s bits is equivalent to a left rotation (s > 0) of 36 + s bits.
*/
if (s < 0) s = 36 + s;
w = ((w * Math.pow(2, s)) % Int36.BIT36) + Math.trunc(w / Math.pow(2, 36 - s));
w = ((w * Math.pow(2, s)) % Int36.WORD_LIMIT) + Math.trunc(w / Math.pow(2, 36 - s));
this.value = w;
}
}
@ -871,11 +991,11 @@ class Int36 {
*/
if (s < 0) s = 72 + s;
if (s < 36) {
wLeft = ((wLeft * Math.pow(2, s)) % Int36.BIT36) + Math.trunc(wRight / Math.pow(2, 36 - s));
wRight = ((wRight * Math.pow(2, s)) % Int36.BIT36) + Math.trunc(wLeftOrig / Math.pow(2, 36 - s));
wLeft = ((wLeft * Math.pow(2, s)) % Int36.WORD_LIMIT) + Math.trunc(wRight / Math.pow(2, 36 - s));
wRight = ((wRight * Math.pow(2, s)) % Int36.WORD_LIMIT) + Math.trunc(wLeftOrig / Math.pow(2, 36 - s));
} else {
wLeft = ((wRight * Math.pow(2, s - 36)) % Int36.BIT36) + Math.trunc(wLeft / Math.pow(2, 72 - s));
wRight = ((wLeftOrig * Math.pow(2, s - 36)) % Int36.BIT36) + Math.trunc(wRight / Math.pow(2, 72 - s));
wLeft = ((wRight * Math.pow(2, s - 36)) % Int36.WORD_LIMIT) + Math.trunc(wLeft / Math.pow(2, 72 - s));
wRight = ((wLeftOrig * Math.pow(2, s - 36)) % Int36.WORD_LIMIT) + Math.trunc(wRight / Math.pow(2, 72 - s));
}
this.value = wRight;
this.extended = wLeft;
@ -960,13 +1080,13 @@ class Int36 {
/*
* Perform two's complement on the extended value.
*/
if (this.extended) this.extended = Int36.BIT36 - this.extended;
if (this.extended) this.extended = Int36.WORD_LIMIT - this.extended;
}
/*
* Perform two's complement on the value.
*/
if (this.value) {
this.value = Int36.BIT36 - this.value;
this.value = Int36.WORD_LIMIT - this.value;
}
}
@ -1017,8 +1137,8 @@ class Int36 {
{
dDst[0] += dSrc[0];
dDst[1] += dSrc[1];
if (dDst[0] >= Int36.BIT36) {
dDst[0] %= Int36.BIT36;
if (dDst[0] >= Int36.WORD_LIMIT) {
dDst[0] %= Int36.WORD_LIMIT;
dDst[1]++;
}
}
@ -1049,7 +1169,7 @@ class Int36 {
static shrD(dDst)
{
if (dDst[1] % 2) {
dDst[0] += Int36.BIT36;
dDst[0] += Int36.WORD_LIMIT;
}
dDst[0] = Math.trunc(dDst[0] / 2);
dDst[1] = Math.trunc(dDst[1] / 2);
@ -1068,7 +1188,7 @@ class Int36 {
dDst[0] -= dSrc[0];
dDst[1] -= dSrc[1];
if (dDst[0] < 0) {
dDst[0] += Int36.BIT36;
dDst[0] += Int36.WORD_LIMIT;
dDst[1]--;
}
}
@ -1093,7 +1213,7 @@ class Int36 {
*/
static octal(value)
{
if (value < 0) value += Int36.BIT36;
if (value < 0) value += Int36.WORD_LIMIT;
return ("00000000000" + value.toString(8)).slice(-12);
}
@ -1114,7 +1234,7 @@ class Int36 {
* within the acceptable range. Any values outside that range will be dealt with afterward.
*/
if (num < 0 && num >= -Int36.MIN_NEG36) {
num += Int36.BIT36;
num += Int36.WORD_LIMIT;
}
var value = Math.trunc(Math.abs(num)) % Math.pow(2, bits);
if (DEBUG && num !== value) {
@ -1131,13 +1251,16 @@ Int36.ERROR = {
DIVZERO: 0x4
};
Int36.BIT18 = Math.pow(2, 18); // 262,144
Int36.BIT35 = Math.pow(2, 35); // 34,359,738,368 (aka the sign bit)
Int36.BIT36 = Math.pow(2, 36); // 68,719,476,736
Int36.HALF_MASK = Math.pow(2, 18) - 1; // 262,143 (000000 777777): unsigned half-word mask
Int36.HALF_SHIFT = Math.pow(2, 18); // 262,144 (000001 000000): unsigned half-word shift
Int36.INT_MASK = Math.pow(2, 35) - 1; // 34,359,738,367 (377777 777777): signed word (magnitude) mask
Int36.INT_LIMIT = Math.pow(2, 35); // 34,359,738,368 (400000 000000): signed word (magnitude) limit
Int36.WORD_MASK = Math.pow(2, 36) - 1; // 68,719,476,735
Int36.WORD_LIMIT = Math.pow(2, 36); // 68,719,476,736 (1 000000 000000): unsigned word limit
Int36.MAX_POS36 = Math.pow(2, 35) - 1; // 34,359,738,367 (377777 777777)
Int36.MIN_NEG36 = Math.pow(2, 35); // -34,359,738,368 (400000 000000)
Int36.WORD_MASK = Math.pow(2, 36) - 1; // 68,719,476,735
Int36.MAX_POS18 = Math.pow(2, 17) - 1; // 131,071 (377777)
Int36.MIN_NEG18 = Math.pow(2, 17); // -131,072 (400000)
Int36.MAX_POS36 = Math.pow(2, 35) - 1; // 34,359,738,367 (377777 777777)
Int36.MIN_NEG36 = Math.pow(2, 35); // -34,359,738,368 (400000 000000)
if (NODE) module.exports = Int36;

View file

@ -27,211 +27,212 @@
http://pcjs.org/modules/shared/lib/debugger.js (C) Jeff Parsons 2012-2017
http://pcjs.org/modules/pdp10/lib/debugger.js (C) Jeff Parsons 2012-2017
*/
var l,ga="function"==typeof Object.defineProperties?Object.defineProperty:function(a,b,c){if(c.get||c.set)throw new TypeError("ES3 does not support getters and setters.");a!=Array.prototype&&a!=Object.prototype&&(a[b]=c.value)},ha="undefined"!=typeof window&&window===this?this:"undefined"!=typeof global?global:this;function ia(){ia=function(){};ha.Symbol||(ha.Symbol=ja)}var ka=0;function ja(a){return"jscomp_symbol_"+(a||"")+ka++}
function la(){ia();var a=ha.Symbol.iterator;a||(a=ha.Symbol.iterator=ha.Symbol("iterator"));"function"!=typeof Array.prototype[a]&&ga(Array.prototype,a,{configurable:!0,writable:!0,value:function(){return ma(this)}});la=function(){}}function ma(a){var b=0;return na(function(){return b<a.length?{done:!1,value:a[b++]}:{done:!0}})}function na(a){la();a={next:a};a[ha.Symbol.iterator]=function(){return this};return a}
function p(a,b){function c(){}c.prototype=b.prototype;a.prototype=new c;a.prototype.constructor=a;for(var d in b)if(Object.defineProperties){var e=Object.getOwnPropertyDescriptor(b,d);e&&Object.defineProperty(a,d,e)}else a[d]=b[d]}function qa(a,b){if(b){var c=ha;a=a.split(".");for(var d=0;d<a.length-1;d++){var e=a[d];e in c||(c[e]={});c=c[e]}a=a[a.length-1];d=c[a];b=b(d);b!=d&&null!=b&&ga(c,a,{configurable:!0,writable:!0,value:b})}}
qa("Math.trunc",function(a){return a?a:function(a){a=Number(a);if(isNaN(a)||Infinity===a||-Infinity===a||!a)return a;var b=Math.floor(Math.abs(a));return 0>a?-b:b}});qa("Math.log2",function(a){return a?a:function(a){return Math.log(a)/Math.LN2}});
var ra=Math.pow(2,36),sa=Math.pow(2,35),q={Zb:0,rb:1,ac:2,bc:3,cc:4,dc:5,ec:6,fc:7,cb:8,gc:9,sb:10,hc:11,ic:12,tb:13,jc:14,kc:15,lc:16,mc:17,nc:18,oc:19,pc:20,qc:21,rc:22,sc:23,tc:24,uc:25,vc:26," ":32,"!":33,'"':34,"#":35,$:36,"%":37,"&":38,"'":39,"(":40,")":41,"*":42,"+":43,",":44,"-":45,".":46,"/":47,0:48,1:49,2:50,3:51,4:52,5:53,6:54,7:55,8:56,9:57,":":58,";":59,"<":60,"=":61,">":62,"?":63,"@":64,bb:65,Yb:66,$b:67,wc:68,E:69,xc:70,yc:71,zc:72,Ac:73,Bc:74,Cc:75,Dc:76,Ec:77,Fc:78,Gc:79,Hc:80,Q:81,
var l,aa="function"==typeof Object.defineProperties?Object.defineProperty:function(a,b,c){if(c.get||c.set)throw new TypeError("ES3 does not support getters and setters.");a!=Array.prototype&&a!=Object.prototype&&(a[b]=c.value)},ba="undefined"!=typeof window&&window===this?this:"undefined"!=typeof global?global:this;function ia(){ia=function(){};ba.Symbol||(ba.Symbol=ja)}var ka=0;function ja(a){return"jscomp_symbol_"+(a||"")+ka++}
function la(){ia();var a=ba.Symbol.iterator;a||(a=ba.Symbol.iterator=ba.Symbol("iterator"));"function"!=typeof Array.prototype[a]&&aa(Array.prototype,a,{configurable:!0,writable:!0,value:function(){return ma(this)}});la=function(){}}function ma(a){var b=0;return na(function(){return b<a.length?{done:!1,value:a[b++]}:{done:!0}})}function na(a){la();a={next:a};a[ba.Symbol.iterator]=function(){return this};return a}
function p(a,b){function c(){}c.prototype=b.prototype;a.prototype=new c;a.prototype.constructor=a;for(var d in b)if(Object.defineProperties){var e=Object.getOwnPropertyDescriptor(b,d);e&&Object.defineProperty(a,d,e)}else a[d]=b[d]}function oa(a,b){if(b){var c=ba;a=a.split(".");for(var d=0;d<a.length-1;d++){var e=a[d];e in c||(c[e]={});c=c[e]}a=a[a.length-1];d=c[a];b=b(d);b!=d&&null!=b&&aa(c,a,{configurable:!0,writable:!0,value:b})}}
oa("Math.trunc",function(a){return a?a:function(a){a=Number(a);if(isNaN(a)||Infinity===a||-Infinity===a||!a)return a;var b=Math.floor(Math.abs(a));return 0>a?-b:b}});oa("Math.log2",function(a){return a?a:function(a){return Math.log(a)/Math.LN2}});
var pa=Math.pow(2,36),qa=Math.pow(2,35),ta={Zb:0,rb:1,ac:2,bc:3,cc:4,dc:5,ec:6,fc:7,cb:8,gc:9,sb:10,hc:11,ic:12,tb:13,jc:14,kc:15,lc:16,mc:17,nc:18,oc:19,pc:20,qc:21,rc:22,sc:23,tc:24,uc:25,vc:26," ":32,"!":33,'"':34,"#":35,$:36,"%":37,"&":38,"'":39,"(":40,")":41,"*":42,"+":43,",":44,"-":45,".":46,"/":47,0:48,1:49,2:50,3:51,4:52,5:53,6:54,7:55,8:56,9:57,":":58,";":59,"<":60,"=":61,">":62,"?":63,"@":64,bb:65,Yb:66,$b:67,wc:68,E:69,xc:70,yc:71,zc:72,Ac:73,Bc:74,Cc:75,Dc:76,Ec:77,Fc:78,Gc:79,Hc:80,Q:81,
Ic:82,Jc:83,Kc:84,Lc:85,Mc:86,Nc:87,Oc:88,Pc:89,xb:90,"[":91,"\\":92,"]":93,"^":94,_:95,"`":96,Qc:97,Rc:98,Sc:99,d:100,e:101,Tc:102,Uc:103,Vc:104,Wc:105,Xc:106,k:107,Yc:108,Zc:109,n:110,$c:111,p:112,q:113,r:114,ad:115,t:116,cd:117,dd:118,ed:119,x:120,y:121,z:122,"{":123,"|":124,"}":125,"~":126,ub:127};
function ta(a,b){var c;if(a){b||(b=10);var d=a.charAt(0),e=0<a.indexOf(",");e&&(a=a.replace(/,/g,""));"#"==d?(b=8,d=null):"$"==d&&(b=16,d=null);null==d?a=a.substr(1):("0"==d&&(d=a.charAt(1),"b"==d&&e&&(b=2,d=null),"o"==d?(b=8,d=null):"x"==d&&(b=16,d=null)),null==d?a=a.substr(2):(d=a.charAt(a.length-1).toLowerCase(),"y"==d?(b=2,d=null):"."==d?(b=10,d=null):"h"==d&&(b=16,d=null),null==d&&(a=a.substr(0,a.length-1))));var g,d=a;((e=b)&&10!=e?16==e?d.match(/^[0-9a-f]+$/i):8==e?d.match(/^[0-7]+$/):2==e&&
d.match(/^[01]+$/):d.match(/^[0-9]+$/))&&!isNaN(g=parseInt(a,b))&&(c=g)}return c}function ua(a,b,c,d){var e="";if(null==a||isNaN(a))for(;0<c--;)e="?"+e;else for(0>a&&-1<a&&(a=-1);0<c--;){var g=a%b,g=g+(0<=g&&9>=g?48:55),e=String.fromCharCode(g)+e;a=Math.trunc(a/b)}return(void 0===d?"":d)+e}function va(a,b,c){b?12<b&&(b=12):b=a&-16777216?11:a&-65536?8:6;return ua(a,8,b,c?"0o":"")}function t(a,b,c){b?9<b&&(b=9):b=a&-65536?8:4;return ua(a,16,b,c?"0x":"")}
function wa(a){var b=a,c=a.lastIndexOf("/");0<=c&&(b=a.substr(c+1));c=b.indexOf("&");0<c&&(b=b.substr(0,c));return b}function xa(a){var b="",c=a.lastIndexOf(".");0<=c&&(b=a.substr(c+1).toLowerCase());return b}function ya(){var a=Ea();return-1!==a.indexOf("pcjs.org",a.length-8)}function Fa(a){return a.replace(/[&<>"']/g,function(a){return Ga[a]})}function Ha(a,b){return(a+" ").slice(0,b)}
function Ia(a){return String.prototype.trim?a.trim():a.replace(/^\s+|\s+$/g,"")}var Ga={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#039;"};function Ja(a,b,c){var d=0,e=a.length,g=0;for(c||(c=function(a,b){return a>b?1:a<b?-1:0});d<e;){var f=d+e>>1,h;h=c(b,a[f]);0<h?d=f+1:(e=f,g=!h)}return g?d:~d}function Ka(){function a(a){return(10>a?"0":"")+a}var b=new Date;return b.getFullYear()+"-"+a(b.getMonth()+1)+"-"+a(b.getDate())+" "+a(b.getHours())+":"+a(b.getMinutes())+":"+a(b.getSeconds())}
function La(a,b,c,d){c=void 0===c?!1:c;var e=0,g=null,f=null;if("object"==typeof resources&&(g=resources[a]))return d&&d(a,g,e),[g,e];if(c&&"function"==typeof resources)return resources(a,function(b,c){d&&d(a,b,c)}),f;var h=window.XMLHttpRequest?new window.XMLHttpRequest:new window.ActiveXObject("Microsoft.XMLHTTP");c&&(h.onreadystatechange=function(){4===h.readyState&&(g=h.responseText,200==h.status||!h.status&&g.length&&"file:"==(window?window.location.protocol:"file:")||(e=h.status||-1),d&&d(a,
function ua(a,b){var c;if(a){b||(b=10);var d=a.charAt(0),e=0<a.indexOf(",");e&&(a=a.replace(/,/g,""));"#"==d?(b=8,d=null):"$"==d&&(b=16,d=null);null==d?a=a.substr(1):("0"==d&&(d=a.charAt(1),"b"==d&&e&&(b=2,d=null),"o"==d?(b=8,d=null):"x"==d&&(b=16,d=null)),null==d?a=a.substr(2):(d=a.charAt(a.length-1).toLowerCase(),"y"==d?(b=2,d=null):"."==d?(b=10,d=null):"h"==d&&(b=16,d=null),null==d&&(a=a.substr(0,a.length-1))));var g,d=a;((e=b)&&10!=e?16==e?d.match(/^[0-9a-f]+$/i):8==e?d.match(/^[0-7]+$/):2==e&&
d.match(/^[01]+$/):d.match(/^[0-9]+$/))&&!isNaN(g=parseInt(a,b))&&(c=g)}return c}function va(a,b,c,d){var e="";if(null==a||isNaN(a))for(;0<c--;)e="?"+e;else for(0>a&&-1<a&&(a=-1);0<c--;){var g=a%b,g=g+(0<=g&&9>=g?48:55),e=String.fromCharCode(g)+e;a=Math.trunc(a/b)}return(void 0===d?"":d)+e}function wa(a,b,c){b?12<b&&(b=12):b=a&-16777216?11:a&-65536?8:6;return va(a,8,b,c?"0o":"")}function q(a,b,c){b?9<b&&(b=9):b=a&-65536?8:4;return va(a,16,b,c?"0x":"")}
function xa(a){var b=a,c=a.lastIndexOf("/");0<=c&&(b=a.substr(c+1));c=b.indexOf("&");0<c&&(b=b.substr(0,c));return b}function ya(a){var b="",c=a.lastIndexOf(".");0<=c&&(b=a.substr(c+1).toLowerCase());return b}function za(){var a=Aa();return-1!==a.indexOf("pcjs.org",a.length-8)}function Ga(a){return a.replace(/[&<>"']/g,function(a){return Ha[a]})}function Ia(a,b){return(a+" ").slice(0,b)}
function Ja(a){return String.prototype.trim?a.trim():a.replace(/^\s+|\s+$/g,"")}var Ha={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#039;"};function Ka(a,b,c){var d=0,e=a.length,g=0;for(c||(c=function(a,b){return a>b?1:a<b?-1:0});d<e;){var f=d+e>>1,h;h=c(b,a[f]);0<h?d=f+1:(e=f,g=!h)}return g?d:~d}function La(){function a(a){return(10>a?"0":"")+a}var b=new Date;return b.getFullYear()+"-"+a(b.getMonth()+1)+"-"+a(b.getDate())+" "+a(b.getHours())+":"+a(b.getMinutes())+":"+a(b.getSeconds())}
function Ma(a,b,c,d){c=void 0===c?!1:c;var e=0,g=null,f=null;if("object"==typeof resources&&(g=resources[a]))return d&&d(a,g,e),[g,e];if(c&&"function"==typeof resources)return resources(a,function(b,c){d&&d(a,b,c)}),f;var h=window.XMLHttpRequest?new window.XMLHttpRequest:new window.ActiveXObject("Microsoft.XMLHTTP");c&&(h.onreadystatechange=function(){4===h.readyState&&(g=h.responseText,200==h.status||!h.status&&g.length&&"file:"==(window?window.location.protocol:"file:")||(e=h.status||-1),d&&d(a,
g,e))});if(b&&"object"==typeof b){var k="",m;for(m in b)b.hasOwnProperty(m)&&(k&&(k+="&"),k+=m+"="+encodeURIComponent(b[m]));k=k.replace(/%20/g,"+");h.open("POST",a,c);h.setRequestHeader("Content-type","application/x-www-form-urlencoded");h.send(k)}else h.open("GET",a,c),"bytes"==b&&h.overrideMimeType("text/plain; charset=x-user-defined"),h.send();c||(g=h.responseText,200!=h.status&&(e=h.status||-1),d&&d(a,g,e),f=[g,e]);return f}
function Ma(a,b){var c,d={Y:null,T:null,na:null,ma:null};if("["==b.charAt(0)||"{"==b.charAt(0))try{var e,g,f;if("<"==b.substr(0,1))throw Error(b);f=0>b.indexOf("0x")&&0>b.indexOf("0o")&&'["'!=b.substr(0,2)?JSON.parse(b.replace(/([a-z]+):/gm,'"$1":').replace(/\/\/[^\n]*/gm,"")):eval("("+b+")");d.na=f.load;d.ma=f.exec;if(e=f.bytes)d.Y=e;else if(e=f.words)for(d.Y=Array(2*e.length),g=c=0;c<e.length;c++)d.Y[g++]=e[c]&255,d.Y[g++]=e[c]>>8&255;else if(e=f.longs)for(d.Y=Array(4*e.length),g=c=0;c<e.length;c++)d.Y[g++]=
e[c]&255,d.Y[g++]=e[c]>>8&255,d.Y[g++]=e[c]>>16&255,d.Y[g++]=e[c]>>24&255;else(e=f.data)?d.Ca=e:d.Y=f;d.Y&&(d.Y.length?1==d.Y.length&&(u(d.Y[0]),d=null):(u("Empty resource: "+a),d=null));d.T=f.symbols}catch(h){u("Resource data error ("+a+"): "+h.message),d=null}else{e=[];b=b.replace(/\n/gm," ").replace(/ +$/,"").split(" ");for(c=0;c<b.length;c++){g=parseInt(b[c],16);if(isNaN(g)){u("Resource data error ("+a+"): invalid hex byte ("+b[c]+")");break}e.push(g&255)}c==b.length&&(d.Y=e)}return d}
function Ea(){return"http://"+(window?window.location.host:"www.pcjs.org")}function Na(){if(null==Oa){var a=!1;if(window)try{window.localStorage.setItem("PCjs.localStorage","PCjs.localStorage"),a="PCjs.localStorage"==window.localStorage.getItem("PCjs.localStorage"),window.localStorage.removeItem("PCjs.localStorage")}catch(b){a=!1}Oa=a}return Oa}function Xa(a){var b;if(window)try{b=window.localStorage.getItem(a)}catch(c){}return b}
function Ya(a,b){try{return window.localStorage.setItem(a,b),!0}catch(c){}return!1}function Za(a){if(window){var b=window?window.navigator.userAgent:"";return"iOS"==a&&!!b.match(/(iPod|iPhone|iPad)/)&&!!b.match(/AppleWebKit/)||"MSIE"==a&&!!b.match(/(MSIE|Trident)/)||0<=b.indexOf(a)}return!1}
function $a(a){if(!ab){var b,c={};if(window){b||(b=window.location.search.substr(1));for(var d,e=/\+/g,g=/([^&=]+)=?([^&]*)/g;d=g.exec(b);)c[decodeURIComponent(d[1].replace(e," "))]=decodeURIComponent(d[2].replace(e," "))}ab=c}return ab[a]}function bb(a,b,c){function d(){--a;0<=a&&(b()||(a=0));0<a?setTimeout(d,0):c()}d()}
function cb(a,b){function c(){b(100===d)&&(e=setTimeout(c,d),d=100)}var d=0,e=null,g=!1;a.onmousedown=function(){g||e||(d=500,c())};a.ontouchstart=function(){e||(d=500,c())};a.onmouseup=a.onmouseout=function(){e&&(clearTimeout(e),e=null)};a.ontouchend=a.ontouchcancel=function(){e&&(clearTimeout(e),e=null);g=!0}}function db(a,b){if(window){var c=window[a];window[a]="function"!==typeof c?b:function(){c&&c();b()}}}function eb(a){fb.init.push(a)}
function gb(a){if(hb)try{for(var b=0;b<a.length;b++)a[b]()}catch(c){u(""+("An unexpected exception occurred:\n\n"+c.message+"\n\nPlease send this information to support@pcjs.org. Thanks."))}}function ib(a){!hb&&a?(hb=!0,jb&&kb("init"),lb&&kb("show")):hb=a}function kb(a){fb[a]&&gb(fb[a])}var ab=null,fb={init:[],show:[],exit:[]},jb=!1,lb=!1,hb=!0,Oa=null;db("onload",function(){jb=!0;gb(fb.init)});db("onpageshow",function(){lb=!0;gb(fb.show)});db(Za("Opera")||Za("iOS")?"onunload":"onbeforeunload",function(){gb(fb.exit)});
function v(a,b,c){this.type=a;b||(b={id:"",name:""});this.id=b.id||"";this.name=b.name;this.gb=b.comment;this.wb=b;this.exports={};this.I=this.bindings={};a=this.id.indexOf(".");0>a?this.Ka=this.id:(this.La=this.id.substr(0,a),this.Ka=this.id.substr(a+1));this.v={ready:!1,Fa:!1,Xa:!1,U:!1,error:!1};this.Oa=null;this.v.error=!1;this.X=c||0;this.D=this.u=this.H=this.F=this.oa=null;w.push(this)}function mb(a,b,c){ob[a]&&b&&(ob[a][b]=c)}function xb(){return Date.now()||+new Date}
function u(a){window&&window.alert(a)}function yb(a){var b=!1;window&&(b=window.confirm(a));return b}function zb(a){var b,c=[];a&&(a=0<(b=a.indexOf("."))?a.substr(0,b+1):"");for(b=0;b<w.length;b++){var d=w[b];a&&d.id.indexOf(a)||c.push(d)}return c}function Ab(a){if(void 0!==a){var b;for(b=0;b<w.length;b++)if(w[b].id===a)return w[b]}return null}
function Bb(a,b){var c;if(void 0!==a){var d;b&&(b=0<(d=b.indexOf("."))?b.substr(0,d+1):"");for(d=0;d<w.length;d++)if(c)c==w[d]&&(c=null);else if(!(a!=w[d].type||b&&w[d].id.indexOf(b)))return w[d]}return null}function x(a){var b=null;if(a=a.getAttribute("data-value"))try{b=eval("("+a+")")}catch(c){u(c.message+" ("+a+")")}return b}
function Cb(a,b){var c=y;b=z(b.parentNode,c+"-control");for(var d=0;d<b.length;d++)for(var e=b[d].childNodes,g=0;g<e.length;g++){var f=e[g];if(1===f.nodeType){var h=f.getAttribute("class");if(h)for(var k=h.split(" "),m=0;m<k.length;m++)switch(h=k[m],h){case c+"-binding":(h=x(f))&&h.binding&&a.ha(h.type,h.binding,f,h.value),m=k.length}}}}
function z(a,b,c){c&&(b+="-"+c+"-object");if(a.getElementsByClassName)return a.getElementsByClassName(b);var d;c=[];a=a.getElementsByTagName("*");var e=new RegExp("(^| )"+b+"( |$)");b=0;for(d=a.length;b<d;b++)e.test(a[b].className)&&c.push(a[b]);return c}
function Db(a){for(var b=!0,c=Eb[a];c&&c.length;){var d=c.splice(0,1)[0],e=d[0],g=null;0<=Fb.indexOf(e)&&(g=function(){return function(){Db(a)}}());var f=Gb[e];if(f)if(!g)b=f(d[1],d[2],d[3]);else{if(!f(g,d[1],d[2],d[3]))break}else{var b=!1,h=Bb(d[1],a);if(h)if(f=Hb[e])b=f(h,d[2],d[3]);else{var k=h.exports;if(k&&(f=k[e]))if(b=!0,!g)b=f.call(h,d[2],d[3]);else if(!f.call(h,g,d[2],d[3]))break}}if(!b){u("Script error: "+e+(f?" failed":" unrecognized"));break}}c&&!c.length&&delete Eb[a];return b}l=v.prototype;
function Na(a,b){var c,d={Y:null,T:null,na:null,ma:null};if("["==b.charAt(0)||"{"==b.charAt(0))try{var e,g,f;if("<"==b.substr(0,1))throw Error(b);f=0>b.indexOf("0x")&&0>b.indexOf("0o")&&'["'!=b.substr(0,2)?JSON.parse(b.replace(/([a-z]+):/gm,'"$1":').replace(/\/\/[^\n]*/gm,"")):eval("("+b+")");d.na=f.load;d.ma=f.exec;if(e=f.bytes)d.Y=e;else if(e=f.words)for(d.Y=Array(2*e.length),g=c=0;c<e.length;c++)d.Y[g++]=e[c]&255,d.Y[g++]=e[c]>>8&255;else if(e=f.longs)for(d.Y=Array(4*e.length),g=c=0;c<e.length;c++)d.Y[g++]=
e[c]&255,d.Y[g++]=e[c]>>8&255,d.Y[g++]=e[c]>>16&255,d.Y[g++]=e[c]>>24&255;else(e=f.data)?d.Ca=e:d.Y=f;d.Y&&(d.Y.length?1==d.Y.length&&(r(d.Y[0]),d=null):(r("Empty resource: "+a),d=null));d.T=f.symbols}catch(h){r("Resource data error ("+a+"): "+h.message),d=null}else{e=[];b=b.replace(/\n/gm," ").replace(/ +$/,"").split(" ");for(c=0;c<b.length;c++){g=parseInt(b[c],16);if(isNaN(g)){r("Resource data error ("+a+"): invalid hex byte ("+b[c]+")");break}e.push(g&255)}c==b.length&&(d.Y=e)}return d}
function Aa(){return"http://"+(window?window.location.host:"www.pcjs.org")}function Oa(){if(null==Pa){var a=!1;if(window)try{window.localStorage.setItem("PCjs.localStorage","PCjs.localStorage"),a="PCjs.localStorage"==window.localStorage.getItem("PCjs.localStorage"),window.localStorage.removeItem("PCjs.localStorage")}catch(b){a=!1}Pa=a}return Pa}function Qa(a){var b;if(window)try{b=window.localStorage.getItem(a)}catch(c){}return b}
function Za(a,b){try{return window.localStorage.setItem(a,b),!0}catch(c){}return!1}function $a(a){if(window){var b=window?window.navigator.userAgent:"";return"iOS"==a&&!!b.match(/(iPod|iPhone|iPad)/)&&!!b.match(/AppleWebKit/)||"MSIE"==a&&!!b.match(/(MSIE|Trident)/)||0<=b.indexOf(a)}return!1}
function ab(a){if(!bb){var b,c={};if(window){b||(b=window.location.search.substr(1));for(var d,e=/\+/g,g=/([^&=]+)=?([^&]*)/g;d=g.exec(b);)c[decodeURIComponent(d[1].replace(e," "))]=decodeURIComponent(d[2].replace(e," "))}bb=c}return bb[a]}function cb(a,b,c){function d(){--a;0<=a&&(b()||(a=0));0<a?setTimeout(d,0):c()}d()}
function db(a,b){function c(){b(100===d)&&(e=setTimeout(c,d),d=100)}var d=0,e=null,g=!1;a.onmousedown=function(){g||e||(d=500,c())};a.ontouchstart=function(){e||(d=500,c())};a.onmouseup=a.onmouseout=function(){e&&(clearTimeout(e),e=null)};a.ontouchend=a.ontouchcancel=function(){e&&(clearTimeout(e),e=null);g=!0}}function eb(a,b){if(window){var c=window[a];window[a]="function"!==typeof c?b:function(){c&&c();b()}}}function fb(a){gb.init.push(a)}
function hb(a){if(ib)try{for(var b=0;b<a.length;b++)a[b]()}catch(c){r(""+("An unexpected exception occurred:\n\n"+c.message+"\n\nPlease send this information to support@pcjs.org. Thanks."))}}function jb(a){!ib&&a?(ib=!0,kb&&lb("init"),mb&&lb("show")):ib=a}function lb(a){gb[a]&&hb(gb[a])}var bb=null,gb={init:[],show:[],exit:[]},kb=!1,mb=!1,ib=!0,Pa=null;eb("onload",function(){kb=!0;hb(gb.init)});eb("onpageshow",function(){mb=!0;hb(gb.show)});eb($a("Opera")||$a("iOS")?"onunload":"onbeforeunload",function(){hb(gb.exit)});
function u(a,b,c){this.type=a;b||(b={id:"",name:""});this.id=b.id||"";this.name=b.name;this.gb=b.comment;this.wb=b;this.exports={};this.I=this.bindings={};a=this.id.indexOf(".");0>a?this.Ka=this.id:(this.La=this.id.substr(0,a),this.Ka=this.id.substr(a+1));this.v={ready:!1,Fa:!1,Xa:!1,U:!1,error:!1};this.Oa=null;this.v.error=!1;this.X=c||0;this.D=this.u=this.H=this.F=this.oa=null;v.push(this)}function nb(a,b,c){ob[a]&&b&&(ob[a][b]=c)}function qb(){return Date.now()||+new Date}
function r(a){window&&window.alert(a)}function zb(a){var b=!1;window&&(b=window.confirm(a));return b}function Ab(a){var b,c=[];a&&(a=0<(b=a.indexOf("."))?a.substr(0,b+1):"");for(b=0;b<v.length;b++){var d=v[b];a&&d.id.indexOf(a)||c.push(d)}return c}function Bb(a){if(void 0!==a){var b;for(b=0;b<v.length;b++)if(v[b].id===a)return v[b]}return null}
function Cb(a,b){var c;if(void 0!==a){var d;b&&(b=0<(d=b.indexOf("."))?b.substr(0,d+1):"");for(d=0;d<v.length;d++)if(c)c==v[d]&&(c=null);else if(!(a!=v[d].type||b&&v[d].id.indexOf(b)))return v[d]}return null}function w(a){var b=null;if(a=a.getAttribute("data-value"))try{b=eval("("+a+")")}catch(c){r(c.message+" ("+a+")")}return b}
function Db(a,b){var c=x;b=y(b.parentNode,c+"-control");for(var d=0;d<b.length;d++)for(var e=b[d].childNodes,g=0;g<e.length;g++){var f=e[g];if(1===f.nodeType){var h=f.getAttribute("class");if(h)for(var k=h.split(" "),m=0;m<k.length;m++)switch(h=k[m],h){case c+"-binding":(h=w(f))&&h.binding&&a.ha(h.type,h.binding,f,h.value),m=k.length}}}}
function y(a,b,c){c&&(b+="-"+c+"-object");if(a.getElementsByClassName)return a.getElementsByClassName(b);var d;c=[];a=a.getElementsByTagName("*");var e=new RegExp("(^| )"+b+"( |$)");b=0;for(d=a.length;b<d;b++)e.test(a[b].className)&&c.push(a[b]);return c}
function Eb(a){for(var b=!0,c=Fb[a];c&&c.length;){var d=c.splice(0,1)[0],e=d[0],g=null;0<=Gb.indexOf(e)&&(g=function(){return function(){Eb(a)}}());var f=Hb[e];if(f)if(!g)b=f(d[1],d[2],d[3]);else{if(!f(g,d[1],d[2],d[3]))break}else{var b=!1,h=Cb(d[1],a);if(h)if(f=Ib[e])b=f(h,d[2],d[3]);else{var k=h.exports;if(k&&(f=k[e]))if(b=!0,!g)b=f.call(h,d[2],d[3]);else if(!f.call(h,g,d[2],d[3]))break}}if(!b){r("Script error: "+e+(f?" failed":" unrecognized"));break}}c&&!c.length&&delete Fb[a];return b}l=u.prototype;
l.toString=function(){return this.name?this.name:this.id||this.type};
l.ha=function(a,b,c){switch(b){case "clear":return this.I[b]||(this.I[b]=c,c.onclick=function(a){return function(){a.I.print&&(a.I.print.value="")}}(this)),!0;case "print":return this.I[b]||(this.oa=this.I[b]=c,c.value="",this.i=function(a){return function(b,c){8192<a.value.length&&(a.value=a.value.substr(a.value.length-4096));a.value+=(void 0!==c?c+": ":"")+(b||"")+"\n";a.scrollTop=a.scrollHeight}}(c),this.da=function(a){this.i(a,this.Ka)}),!0;default:return!1}};l.log=function(){};l.i=function(){};
l.status=function(a){this.i(this.Ka+": "+a)};l.da=function(a,b,c){c=c||this.type;b||u((c?c+": ":"")+a)};function Ib(a,b){a.v.error=!0;a.da(b)}function Jb(a){return a.v.error?(a.i(a.toString()+" error"),!0):!1}function Kb(a,b){b&&(a.v.ready?b():a.Oa=b);return a.v.ready}function B(a){if(!a.v.error&&(a.v.ready=!0,a.v.ready)){var b=a.Oa;a.Oa=null;b&&b()}}function Lb(a,b){a.v.Fa&&(b?a.v.Xa=!0:void 0===b&&a.i(a.toString()+" busy"));return a.v.Fa}
function Mb(a,b){if(a.v.Xa)return a.v.Fa=!1,a.v.Xa=!1;if(a.v.error)return a.i(a.toString()+" error"),!1;a.v.Fa=b;return a.v.Fa}l.pa=function(){return this.v.U=!0};l.ga=function(a,b){b&&(this.v.U=!1);return!0};function Nb(a,b){if(a.D){a===a.D?b|=0:b=b||a.X;var c=a.D.X&b;return!!b&&c===b||!!(c&a.D.lb)}return!1}function Ob(a,b,c,d){a.D&&(!0===c||Nb(a,c|0))&&a.D.message(b,d)}
l.status=function(a){this.i(this.Ka+": "+a)};l.da=function(a,b,c){c=c||this.type;b||r((c?c+": ":"")+a)};function Jb(a,b){a.v.error=!0;a.da(b)}function Kb(a){return a.v.error?(a.i(a.toString()+" error"),!0):!1}function Lb(a,b){b&&(a.v.ready?b():a.Oa=b);return a.v.ready}function z(a){if(!a.v.error&&(a.v.ready=!0,a.v.ready)){var b=a.Oa;a.Oa=null;b&&b()}}function Mb(a,b){a.v.Fa&&(b?a.v.Xa=!0:void 0===b&&a.i(a.toString()+" busy"));return a.v.Fa}
function Nb(a,b){if(a.v.Xa)return a.v.Fa=!1,a.v.Xa=!1;if(a.v.error)return a.i(a.toString()+" error"),!1;a.v.Fa=b;return a.v.Fa}l.pa=function(){return this.v.U=!0};l.ga=function(a,b){b&&(this.v.U=!1);return!0};function Ob(a,b){if(a.D){a===a.D?b|=0:b=b||a.X;var c=a.D.X&b;return!!b&&c===b||!!(c&a.D.lb)}return!1}function Pb(a,b,c,d){a.D&&(!0===c||Ob(a,c|0))&&a.D.message(b,d)}
window&&(window.PCjs||(window.PCjs={}),window.PCjs.Machines||(window.PCjs.Machines={}),window.PCjs.Components||(window.PCjs.Components=[]),window.PCjs.Commands||(window.PCjs.Commands={}));
var ob=window?window.PCjs.Machines:{},w=window?window.PCjs.Components:[],Eb=window?window.PCjs.Commands:{},Fb=["hold","sleep","wait"],Gb={alert:function(a){u(a);return!0},sleep:function(a,b){setTimeout(a,+b);return!1}},Hb={select:function(a,b,c){var d=!1;if(a=a.bindings[b])for(b=0;b<a.options.length;b++)if(a.options[b].textContent==c){a.selectedIndex!=b&&(a.selectedIndex=b);d=!0;break}return d}};
var ob=window?window.PCjs.Machines:{},v=window?window.PCjs.Components:[],Fb=window?window.PCjs.Commands:{},Gb=["hold","sleep","wait"],Hb={alert:function(a){r(a);return!0},sleep:function(a,b){setTimeout(a,+b);return!1}},Ib={select:function(a,b,c){var d=!1;if(a=a.bindings[b])for(b=0;b<a.options.length;b++)if(a.options[b].textContent==c){a.selectedIndex!=b&&(a.selectedIndex=b);d=!0;break}return d}};
Array.prototype.indexOf||(Array.prototype.indexOf=function(a,b){b=b||0;for(var c=this.length;b<c;b++)if(this[b]===a)return b;return-1});Array.isArray||(Array.isArray=function(a){return"[object Array]"===Object.prototype.toString.call(a)});
Function.prototype.bind||(Function.prototype.bind=function(a){function b(){return e.apply(this instanceof c&&a?this:a,d.concat(Array.prototype.slice.call(arguments)))}function c(){}if("function"!=typeof this)throw new TypeError("Function.prototype.bind: non-callable object");var d=Array.prototype.slice.call(arguments,1),e=this;c.prototype=this.prototype;b.prototype=new c;return b});
var y="pdp10",Pb="PDPjs",Qb=Math.pow(2,18)-1,Rb=Math.pow(2,18),Sb=Math.pow(2,35)-1,Tb=Math.pow(2,35),E=Math.pow(2,36)-1,F=Math.pow(2,36),G=Math.pow(2,18)-1,H=Math.pow(2,18),Ub=Math.pow(2,17)-1,Vb=Math.pow(2,35)-1,Wb=Math.pow(2,35),Xb=Math.pow(2,36),I=Math.pow(2,32),Yb=Math.pow(2,21),Zb=Math.pow(2,26),$b=Math.pow(2,23),ac=Math.pow(2,30),y="pdp10",Pb="PDPjs",K={cpu:1,trap:2,fault:4,"int":8,bus:16,memory:32,mmu:64,rom:128,device:256,panel:512,keyboard:1024,key:2048,paper:4096,read:16384,write:32768,
serial:1048576,timer:2097152,speaker:16777216,computer:33554432,log:268435456,warn:536870912,buffer:1073741824,halt:-2147483648};
function bc(a,b){v.call(this,"Panel",a,512);this.L=this.M=0;this.W=b;this.f=this.J=this.w=this.A=0;this.N=this.O=-1;this.P=this.R=this.G=!1;this.S=cc;this.C={};this.b={START:[1,1,!0,!1,this.Jb],STEP:[1,1,!1,!1,this.Kb],ENABLE:[1,1,!1,!1,this.Eb],CONT:[1,1,!0,!1,this.Cb],DEP:[0,0,!0,!1,this.Db],EXAM:[1,1,!0,!1,this.Fb],LOAD:[1,1,!0,!1,this.Hb],TEST:[0,0,!0,!1,this.Gb]};for(a=0;22>a;a++)this.b["S"+a]=[0,0,!1,!1,this.Ib,a];this.D=this.u=this.H=this.F=null;this.exports={hold:this.Ab,toggle:this.Tb,reset:this.Pb,
set:this.Sb};B(this)}p(bc,v);l=bc.prototype;l.reset=function(a){this.stop();a&&dc(this,this.A=0)};
l.ha=function(a,b,c,d){if(this.F&&this.F.ha(a,b,c,d)||this.u&&this.u.ha(a,b,c,d)||this.D&&this.D.ha(a,b,c,d))return!0;switch(b){case "PC":return this.I[b]=c,this.M++,!0;default:return"led"==a||"rled"==a?(this.I[b]=c,this.C[b]=d?1:0,this.M++,!0):"switch"==a?(void 0===this.b[b]&&(this.b[b]=[d?1:0,d?1:0]),this.I[b]=c,a=c.parentElement||c,a=a.parentElement||a,a.onmousedown=function(a,b){return function(){ec(a,b)}}(this,b),a.onmouseup=a.onmouseout=function(a,b){return function(){fc(a,b)}}(this,b),a.ontouchstart=
function(a,b){return function(c){ec(a,b);c.preventDefault()}}(this,b),a.ontouchend=function(a,b){return function(){fc(a,b)}}(this,b),!0):v.prototype.ha.call(this,a,b,c,d)}};l.xa=function(a,b,c,d){this.F=a;this.H=b;this.u=c;this.D=d;gc(this);hc(this)};l.pa=function(a,b){if(!b)if(this.W&&ic(),!a)this.reset(!0);else if(!this.restore(a))return!1;return!0};l.ga=function(a){return a?this.save():!0};l.save=function(){var a=new L(this);a.set(0,[this.f,this.A,this.w]);return a.data()};
l.restore=function(a){if(a=a[0])jc(this,this.f=a[0]),dc(this,this.A=a[1]),kc(this,a[2]);return!0};l.Pb=function(){for(var a in this.b){var b=this.b[a];b[1]=b[0]}hc(this);return!0};function lc(a,b,c){if(a=a.I[b])a.style.backgroundColor=c?"#ff0000":"#000000"}function gc(a,b){for(var c in a.C)lc(a,c,null!=b?b:a.C[c])}function mc(a,b,c){if(a=a.I[b])a.style.marginTop=c?"0px":"20px",a.style.backgroundColor=c?"#00ff00":"#228B22"}function hc(a){for(var b in a.b)mc(a,b,a.b[b][1])}
l.Ab=function(a,b,c){if(ec(this,b)){if(c){var d=this;setTimeout(function(){fc(d,b);a&&a()},+c);return!1}fc(this,b)}return!0};l.Sb=function(a,b){if("SR"==a)return kc(this,ta(b,8));var c=this.b[a];return c?(c[1]=+b?1:0,mc(this,a,c[1]),!0):!1};l.Tb=function(a){return ec(this,a)?(fc(this,a),!0):!1};function ec(a,b){var c=a.b[b];return c?(mc(a,b,c[1]=1-c[1]),c[3]=!0,c[4]&&c[4].call(a,c[1],c[5]),b!=uc&&(a.P=b==vc,a.R=b==wc),!0):!1}
function fc(a,b){var c=a.b[b];c&&(c[2]&&c[3]&&(mc(a,b,c[1]=c[0]),c[4]&&c[4].call(a,c[1],c[5])),c[3]=!1)}l.Jb=function(a){a||this.u.v.K||(this.u.A=this.f%Rb,this.b[xc]&&this.b[xc][1]&&yc(this.u))};l.Kb=function(){};l.Eb=function(a){a||this.u.V()};
l.Cb=function(a){if(!a&&!this.u.v.K)if(this.b[xc]&&this.b[xc][1])yc(this.u);else{if((a=this.D)&&!Lb(a,!0))Mb(a,!0),zc(a,0,null),Mb(a,!1);else try{var b=this.u.Ja(1);0<b&&(Ac(this.u,b),Bc(this.u,b,!0),Cc(this.u,b))}catch(c){"number"!=typeof c&&Ib(this.u,c.stack||c.message)}this.stop();this.F&&M(this.F)}};l.Db=function(a){a&&!this.u.v.K&&(this.P&&Dc(this),a=dc(this,this.A=this.w),this.S==cc?Ec(this.H,this.f,a):this.u.j(this.f,a))};
l.Fb=function(a){if(!a&&!this.u.v.K){var b;this.R&&Dc(this);this.S==cc?b=Fc(this.H,this.f):b=this.u.g(this.f);dc(this,this.A=b)}};l.Hb=function(a){a||this.u.v.K||jc(this,this.w)};l.Gb=function(a){a?(this.G=!0,gc(this,!0)):(this.G=!1,gc(this),kc(this,0))};l.Ib=function(a,b){this.w=a?this.w|1<<b:this.w&~(1<<b)};function Dc(a){var b=1,c=a.H.w;a.b[uc]&&a.b[uc][1]||(b=-b);jc(a,a.f&~c|a.f+b&c)}
function jc(a,b){a.f=b&a.H.w;if(a.N!==a.f){a.N=a.f;b=a.N;for(var c=0;22>c;c++){var d=a,e="A"+c,g=b&1<<c;d.C[e]=g;d.G||lc(d,e,g)}}}function dc(a,b){a.J=b%F;if(a.O!==a.J){a.O=a.J;b=a.O;for(var c=0;16>c;c++){var d=a,e="D"+c,g=b&1<<c;d.C[e]=g;d.G||lc(d,e,g)}}return a.J}function kc(a,b){a.w=b|0;for(b=0;22>b;b++)a.b["S"+b][1]=a.w&1<<b?1:0;hc(a);return!0}l.stop=function(){jc(this,this.u.A)};
function ic(){for(var a=z(document,y,"panel"),b=0;b<a.length;b++){var c=a[b],d=x(c),e=Ab(d.id);e||(e=new bc(d,!0));Cb(e,c)}}var cc=7,vc="DEP",xc="ENABLE",wc="EXAM",uc="STEP";eb(ic);function Gc(a,b,c){v.call(this,"Bus",a,16);this.u=b;this.D=c;this.J=+a.busWidth||18;this.G=1<<this.J;this.w=this.G-1;this.f=Math.log2(16384);this.C=this.G/16384|0;this.A=0;this.b=[];a=new Hc(this);Ic(a,this.D);this.b=Array(this.C);for(b=0;b<this.C;b++)this.b[b]=a;B(this)}p(Gc,v);l=Gc.prototype;l.reset=function(){};
l.pa=function(a,b){if(!b)if(!a)this.reset();else if(!this.restore(a))return!1;return!0};l.ga=function(a){return a?this.save():!0};l.save=function(){var a=new L(this);a.set(0,Jc(this));return a.data()};l.restore=function(a){a:{a=a[0];var b;for(b=0;b<a.length-1;b+=2){var c=a[b],d=a[b+1];if(d&&4096>d.length){for(var e=0,g=Array(4096),f=0;f<d.length-1;)for(var h=d[f++],k=d[f++];h--;)g[e++]=k;d=g}e=this.b[c];if(!e||!e.restore(d)){u("Unable to restore memory block "+c);a=!1;break a}}a=!0}return a};
function Kc(a,b,c,d){for(var e=b,g=c,f=e>>>a.f;0<g&&f<a.b.length;){var h=a.b[f],k=16384*f,m=16384-(e-k);m>g&&(m=g);if(h&&h.size){if(h.type==d){if(e+g<=h.B)return h.Ha+=h.B-e,h.B=e,!0;if(e>=h.B+h.Ha){m=h.size-(e-k);m>g&&(m=g);h.Ha=e-h.B+m;e=k+16384;g-=m;f++;continue}}return Lc(Mc,e,g)}e=new Hc(a,e,m,16384,d);Ic(e,a.D,h);a.b[f++]=e;e=k+16384;g-=m}return 0>=g?(a.status("Added "+(c>>10)+"Kb "+Nc[d]+" at "+va(b)),!0):Lc(Oc,b,c)}
function Fc(a,b){var c=a.b[(b&a.w)>>>a.f];a.A++;b=c.H(b&16383,b);a.A--;return b}function Ec(a,b,c){var d=a.b[(b&a.w)>>>a.f];a.A++;d.F(c,b&16383,b);a.A--}function Jc(a){for(var b=0,c=[],d=0;d<a.C;d++){var e=a.b[d];if(e.Za||e.yb){c[b++]=d;var g=b++;if(e=e.save()){for(var f=0,h=0,k=[];f<e.length;){for(var m=e[f],n=f+1;n<e.length&&e[n]===m;)n++;k[h++]=n-f;k[h++]=m;f=n}k.length<e.length&&(e=k)}c[g]=e}}return c}
l.zb=function(a){this.A||(this.D&&Nb(this.D,4)&&Ob(this.D,"memory fault on "+N(this.D,a),!0,!0),this.u.V())};function Lc(a,b,c){u("Memory block error ("+a+": "+t(b)+","+t(c)+")");return!1}var Mc=1,Oc=2;function Pc(a){v.call(this,"Device",a,256)}p(Pc,v);l=Pc.prototype;l.xa=function(a,b,c,d){this.H=b;this.F=a;this.u=c;this.D=d;B(this)};l.pa=function(a,b){if(!b)if(!a)this.reset();else if(!this.restore(a))return!1;return!0};l.ga=function(a){return a?this.save():!0};l.reset=function(){};l.save=function(){return(new L(this)).data()};
l.restore=function(){return!0};eb(function(){for(var a=z(document,y,"device"),b=0;b<a.length;b++){var c,d=a[b];c=x(d);switch(c.type){case "default":c=new Pc(c),Cb(c,d)}}});function Hc(a,b,c,d,e){this.w=a;this.id=Qc+=2;this.B=b;this.Ha=c;this.size=d||0;this.type=e||Rc;this.I=e==Sc;this.b=null;this.g=this.H=this.ab;this.j=this.F=this.Ia;this.f=this.u=0;Ic(this);this.Za=this.yb=!1;if(this.size){a=this.D=Array(this.size);for(b=0;b<a.length;b++)a[b]=0;Tc(this,Uc)}else Tc(this)}l=Hc.prototype;l.save=function(){return this.D};
l.restore=function(a){return a&&this.size==a.length?(this.D=a,this.Za=!0):!1};function Tc(a,b){b||(b=Vc);Wc(a,b,void 0);Xc(a,b,void 0)}function Wc(a,b,c){c&&a.f||(a.g=b[0]||a.ab);if(c||void 0===c)a.H=b[0]||a.ab}function Xc(a,b,c){c&&a.u||(a.j=!a.I&&b[1]||a.Ia);if(c||void 0===c)a.F=b[1]||a.Ia}l.Da=function(a,b){b?this.u++||Xc(this,Yc,!1):this.f++||Wc(this,Yc,!1)};function Zc(a,b){b?--a.u||(a.j=a.I?a.Ia:a.F):--a.f||(a.g=a.H)}
function Ic(a,b,c){a.b=b;a.f=a.u=0;c&&((a.f=c.f)&&Wc(a,Yc,!1),(a.u=c.u)&&Xc(a,Yc,!1))}l.ab=function(a,b){this.b&&Nb(this.b,32)&&Ob(this.b,"attempt to read invalid address "+N(this.b,b),!0);this.w.zb(b);return-1};l.Ia=function(a,b,c){this.b&&Nb(this.b,32)&&Ob(this.b,"attempt to write "+N(this.b,a)+" to invalid addresses "+N(this.b,c),!0)};l.Nb=function(a){return this.D[a]};l.Wb=function(a,b){this.D[b]!=a&&(this.D[b]=a,this.Za=!0)};
l.Lb=function(a,b){if(this.b&&null!=this.B){var c=this.b;$c(c,this.B+a,2,c.M)&&c.V(!1)}return this.H(a,b)};l.Vb=function(a,b,c){if(this.b&&null!=this.B){var d=this.b;$c(d,this.B+b,2,d.J)&&d.V(!1)}this.I?this.Ia(a,0,c):this.F(a,b,c)};var Rc=0,Sc=2,Nc=["NONE","RAM","ROM"],Qc=0,Vc=[],Uc=[Hc.prototype.Nb,Hc.prototype.Wb],Yc=[Hc.prototype.Lb,Hc.prototype.Vb];
function ad(a,b){v.call(this,"CPU",a,1);b=+a.cycles||b;var c=+a.multiplier||1;this.Sa=0;this.Va=b;this.ba=c;this.Ta=Math.round(this.Va/1E4)/100;this.aa=this.Ta*this.ba;this.Ua=this.wa=this.ea=this.Ba=0;this.v.K=this.v.Ra=!1;this.v.Z=a.autoStart;"string"==typeof this.v.Z&&(this.v.Z="true"==this.v.Z);this.v.Ea=!1;this.ua=this.ja=0;this.va=+a.csStart;this.ia=+a.csInterval;this.ka=+a.csStop;this.N=[];this.ib=this.Qb.bind(this);this.S=this.M=this.P=this.R=this.L=this.ta=this.O=this.la=this.Wa=this.W=0;
this.za=null;B(this)}p(ad,v);l=ad.prototype;l.xa=function(a,b,c,d){this.F=a;this.H=b;this.D=d;this.za=a.w;for(a=0;a<bd.length;a++)(b=this.I[bd[a]])&&this.F.ha(null,bd[a],b);B(this)};l.reset=function(){};l.save=function(){return null};l.restore=function(){return!1};
l.pa=function(a,b){var c=cd(this.F,"autoStart");null!=c?this.v.Z="true"==c?!0:"false"==c?!1:!!c:null==this.v.Z&&(this.v.Z=!this.D&&void 0===this.I.run);if(!b){if(a){dd(this);if(!this.restore(a))return!1;ed(this)}else this.reset();this.D?(a=this.D,b=this.v.Z,a.wa=!0,a.i("Type ? for help with PDPjs Debugger commands"),fd(a),b||gd(a),a.ua&&(b=a.ua,a.ua=null,hd(a,b))):this.status("No debugger detected");this.v.Z||this.i("CPU will not be auto-started "+(this.za?"(click Run to start)":"(type 'go' to start)"))}return!0};
l.ga=function(a){return a?this.save():!0};l.Z=function(){return this.v.K?!0:this.v.Z?(yc(this),!0):!1};l.ob=function(){return 0};function ed(a){void 0===a.va&&(a.va=0);void 0===a.ia&&(a.ia=-1);void 0===a.ka&&(a.ka=-1);a.v.Ea=0<=a.va&&0<a.ia;a.v.Ea&&(a.ua=0,a.ja=a.va-a.S)}function Cc(a,b){if(a.v.Ea){var c=!1;a.ua=a.ua+a.ob()|0;a.ja-=b;0>=a.ja&&(a.ja+=a.ia,c=!0);0<=a.ka&&a.ka<=id(a)&&(a.ia=a.ka=-1,ed(a),a.V(),c=!0);c&&a.i(id(a)+" cycles: checksum="+t(a.ua))}}
l.ha=function(a,b,c){var d=this;switch(b){case "power":case "reset":return this.I[b]=c,!0;case "run":return this.I[b]=c,c.onclick=function(){var a;if(a=d.F)if(a=d.F,a.v.U)a=!0;else{var b=null,c,h=zb(a.id);for(c=0;c<h.length&&(b=h[c],b===a||b.v.ready);c++);if(c==h.length)for(c=0;c<h.length&&(b=h[c],b===a||b.v.U);c++);c==h.length&&(b=a);u("The "+b.type+" component ("+b.id+") is not "+(b.v.ready?"powered yet":"ready yet"+(b.Oa?" (waiting for notification)":""))+".");a=!1}a&&(d.v.K?d.V():yc(d))},!0;case "speed":return this.I[b]=
c,!0;case "setSpeed":return this.I[b]=c,c.onclick=function(){jd(d,d.ba<<1,!0)},c.textContent=this.aa.toFixed(2)+"Mhz",!0}return!1};function Bc(a,b,c){a.S+=b;c&&(a.P=a.R=0)}function kd(a,b){var c=1;b&&1<a.ba&&a.W&&(c=a.W/a.Ta);a.Ua=Math.round(1E3/ld);a.wa=Math.floor(a.Va/ld*c);b||(a.ea=a.wa);a.Ba=0}function id(a){return a.S+a.M+a.P-a.R}function dd(a){a.W=0;a.Wa=0;a.S=a.M=a.P=a.R=0;ed(a);jd(a,1)}
function jd(a,b,c){var d=!1;if(void 0!==b){.8>a.W/a.aa?b=1:d=!0;a.ba=b;b=a.Ta*a.ba;if(a.aa!=b){a.aa=b;b=a.aa.toFixed(2)+"Mhz";var e=a.I.setSpeed;e&&(e.textContent=b);a.i("target speed: "+b)}c&&a.F&&md(a.F)}Bc(a,a.M);a.M=0;a.L=xb();a.O=0;kd(a);return d}function nd(a,b){for(var c=a.N.length-1;0<=c;c--){var d=a.N[c];0>d[0]||b>d[0]&&(b=d[0])}return b}function od(a){for(var b=[],c=0;c<a.N.length;c++)b.push(a.N[c][0]);return b}
function Ac(a,b){for(var c=a.N.length-1;0<=c;c--){var d=a.N[c];0>d[0]||(d[0]-=b,0>=d[0]&&(d[0]=-1,d[1]()))}}function Jd(a,b){var c=a.P-=a.R;a.R=0;b&&(a.P=0);return c}
l.Qb=function(){if(this.v.K){this.Ba>=this.Va&&kd(this,!0);this.la=0;this.ta=xb();if(this.O){var a=this.ta-this.O;a>this.Ua&&(this.L+=a,this.L>this.ta&&(this.L=this.ta))}try{do{var b=nd(this,this.v.Ea?1:this.wa);try{this.Ja(b)}catch(e){if("number"!=typeof e)throw e;}b=Jd(this,!0);this.la+=b;this.M+=b;Cc(this,b);Ac(this,b);this.ea-=b;if(0>=this.ea){this.ea+=this.wa;++this.Wa>=Kd&&(this.F&&M(this.F,void 0),this.Wa=0);break}}while(this.v.K)}catch(e){this.V();this.F&&this.F.stop(xb(),id(this));Ib(this,
e.stack||e.message);return}if(this.v.K){a=setTimeout;b=this.ib;this.O=xb();var c=this.Ua;this.la&&(c=Math.round(c*this.la/this.wa));var c=c-(this.O-this.ta),d=this.O-this.L;d&&(this.W=Math.round(this.M/(10*d))/100,864E5<=d&&(this.S=0,jd(this)));if(0>c||this.W<this.aa)-1E3>c&&(this.L-=c),c=0;this.Ba+=this.la;this.O+=c;a(b,c)}}};
function yc(a,b){if(!Jb(a))if(a.v.K)a.i(a.toString()+" busy");else{jd(a);a.v.K=!0;a.v.Ra=!0;var c=a.I.run;c&&(c.textContent="Halt");a.F&&(b&&md(a.F,!0),a.F.start(a.L,id(a)));a.D||a.status("Started");setTimeout(a.ib,0)}}l.Ja=function(){return 0};l.V=function(a){var b=!1;if(this.v.K){Jd(this);Bc(this,this.M);this.M=0;this.v.K=!1;if(b=this.I.run)b.textContent="Run";this.F&&this.F.stop(xb(),id(this));b=!0;this.D||this.status("Stopped")}this.v.complete=a;return b};var ld=30,Kd=15,bd=["power","reset"];
function Ld(a){var b=+a.model||1001;ad.call(this,a,1E6);this.hb=b;this.Aa=+a.addrReset||0;this.vb=Md.bind(this);this.b=O.bind(this);this.ra=null;this.fb=[];this.v.complete=!1}p(Ld,ad);l=Ld.prototype;l.reset=function(){this.status("Model "+this.hb);this.v.K&&this.V();this.f=this.J=this.Ma=0;this.A=this.sa=this.Aa;this.G=-1;this.w=0;this.qa=this.A;this.C=0;this.g=this.Mb;this.j=this.Xb;this.ra=null;dd(this);this.v.error=!1;ad.prototype.reset.call(this)};l.ob=function(){return 0};
l.save=function(){var a=new L(this);a.set(0,[this.f,this.J,this.Ma,this.A,this.G,this.w,this.C,this.sa,this.qa,this.Aa]);a.set(1,[]);a.set(2,[this.S,this.ba,this.v.Z]);a.set(3,Nd(this));a.set(4,od(this));return a.data()};
l.restore=function(a){var b;b=a[0];la();ia();la();var c=b[Symbol.iterator];b=c?c.call(b):ma(b);this.f=b.next().value;this.J=b.next().value;this.Ma=b.next().value;this.A=b.next().value;this.G=b.next().value;this.w=b.next().value;this.C=b.next().value;this.sa=b.next().value;this.qa=b.next().value;this.Aa=b.next().value;b=a[2];this.S=b[0];jd(this,b[1]);this.v.Z=b[2];b=a[3];for(c=b.length-1;0<=c;c--){var d;a:{for(d=0;d<this.fb.length;d++){var e=this.fb[d];if(e.Ub===b[c]){d=e;break a}}d=null}d&&(d.next=
this.ra,this.ra=d)}a=a[4];for(b=0;b<this.N.length&&b<a.length;b++)this.N[b][0]=a[b];return!0};function Od(a,b){var c=a.A;a.A=(c+b)%Rb;return c}l.abs=function(a){a>Vb&&(a!=Wb?a=Xb-a:this.w|=163840);return a};function Pd(a,b){b?b==Wb?a.w|=163840:b=Xb-b:a.w|=98304;return b}function Nd(a){var b=[];for(a=a.ra;a;)b.push(a.Ub),a=a.next;return b}l.Mb=function(a){var b=this.H;a=this.qa=a;return b.b[(a&b.w)>>>b.f].g(a&16383,a)};l.Xb=function(a,b){var c=this.H;a=this.qa=a;c.b[(a&c.w)>>>c.f].j(b,a&16383,a);return b};
l.Ja=function(a){this.v.complete=!0;var b=this.D?Qd(this.D)?1:this.v.Ra?-1:0:0,c=a?this.v.Ra?0:1:-1;this.v.Ra=!1;this.P=this.R=a;this.C=this.C&-5|(b?4:0);do{if(this.C){if(this.C&4){if(Rd(this.D,this.A,c)){this.V();break}++b||(this.C&=-5);c||c++}if(a=this.C&11)this.C&2?this.ra||(this.C&=-3):this.C&1&&this.C++,a=!1;if(a){if(this.C&4&&Rd(this.D,this.A,c)){this.V();break}if(0>c)break}}this.C&=15;this.J=this.J&4194304?this.g(this.f):this.Ma=this.g(this.sa=this.A);this.J&=8388607;this.f=this.J&262143;if(a=
this.J>>18&15)this.f=this.f+this.g(a)&Qb;this.J&4194304?a=-1:(this.A=(this.A+1)%Rb,a=this.Ma/$b|0);0<=a&&this.vb(a)}while(0<this.R);return this.v.complete?this.P-this.R:!1===this.v.complete?-1:0};eb(function(){for(var a=z(document,y,"cpu"),b=0;b<a.length;b++){var c=a[b],d=x(c),d=new Ld(d);Cb(d,c)}});function Md(a){Sd[a>>4].call(this,a,a&15)}function Q(a){this.b(a)}
function Td(){var a=0,b=this.g(this.f),c=b/ac&63,d=b>>24&63,c=c-d;0>c&&(a++,c=36-d,0>c&&(c=64-d));b=c*ac+(d<<24)+(b&16777215);a&&(b=(b+a)%F);this.j(this.f,b)}function Ud(a,b){a=this.g(this.f);if(0>this.G)this.G=a,this.J=this.f|4194304,Od(this,-1);else{var c=this.G/ac&63,d=this.G>>24&63;a=32>=c+d?(a>>c&(1<<d)-1)>>>0:Math.trunc(a/Math.pow(2,c))%Math.pow(2,d);this.j(b,a);this.G=-1}}
function Vd(a,b){a=this.g(this.f);if(0>this.G)this.G=a,this.J=this.f|4194304,Od(this,-1);else{var c=this.G/ac&63,d=this.G>>24&63;b=this.g(b)%Math.pow(2,d)*Math.pow(2,c)%F;a=a-a%Math.pow(2,c+d)+b+a%Math.pow(2,c);this.j(this.f,a);this.G=-1}}function Wd(a,b){this.j(b,this.g(this.f))}function Xd(a,b){this.j(b,this.f)}function Yd(a,b){this.j(this.f,this.g(b))}function Zd(a,b){this.j(b,0)}function $d(a,b){this.j(b,E-this.g(b))}function ae(a,b){this.j(b,E)}
function be(a,b){var c=this.g(this.f),d=this.g(b);this.j(b,ce(a,d,c)+(c-(c&G)))}function de(a,b){var c=this.g(b);this.j(b,ce(a,c,0))}function ee(a,b){b=this.g(b);var c=this.g(this.f);this.j(this.f,ce(a,c,b)+(b-(b&G)))}function fe(a,b){var c=this.g(this.f),d=c;if(a&=384)switch(d-=d&G,a){case 256:d+=G;break;case 384:d+=c>Vb?G:0}c=d;this.j(this.f,c);b&&this.j(b,c)}function ge(a,b){var c=(this.g(this.f)&G)*H,d=this.g(b);this.j(b,ce(a,d,c)+c)}
function he(a,b){var c=this.f*H,d=this.g(b);this.j(b,ce(a,d,c)+c)}function ie(a,b){b=(this.g(b)&G)*H;var c=this.g(this.f);this.j(this.f,ce(a,c,b)+b)}function je(a,b){var c=this.g(this.f),d=(c&G)*H,c=ce(a,c,d)+d;this.j(this.f,c);b&&this.j(b,c)}function ke(a,b){var c=this.g(this.f)&G,d=this.g(b);this.j(b,le(a,d,c)+c)}function me(a,b){var c=this.g(b);this.j(b,le(a,c,this.f)+this.f)}function ne(a,b){b=this.g(b)&G;var c=this.g(this.f);this.j(this.f,le(a,c,b)+b)}
function oe(a,b){var c=this.g(this.f),d=c;if(a&=384)switch(d&=G,a){case 256:d+=G*H;break;case 384:d+=c>Ub?G*H:0}c=d;this.j(this.f,c);b&&this.j(b,c)}function pe(a,b){var c=this.g(this.f)/H|0,d=this.g(b);this.j(b,le(a,d,c)+c)}function qe(a,b){var c=this.g(b);this.j(b,le(a,c,0))}function re(a,b){b=this.g(b)/H|0;var c=this.g(this.f);this.j(this.f,le(a,c,b)+b)}function se(a,b){var c=this.g(this.f),d=c/H|0,c=le(a,c,d)+d;this.j(this.f,c);b&&this.j(b,c)}function R(a){te[a&7].call(this,a,a>>3&127)}
function ue(){}function O(a){this.i("undefined opcode: "+va(a));Od(this,-1);this.V()}function le(a,b,c){switch(a&384){case 0:b-=b&G;break;case 128:b=0;break;case 256:b=G*H;break;case 384:b=c>Ub?G*H:0}return b}function ce(a,b,c){switch(a&384){case 0:b&=G;break;case 128:b=0;break;case 256:b=G;break;case 384:b=c>Vb?G:0}return b}function S(a,b){return((a/I|0)&(b/I|0))*I+((a&b)>>>0)}function ve(a,b){return((a/I|0)^(b/I|0))*I+((a^b)>>>0)}function we(a,b){return(~((a/I|0)^(b/I|0))&15)*I+(~(a^b)>>>0)}
function U(a,b){return(a/I|0|b/I|0)*I+((a|b)>>>0)}
var Sd=[Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},Td,function(a,b){0>this.G&&Td.call(this);Ud.call(this,0,b)},Ud,function(a,b){0>this.G&&Td.call(this);Vd.call(this,0,b)},Vd,function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},
var x="pdp10",Qb="PDPjs",Rb=Math.pow(2,18)-1,Sb=Math.pow(2,18),A=Math.pow(2,18)-1,B=Math.pow(2,18),Tb=Math.pow(2,35)-1,F=Math.pow(2,35),G=Math.pow(2,36)-1,H=Math.pow(2,36),Ub=Math.pow(2,17)-1,I=Math.pow(2,35)-1,Vb=Math.pow(2,35),Wb=Math.pow(2,36),J=Math.pow(2,32),Xb=Math.pow(2,21),Yb=Math.pow(2,26),Zb=Math.pow(2,23),$b=Math.pow(2,30),x="pdp10",Qb="PDPjs",L={cpu:1,trap:2,fault:4,"int":8,bus:16,memory:32,mmu:64,rom:128,device:256,panel:512,keyboard:1024,key:2048,paper:4096,read:16384,write:32768,serial:1048576,
timer:2097152,speaker:16777216,computer:33554432,log:268435456,warn:536870912,buffer:1073741824,halt:-2147483648};
function ac(a,b){u.call(this,"Panel",a,512);this.L=this.M=0;this.W=b;this.f=this.J=this.w=this.A=0;this.N=this.O=-1;this.P=this.R=this.G=!1;this.S=bc;this.C={};this.b={START:[1,1,!0,!1,this.Jb],STEP:[1,1,!1,!1,this.Kb],ENABLE:[1,1,!1,!1,this.Eb],CONT:[1,1,!0,!1,this.Cb],DEP:[0,0,!0,!1,this.Db],EXAM:[1,1,!0,!1,this.Fb],LOAD:[1,1,!0,!1,this.Hb],TEST:[0,0,!0,!1,this.Gb]};for(a=0;22>a;a++)this.b["S"+a]=[0,0,!1,!1,this.Ib,a];this.D=this.u=this.H=this.F=null;this.exports={hold:this.Ab,toggle:this.Tb,reset:this.Pb,
set:this.Sb};z(this)}p(ac,u);l=ac.prototype;l.reset=function(a){this.stop();a&&cc(this,this.A=0)};
l.ha=function(a,b,c,d){if(this.F&&this.F.ha(a,b,c,d)||this.u&&this.u.ha(a,b,c,d)||this.D&&this.D.ha(a,b,c,d))return!0;switch(b){case "PC":return this.I[b]=c,this.M++,!0;default:return"led"==a||"rled"==a?(this.I[b]=c,this.C[b]=d?1:0,this.M++,!0):"switch"==a?(void 0===this.b[b]&&(this.b[b]=[d?1:0,d?1:0]),this.I[b]=c,a=c.parentElement||c,a=a.parentElement||a,a.onmousedown=function(a,b){return function(){dc(a,b)}}(this,b),a.onmouseup=a.onmouseout=function(a,b){return function(){ec(a,b)}}(this,b),a.ontouchstart=
function(a,b){return function(c){dc(a,b);c.preventDefault()}}(this,b),a.ontouchend=function(a,b){return function(){ec(a,b)}}(this,b),!0):u.prototype.ha.call(this,a,b,c,d)}};l.xa=function(a,b,c,d){this.F=a;this.H=b;this.u=c;this.D=d;fc(this);gc(this)};l.pa=function(a,b){if(!b)if(this.W&&hc(),!a)this.reset(!0);else if(!this.restore(a))return!1;return!0};l.ga=function(a){return a?this.save():!0};l.save=function(){var a=new M(this);a.set(0,[this.f,this.A,this.w]);return a.data()};
l.restore=function(a){if(a=a[0])ic(this,this.f=a[0]),cc(this,this.A=a[1]),jc(this,a[2]);return!0};l.Pb=function(){for(var a in this.b){var b=this.b[a];b[1]=b[0]}gc(this);return!0};function kc(a,b,c){if(a=a.I[b])a.style.backgroundColor=c?"#ff0000":"#000000"}function fc(a,b){for(var c in a.C)kc(a,c,null!=b?b:a.C[c])}function lc(a,b,c){if(a=a.I[b])a.style.marginTop=c?"0px":"20px",a.style.backgroundColor=c?"#00ff00":"#228B22"}function gc(a){for(var b in a.b)lc(a,b,a.b[b][1])}
l.Ab=function(a,b,c){if(dc(this,b)){if(c){var d=this;setTimeout(function(){ec(d,b);a&&a()},+c);return!1}ec(this,b)}return!0};l.Sb=function(a,b){if("SR"==a)return jc(this,ua(b,8));var c=this.b[a];return c?(c[1]=+b?1:0,lc(this,a,c[1]),!0):!1};l.Tb=function(a){return dc(this,a)?(ec(this,a),!0):!1};function dc(a,b){var c=a.b[b];return c?(lc(a,b,c[1]=1-c[1]),c[3]=!0,c[4]&&c[4].call(a,c[1],c[5]),b!=mc&&(a.P=b==nc,a.R=b==oc),!0):!1}
function ec(a,b){var c=a.b[b];c&&(c[2]&&c[3]&&(lc(a,b,c[1]=c[0]),c[4]&&c[4].call(a,c[1],c[5])),c[3]=!1)}l.Jb=function(a){a||this.u.v.K||(this.u.A=this.f%Sb,this.b[wc]&&this.b[wc][1]&&xc(this.u))};l.Kb=function(){};l.Eb=function(a){a||this.u.V()};
l.Cb=function(a){if(!a&&!this.u.v.K)if(this.b[wc]&&this.b[wc][1])xc(this.u);else{if((a=this.D)&&!Mb(a,!0))Nb(a,!0),yc(a,0,null),Nb(a,!1);else try{var b=this.u.Ja(1);0<b&&(zc(this.u,b),Ac(this.u,b,!0),Bc(this.u,b))}catch(c){"number"!=typeof c&&Jb(this.u,c.stack||c.message)}this.stop();this.F&&N(this.F)}};l.Db=function(a){a&&!this.u.v.K&&(this.P&&Cc(this),a=cc(this,this.A=this.w),this.S==bc?Dc(this.H,this.f,a):this.u.j(this.f,a))};
l.Fb=function(a){if(!a&&!this.u.v.K){var b;this.R&&Cc(this);this.S==bc?b=Ec(this.H,this.f):b=this.u.g(this.f);cc(this,this.A=b)}};l.Hb=function(a){a||this.u.v.K||ic(this,this.w)};l.Gb=function(a){a?(this.G=!0,fc(this,!0)):(this.G=!1,fc(this),jc(this,0))};l.Ib=function(a,b){this.w=a?this.w|1<<b:this.w&~(1<<b)};function Cc(a){var b=1,c=a.H.w;a.b[mc]&&a.b[mc][1]||(b=-b);ic(a,a.f&~c|a.f+b&c)}
function ic(a,b){a.f=b&a.H.w;if(a.N!==a.f){a.N=a.f;b=a.N;for(var c=0;22>c;c++){var d=a,e="A"+c,g=b&1<<c;d.C[e]=g;d.G||kc(d,e,g)}}}function cc(a,b){a.J=b%H;if(a.O!==a.J){a.O=a.J;b=a.O;for(var c=0;16>c;c++){var d=a,e="D"+c,g=b&1<<c;d.C[e]=g;d.G||kc(d,e,g)}}return a.J}function jc(a,b){a.w=b|0;for(b=0;22>b;b++)a.b["S"+b][1]=a.w&1<<b?1:0;gc(a);return!0}l.stop=function(){ic(this,this.u.A)};
function hc(){for(var a=y(document,x,"panel"),b=0;b<a.length;b++){var c=a[b],d=w(c),e=Bb(d.id);e||(e=new ac(d,!0));Db(e,c)}}var bc=7,nc="DEP",wc="ENABLE",oc="EXAM",mc="STEP";fb(hc);function Fc(a,b,c){u.call(this,"Bus",a,16);this.u=b;this.D=c;this.J=+a.busWidth||18;this.G=1<<this.J;this.w=this.G-1;this.f=Math.log2(16384);this.C=this.G/16384|0;this.A=0;this.b=[];a=new Gc(this);Hc(a,this.D);this.b=Array(this.C);for(b=0;b<this.C;b++)this.b[b]=a;z(this)}p(Fc,u);l=Fc.prototype;l.reset=function(){};
l.pa=function(a,b){if(!b)if(!a)this.reset();else if(!this.restore(a))return!1;return!0};l.ga=function(a){return a?this.save():!0};l.save=function(){var a=new M(this);a.set(0,Ic(this));return a.data()};l.restore=function(a){a:{a=a[0];var b;for(b=0;b<a.length-1;b+=2){var c=a[b],d=a[b+1];if(d&&4096>d.length){for(var e=0,g=Array(4096),f=0;f<d.length-1;)for(var h=d[f++],k=d[f++];h--;)g[e++]=k;d=g}e=this.b[c];if(!e||!e.restore(d)){r("Unable to restore memory block "+c);a=!1;break a}}a=!0}return a};
function Jc(a,b,c,d){for(var e=b,g=c,f=e>>>a.f;0<g&&f<a.b.length;){var h=a.b[f],k=16384*f,m=16384-(e-k);m>g&&(m=g);if(h&&h.size){if(h.type==d){if(e+g<=h.B)return h.Ha+=h.B-e,h.B=e,!0;if(e>=h.B+h.Ha){m=h.size-(e-k);m>g&&(m=g);h.Ha=e-h.B+m;e=k+16384;g-=m;f++;continue}}return Kc(Lc,e,g)}e=new Gc(a,e,m,16384,d);Hc(e,a.D,h);a.b[f++]=e;e=k+16384;g-=m}return 0>=g?(a.status("Added "+(c>>10)+"Kb "+Mc[d]+" at "+wa(b)),!0):Kc(Nc,b,c)}
function Ec(a,b){var c=a.b[(b&a.w)>>>a.f];a.A++;b=c.H(b&16383,b);a.A--;return b}function Dc(a,b,c){var d=a.b[(b&a.w)>>>a.f];a.A++;d.F(c,b&16383,b);a.A--}function Ic(a){for(var b=0,c=[],d=0;d<a.C;d++){var e=a.b[d];if(e.Za||e.yb){c[b++]=d;var g=b++;if(e=e.save()){for(var f=0,h=0,k=[];f<e.length;){for(var m=e[f],n=f+1;n<e.length&&e[n]===m;)n++;k[h++]=n-f;k[h++]=m;f=n}k.length<e.length&&(e=k)}c[g]=e}}return c}
l.zb=function(a){this.A||(this.D&&Ob(this.D,4)&&Pb(this.D,"memory fault on "+O(this.D,a),!0,!0),this.u.V())};function Kc(a,b,c){r("Memory block error ("+a+": "+q(b)+","+q(c)+")");return!1}var Lc=1,Nc=2;function Oc(a){u.call(this,"Device",a,256)}p(Oc,u);l=Oc.prototype;l.xa=function(a,b,c,d){this.H=b;this.F=a;this.u=c;this.D=d;z(this)};l.pa=function(a,b){if(!b)if(!a)this.reset();else if(!this.restore(a))return!1;return!0};l.ga=function(a){return a?this.save():!0};l.reset=function(){};l.save=function(){return(new M(this)).data()};
l.restore=function(){return!0};fb(function(){for(var a=y(document,x,"device"),b=0;b<a.length;b++){var c,d=a[b];c=w(d);switch(c.type){case "default":c=new Oc(c),Db(c,d)}}});function Gc(a,b,c,d,e){this.I=a;this.id=Pc+=2;this.B=b;this.Ha=c;this.size=d||0;this.type=e||Qc;this.w=e==Rc;this.b=null;this.g=this.H=this.ab;this.j=this.F=this.Ia;this.f=this.u=0;Hc(this);this.Za=this.yb=!1;if(this.size){a=this.D=Array(this.size);for(b=0;b<a.length;b++)a[b]=0;Sc(this,Tc)}else Sc(this)}l=Gc.prototype;l.save=function(){return this.D};
l.restore=function(a){return a&&this.size==a.length?(this.D=a,this.Za=!0):!1};function Sc(a,b){b||(b=Uc);Vc(a,b,void 0);Wc(a,b,void 0)}function Vc(a,b,c){c&&a.f||(a.g=b[0]||a.ab);if(c||void 0===c)a.H=b[0]||a.ab}function Wc(a,b,c){c&&a.u||(a.j=!a.w&&b[1]||a.Ia);if(c||void 0===c)a.F=b[1]||a.Ia}l.Da=function(a,b){b?this.u++||Wc(this,Xc,!1):this.f++||Vc(this,Xc,!1)};function Yc(a,b){b?--a.u||(a.j=a.w?a.Ia:a.F):--a.f||(a.g=a.H)}
function Hc(a,b,c){a.b=b;a.f=a.u=0;c&&((a.f=c.f)&&Vc(a,Xc,!1),(a.u=c.u)&&Wc(a,Xc,!1))}l.ab=function(a,b){this.b&&Ob(this.b,32)&&Pb(this.b,"attempt to read invalid address "+O(this.b,b),!0);this.I.zb(b);return-1};l.Ia=function(a,b,c){this.b&&Ob(this.b,32)&&Pb(this.b,"attempt to write "+O(this.b,a)+" to invalid addresses "+O(this.b,c),!0)};l.Nb=function(a){return this.D[a]};l.Wb=function(a,b){this.D[b]!=a&&(this.D[b]=a,this.Za=!0)};
l.Lb=function(a,b){if(this.b&&null!=this.B){var c=this.b;Zc(c,this.B+a,2,c.M)&&c.V(!1)}return this.H(a,b)};l.Vb=function(a,b,c){if(this.b&&null!=this.B){var d=this.b;Zc(d,this.B+b,2,d.J)&&d.V(!1)}this.w?this.Ia(a,0,c):this.F(a,b,c)};var Qc=0,Rc=2,Mc=["NONE","RAM","ROM"],Pc=0,Uc=[],Tc=[Gc.prototype.Nb,Gc.prototype.Wb],Xc=[Gc.prototype.Lb,Gc.prototype.Vb];
function $c(a,b){u.call(this,"CPU",a,1);b=+a.cycles||b;var c=+a.multiplier||1;this.Sa=0;this.Va=b;this.ba=c;this.Ta=Math.round(this.Va/1E4)/100;this.aa=this.Ta*this.ba;this.Ua=this.wa=this.ea=this.Ba=0;this.v.K=this.v.Ra=!1;this.v.Z=a.autoStart;"string"==typeof this.v.Z&&(this.v.Z="true"==this.v.Z);this.v.Ea=!1;this.ua=this.ja=0;this.va=+a.csStart;this.ia=+a.csInterval;this.ka=+a.csStop;this.N=[];this.ib=this.Qb.bind(this);this.S=this.M=this.P=this.R=this.L=this.ta=this.O=this.la=this.Wa=this.W=0;
this.za=null;z(this)}p($c,u);l=$c.prototype;l.xa=function(a,b,c,d){this.F=a;this.H=b;this.D=d;this.za=a.w;for(a=0;a<ad.length;a++)(b=this.I[ad[a]])&&this.F.ha(null,ad[a],b);z(this)};l.reset=function(){};l.save=function(){return null};l.restore=function(){return!1};
l.pa=function(a,b){var c=bd(this.F,"autoStart");null!=c?this.v.Z="true"==c?!0:"false"==c?!1:!!c:null==this.v.Z&&(this.v.Z=!this.D&&void 0===this.I.run);if(!b){if(a){cd(this);if(!this.restore(a))return!1;dd(this)}else this.reset();this.D?(a=this.D,b=this.v.Z,a.wa=!0,a.i("Type ? for help with PDPjs Debugger commands"),ed(a),b||fd(a),a.ua&&(b=a.ua,a.ua=null,gd(a,b))):this.status("No debugger detected");this.v.Z||this.i("CPU will not be auto-started "+(this.za?"(click Run to start)":"(type 'go' to start)"))}return!0};
l.ga=function(a){return a?this.save():!0};l.Z=function(){return this.v.K?!0:this.v.Z?(xc(this),!0):!1};l.ob=function(){return 0};function dd(a){void 0===a.va&&(a.va=0);void 0===a.ia&&(a.ia=-1);void 0===a.ka&&(a.ka=-1);a.v.Ea=0<=a.va&&0<a.ia;a.v.Ea&&(a.ua=0,a.ja=a.va-a.S)}function Bc(a,b){if(a.v.Ea){var c=!1;a.ua=a.ua+a.ob()|0;a.ja-=b;0>=a.ja&&(a.ja+=a.ia,c=!0);0<=a.ka&&a.ka<=hd(a)&&(a.ia=a.ka=-1,dd(a),a.V(),c=!0);c&&a.i(hd(a)+" cycles: checksum="+q(a.ua))}}
l.ha=function(a,b,c){var d=this;switch(b){case "power":case "reset":return this.I[b]=c,!0;case "run":return this.I[b]=c,c.onclick=function(){var a;if(a=d.F)if(a=d.F,a.v.U)a=!0;else{var b=null,c,h=Ab(a.id);for(c=0;c<h.length&&(b=h[c],b===a||b.v.ready);c++);if(c==h.length)for(c=0;c<h.length&&(b=h[c],b===a||b.v.U);c++);c==h.length&&(b=a);r("The "+b.type+" component ("+b.id+") is not "+(b.v.ready?"powered yet":"ready yet"+(b.Oa?" (waiting for notification)":""))+".");a=!1}a&&(d.v.K?d.V():xc(d))},!0;case "speed":return this.I[b]=
c,!0;case "setSpeed":return this.I[b]=c,c.onclick=function(){id(d,d.ba<<1,!0)},c.textContent=this.aa.toFixed(2)+"Mhz",!0}return!1};function Ac(a,b,c){a.S+=b;c&&(a.P=a.R=0)}function jd(a,b){var c=1;b&&1<a.ba&&a.W&&(c=a.W/a.Ta);a.Ua=Math.round(1E3/kd);a.wa=Math.floor(a.Va/kd*c);b||(a.ea=a.wa);a.Ba=0}function hd(a){return a.S+a.M+a.P-a.R}function cd(a){a.W=0;a.Wa=0;a.S=a.M=a.P=a.R=0;dd(a);id(a,1)}
function id(a,b,c){var d=!1;if(void 0!==b){.8>a.W/a.aa?b=1:d=!0;a.ba=b;b=a.Ta*a.ba;if(a.aa!=b){a.aa=b;b=a.aa.toFixed(2)+"Mhz";var e=a.I.setSpeed;e&&(e.textContent=b);a.i("target speed: "+b)}c&&a.F&&ld(a.F)}Ac(a,a.M);a.M=0;a.L=qb();a.O=0;jd(a);return d}function md(a,b){for(var c=a.N.length-1;0<=c;c--){var d=a.N[c];0>d[0]||b>d[0]&&(b=d[0])}return b}function nd(a){for(var b=[],c=0;c<a.N.length;c++)b.push(a.N[c][0]);return b}
function zc(a,b){for(var c=a.N.length-1;0<=c;c--){var d=a.N[c];0>d[0]||(d[0]-=b,0>=d[0]&&(d[0]=-1,d[1]()))}}function od(a,b){var c=a.P-=a.R;a.R=0;b&&(a.P=0);return c}
l.Qb=function(){if(this.v.K){this.Ba>=this.Va&&jd(this,!0);this.la=0;this.ta=qb();if(this.O){var a=this.ta-this.O;a>this.Ua&&(this.L+=a,this.L>this.ta&&(this.L=this.ta))}try{do{var b=md(this,this.v.Ea?1:this.wa);try{this.Ja(b)}catch(e){if("number"!=typeof e)throw e;}b=od(this,!0);this.la+=b;this.M+=b;Bc(this,b);zc(this,b);this.ea-=b;if(0>=this.ea){this.ea+=this.wa;++this.Wa>=pd&&(this.F&&N(this.F,void 0),this.Wa=0);break}}while(this.v.K)}catch(e){this.V();this.F&&this.F.stop(qb(),hd(this));Jb(this,
e.stack||e.message);return}if(this.v.K){a=setTimeout;b=this.ib;this.O=qb();var c=this.Ua;this.la&&(c=Math.round(c*this.la/this.wa));var c=c-(this.O-this.ta),d=this.O-this.L;d&&(this.W=Math.round(this.M/(10*d))/100,864E5<=d&&(this.S=0,id(this)));if(0>c||this.W<this.aa)-1E3>c&&(this.L-=c),c=0;this.Ba+=this.la;this.O+=c;a(b,c)}}};
function xc(a,b){if(!Kb(a))if(a.v.K)a.i(a.toString()+" busy");else{id(a);a.v.K=!0;a.v.Ra=!0;var c=a.I.run;c&&(c.textContent="Halt");a.F&&(b&&ld(a.F,!0),a.F.start(a.L,hd(a)));a.D||a.status("Started");setTimeout(a.ib,0)}}l.Ja=function(){return 0};l.V=function(a){var b=!1;if(this.v.K){od(this);Ac(this,this.M);this.M=0;this.v.K=!1;if(b=this.I.run)b.textContent="Run";this.F&&this.F.stop(qb(),hd(this));b=!0;this.D||this.status("Stopped")}this.v.complete=a;return b};var kd=30,pd=15,ad=["power","reset"];
function Kd(a){var b=+a.model||1001;$c.call(this,a,1E6);this.hb=b;this.Aa=+a.addrReset||0;this.vb=Ld.bind(this);this.b=P.bind(this);this.ra=null;this.fb=[];this.v.complete=!1}p(Kd,$c);l=Kd.prototype;l.reset=function(){this.status("Model "+this.hb);this.v.K&&this.V();this.f=this.J=this.Ma=0;this.A=this.sa=this.Aa;this.G=-1;this.w=0;this.qa=this.A;this.C=0;this.g=this.Mb;this.j=this.Xb;this.ra=null;cd(this);this.v.error=!1;$c.prototype.reset.call(this)};l.ob=function(){return 0};
l.save=function(){var a=new M(this);a.set(0,[this.f,this.J,this.Ma,this.A,this.G,this.w,this.C,this.sa,this.qa,this.Aa]);a.set(1,[]);a.set(2,[this.S,this.ba,this.v.Z]);a.set(3,Md(this));a.set(4,nd(this));return a.data()};
l.restore=function(a){var b;b=a[0];la();ia();la();var c=b[Symbol.iterator];b=c?c.call(b):ma(b);this.f=b.next().value;this.J=b.next().value;this.Ma=b.next().value;this.A=b.next().value;this.G=b.next().value;this.w=b.next().value;this.C=b.next().value;this.sa=b.next().value;this.qa=b.next().value;this.Aa=b.next().value;b=a[2];this.S=b[0];id(this,b[1]);this.v.Z=b[2];b=a[3];for(c=b.length-1;0<=c;c--){var d;a:{for(d=0;d<this.fb.length;d++){var e=this.fb[d];if(e.Ub===b[c]){d=e;break a}}d=null}d&&(d.next=
this.ra,this.ra=d)}a=a[4];for(b=0;b<this.N.length&&b<a.length;b++)this.N[b][0]=a[b];return!0};function Nd(a,b){var c=a.A;a.A=(c+b)%Sb;return c}l.abs=function(a){a>I&&(a!=Vb?a=Wb-a:this.w|=163840);return a};function Od(a,b){b?b==Vb?a.w|=163840:b=Wb-b:a.w|=98304;return b}function Md(a){var b=[];for(a=a.ra;a;)b.push(a.Ub),a=a.next;return b}l.Mb=function(a){var b=this.H;a=this.qa=a;return b.b[(a&b.w)>>>b.f].g(a&16383,a)};l.Xb=function(a,b){var c=this.H;a=this.qa=a;c.b[(a&c.w)>>>c.f].j(b,a&16383,a);return b};
l.Ja=function(a){this.v.complete=!0;var b=this.D?Pd(this.D)?1:this.v.Ra?-1:0:0,c=a?this.v.Ra?0:1:-1;this.v.Ra=!1;this.P=this.R=a;this.C=this.C&-5|(b?4:0);do{if(this.C){if(this.C&4){if(Qd(this.D,this.A,c)){this.V();break}++b||(this.C&=-5);c||c++}if(a=this.C&11)this.C&2?this.ra||(this.C&=-3):this.C&1&&this.C++,a=!1;if(a){if(this.C&4&&Qd(this.D,this.A,c)){this.V();break}if(0>c)break}}this.C&=15;this.J=this.J&4194304?this.g(this.f):this.Ma=this.g(this.sa=this.A);this.J&=8388607;this.f=this.J&262143;if(a=
this.J>>18&15)this.f=this.f+this.g(a)&Rb;this.J&4194304?a=-1:(this.A=(this.A+1)%Sb,a=this.Ma/Zb|0);0<=a&&this.vb(a)}while(0<this.R);return this.v.complete?this.P-this.R:!1===this.v.complete?-1:0};fb(function(){for(var a=y(document,x,"cpu"),b=0;b<a.length;b++){var c=a[b],d=w(c),d=new Kd(d);Db(d,c)}});function Ld(a){Rd[a>>4].call(this,a,a&15)}function Q(a){this.b(a)}
function Sd(){var a=0,b=this.g(this.f),c=b/$b&63,d=b>>24&63,c=c-d;0>c&&(a++,c=36-d,0>c&&(c=64-d));b=c*$b+(d<<24)+(b&16777215);a&&(b=(b+a)%H);this.j(this.f,b)}function Td(a,b){a=this.g(this.f);if(0>this.G)this.G=a,this.J=this.f|4194304,Nd(this,-1);else{var c=this.G/$b&63,d=this.G>>24&63;a=32>=c+d?(a>>c&(1<<d)-1)>>>0:Math.trunc(a/Math.pow(2,c))%Math.pow(2,d);this.j(b,a);this.G=-1}}
function Ud(a,b){a=this.g(this.f);if(0>this.G)this.G=a,this.J=this.f|4194304,Nd(this,-1);else{var c=this.G/$b&63,d=this.G>>24&63;b=this.g(b)%Math.pow(2,d)*Math.pow(2,c)%H;a=a-a%Math.pow(2,c+d)+b+a%Math.pow(2,c);this.j(this.f,a);this.G=-1}}function Vd(a,b){this.j(b,this.g(this.f))}function Wd(a,b){this.j(b,this.f)}function Xd(a,b){this.j(this.f,this.g(b))}function Yd(a,b){this.j(b,0)}function Zd(a,b){this.j(b,G-this.g(b))}function $d(a,b){this.j(b,G)}
function ae(a,b){var c=this.g(this.f),d=this.g(b);this.j(b,be(a,d,c)+(c-(c&A)))}function ce(a,b){var c=this.g(b);this.j(b,be(a,c,0))}function de(a,b){b=this.g(b);var c=this.g(this.f);this.j(this.f,be(a,c,b)+(b-(b&A)))}function ee(a,b){var c=this.g(this.f),d=c;if(a&=384)switch(d-=d&A,a){case 256:d+=A;break;case 384:d+=c>I?A:0}c=d;this.j(this.f,c);b&&this.j(b,c)}function fe(a,b){var c=(this.g(this.f)&A)*B,d=this.g(b);this.j(b,be(a,d,c)+c)}
function ge(a,b){var c=this.f*B,d=this.g(b);this.j(b,be(a,d,c)+c)}function he(a,b){b=(this.g(b)&A)*B;var c=this.g(this.f);this.j(this.f,be(a,c,b)+b)}function ie(a,b){var c=this.g(this.f),d=(c&A)*B,c=be(a,c,d)+d;this.j(this.f,c);b&&this.j(b,c)}function je(a,b){var c=this.g(this.f)&A,d=this.g(b);this.j(b,ke(a,d,c)+c)}function le(a,b){var c=this.g(b);this.j(b,ke(a,c,this.f)+this.f)}function me(a,b){b=this.g(b)&A;var c=this.g(this.f);this.j(this.f,ke(a,c,b)+b)}
function ne(a,b){var c=this.g(this.f),d=c;if(a&=384)switch(d&=A,a){case 256:d+=A*B;break;case 384:d+=c>Ub?A*B:0}c=d;this.j(this.f,c);b&&this.j(b,c)}function oe(a,b){var c=this.g(this.f)/B|0,d=this.g(b);this.j(b,ke(a,d,c)+c)}function pe(a,b){var c=this.g(b);this.j(b,ke(a,c,0))}function qe(a,b){b=this.g(b)/B|0;var c=this.g(this.f);this.j(this.f,ke(a,c,b)+b)}function re(a,b){var c=this.g(this.f),d=c/B|0,c=ke(a,c,d)+d;this.j(this.f,c);b&&this.j(b,c)}function S(a){se[a&7].call(this,a,a>>3&127)}
function te(){}function P(a){this.i("undefined opcode: "+wa(a));Nd(this,-1);this.V()}function ke(a,b,c){switch(a&384){case 0:b-=b&A;break;case 128:b=0;break;case 256:b=A*B;break;case 384:b=c>Ub?A*B:0}return b}function be(a,b,c){switch(a&384){case 0:b&=A;break;case 128:b=0;break;case 256:b=A;break;case 384:b=c>I?A:0}return b}function T(a,b){return((a/J|0)&(b/J|0))*J+((a&b)>>>0)}function ue(a,b){return((a/J|0)^(b/J|0))*J+((a^b)>>>0)}function ve(a,b){return(~((a/J|0)^(b/J|0))&15)*J+(~(a^b)>>>0)}
function U(a,b){return(a/J|0|b/J|0)*J+((a|b)>>>0)}
var Rd=[Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},Sd,function(a,b){0>this.G&&Sd.call(this);Td.call(this,0,b)},Td,function(a,b){0>this.G&&Sd.call(this);Ud.call(this,0,b)},Ud,function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},
function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},
function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},Wd,Xd,Yd,function(a,b){b&&this.j(b,this.g(this.f))},function(a,b){a=this.g(this.f);a=(a/H|0)+a%H*H;this.j(b,a)},function(a,b){this.j(b,this.f*H)},function(a,b){a=this.g(b);a=(a/H|0)+a%H*H;this.j(this.f,a)},function(a,b){a=this.g(this.f);a=(a/H|0)+a%H*H;this.j(this.f,a);b&&this.j(b,a)},function(a,b){this.j(b,Pd(this,this.g(this.f)))},function(a,b){this.j(b,this.f?Xb-this.f:0)},function(a,b){this.j(this.f,Pd(this,
this.g(b)))},function(a,b){a=Pd(this,this.g(this.f));this.j(this.f,a);b&&this.j(b,a)},function(a,b){this.j(b,this.abs(this.g(this.f)))},function(a,b){this.j(b,this.f)},function(a,b){this.j(this.f,this.abs(this.g(b)))},function(a,b){a=this.abs(this.g(this.f));this.j(this.f,a);b&&this.j(b,a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},
function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a,b){var c=(this.f<<14>>14)%256;if(c){a=this.g(b);var d=a>Vb?-(F-a):a;0<c?(35<=c?(d=0>d?Tb:0,c=Sb):(d=d*Math.pow(2,c)%Tb,c=Tb-Math.pow(2,35-c)),a<=Vb?a+c>Vb&&(this.w|=131072):a-c<=Vb&&(this.w|=131072)):d=-35>=c?0>d?-1:0:Math.trunc(d/Math.pow(2,-c));a=0>d?d+F:d;this.j(b,a)}},function(a,b){if(a=(this.f<<14>>14)%36){var c=this.g(b);0>a&&(a=36+a);c=c*Math.pow(2,
a)%F+Math.trunc(c/Math.pow(2,36-a));this.j(b,c)}},function(a,b){if(a=(this.f<<14>>14)%256){var c=this.g(b),c=0<a?36<=a?0:c*Math.pow(2,a)%F:-36>=a?0:Math.trunc(c/Math.pow(2,-a));this.j(b,c)}},function(a){this.b(a)},function(a){this.b(a)},function(a,b){if(a=(this.f<<14>>14)%72){var c=this.g(b),d=this.g(b+1&15),e=c;0>a&&(a=72+a);36>a?(c=c*Math.pow(2,a)%F+Math.trunc(d/Math.pow(2,36-a)),d=d*Math.pow(2,a)%F+Math.trunc(e/Math.pow(2,36-a))):(c=d*Math.pow(2,a-36)%F+Math.trunc(c/Math.pow(2,72-a)),d=e*Math.pow(2,
a-36)%F+Math.trunc(d/Math.pow(2,72-a)));this.j(b,c);this.j(b+1&15,d)}},function(a,b){if(a=(this.f<<14>>14)%256){var c=this.g(b),d=this.g(b+1&15);0<a?36<=a?(d=0,c=72<=a?0:d*Math.pow(2,a-36)%F):(c=c*Math.pow(2,a)%F+Math.trunc(d/Math.pow(2,36-a)),d=d*Math.pow(2,a)%F):-36>=a?(c=0,d=-72>=a?0:Math.trunc(c/Math.pow(2,-a-36))):(d=Math.trunc(d/Math.pow(2,-a))+c*Math.pow(2,36+a)%F,c=Math.trunc(c/Math.pow(2,-a)));this.j(b,c);this.j(b+1&15,d)}},O,function(a,b){a=this.g(b);this.j(b,this.g(this.f));this.j(this.f,
a)},function(a,b){a=!1;for(var c=this.g(b),d=c/H|0,c=c&G;!a;)this.j(c,this.g(d)),c==this.f&&(a=!0),d=d+1&G,c=c+1&G,this.v.K||(this.j(b,d*H+c),a||Od(this,-1),a=!0)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},O,function(a){this.b(a)},function(a,b){a=this.g(b);a+=262145;this.j(a&G,this.g(this.f));a>=F&&(a-=F);a/H|0||(this.w|=262144);this.j(b,a)},function(a,b){a=this.g(b);var c=this.g(a&G);this.j(this.f,c);this.f==b&&(a=c);a-=262145;
0>a&&(a+=F);(a/H|0)==G&&(this.w|=262144);this.j(b,a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},
function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},Vd,Wd,Xd,function(a,b){b&&this.j(b,this.g(this.f))},function(a,b){a=this.g(this.f);a=(a/B|0)+a%B*B;this.j(b,a)},function(a,b){this.j(b,this.f*B)},function(a,b){a=this.g(b);a=(a/B|0)+a%B*B;this.j(this.f,a)},function(a,b){a=this.g(this.f);a=(a/B|0)+a%B*B;this.j(this.f,a);b&&this.j(b,a)},function(a,b){this.j(b,Od(this,this.g(this.f)))},function(a,b){this.j(b,this.f?Wb-this.f:0)},function(a,b){this.j(this.f,Od(this,
this.g(b)))},function(a,b){a=Od(this,this.g(this.f));this.j(this.f,a);b&&this.j(b,a)},function(a,b){this.j(b,this.abs(this.g(this.f)))},function(a,b){this.j(b,this.f)},function(a,b){this.j(this.f,this.abs(this.g(b)))},function(a,b){a=this.abs(this.g(this.f));this.j(this.f,a);b&&this.j(b,a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},
function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a,b){var c=(this.f<<14>>14)%256;if(c){a=this.g(b);var d=a>I?-(H-a):a;0<c?(35<=c?(d=0>d?F:0,c=Tb):(d=d*Math.pow(2,c)%F,c=F-Math.pow(2,35-c)),a<=I?a+c>I&&(this.w|=131072):a-c<=I&&(this.w|=131072)):d=-35>=c?0>d?-1:0:Math.trunc(d/Math.pow(2,-c));a=0>d?d+H:d;this.j(b,a)}},function(a,b){if(a=(this.f<<14>>14)%36){var c=this.g(b);0>a&&(a=36+a);c=c*Math.pow(2,a)%
H+Math.trunc(c/Math.pow(2,36-a));this.j(b,c)}},function(a,b){if(a=(this.f<<14>>14)%256){var c=this.g(b),c=0<a?36<=a?0:c*Math.pow(2,a)%H:-36>=a?0:Math.trunc(c/Math.pow(2,-a));this.j(b,c)}},function(a){this.b(a)},function(a,b){if(a=(this.f<<14>>14)%256){var c,d=this.g(b),e=this.g(b+1&15);if(0<a){var g=d;if(36<=a){if(0<d&&d<F||d>Tb&&d<G)this.w|=131072;if(71<=a){if(0<e&&e<F||e>Tb&&e<G)this.w|=131072;d=0}else d=e*Math.pow(2,a-35)%F,c=F-Math.pow(2,70-a),g<=I?e+c>I&&(this.w|=131072):e-c<=I&&(this.w|=131072);
e=0;g>Tb&&(d+=F,e+=F)}else d=d*Math.pow(2,a)%F+Math.trunc(e%F/Math.pow(2,35-a)),e=e*Math.pow(2,a)%F,c=F-Math.pow(2,35-a),g<=I?g+c>I&&(this.w|=131072):(g-c<=I&&(this.w|=131072),d+=F,e+=F)}else-36>=a?(e=-72>=a?d>Tb?G:0:Math.trunc(d%F/Math.pow(2,-a-35)),d<=Tb?d=0:(d=G,e+=F)):(c=d>Tb?H-Math.pow(2,36-a):0,e=Math.trunc(e%F/Math.pow(2,-a))+d%F*Math.pow(2,35+a)%F,d=Math.trunc(d/Math.pow(2,-a))+c,d>Tb&&(e+=F));this.j(b,d);this.j(b+1&15,e)}},function(a,b){if(a=(this.f<<14>>14)%72){var c=this.g(b),d=this.g(b+
1&15),e=c;0>a&&(a=72+a);36>a?(c=c*Math.pow(2,a)%H+Math.trunc(d/Math.pow(2,36-a)),d=d*Math.pow(2,a)%H+Math.trunc(e/Math.pow(2,36-a))):(c=d*Math.pow(2,a-36)%H+Math.trunc(c/Math.pow(2,72-a)),d=e*Math.pow(2,a-36)%H+Math.trunc(d/Math.pow(2,72-a)));this.j(b,c);this.j(b+1&15,d)}},function(a,b){if(a=(this.f<<14>>14)%256){var c=this.g(b),d=this.g(b+1&15);0<a?36<=a?(c=72<=a?0:d*Math.pow(2,a-36)%H,d=0):(c=c*Math.pow(2,a)%H+Math.trunc(d/Math.pow(2,36-a)),d=d*Math.pow(2,a)%H):-36>=a?(d=-72>=a?0:Math.trunc(c/Math.pow(2,
-a-36)),c=0):(d=Math.trunc(d/Math.pow(2,-a))+c*Math.pow(2,36+a)%H,c=Math.trunc(c/Math.pow(2,-a)));this.j(b,c);this.j(b+1&15,d)}},P,function(a,b){a=this.g(b);this.j(b,this.g(this.f));this.j(this.f,a)},function(a,b){a=!1;for(var c=this.g(b),d=c/B|0,c=c&A;!a;)this.j(c,this.g(d)),c==this.f&&(a=!0),d=d+1&A,c=c+1&A,this.v.K||(this.j(b,d*B+c),a||Nd(this,-1),a=!0)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},P,function(a){this.b(a)},function(a,
b){a=this.g(b);a+=262145;this.j(a&A,this.g(this.f));a>=H&&(a-=H);a/B|0||(this.w|=262144);this.j(b,a)},function(a,b){a=this.g(b);var c=this.g(a&A);this.j(this.f,c);this.f==b&&(a=c);a-=262145;0>a&&(a+=H);(a/B|0)==A&&(this.w|=262144);this.j(b,a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},
function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},
function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},
function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},Zd,Zd,function(){this.j(this.f,0)},function(a,b){this.j(this.f,this.j(b,0))},function(a,b){this.j(b,S(this.g(b),this.g(this.f)))},function(a,b){this.j(b,S(this.g(b),this.f))},function(a,b){this.j(this.f,
S(this.g(b),this.g(this.f)))},function(a,b){this.j(this.f,this.j(b,S(this.g(b),this.g(this.f))))},function(a,b){this.j(b,S(E-this.g(b),this.g(this.f)))},function(a,b){this.j(b,S(E-this.g(b),this.f))},function(a,b){this.j(this.f,S(E-this.g(b),this.g(this.f)))},function(a,b){this.j(this.f,this.j(b,S(E-this.g(b),this.g(this.f))))},Wd,Xd,ue,Wd,function(a,b){this.j(b,S(this.g(b),E-this.g(this.f)))},function(a,b){this.j(b,S(this.g(b),E-this.f))},function(a,b){this.j(this.f,S(this.g(b),E-this.g(this.f)))},
function(a,b){this.j(this.f,this.j(b,S(this.g(b),E-this.g(this.f))))},ue,ue,Yd,Yd,function(a,b){this.j(b,ve(this.g(b),this.g(this.f)))},function(a,b){this.j(b,ve(this.g(b),this.f))},function(a,b){this.j(this.f,ve(this.g(b),this.g(this.f)))},function(a,b){this.j(this.f,this.j(b,ve(this.g(b),this.g(this.f))))},function(a,b){this.j(b,U(this.g(b),this.g(this.f)))},function(a,b){this.j(b,U(this.g(b),this.f))},function(a,b){this.j(this.f,U(this.g(b),this.g(this.f)))},function(a,b){this.j(this.f,this.j(b,
U(this.g(b),this.g(this.f))))},function(a,b){this.j(b,S(E-this.g(b),E-this.g(this.f)))},function(a,b){this.j(b,S(E-this.g(b),E-this.f))},function(a,b){this.j(this.f,S(E-this.g(b),E-this.g(this.f)))},function(a,b){this.j(this.f,this.j(b,S(E-this.g(b),E-this.g(this.f))))},function(a,b){this.j(b,we(this.g(b),this.g(this.f)))},function(a,b){this.j(b,we(this.g(b),this.f))},function(a,b){this.j(this.f,we(this.g(b),this.g(this.f)))},function(a,b){this.j(this.f,this.j(b,we(this.g(b),this.g(this.f))))},$d,
$d,function(a,b){this.j(this.f,E-this.g(b))},function(a,b){this.j(this.f,this.j(b,E-this.g(b)))},function(a,b){this.j(b,U(E-this.g(b),this.g(this.f)))},function(a,b){this.j(b,U(E-this.g(b),this.f))},function(a,b){this.j(this.f,U(E-this.g(b),this.g(this.f)))},function(a,b){this.j(this.f,this.j(b,U(E-this.g(b),this.g(this.f))))},function(a,b){this.j(b,E-this.g(this.f))},function(a,b){this.j(b,E-this.f)},function(){this.j(this.f,E-this.g(this.f))},function(a,b){this.j(this.f,this.j(b,E-this.g(this.f)))},
function(a,b){this.j(b,U(this.g(b),E-this.g(this.f)))},function(a,b){this.j(b,U(this.g(b),E-this.f))},function(a,b){this.j(this.f,U(this.g(b),E-this.g(this.f)))},function(a,b){this.j(this.f,this.j(b,U(this.g(b),E-this.g(this.f))))},function(a,b){this.j(b,U(E-this.g(b),E-this.g(this.f)))},function(a,b){this.j(b,U(E-this.g(b),E-this.f))},function(a,b){this.j(this.f,U(E-this.g(b),E-this.g(this.f)))},function(a,b){this.j(this.f,this.j(b,U(E-this.g(b),E-this.g(this.f))))},ae,ae,function(){this.j(this.f,
E)},function(a,b){this.j(this.f,this.j(b,E))},be,de,ee,fe,ge,he,ie,je,be,de,ee,fe,ge,he,ie,je,be,de,ee,fe,ge,he,ie,je,be,de,ee,fe,ge,he,ie,je,ke,me,ne,oe,pe,qe,re,se,ke,me,ne,oe,pe,qe,re,se,ke,me,ne,oe,pe,qe,re,se,ke,me,ne,oe,pe,qe,re,se,function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},
function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},Yd,Yd,function(){this.j(this.f,
0)},function(a,b){this.j(this.f,this.j(b,0))},function(a,b){this.j(b,T(this.g(b),this.g(this.f)))},function(a,b){this.j(b,T(this.g(b),this.f))},function(a,b){this.j(this.f,T(this.g(b),this.g(this.f)))},function(a,b){this.j(this.f,this.j(b,T(this.g(b),this.g(this.f))))},function(a,b){this.j(b,T(G-this.g(b),this.g(this.f)))},function(a,b){this.j(b,T(G-this.g(b),this.f))},function(a,b){this.j(this.f,T(G-this.g(b),this.g(this.f)))},function(a,b){this.j(this.f,this.j(b,T(G-this.g(b),this.g(this.f))))},
Vd,Wd,te,Vd,function(a,b){this.j(b,T(this.g(b),G-this.g(this.f)))},function(a,b){this.j(b,T(this.g(b),G-this.f))},function(a,b){this.j(this.f,T(this.g(b),G-this.g(this.f)))},function(a,b){this.j(this.f,this.j(b,T(this.g(b),G-this.g(this.f))))},te,te,Xd,Xd,function(a,b){this.j(b,ue(this.g(b),this.g(this.f)))},function(a,b){this.j(b,ue(this.g(b),this.f))},function(a,b){this.j(this.f,ue(this.g(b),this.g(this.f)))},function(a,b){this.j(this.f,this.j(b,ue(this.g(b),this.g(this.f))))},function(a,b){this.j(b,
U(this.g(b),this.g(this.f)))},function(a,b){this.j(b,U(this.g(b),this.f))},function(a,b){this.j(this.f,U(this.g(b),this.g(this.f)))},function(a,b){this.j(this.f,this.j(b,U(this.g(b),this.g(this.f))))},function(a,b){this.j(b,T(G-this.g(b),G-this.g(this.f)))},function(a,b){this.j(b,T(G-this.g(b),G-this.f))},function(a,b){this.j(this.f,T(G-this.g(b),G-this.g(this.f)))},function(a,b){this.j(this.f,this.j(b,T(G-this.g(b),G-this.g(this.f))))},function(a,b){this.j(b,ve(this.g(b),this.g(this.f)))},function(a,
b){this.j(b,ve(this.g(b),this.f))},function(a,b){this.j(this.f,ve(this.g(b),this.g(this.f)))},function(a,b){this.j(this.f,this.j(b,ve(this.g(b),this.g(this.f))))},Zd,Zd,function(a,b){this.j(this.f,G-this.g(b))},function(a,b){this.j(this.f,this.j(b,G-this.g(b)))},function(a,b){this.j(b,U(G-this.g(b),this.g(this.f)))},function(a,b){this.j(b,U(G-this.g(b),this.f))},function(a,b){this.j(this.f,U(G-this.g(b),this.g(this.f)))},function(a,b){this.j(this.f,this.j(b,U(G-this.g(b),this.g(this.f))))},function(a,
b){this.j(b,G-this.g(this.f))},function(a,b){this.j(b,G-this.f)},function(){this.j(this.f,G-this.g(this.f))},function(a,b){this.j(this.f,this.j(b,G-this.g(this.f)))},function(a,b){this.j(b,U(this.g(b),G-this.g(this.f)))},function(a,b){this.j(b,U(this.g(b),G-this.f))},function(a,b){this.j(this.f,U(this.g(b),G-this.g(this.f)))},function(a,b){this.j(this.f,this.j(b,U(this.g(b),G-this.g(this.f))))},function(a,b){this.j(b,U(G-this.g(b),G-this.g(this.f)))},function(a,b){this.j(b,U(G-this.g(b),G-this.f))},
function(a,b){this.j(this.f,U(G-this.g(b),G-this.g(this.f)))},function(a,b){this.j(this.f,this.j(b,U(G-this.g(b),G-this.g(this.f))))},$d,$d,function(){this.j(this.f,G)},function(a,b){this.j(this.f,this.j(b,G))},ae,ce,de,ee,fe,ge,he,ie,ae,ce,de,ee,fe,ge,he,ie,ae,ce,de,ee,fe,ge,he,ie,ae,ce,de,ee,fe,ge,he,ie,je,le,me,ne,oe,pe,qe,re,je,le,me,ne,oe,pe,qe,re,je,le,me,ne,oe,pe,qe,re,je,le,me,ne,oe,pe,qe,re,function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},
function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},
function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},
function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R],te=[function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a,b){switch(b){case 0:a=this.g(this.f);a&8&&(this.w&=-131073);a&131072&&(this.w&=-262145);
break;default:this.b(a)}},function(a,b){switch(b){case 0:a=0;this.w&131072&&(a|=8);this.w&262144&&(a|=65536);this.j(this.f,a);break;default:this.b(a)}},function(a){this.b(a)},function(a){this.b(a)}];
function xe(a){v.call(this,"ROM",a,128);this.T=this.b=null;this.C=+a.addr;this.w=+a.size;this.f=a.alias;"string"==typeof this.f&&(this.f=eval(this.f));this.A=a.file;this.G=wa(this.A);if(this.A){a=this.A;var b=xa(this.G);"json"!=b&&"hex"!=b&&(a=Ea()+"/api/v1/dump?file="+this.A+"&format=bytes&decimal=true");var c=this;La(a,null,!0,function(a,b,g){g?(c.da("Unable to load ROM resource (error "+g+": "+a+")"),c.A=null):(mb(c.La,a,b),(a=Ma(a,b))?(c.b=a.Y,c.T=a.T):c.A=null);ye(c)})}}p(xe,v);
xe.prototype.xa=function(a,b,c,d){this.H=b;this.u=c;this.D=d;ye(this)};xe.prototype.pa=function(){this.T&&(this.D&&ze(this.D,this.id,this.C,this.w,this.T),delete this.T);return!0};xe.prototype.ga=function(){return!0};
function ye(a){if(!Kb(a)){if(a.A){if(!a.b||!a.H)return;a.w||(a.w=a.b.length);if(a.b.length!=a.w)Ib(a,"ROM size ("+t(a.b.length,8,!0)+") does not match specified size ("+t(a.w,8,!0)+")");else{var b;b=a.C;if(Kc(a.H,b,a.w,Sc)){var c;for(c=0;c<a.b.length;c++)Ec(a.H,b+c,a.b[c]);b=!0}else b=!1;if(b){b=[];"number"==typeof a.f?b.push(a.f):null!=a.f&&a.f.length&&(b=a.f);for(c=0;c<b.length;c++){for(var d=a,e=b[c],g=d.H,f=d.w,h=[],k=d.C>>>g.f;0<f&&k<g.b.length;)h.push(g.b[k++]),f-=16384;g=d.H;d=d.w;f=0;for(e>>>=
g.f;0<d&&e<g.b.length;){k=h[f++];if(!k)break;g.b[e++]=k;d-=16384}}delete a.b}}}B(a)}}eb(function(){for(var a=z(document,y,"rom"),b=0;b<a.length;b++){var c=a[b],d=x(c),d=new xe(d);Cb(d,c)}});
function Ae(a){v.call(this,"RAM",a);this.T=this.Ca=null;this.f=+a.addr;this.w=+a.size;this.na=a.load;this.ma=a.exec;null!=this.na&&(this.na=+this.na);null!=this.ma&&(this.ma=+this.ma);this.A=this.G=!1;this.b=a.file;this.C=wa(this.b);if(this.b){a=this.b;var b=xa(this.C);"json"!=b&&"hex"!=b&&(a=Ea()+"/api/v1/dump?file="+this.b+"&format=bytes&decimal=true");var c=this;La(a,null,!0,function(a,b,g){g?(c.da("Unable to load RAM resource (error "+g+": "+a+")"),c.b=null):(mb(c.La,a,b),(a=Ma(a,b))?(c.Ca=a.Ca,
c.T=a.T,null==c.na&&(c.na=a.na),null==c.ma&&(c.ma=a.ma)):c.b=null);Be(c)})}}p(Ae,v);Ae.prototype.xa=function(a,b,c,d){this.H=b;this.u=c;this.D=d;Be(this)};Ae.prototype.pa=function(a,b){this.T&&(this.D&&ze(this.D,this.id,this.f,this.w,this.T),delete this.T);b||this.reset();return!0};Ae.prototype.ga=function(){return!0};
function Be(a){if(a.H&&(!a.A&&a.w&&(Kc(a.H,a.f,a.w,1)?a.A=!0:a.w=0),!Kb(a))){if(!a.A)u("No RAM allocated");else if(a.b){if(!a.Ca)return;Ce(a,a.Ca,a.na,a.ma,a.f)?a.status('Loaded image "'+a.C+'"'):a.da('Error loading image "'+a.C+'"')}a.G=!0;B(a)}}
Ae.prototype.reset=function(){if(this.A&&!this.G){for(var a=this.H,b=this.f,c=this.w,d=b&16383,b=b>>>a.f;0<c&&b<a.b.length;){var e=a.b[b],g=c,f=0,h,d=d||0,f=f||0;0>f&&f>=-sa&&(f+=ra);f=Math.trunc(Math.abs(f))%Math.pow(2,36);void 0===g&&(g=e.size);for(h=d;g--&&h<e.size;h++)e.F(f,d,e.B+d);c-=16384;b++;d=0}this.Ca&&Ce(this,this.Ca,this.na,this.ma,this.f,!this.D)}this.G=!1};
function Ce(a,b,c,d,e,g){var f=!1;null==c&&(c=e);if(null!=c){for(f=0;f<b.length;f++)Ec(a.H,c+f,b[f]);f=!0}f&&(null==d&&(a.u.V(),g=!1),null!=d&&(a=a.u,a.Aa=d,a.A=d%Rb,g?a.v.U?a.v.K||yc(a):a.v.Z=!0:a.D&&a.v.U?a.V()||a.F.v.reset||(fd(a.D),M(a.F,-1)):!1===g&&a.V(),!a.v.K&&a.za&&a.za.stop()));return f}eb(function(){for(var a=z(document,y,"ram"),b=0;b<a.length;b++){var c=a[b],d=x(c),d=new Ae(d);Cb(d,c)}});
function De(a){v.call(this,"SerialPort",a,1048576);this.A=a.upperCase;"string"==typeof this.A&&(this.A="true"==this.A);this.w=!0;this.f=[];var b=a.binding;if("console"!=b){var c;a=Ee;b&&(void 0===c&&(c="Panel"),(c=Bb(c,this.id))&&(b=c.I[b])&&this.ha(null,a,b))}this.b=this.C=null;this.exports={connect:this.qb,receiveData:this.Pa,receiveStatus:this.Ob,setConnection:this.Rb}}p(De,v);l=De.prototype;
l.ha=function(a,b,c){var d=this;switch(b){case Ee:return this.I[b]=c,c.onkeydown=function(a){a=a||window.event;var b=0,c=a.keyCode;8==c?b=a.altKey?q.cb:q.ub:46==c?b=q.cb:a.ctrlKey&&c>=q.bb&&c<=q.xb&&(b=c-(q.bb-q.rb));b&&(a.preventDefault&&a.preventDefault(),d.Pa(b));return!0},c.onkeypress=function(a){a=a||window.event;if(!a.metaKey){var b=a.which||a.keyCode;a.altKey&&b==q.tb&&(b=q.sb);d.Pa(b);a.preventDefault&&a.preventDefault()}return!0},c.onpaste=function(a){a.stopPropagation&&a.stopPropagation();
a.preventDefault&&a.preventDefault();(a=a.clipboardData||window.clipboardData)&&d.Pa(a.getData("Text"))},c.removeAttribute("readonly"),!0}return!1};l.xa=function(a,b,c,d){this.F=a;this.H=b;this.u=c;this.D=d;B(this)};
l.qb=function(a){if(!this.b){var b=cd(this.F,"connection");if(b){var c=b.split("->");if(2==c.length){var d=Ia(c[0]);if(d!=this.Ka)return;c=Ia(c[1]);if(this.b=Ab(c)){var e=this.b.exports;if(e){var g=e.connect;g&&g.call(this.b,this.w);if(this.C=e.receiveData){this.w=a;this.status("Connected "+this.La+"."+d+" to "+c);return}}}}this.status("Unable to establish connection: "+b)}}};l.pa=function(a,b){if(!b)if(this.qb(this.w),!a)this.reset();else if(!this.restore(a))return!1;return!0};
l.ga=function(a){return a?this.save():!0};l.reset=function(){};l.save=function(){var a=new L(this);a.set(0,[]);return a.data()};l.restore=function(){return!0};l.Pa=function(a){if("number"==typeof a)this.f.push(a);else if("string"==typeof a)for(var b=0,c,d=0;d<a.length;d++){c=b;b=a.charCodeAt(d);if(10==b){if(13==c)continue;b=13}this.f.push(b)}else this.f=this.f.concat(a);return!0};l.Ob=function(){};l.Rb=function(a,b){return this.b?!1:(this.b=a,this.C=b,!0)};var Ee="buffer";
eb(function(){for(var a=z(document,y,"serial"),b=0;b<a.length;b++){var c=a[b],d=x(c),d=new De(d);Cb(d,c)}});function Fe(a){v.call(this,"Debugger",a);this.ca=+a.base||16;this.la=!1;this.C=0;this.P=!1;this.A=-1;this.w=[];this.W={}}p(Fe,v);Fe.prototype.pb=function(){return-1};Fe.prototype.$a=function(){};
function Ge(a,b,c,d){if(c)if(b){0>a.A&&a.w.length&&(a.A=0);if(0>a.A||b!=a.w[a.A])a.w.splice(0,0,b),a.A=0;a.A--}else a.P?b="end":b=a.w[a.A+1];a=[];if(b){b=b.replace(/""/g,"'");c=0;var e=null;d=d||";";for(var g=0;g<=b.length;g++){var f=b.charAt(g);if('"'==f||"'"==f)e?f==e&&(e=null):e=f;else if(f==d&&!e||!f)a.push(Ia(b.substring(c,g))),c=g+1}}return a}
function He(a,b,c){for(c=c||-1;c--&&b.length;){var d=b.pop();if(2>a.length)return!1;var e=a.pop(),g=a.pop();switch(d){case "*":d=g*e;break;case "/":if(!e)return!1;d=g/e;break;case "%":if(!e)return!1;d=g%e;break;case "+":d=g+e;break;case "-":d=g-e;break;case "<<":d=g<<e;break;case ">>":d=g>>e;break;case ">>>":d=g>>>e;break;case "<":d=g<e?1:0;break;case "<=":d=g<=e?1:0;break;case ">":d=g>e?1:0;break;case ">=":d=g>=e?1:0;break;case "==":d=g==e?1:0;break;case "!=":d=g!=e?1:0;break;case "&":d=g&e;break;
function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S],se=[function(a){this.b(a)},
function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a,b){switch(b){case 0:a=this.g(this.f);a&8&&(this.w&=-131073);a&131072&&(this.w&=-262145);break;default:this.b(a)}},function(a,b){switch(b){case 0:a=0;this.w&131072&&(a|=8);this.w&262144&&(a|=65536);this.j(this.f,a);break;default:this.b(a)}},function(a){this.b(a)},function(a){this.b(a)}];
function we(a){u.call(this,"ROM",a,128);this.T=this.b=null;this.C=+a.addr;this.w=+a.size;this.f=a.alias;"string"==typeof this.f&&(this.f=eval(this.f));this.A=a.file;this.G=xa(this.A);if(this.A){a=this.A;var b=ya(this.G);"json"!=b&&"hex"!=b&&(a=Aa()+"/api/v1/dump?file="+this.A+"&format=bytes&decimal=true");var c=this;Ma(a,null,!0,function(a,b,g){g?(c.da("Unable to load ROM resource (error "+g+": "+a+")"),c.A=null):(nb(c.La,a,b),(a=Na(a,b))?(c.b=a.Y,c.T=a.T):c.A=null);xe(c)})}}p(we,u);
we.prototype.xa=function(a,b,c,d){this.H=b;this.u=c;this.D=d;xe(this)};we.prototype.pa=function(){this.T&&(this.D&&ye(this.D,this.id,this.C,this.w,this.T),delete this.T);return!0};we.prototype.ga=function(){return!0};
function xe(a){if(!Lb(a)){if(a.A){if(!a.b||!a.H)return;a.w||(a.w=a.b.length);if(a.b.length!=a.w)Jb(a,"ROM size ("+q(a.b.length,8,!0)+") does not match specified size ("+q(a.w,8,!0)+")");else{var b;b=a.C;if(Jc(a.H,b,a.w,Rc)){var c;for(c=0;c<a.b.length;c++)Dc(a.H,b+c,a.b[c]);b=!0}else b=!1;if(b){b=[];"number"==typeof a.f?b.push(a.f):null!=a.f&&a.f.length&&(b=a.f);for(c=0;c<b.length;c++){for(var d=a,e=b[c],g=d.H,f=d.w,h=[],k=d.C>>>g.f;0<f&&k<g.b.length;)h.push(g.b[k++]),f-=16384;g=d.H;d=d.w;f=0;for(e>>>=
g.f;0<d&&e<g.b.length;){k=h[f++];if(!k)break;g.b[e++]=k;d-=16384}}delete a.b}}}z(a)}}fb(function(){for(var a=y(document,x,"rom"),b=0;b<a.length;b++){var c=a[b],d=w(c),d=new we(d);Db(d,c)}});
function ze(a){u.call(this,"RAM",a);this.T=this.Ca=null;this.f=+a.addr;this.w=+a.size;this.na=a.load;this.ma=a.exec;null!=this.na&&(this.na=+this.na);null!=this.ma&&(this.ma=+this.ma);this.A=this.G=!1;this.b=a.file;this.C=xa(this.b);if(this.b){a=this.b;var b=ya(this.C);"json"!=b&&"hex"!=b&&(a=Aa()+"/api/v1/dump?file="+this.b+"&format=bytes&decimal=true");var c=this;Ma(a,null,!0,function(a,b,g){g?(c.da("Unable to load RAM resource (error "+g+": "+a+")"),c.b=null):(nb(c.La,a,b),(a=Na(a,b))?(c.Ca=a.Ca,
c.T=a.T,null==c.na&&(c.na=a.na),null==c.ma&&(c.ma=a.ma)):c.b=null);Ae(c)})}}p(ze,u);ze.prototype.xa=function(a,b,c,d){this.H=b;this.u=c;this.D=d;Ae(this)};ze.prototype.pa=function(a,b){this.T&&(this.D&&ye(this.D,this.id,this.f,this.w,this.T),delete this.T);b||this.reset();return!0};ze.prototype.ga=function(){return!0};
function Ae(a){if(a.H&&(!a.A&&a.w&&(Jc(a.H,a.f,a.w,1)?a.A=!0:a.w=0),!Lb(a))){if(!a.A)r("No RAM allocated");else if(a.b){if(!a.Ca)return;Be(a,a.Ca,a.na,a.ma,a.f)?a.status('Loaded image "'+a.C+'"'):a.da('Error loading image "'+a.C+'"')}a.G=!0;z(a)}}
ze.prototype.reset=function(){if(this.A&&!this.G){for(var a=this.H,b=this.f,c=this.w,d=b&16383,b=b>>>a.f;0<c&&b<a.b.length;){var e=a.b[b],g=c,f=0,h,d=d||0,f=f||0;0>f&&f>=-qa&&(f+=pa);f=Math.trunc(Math.abs(f))%Math.pow(2,36);void 0===g&&(g=e.size);for(h=d;g--&&h<e.size;h++)e.F(f,d,e.B+d);c-=16384;b++;d=0}this.Ca&&Be(this,this.Ca,this.na,this.ma,this.f,!this.D)}this.G=!1};
function Be(a,b,c,d,e,g){var f=!1;null==c&&(c=e);if(null!=c){for(f=0;f<b.length;f++)Dc(a.H,c+f,b[f]);f=!0}f&&(null==d&&(a.u.V(),g=!1),null!=d&&(a=a.u,a.Aa=d,a.A=d%Sb,g?a.v.U?a.v.K||xc(a):a.v.Z=!0:a.D&&a.v.U?a.V()||a.F.v.reset||(ed(a.D),N(a.F,-1)):!1===g&&a.V(),!a.v.K&&a.za&&a.za.stop()));return f}fb(function(){for(var a=y(document,x,"ram"),b=0;b<a.length;b++){var c=a[b],d=w(c),d=new ze(d);Db(d,c)}});
function Ce(a){u.call(this,"SerialPort",a,1048576);this.A=a.upperCase;"string"==typeof this.A&&(this.A="true"==this.A);this.w=!0;this.f=[];var b=a.binding;if("console"!=b){var c;a=De;b&&(void 0===c&&(c="Panel"),(c=Cb(c,this.id))&&(b=c.I[b])&&this.ha(null,a,b))}this.b=this.C=null;this.exports={connect:this.qb,receiveData:this.Pa,receiveStatus:this.Ob,setConnection:this.Rb}}p(Ce,u);l=Ce.prototype;
l.ha=function(a,b,c){var d=this;switch(b){case De:return this.I[b]=c,c.onkeydown=function(a){a=a||window.event;var b=0,c=a.keyCode;8==c?b=a.altKey?ta.cb:ta.ub:46==c?b=ta.cb:a.ctrlKey&&c>=ta.bb&&c<=ta.xb&&(b=c-(ta.bb-ta.rb));b&&(a.preventDefault&&a.preventDefault(),d.Pa(b));return!0},c.onkeypress=function(a){a=a||window.event;if(!a.metaKey){var b=a.which||a.keyCode;a.altKey&&b==ta.tb&&(b=ta.sb);d.Pa(b);a.preventDefault&&a.preventDefault()}return!0},c.onpaste=function(a){a.stopPropagation&&a.stopPropagation();
a.preventDefault&&a.preventDefault();(a=a.clipboardData||window.clipboardData)&&d.Pa(a.getData("Text"))},c.removeAttribute("readonly"),!0}return!1};l.xa=function(a,b,c,d){this.F=a;this.H=b;this.u=c;this.D=d;z(this)};
l.qb=function(a){if(!this.b){var b=bd(this.F,"connection");if(b){var c=b.split("->");if(2==c.length){var d=Ja(c[0]);if(d!=this.Ka)return;c=Ja(c[1]);if(this.b=Bb(c)){var e=this.b.exports;if(e){var g=e.connect;g&&g.call(this.b,this.w);if(this.C=e.receiveData){this.w=a;this.status("Connected "+this.La+"."+d+" to "+c);return}}}}this.status("Unable to establish connection: "+b)}}};l.pa=function(a,b){if(!b)if(this.qb(this.w),!a)this.reset();else if(!this.restore(a))return!1;return!0};
l.ga=function(a){return a?this.save():!0};l.reset=function(){};l.save=function(){var a=new M(this);a.set(0,[]);return a.data()};l.restore=function(){return!0};l.Pa=function(a){if("number"==typeof a)this.f.push(a);else if("string"==typeof a)for(var b=0,c,d=0;d<a.length;d++){c=b;b=a.charCodeAt(d);if(10==b){if(13==c)continue;b=13}this.f.push(b)}else this.f=this.f.concat(a);return!0};l.Ob=function(){};l.Rb=function(a,b){return this.b?!1:(this.b=a,this.C=b,!0)};var De="buffer";
fb(function(){for(var a=y(document,x,"serial"),b=0;b<a.length;b++){var c=a[b],d=w(c),d=new Ce(d);Db(d,c)}});function Ee(a){u.call(this,"Debugger",a);this.ca=+a.base||16;this.la=!1;this.C=0;this.P=!1;this.A=-1;this.w=[];this.W={}}p(Ee,u);Ee.prototype.pb=function(){return-1};Ee.prototype.$a=function(){};
function Fe(a,b,c,d){if(c)if(b){0>a.A&&a.w.length&&(a.A=0);if(0>a.A||b!=a.w[a.A])a.w.splice(0,0,b),a.A=0;a.A--}else a.P?b="end":b=a.w[a.A+1];a=[];if(b){b=b.replace(/""/g,"'");c=0;var e=null;d=d||";";for(var g=0;g<=b.length;g++){var f=b.charAt(g);if('"'==f||"'"==f)e?f==e&&(e=null):e=f;else if(f==d&&!e||!f)a.push(Ja(b.substring(c,g))),c=g+1}}return a}
function Ge(a,b,c){for(c=c||-1;c--&&b.length;){var d=b.pop();if(2>a.length)return!1;var e=a.pop(),g=a.pop();switch(d){case "*":d=g*e;break;case "/":if(!e)return!1;d=g/e;break;case "%":if(!e)return!1;d=g%e;break;case "+":d=g+e;break;case "-":d=g-e;break;case "<<":d=g<<e;break;case ">>":d=g>>e;break;case ">>>":d=g>>>e;break;case "<":d=g<e?1:0;break;case "<=":d=g<=e?1:0;break;case ">":d=g>e?1:0;break;case ">=":d=g>=e?1:0;break;case "==":d=g==e?1:0;break;case "!=":d=g!=e?1:0;break;case "&":d=g&e;break;
case "^":d=g^e;break;case "|":d=g|e;break;case "&&":d=g&&e?1:0;break;case "||":d=g||e?1:0;break;default:return!1}a.push(d|0)}return!0}
function V(a,b,c){var d;if(b){b=Ie(a,b);for(var e=0,g=!1,f=b,h=[],k=[],m=b.split(/(\|\||&&|\||^|&|!=|==|>=|>>>|>>|>|<=|<<|<|-|\+|%|\/|\*)/);e<m.length;){var n=m[e++],r=n.length,n=Ia(n);if(!n){g=!0;break}n=Je(a,n,null,!1===c);if(void 0===n){g=!0;c=!1;break}h.push(n);if(e==m.length)break;var n=m[e++],C=n.length;k.length&&Ke[n]<Ke[k[k.length-1]]&&He(h,k,1);k.push(n);b=b.substr(r+C)}He(h,k)&&1==h.length||(g=!0);g?c&&a.i("error parsing '"+f+"' at character "+(f.length-b.length)):(d=h.pop(),c&&Le(a,null,
d))}return d}function Ie(a,b){for(var c,d=a.la?"(":"{",e=a.la?")":"}",g=new RegExp(a.la?"\\((.*?)\\)":"\\{(.*?)\\}");(c=b.match(g))&&!(0<=c[1].indexOf(d));){var f=V(a,c[1]);b=b.replace(d+c[1]+e,null!=f?N(a,f):"undefined")}for(;(c=b.match(/\[(.*?)]/))&&!(0<=c[1].indexOf("["));)b=b.replace("["+c[1]+"]","unimplemented");for(a=b;b=a.match(/\$([a-z]+)/i);){c=null;switch(b[1].toLowerCase()){case "ops":c=0}if(null==c)break;a=a.replace(b[0],c.toString())}return a}
function Je(a,b,c,d){var e;null!=b?(e=a.pb(b),0<=e?e=a.$a(e):(e=a.W[b],null==e&&(e=ta(b,a.ca))),null!=e||d||a.i("invalid "+(c?c:"value")+": "+b)):d||a.i("missing "+(c||"value"));return e}
function Le(a,b,c){var d,e=!1;if(void 0!==c){e=!0;d=c;var g=4,f="";if(!g||4<g)g=4;for(var h=0;h<g;h++){f&&(f=","+f);var k=d&255,m=void 0,n=8,r="";n?32<n&&(n=32):n=32;for(var C=null==k||isNaN(k),aa=m=m||n;0<n--;)aa||(r=","+r,aa=m),r=(C?"?":k&1?"1":"0")+r,k>>=1,aa--;f=r+f;d>>=8}d=t(c,0,!0)+" "+c+". "+va(c,0,!0)+" "+("0b"+f);32<=c&&127>c&&(d+=" '"+String.fromCharCode(c)+"'")}a.i((null!=b?b+": ":"")+d);return e}
function Me(a,b){if(b)return Le(a,b,a.W[b]);var c=0;for(b in a.W)Le(a,b,a.W[b]),c++;return 0<c}function N(a,b,c){c=void 0===c?0:c;switch(a.ca){case 8:b=va(b,0<c?(c+2)/3|0:0);break;case 10:(a=0<c?Math.ceil(.3*c):0)?11<a&&(a=11):a=b&-65536?10:5;b=ua(b,10,a);break;default:b=t(b,0<c?c+3>>2:0)}0>c?c=b.replace(/^0+([0-9A-F]+)$/i,"$1"):c=b;return c}var Ke={"||":0,"&&":1,"|":2,"^":3,"&":4,"!=":5,"==":5,">=":6,">":6,"<=":6,"<":6,">>>":7,">>":7,"<<":7,"-":8,"+":8,"%":9,"/":9,"*":9};
function Ne(a){Fe.call(this,a);this.wa=!1;this.la=!0;this.va=W();this.L=W(0);this.ja=W(0);this.ba=W(0);this.G=[];this.b=this.M=this.J=[];Oe(this);this.R=this.ka=0;this.f=[];this.sa=void 0;Pe(this);this.D=this;this.qa={};this.X=this.lb=0;this.S=null;this.O=[];Qe(this,a.messages);this.ua=a.commands;this.N=0;this.Ba=this.ta=null;this.C=this.Aa=this.za=this.ia=this.ra=0;this.ea=this.aa=null;var b=this;window?void 0===window[y]&&(window[y]=function(a){return hd(b,a)}):void 0===global[y]&&(global[y]=function(a){return hd(b,
a)})}p(Ne,Fe);function Y(a){a=a&&a.B;null==a&&(a=-1);return a}function W(a,b,c){return{B:void 0===a?null:a,Na:void 0===b?!1:b,fa:!1,ca:c}}function Re(a,b,c,d){a.B=b;a.Na=c||!1;a.fa=!1;a.ca=d}function Se(a){return[a.B,a.Na,a.fa,a.ca,a.Qa]}function Te(a,b){var c=W(b[0],b[1],b[2]);c.fa=b[3];b[4]&&(c.jb=Ge(a,c.Qa=b[4]));return c}l=Ne.prototype;
l.xa=function(a,b,c,d){this.H=b;this.F=a;this.u=c;this.ea=a.w;(a=cd(a,"messages"))&&Qe(this,a);Ue(this,function(a){a:{var b=d.H.b,c=a[0],e=a=0,k=b.length;if(c){a=Y(Z(d,c,d.ja));if(-1===a){d.i("invalid address: "+c);break a}e=a>>>d.H.f;k=1}d.i("blockid physical blockaddr used size type");d.i("-------- --------- --------- ------ ------ ----");for(var c=-1,m=0;k--;){var n=b[e];n.type==c?m++||d.i("..."):(c=n.type,m=Nc[c],n&&d.i(t(n.id,8)+" %"+t(e<<d.H.f,8)+" %"+t(n.B,8)+" "+t(n.Ha,
4,!0)+" "+t(n.size,4,!0)+" "+m),c!=Rc&&(c=-1),m=0);a+=16384;e++}}});B(this)};
l.ha=function(a,b,c){var d=this;switch(b){case "debugInput":return this.aa=this.I[b]=c,c.onkeydown=function(a){var b;if(13==a.keyCode)b=c.value,c.value="",hd(d,b,!0);else if(27==a.keyCode)c.value=b="";else if(38==a.keyCode?(b=null,d.A<d.w.length-1&&(b=d.w[++d.A])):40==a.keyCode&&(0<d.A?b=d.w[--d.A]:(b="",d.A=-1)),null!=b){var e=b.length;c.value=b;c.setSelectionRange(e,e)}null!=b&&a.preventDefault&&a.preventDefault()},!0;case "debugEnter":return this.I[b]=c,cb(c,function(){if(d.aa){var a=d.aa.value;
d.aa.value="";hd(d,a,!0);return!0}return!1}),!0;case "step":return this.I[b]=c,cb(c,function(a){var b=!1;Lb(d,!0)||(Mb(d,!0),b=zc(d,a?1:0,null),Mb(d,!1));return b}),!0}return!1};function gd(a){if(a.aa){var b=0,c=0;window&&(b=window.scrollX,c=window.scrollY);a.aa.focus();window&&window.scrollTo(b,c)}}l.ya=function(a,b){var c=-1,d=Y(a);-1!==d&&(c=Fc(this.H,d),b&&null!=a.B&&(a.B+=b||1));return c};l.eb=function(a,b,c){var d=Y(a);-1!==d&&(Ec(this.H,d,b),c&&null!=a.B&&(a.B+=c||1),M(this.F,-1))};
function Z(a,b,c){var d,e;c||(c=W());var g=c.B;if(void 0!==b){b=Ie(a,b);"%"==b.charAt(0)&&(d=!0,b=b.substr(1));var f,g=b,h;if(g.match(/^[a-z_][a-z0-9_]*$/i))for(var g=g.toUpperCase(),k=0;k<a.G.length;k++){var m=a.G[k].T[g];if(null!=m){h=m.o;break}}null!=h&&(f=W(h));if(f)return f;0<=b.indexOf("0x")?e=16:0<=b.indexOf("0o")?e=8:0<=b.indexOf(".")&&(e=10);g=V(a,b,void 0)}null!=g&&Re(c,g,d,e);return c}function Ve(a,b,c){c&&(c=c.match(/(['"])(.*?)\1/))&&(b.jb=Ge(a,b.Qa=c[2]))}
function We(a){return va(a/Rb,6)+" "+va(a%Rb,6)}function Qe(a,b){a.D=a;a.X=a.lb=536870916;a.S=null;a.O=[];b=Ge(a,b.replace("keys","key").replace("kbd","keyboard"),!1,"|");if(b.length)for(var c in K){var d;a:if(d=void 0,Array.prototype.indexOf)d=b.indexOf(c,d);else{d=d||0;0>d&&(d+=b.length);0>d&&(d=0);for(var e=b.length;d<e;d++)if(d in b&&b[d]===c)break a;d=-1}0<=d&&(a.X|=K[c],a.i(c+" messages enabled"))}}function Ue(a,b){for(var c in K)if(16==K[c]){a.qa[c]=b;break}}l.pb=function(a){return Xe.indexOf(a.toUpperCase())};
function He(a,b,c){var d;if(b){b=Ie(a,b);for(var e=0,g=!1,f=b,h=[],k=[],m=b.split(/(\|\||&&|\||^|&|!=|==|>=|>>>|>>|>|<=|<<|<|-|\+|%|\/|\*)/);e<m.length;){var n=m[e++],t=n.length,n=Ja(n);if(!n){g=!0;break}n=Je(a,n,null,!1===c);if(void 0===n){g=!0;c=!1;break}h.push(n);if(e==m.length)break;var n=m[e++],D=n.length;k.length&&Ke[n]<Ke[k[k.length-1]]&&Ge(h,k,1);k.push(n);b=b.substr(t+D)}Ge(h,k)&&1==h.length||(g=!0);g?c&&a.i("error parsing '"+f+"' at character "+(f.length-b.length)):(d=h.pop(),c&&Le(a,null,
d))}return d}function Ie(a,b){for(var c,d=a.la?"(":"{",e=a.la?")":"}",g=new RegExp(a.la?"\\((.*?)\\)":"\\{(.*?)\\}");(c=b.match(g))&&!(0<=c[1].indexOf(d));){var f=He(a,c[1]);b=b.replace(d+c[1]+e,null!=f?O(a,f):"undefined")}for(;(c=b.match(/\[(.*?)]/))&&!(0<=c[1].indexOf("["));)b=b.replace("["+c[1]+"]","unimplemented");for(a=b;b=a.match(/\$([a-z]+)/i);){c=null;switch(b[1].toLowerCase()){case "ops":c=0}if(null==c)break;a=a.replace(b[0],c.toString())}return a}
function Je(a,b,c,d){var e;null!=b?(e=a.pb(b),0<=e?e=a.$a(e):(e=a.W[b],null==e&&(e=ua(b,a.ca))),null!=e||d||a.i("invalid "+(c?c:"value")+": "+b)):d||a.i("missing "+(c||"value"));return e}
function Le(a,b,c){var d,e=!1;if(void 0!==c){e=!0;d=c;var g=4,f="";if(!g||4<g)g=4;for(var h=0;h<g;h++){f&&(f=","+f);var k=d&255,m=void 0,n=8,t="";n?32<n&&(n=32):n=32;for(var D=null==k||isNaN(k),ca=m=m||n;0<n--;)ca||(t=","+t,ca=m),t=(D?"?":k&1?"1":"0")+t,k>>=1,ca--;f=t+f;d>>=8}d=q(c,0,!0)+" "+c+". "+wa(c,0,!0)+" "+("0b"+f);32<=c&&127>c&&(d+=" '"+String.fromCharCode(c)+"'")}a.i((null!=b?b+": ":"")+d);return e}
function Me(a,b){if(b)return Le(a,b,a.W[b]);var c=0;for(b in a.W)Le(a,b,a.W[b]),c++;return 0<c}function O(a,b,c){c=void 0===c?0:c;switch(a.ca){case 8:b=wa(b,0<c?(c+2)/3|0:0);break;case 10:(a=0<c?Math.ceil(.3*c):0)?11<a&&(a=11):a=b&-65536?10:5;b=va(b,10,a);break;default:b=q(b,0<c?c+3>>2:0)}0>c?c=b.replace(/^0+([0-9A-F]+)$/i,"$1"):c=b;return c}var Ke={"||":0,"&&":1,"|":2,"^":3,"&":4,"!=":5,"==":5,">=":6,">":6,"<=":6,"<":6,">>>":7,">>":7,"<<":7,"-":8,"+":8,"%":9,"/":9,"*":9};
function Ne(a){Ee.call(this,a);this.wa=!1;this.la=!0;this.va=W();this.L=W(0);this.ja=W(0);this.ba=W(0);this.G=[];this.b=this.M=this.J=[];Oe(this);this.R=this.ka=0;this.f=[];this.sa=void 0;Pe(this);this.D=this;this.qa={};this.X=this.lb=0;this.S=null;this.O=[];Qe(this,a.messages);this.ua=a.commands;this.N=0;this.Ba=this.ta=null;this.C=this.Aa=this.za=this.ia=this.ra=0;this.ea=this.aa=null;var b=this;window?void 0===window[x]&&(window[x]=function(a){return gd(b,a)}):void 0===global[x]&&(global[x]=function(a){return gd(b,
a)})}p(Ne,Ee);function X(a){a=a&&a.B;null==a&&(a=-1);return a}function W(a,b,c){return{B:void 0===a?null:a,Na:void 0===b?!1:b,fa:!1,ca:c}}function Re(a,b,c,d){a.B=b;a.Na=c||!1;a.fa=!1;a.ca=d}function Se(a){return[a.B,a.Na,a.fa,a.ca,a.Qa]}function Te(a,b){var c=W(b[0],b[1],b[2]);c.fa=b[3];b[4]&&(c.jb=Fe(a,c.Qa=b[4]));return c}l=Ne.prototype;
l.xa=function(a,b,c,d){this.H=b;this.F=a;this.u=c;this.ea=a.w;(a=bd(a,"messages"))&&Qe(this,a);Ue(this,function(a){a:{var b=d.H.b,c=a[0],e=a=0,k=b.length;if(c){a=X(Y(d,c,d.ja));if(-1===a){d.i("invalid address: "+c);break a}e=a>>>d.H.f;k=1}d.i("blockid physical blockaddr used size type");d.i("-------- --------- --------- ------ ------ ----");for(var c=-1,m=0;k--;){var n=b[e];n.type==c?m++||d.i("..."):(c=n.type,m=Mc[c],n&&d.i(q(n.id,8)+" %"+q(e<<d.H.f,8)+" %"+q(n.B,8)+" "+q(n.Ha,
4,!0)+" "+q(n.size,4,!0)+" "+m),c!=Qc&&(c=-1),m=0);a+=16384;e++}}});z(this)};
l.ha=function(a,b,c){var d=this;switch(b){case "debugInput":return this.aa=this.I[b]=c,c.onkeydown=function(a){var b;if(13==a.keyCode)b=c.value,c.value="",gd(d,b,!0);else if(27==a.keyCode)c.value=b="";else if(38==a.keyCode?(b=null,d.A<d.w.length-1&&(b=d.w[++d.A])):40==a.keyCode&&(0<d.A?b=d.w[--d.A]:(b="",d.A=-1)),null!=b){var e=b.length;c.value=b;c.setSelectionRange(e,e)}null!=b&&a.preventDefault&&a.preventDefault()},!0;case "debugEnter":return this.I[b]=c,db(c,function(){if(d.aa){var a=d.aa.value;
d.aa.value="";gd(d,a,!0);return!0}return!1}),!0;case "step":return this.I[b]=c,db(c,function(a){var b=!1;Mb(d,!0)||(Nb(d,!0),b=yc(d,a?1:0,null),Nb(d,!1));return b}),!0}return!1};function fd(a){if(a.aa){var b=0,c=0;window&&(b=window.scrollX,c=window.scrollY);a.aa.focus();window&&window.scrollTo(b,c)}}l.ya=function(a,b){var c=-1,d=X(a);-1!==d&&(c=Ec(this.H,d),b&&null!=a.B&&(a.B+=b||1));return c};l.eb=function(a,b,c){var d=X(a);-1!==d&&(Dc(this.H,d,b),c&&null!=a.B&&(a.B+=c||1),N(this.F,-1))};
function Y(a,b,c){var d,e;c||(c=W());var g=c.B;if(void 0!==b){b=Ie(a,b);"%"==b.charAt(0)&&(d=!0,b=b.substr(1));var f,g=b,h;if(g.match(/^[a-z_][a-z0-9_]*$/i))for(var g=g.toUpperCase(),k=0;k<a.G.length;k++){var m=a.G[k].T[g];if(null!=m){h=m.o;break}}null!=h&&(f=W(h));if(f)return f;0<=b.indexOf("0x")?e=16:0<=b.indexOf("0o")?e=8:0<=b.indexOf(".")&&(e=10);g=He(a,b,void 0)}null!=g&&Re(c,g,d,e);return c}function Ve(a,b,c){c&&(c=c.match(/(['"])(.*?)\1/))&&(b.jb=Fe(a,b.Qa=c[2]))}
function We(a){return wa(a/Sb,6)+" "+wa(a%Sb,6)}function Qe(a,b){a.D=a;a.X=a.lb=536870916;a.S=null;a.O=[];b=Fe(a,b.replace("keys","key").replace("kbd","keyboard"),!1,"|");if(b.length)for(var c in L){var d;a:if(d=void 0,Array.prototype.indexOf)d=b.indexOf(c,d);else{d=d||0;0>d&&(d+=b.length);0>d&&(d=0);for(var e=b.length;d<e;d++)if(d in b&&b[d]===c)break a;d=-1}0<=d&&(a.X|=L[c],a.i(c+" messages enabled"))}}function Ue(a,b){for(var c in L)if(16==L[c]){a.qa[c]=b;break}}l.pb=function(a){return Xe.indexOf(a.toUpperCase())};
l.$a=function(a){var b,c=this.u;switch(a){case Ye:b=c.A;break;case Ze:b=c.J;break;case $e:b=c.f;break;case af:b=c.w&65536?1:0;break;case bf:b=c.w&32768?1:0;break;case cf:b=c.w&131072?1:0;break;case df:b=c.w&32?1:0;break;case ef:b=c.w&262144?1:0}return b};
l.message=function(a,b){b&&(a+=" @"+N(this,W(this.u.sa).B));if(!this.S||a!=this.S)if(this.S=a,this.X&1073741824)this.O.push(a);else{var c;if(this.X&-2147483648&&this.u&&(c=this.u.v.K)||Lb(this,!0))this.V(),c&&(a+=" (cpu halted)");this.i(a);this.u&&(a=this.u,Jd(a),a.ea=0,a.F&&M(a.F,void 0))}};
function Pe(a){var b;if(!Qd(a))a.f&&a.f.length&&a.i("instruction history buffer freed"),a.R=0,a.f=[];else if(!a.f||!a.f.length){a.f=Array(Nf);for(b=0;b<a.f.length;b++)a.f[b]=W();a.R=0;a.i("instruction history buffer allocated")}}function Pf(a,b,c){if(!Qf(a,c))return!1;yc(a.u,b);return!0}
function zc(a,b,c,d){if(!Qf(a))return!1;var e="";null===c&&(e=(c=!a.ta||"tr"==a.ta)?"tr":"t");a.C=0;b||Qd(a)&&Rd(a,a.u.A,0);try{b=nd(a.u,b);var g=a.u.Ja(b);0<g&&(Ac(a.u,g),a.C+=g,Bc(a.u,g,!0),Cc(a.u,g),a.ia++)}catch(f){"number"!=typeof f&&(a.C=0,Ib(a.u,f.stack||f.message))}!1!==d&&(a.ea&&a.ea.stop(),M(a.F,-1));fd(a,c||!1,e);return 0<a.C}l.V=function(a){this.u&&this.u.V(a)};function fd(a,b,c){b=void 0===b?!0:b;a.wa&&(c&&a.i(Rf+c),Re(a.L,a.u.A),b&&1!=a.N?Sf(a):Tf(a))}
function Qf(a,b){var c;(c=!a.u||!Kb(a.u))||(c=a.u,c.v.U?c=!0:(c.i(c.toString()+" not powered"),c=!1),c=!c);return c||a.u.v.K?(b||a.i("cpu busy or unavailable, command ignored"),!1):!Jb(a.u)}l.pa=function(a,b){return!b&&(this.reset(!0),a)?this.restore(a):!0};l.ga=function(a,b){b&&this.i(a?"suspending":"shutting down");return a?this.save():!0};l.reset=function(a){Pe(this);this.ia=0;this.S=null;this.C=0;Re(this.L,this.u.A);this.v.K=!1;Uf(this);a||fd(this)};
l.save=function(){var a=new L(this);a.set(0,Se(this.L));a.set(1,Se(this.ja));a.set(2,Se(this.ba));a.set(3,[this.w,this.P,this.X]);a.set(4,this.G);return a.data()};l.restore=function(a){var b=0;void 0!==a[3]&&(this.L=Te(this,a[b++]),this.ja=Te(this,a[b++]),this.ba=Te(this,a[b++]),this.w=a[b][0],"string"==typeof this.w&&(this.w=[this.w]),this.P=a[b][1],this.X|=a[b][2]);a[4]&&(this.G=a[4]);return!0};l.start=function(a,b){this.N||this.i("running");this.v.K=!0;this.za=a;this.Aa=b};
l.stop=function(a,b){if(this.v.K){this.v.K=!1;this.C=b-this.Aa;if(!this.N){b="stopped";if(this.C){a-=this.za;var c=0<a?Math.round(1E3*this.C/a):0;b+=" (";Qd(this)&&(b+=this.ia+" instructions, ",this.ia=0);b+=this.C+" cycles, "+a+" ms, "+c+" hz)"}else Nb(this,-2147483648)&&(b+=" (use the 't' command to execute blocked faults)");this.i(b)}fd(this,!0);gd(this);Uf(this,this.u.A);this.S=null}};function Qd(a){return 1<a.b.length||!!a.ka}
function Rd(a,b,c){var d=-1;c||(d=a.u.g(b),2756==d>>23&&a.u.sa==b&&(b=Od(a.u,1)));if(0<c&&(a.ka&&!--a.ka||$c(a,b,1,a.b)))return!0;0<=c&&a.f.length&&(a.ia++,0>d&&(d=a.u.g(b)),0<=d&&(Re(a.f[a.R],b),++a.R==a.f.length&&(a.R=0)));return!1}
function Vf(a,b,c,d){var e=W(b.B),g=a.ya(b,1),f,h,k,m=0,n=g/Yb|0,r;for(r in Wf)if(f=Wf[r][n&r]){h=+r;n>>=6;switch(h){case 32512:k=Xf;m=n&3;break;case 32256:k=Yf;m=n&7;break;case 29248:k=Zf,m=(n&48)>>2|(n&6)>>1}break}k=k&&k[m]||"";"S"==k&&f>$f&&(k="B");k=ag[f||0]+k;k=Ha(k,8);f?(k=28700==h?k+N(a,g/Zb&127,-1):k+N(a,g>>23&15,-1),k+=",",g&4194304&&(k+="@"),k+=N(a,g&262143,-1),(g=g>>18&15)&&(k+="("+N(a,g,-1)+")")):k+=We(g);g=k;f="";h=N(a,e.B)+":";if(-1!==e.B&&-1!==b.B){do if(k=a.ya(e,1),f+=" "+We(k),null==
e.B)break;while(e.B!=b.B)}h+=Ha(f,16)+g;c&&(h=Ha(h,48)+";"+(c||""),h=a.u.v.Ea?h+("cycles="+id(a.u).toString()+" cs="+t(a.u.ua)):h+(null!=d?"="+d.toString():""));return h}function Oe(a){var b,c;a.b=["bp"];if(a.M)for(b=1;b<a.M.length;b++){c=a.M[b];c=Y(c);var d=a.H;Zc(d.b[c>>>d.f],!1)}a.M=["br"];if(a.J)for(b=1;b<a.J.length;b++)c=a.J[b],c=Y(c),d=a.H,Zc(d.b[c>>>d.f],!0);a.J=["bw"];a.ra=0;a.ka=0}
l.Da=function(a,b,c){var d=!0;c||bg(this,a,b,!1,!0);if(a!=this.b){var e=Y(b);if(-1===e)this.i("invalid address: "+N(this,b.B)),d=!1;else{var g=this.H;g.b[e>>>g.f].Da(e&16383,a==this.J)}}d&&(a.push(b),c?b.fa=!0:(cg(this,a,a.length-1,"set"),Pe(this)));return d};function bg(a,b,c,d,e){var g=!1;c=Y(c);for(var f=1;f<b.length;f++){var h=b[f];if(c==Y(h)&&(!d||h.fa)){g=!0;h.fa||e||cg(a,b,f,"cleared");b.splice(f,1);b!=a.b&&(d=a.H,Zc(d.b[c>>>d.f],b==a.J));h.fa||Pe(a);break}}return g}
function dg(a,b){for(var c=1;c<b.length;c++)cg(a,b,c);return b.length-1}function cg(a,b,c,d){c=b[c];a.i(b[0]+" "+N(a,c.B)+(d?" "+d:c.Qa?' "'+c.Qa+'"':""))}function Uf(a,b){if(void 0!==b)$c(a,b,1,a.b,!0),a.N=0;else for(b=1;b<a.b.length;b++){var c=a.b[b];if(c.fa){if(!bg(a,a.b,c,!0))break;b=0}}}
function $c(a,b,c,d,e){var g=!1;if(!a.ra++)for(var f=1;!g&&f<d.length;f++){var h=d[f];if(!e||h.fa)for(var k=Y(h)&(d==a.b?65535:-1),m=0;m<c;m++)if(b+m==k){var n,g=!0;h.fa&&(bg(a,d,h,!0),e=!0);if(n=h.jb){for(var g=!1,r=0;r<n.length;r++)if(!eg(a,n[r],!0)){if(n[r].indexOf("if")){g=!0;break}for(var C=r+1;C<n.length&&n[C].indexOf("else");C++)r++;if(C==n.length){g=!0;break}}a.u.v.K||(g=!0)}if(g){e||cg(a,d,f,"hit");break}}}a.ra--;return g}
function fg(a,b){b=void 0===b?!0:b;for(var c="",d=0;16>d;d++){!d||d&3||(c+="\n");var e=a,g=va(d,2);Re(e.va,d);g+="="+N(e,e.ya(e.va),36)+" ";c+=g}if(b){b="";for(d=0;d<Xe.length;d++)(e=Xe[d]||"")&&(e+="="+N(a,a.$a(d),d>=af?1:d==Ze?23:18)+" "),b+=e;c+="\n"+b}return c}l.mb=function(a,b){return a[0]>b[0]?1:a[0]<b[0]?-1:0};
function ze(a,b,c,d,e){var g=[],f;for(f in e){var h=e[f];"number"==typeof h&&(e[f]=h={o:h});var k=h.o,m=h.a;if(void 0!==k){var n=g,k=[k>>>0,f],r=Ja(n,k,a.mb);0>r&&n.splice(-(r+1),0,k)}m&&(h.a=m.replace(/''/g,'"'))}a.G.push({bd:b,B:c,Bb:d,T:e,kb:g})}function gg(a,b,c){var d=[],e=Y(b)>>>0;for(b=0;b<a.G.length;b++){var g=a.G[b],f=g.B>>>0,h=g.Bb;if(e>=f&&e<f+h){e=Ja(g.kb,[e-f],a.mb);0<=e?hg(a,b,e,d):c&&(e=~e,hg(a,b,e-1,d),hg(a,b,e,d));break}}return d}
function hg(a,b,c,d){var e={},g=a.G[b].kb,f=0,h=null;0<=c&&c<g.length&&(f=g[c][0],h=g[c][1]);h&&(e=a.G[b].T[h],h="."==h.charAt(0)?null:e.l||h);d.push(h);d.push(f);d.push(e.a);d.push(e.c)}function ig(a,b){var c=b.match(/^\s*([A-Z_]?[A-Z0-9_]*)\s*(=?)\s*(.*)$/i);if(c){if(!c[1])return Me(a)||a.i("no variables"),!0;if(!c[2])return Me(a,c[1]);if(!c[3])return delete a.W[c[1]],!0;b=V(a,c[3]);return void 0!==b?(a.W[c[1]]=b,!0):!1}a.i("invalid assignment:"+b);return!1}
function jg(a,b,c){var d=null;if(b=Z(a,b)){var e=gg(a,b,!0);if(e.length){var g,f;e[0]&&(f="",(g=b.B-e[1])&&(f=" + "+t(g,4,!0)),g=e[0]+" ("+N(a,e[1])+")"+f,c&&a.i(g),d=g);4<e.length&&e[4]&&(f="",(g=e[5]-b.B)&&(f=" - "+t(g,4,!0)),g=e[4]+" ("+N(a,e[5])+")"+f,c&&a.i(g),d||(d=g))}else c&&a.i("no symbols")}return d}
function Sf(a,b){var c;if(b&&"?"==b[1])a.i("register commands:"),a.i("\tr\tdump registers"),a.i("\trm\tdump misc registers"),a.i("\trx [#]\tset flag or register x to [#]");else{var d=a.u,e=void 0;null==c&&(c=!0);if(b&&1<b.length){var g=b[1];if("m"==g)e=!0;else{var f=g.indexOf("=");if(0<f)b=g.substr(f+1),g=g.substr(0,f);else if(2<b.length)b=b[2];else{a.i("missing value for "+b[1]);return}f=V(a,b);if(void 0===f)return;switch(g.toUpperCase()){case "PC":d.A=f%Rb;Re(a.L,d.A);break;default:a.i("unknown register: "+
g);return}M(a.F);a.i("updated registers:")}}a.i(fg(a,e));c&&(Re(a.L,d.A),Tf(a,N(a,a.L.B)))}}function kg(a,b){b=Ia(b);var c=b.match(/^(['"])(.*?)\1$/);c?1<c[2].length?a.i(c[2]):Le(a,null,c[2].charCodeAt(0)):V(a,b,!0)}
function lg(a,b,c){if("?"==c)a.i("trace commands:"),a.i("\tt [#]\ttrace # instructions"),a.i("\ttr [#]\ttrace # instructions with register updates"),a.i("\ttc [#]\ttrace # cycles"),a.i("note: bn [#] breaks after # instructions without updates");else{var d="t"!=b;c=Je(a,c,null,!0)||1;var e=0;"tc"==b&&(e=c,c=1);a.ta=b;bb(c,function(){return Mb(a,!0)&&zc(a,e,d,!1)},function(){a.ea&&a.ea.stop();M(a.F,-1);Mb(a,!1)})}}
function Tf(a,b,c,d){if(b=Z(a,b,a.L)){void 0===d&&(d=1);var e=256;if(void 0!==c)if("l"==c.charAt(0))c=Je(a,c.substr(1)),null!=c&&(d=c);else{d=Z(a,c);if(!d||d.B<b.B)return;e=d.B-b.B;if(256<e){a.i("range too large");return}d=-1}for(c=0;0<e&&d--;){var g=Lb(a,!1)||a.N?a.C:null,f=null!=g?"cycles":null,h=gg(a,b),k=b.B;if(h[0]&&d&&(!c&&d||0>h[0].indexOf("+"))){var m=h[0]+":";h[2]&&(m+=" "+h[2]);a.i(m)}h[3]&&(f=h[3],g=null);h=a.ba;m=b;h.B=m.B;h.Na=m.Na;h.fa=m.fa;h.ca=m.ca;a.i(Vf(a,b,f,g));e-=b.B-k;c++}}}
function eg(a,b,c){var d=!0;try{b.length&&"end"!=b?c||a.i(Rf+b):(a.P&&(a.i("ended assemble at "+N(a,a.ba.B)),a.P=!1),b="");var e=b.charAt(0);if('"'==e||"'"==e)return!0;a.S=null;if(Kb(a)&&0<b.length){a.P&&(b="a "+N(a,a.ba.B)+" "+b);var g=!1,f=b.replace(/ +/g," ").split(" ");f[0]=f[0].toLowerCase();if(f&&f.length)for(var h=f[0],k=h.charAt(0),m=1;m<h.length;m++){var n=h.charAt(m);if("?"==k||"r"==k||"a">n||"z"<n){f[0]=h.substr(m);f.unshift(h.substr(0,m));break}}switch(f[0].charAt(0)){case "a":var r=Z(a,
f[1],a.ba);if(r){var C=f[2];if(void 0==C)a.i("begin assemble at "+N(a,r.B)),a.P=!0,M(a.F);else{f.shift();f.shift();f.shift();var aa,ff=f.join(""),A=-1,nc,Ng=C.toUpperCase(),pd;for(pd in Wf){var Pa;nc=+pd;var gf=Wf[pd];switch(nc){case 32512:Pa=Xf;break;case 32256:Pa=Yf;break;case 29248:Pa=Zf;break;default:Pa=[""]}var hf,qd;for(qd in gf){for(var jf=gf[qd],Qa=0;Qa<Pa.length;Qa++){var rd=Pa[Qa];"S"==rd&&jf>$f&&(rd="B");if(Ng==ag[jf]+rd){hf=29248!=nc?Qa:(Qa&3)<<1|(Qa&12)<<2;A=(qd|hf<<6)*Yb;break}}if(0<=
A)break}if(0<=A)break}if(0<=A)if(ff)for(var sd=ff.split(","),nb=0;nb<sd.length;nb++){var oc=sd[nb].trim();if(oc){if(1<nb){a.i("too many operands: "+oc);A=-1;break}var ba=oc.match(/(@?)([^(]*)\(?([^)]*)\)?/);if(!ba){a.i("unknown operand: "+oc);A=-1;break}var J=V(a,ba[2]);if(void 0==J){A=-1;break}if(!nb&&1<sd.length)if(28700==nc){if(0>J||127<J){a.i("device code out of range: "+ba[2]);A=-1;break}A+=J*Zb}else{if(0>J||15<J){a.i("accumulator address out of range: "+ba[2]);A=-1;break}A+=J<<23}else{if(0>
J||262143<J){a.i("memory address out of range: "+ba[2]);A=-1;break}A+=J;if(ba[3]){J=V(a,ba[3]);if(void 0==J){A=-1;break}if(0>J||15<J){a.i("memory index out of range: "+ba[3]);A=-1;break}A+=J<<18}ba[1]&&(A+=4194304)}}}else a.i("missing operand(s)"),A=-1;else a.i("unknown instruction: "+C);aa=A;0<=aa&&(a.eb(r,aa),a.i(Vf(a,r)))}}break;case "b":a:{var Og=f[0],Ra=f[1],Pg=b;if("?"==Ra)a.i("breakpoint commands:"),a.i("\tbp #\tset exec breakpoint"),a.i("\tbr #\tset read breakpoint"),a.i("\tbw #\tset write breakpoint"),
a.i("\tbc #\tclear breakpoint (* to clear all)"),a.i("\tbl\tlist all breakpoints"),a.i("\tbn [#]\tbreak after # instruction(s)");else{var za=Og.charAt(1);if("l"==za){var td;td=0+dg(a,a.b);td+=dg(a,a.M);(td+=dg(a,a.J))||a.i("no breakpoints")}else if("n"==za){var kf=+Ra||0;Ra&&(a.ka=kf);a.i("break after "+kf+" instruction(s)")}else if(void 0===Ra)a.i("missing breakpoint address");else{var P=W();if("*"!=Ra&&(P=Z(a,Ra,a.L),!P))break a;"c"==za?null==P.B?(Oe(a),a.i("all breakpoints cleared")):bg(a,a.b,
P)||bg(a,a.M,P)||bg(a,a.J,P)||a.i("breakpoint missing: "+N(a,P.B)):null!=P.B&&(Ve(a,P,Pg),"p"==za?a.Da(a.b,P):"r"==za?a.Da(a.M,P):"w"==za?a.Da(a.J,P):a.i("unknown breakpoint command: "+za))}}}break;case "c":a.oa&&(a.oa.value="");break;case "d":a:{var Sa,Ta=f[0],ca=f[1],oa=f[2],Qg=f[3];if("?"==ca){var Ua="";for(Sa in K)a.qa[Sa]&&(Ua&&(Ua+=","),Ua+=Sa);Ua+=",state,symbols";a.i("dump memory commands:");a.i("\tdw [a] [n] dump n words at address a");a.i("\tds [a] [n] dump n words at address a as JSON");
a.i("\tdh [p] [n] dump n instructions from history position p");Ua.length&&a.i("dump extension commands:\n\t"+Ua)}else if("state"==ca){var ud=mg(a.F,!0);"console"==oa?console.log(ud):(a.oa&&(a.oa.value=""),ud&&a.i(ud))}else if("symbols"==ca)for(var vd=0;vd<a.G.length;vd++){var wd=a.G[vd],Va;for(Va in wd.T)if("."!=Va.charAt(0)){var lf=wd.T[Va].o;if(void 0!==lf){var mf=wd.T[Va].l;mf&&(Va=mf);a.i(N(a,lf)+" "+Va)}}}else{if("d"==Ta){for(Sa in K)if(f[1]==Sa){var nf=a.qa[Sa];nf?(f.shift(),f.shift(),nf(f)):
a.i("no dump registered for "+ca);break a}ca||(Ta=a.Ba||"dw")}else a.Ba=Ta;if("dh"==Ta){var of=ca,pf=oa,qf="",rf=0,X=a.R,da=a.f;if(da.length){var T=+of||a.sa,pb=+pf||10;isNaN(T)?T=pb:qf="more ";T>da.length&&(a.i("note: only "+da.length+" available"),T=da.length);X-=T;0>X&&(null==da[da.length-1].B?(T=X+T,X=0):X+=da.length);var xd=[];"call"==pf&&(pb=1E5,xd=["CALL"]);for(void 0!==of&&a.i(T+" instructions earlier:");0<pb&&X!=a.R;){var sf=da[X++];if(null==sf.B)break;var qb=W(sf.B),Rg=T--,tf=Vf(a,qb,"history",
Rg);(!xd.length||0<=tf.indexOf(xd[0]))&&a.i(tf);qb.Ya&&(X+=qb.Ya,pb-=qb.Ya,T-=qb.Ya);X>=da.length&&(X=0);a.sa=T;rf++;pb--}}rf||(a.i("no "+qf+"history available"),a.sa=void 0)}else{var Wa=Z(a,ca,a.ja);if(Wa){var Aa=0,uf="ds"==Ta;if(oa){if("l"==oa.charAt(0))oa=oa.substr(1)||Qg,Aa=Je(a,oa);else{var vf=Z(a,oa);vf&&(Aa=vf.B-Wa.B)}0>Aa&&(Aa=0);65536<Aa&&(Aa=65536)}var Sg=a.ca;Wa.ca&&(a.ca=Wa.ca);for(var wf="db"==Ta?1:2,yd=Aa||32,zd=1==wf?2:4,Tg=(yd+zd-1)/zd|0||1,Ba="";Tg--&&0<yd;){for(var Ca="",xf="",ca=
N(a,Wa.B),yf=zd;0<yf--&&0<yd--;){var pc=a.ya(Wa,1);uf?(Ca&&(Ca+=","),Ca+=pc):(Ca+=We(pc),Ca+=" ");for(var zf=0;1==wf&&6>zf;zf++)xf+=String.fromCharCode((pc%64|0)+32),pc/=64}Ba&&(Ba+="\n");Ba=uf?Ba+(Ca+","):Ba+(ca+": "+Ca+(0>yf?" "+xf:""))}Ba&&a.i(Ba);a.ca=Sg}}}}break;case "e":if("else"==f[0])break;var Af,Bf,Cf=f[0],Ad=f[1];"e"==Cf||"ew"==Cf?(Af=a.ya,Bf=a.eb):Ad=null;if(null==Ad)a.i("edit memory commands:"),a.i("\tew [a] [...] edit words at address a");else{var qc=Z(a,Ad,a.ja);if(qc)for(var rc=2;rc<
f.length;rc++){var Bd=V(a,f[rc]);if(void 0===Bd){a.i("unknown value: "+f[rc]);break}a.i("changing "+N(a,qc.B)+" from "+We(Af.call(a,qc))+" to "+We(Bd));Bf.call(a,qc,Bd,1)}}break;case "g":a:{var Df=f[1],Ug=b;if(void 0!==Df){var Cd=Z(a,Df);if(!Cd)break a;Ve(a,Cd,Ug);a.Da(a.b,Cd,!0)}Pf(a,!0,c)}break;case "h":a.v.K?(c||a.i("halting"),a.V()):Lb(a,!0)||c||a.i("already halted");break;case "i":if("if"==f[0]){var Dd;var rb=b.substr(2),rb=Ia(rb);V(a,rb)?(c||a.i("true: "+rb),Dd=!0):(c||a.i("false: "+rb),Dd=
!1);Dd||(d=!1);break}g=!0;break;case "k":var Vg=f[0];if("?"==f[1])a.i("stack trace commands:"),a.i("\tk\tshow frame addresses"),a.i("\tks\tshow symbol information");else{var Ed=0,Fd=W(),sb=W();for(a.i("stack trace for "+N(a,sb.B));10>Ed;){for(var Da=null,Wg=256;65536>sb.B>>>0;){Fd.B=a.ya(sb,2);if(null==sb.B||!Wg--)break;if(!(Fd.B&1)){for(var Xg=a,sc=Fd,Ef=null,tb=sc.B,Ff=tb,Gd=1;6>=Gd&&tb;Gd++){if(2<Gd){sc.B=tb;var tc=Vf(Xg,sc);if(0<=tc.indexOf("JSR")){var Gf=tc.indexOf(" ");if(tb+(tc.indexOf(" ",
Gf+1)-Gf-1)/2==Ff){Ef=tc;break}}}tb-=2}sc.B=Ff;if(Da=Ef)break}}if(!Da||null==Da)break;var Hf=null;if("ks"==Vg){var If=Da.match(/[0-9A-F]+$/);If&&(Hf=jg(a,If[0]))}Da=Ha(Da,50)+" ;"+(Hf||"stack="+N(a,sb.B));a.i(Da);Ed++}Ed||a.i("no return addresses found")}break;case "l":if("ln"==f[0]){jg(a,f[1],!0);break}g=!0;break;case "m":a:{var ea,fa=null,D=f[1];"?"==D&&(D=void 0);if(void 0!==D){var pa=0;if("all"==D)pa=1879046143,D=null;else if("on"==D)fa=!0,D=null;else if("off"==D)fa=!1,D=null;else{"keys"==D&&
(D="key");"kbd"==D&&(D="keyboard");for(ea in K)if(D==ea){pa=K[ea];fa=!!(a.X&pa);break}if(!pa){a.i("unknown message category: "+D);break a}}if(pa)if("on"==f[2])a.X|=pa,fa=!0;else if("off"==f[2]&&(a.X&=~pa,fa=!1,1073741824==pa)){for(var Jf=1E3<=a.O.length?a.O.length-1E3:0;Jf<a.O.length;)a.i(a.O[Jf++]);a.O=[]}}var Yg=0,ub="";for(ea in K)if(!D||D==ea){var Zg=!!(a.X&K[ea]);if(null===fa||fa==Zg)ub&&(ub+=","),++Yg%10||(ub+="\n\t"),"key"==ea&&(ea="keys"),ub+=ea}void 0===D&&a.i("message commands:\n\tm [category] [on|off]\tturn categories on/off");
a.i((null!==fa?fa?"messages on: ":"messages off: ":"message categories:\n\t")+(ub||"none"));Pe(a)}break;case "p":if("print"==f[0]){kg(a,b.substr(5));break}var Kf=f[0],Lf="p"==Kf?0:"pr"==Kf?1:-1;if("?"==f[1]||0>Lf)a.i("step commands:"),a.i("\tp\tstep over instruction"),a.i("\tpr\tstep over instruction with register update");else if(a.N)a.i("step in progress");else{var Mf=W(a.u.A);a.ya(Mf);a.N?(a.Da(a.b,Mf,!0),Pf(a)||(a.F&&md(a.F),a.N=0)):lg(a,Lf?"tr":"t")}break;case "r":if("reset"==b){a.F&&a.F.reset();
break}Sf(a,f);break;case "s":a:switch(f[1]){case "base":if(f[2]){var vb=+f[2];if(8==vb||10==vb||16==vb)a.ca=vb;else{a.i("invalid base: "+vb);break}}a.i("default base: "+a.ca);break;case "cs":var wb;void 0!==f[3]&&(wb=+f[3]);switch(f[2]){case "int":a.u.ia=wb;break;case "start":a.u.va=wb;break;case "stop":a.u.ka=wb;break;default:a.i("unknown cs option");break a}void 0!==wb&&ed(a.u);a.i("checksums "+(a.u.v.Ea?"enabled":"disabled"));break;case "sp":void 0!==f[2]&&(jd(a.u,+f[2])||a.i("warning: using 1x multiplier, previous target not reached"));
l.message=function(a,b){b&&(a+=" @"+O(this,W(this.u.sa).B));if(!this.S||a!=this.S)if(this.S=a,this.X&1073741824)this.O.push(a);else{var c;if(this.X&-2147483648&&this.u&&(c=this.u.v.K)||Mb(this,!0))this.V(),c&&(a+=" (cpu halted)");this.i(a);this.u&&(a=this.u,od(a),a.ea=0,a.F&&N(a.F,void 0))}};
function Pe(a){var b;if(!Pd(a))a.f&&a.f.length&&a.i("instruction history buffer freed"),a.R=0,a.f=[];else if(!a.f||!a.f.length){a.f=Array(ff);for(b=0;b<a.f.length;b++)a.f[b]=W();a.R=0;a.i("instruction history buffer allocated")}}function Of(a,b,c){if(!Qf(a,c))return!1;xc(a.u,b);return!0}
function yc(a,b,c,d){if(!Qf(a))return!1;var e="";null===c&&(e=(c=!a.ta||"tr"==a.ta)?"tr":"t");a.C=0;b||Pd(a)&&Qd(a,a.u.A,0);try{b=md(a.u,b);var g=a.u.Ja(b);0<g&&(zc(a.u,g),a.C+=g,Ac(a.u,g,!0),Bc(a.u,g),a.ia++)}catch(f){"number"!=typeof f&&(a.C=0,Jb(a.u,f.stack||f.message))}!1!==d&&(a.ea&&a.ea.stop(),N(a.F,-1));ed(a,c||!1,e);return 0<a.C}l.V=function(a){this.u&&this.u.V(a)};function ed(a,b,c){b=void 0===b?!0:b;a.wa&&(c&&a.i(Rf+c),Re(a.L,a.u.A),b&&1!=a.N?Sf(a):Tf(a))}
function Qf(a,b){var c;(c=!a.u||!Lb(a.u))||(c=a.u,c.v.U?c=!0:(c.i(c.toString()+" not powered"),c=!1),c=!c);return c||a.u.v.K?(b||a.i("cpu busy or unavailable, command ignored"),!1):!Kb(a.u)}l.pa=function(a,b){return!b&&(this.reset(!0),a)?this.restore(a):!0};l.ga=function(a,b){b&&this.i(a?"suspending":"shutting down");return a?this.save():!0};l.reset=function(a){Pe(this);this.ia=0;this.S=null;this.C=0;Re(this.L,this.u.A);this.v.K=!1;Uf(this);a||ed(this)};
l.save=function(){var a=new M(this);a.set(0,Se(this.L));a.set(1,Se(this.ja));a.set(2,Se(this.ba));a.set(3,[this.w,this.P,this.X]);a.set(4,this.G);return a.data()};l.restore=function(a){var b=0;void 0!==a[3]&&(this.L=Te(this,a[b++]),this.ja=Te(this,a[b++]),this.ba=Te(this,a[b++]),this.w=a[b][0],"string"==typeof this.w&&(this.w=[this.w]),this.P=a[b][1],this.X|=a[b][2]);a[4]&&(this.G=a[4]);return!0};l.start=function(a,b){this.N||this.i("running");this.v.K=!0;this.za=a;this.Aa=b};
l.stop=function(a,b){if(this.v.K){this.v.K=!1;this.C=b-this.Aa;if(!this.N){b="stopped";if(this.C){a-=this.za;var c=0<a?Math.round(1E3*this.C/a):0;b+=" (";Pd(this)&&(b+=this.ia+" instructions, ",this.ia=0);b+=this.C+" cycles, "+a+" ms, "+c+" hz)"}else Ob(this,-2147483648)&&(b+=" (use the 't' command to execute blocked faults)");this.i(b)}ed(this,!0);fd(this);Uf(this,this.u.A);this.S=null}};function Pd(a){return 1<a.b.length||!!a.ka}
function Qd(a,b,c){var d=-1;c||(d=a.u.g(b),2756==d>>23&&a.u.sa==b&&(b=Nd(a.u,1)));if(0<c&&(a.ka&&!--a.ka||Zc(a,b,1,a.b)))return!0;0<=c&&a.f.length&&(a.ia++,0>d&&(d=a.u.g(b)),0<=d&&(Re(a.f[a.R],b),++a.R==a.f.length&&(a.R=0)));return!1}
function Vf(a,b,c,d){var e=W(b.B),g=a.ya(b,1),f,h,k,m=0,n=g/Xb|0,t;for(t in Wf)if(f=Wf[t][n&t]){h=+t;n>>=6;switch(h){case 32512:k=Xf;m=n&3;break;case 32256:k=Yf;m=n&7;break;case 29248:k=Zf,m=(n&48)>>2|(n&6)>>1}break}k=k&&k[m]||"";"S"==k&&f>$f&&(k="B");k=ag[f||0]+k;k=Ia(k,8);f?(k=28700==h?k+O(a,g/Yb&127,-1):k+O(a,g>>23&15,-1),k+=",",g&4194304&&(k+="@"),k+=O(a,g&262143,-1),(g=g>>18&15)&&(k+="("+O(a,g,-1)+")")):k+=We(g);g=k;f="";h=O(a,e.B)+":";if(-1!==e.B&&-1!==b.B){do if(k=a.ya(e,1),f+=" "+We(k),null==
e.B)break;while(e.B!=b.B)}h+=Ia(f,16)+g;c&&(h=Ia(h,48)+";"+(c||""),h=a.u.v.Ea?h+("cycles="+hd(a.u).toString()+" cs="+q(a.u.ua)):h+(null!=d?"="+d.toString():""));return h}function Oe(a){var b,c;a.b=["bp"];if(a.M)for(b=1;b<a.M.length;b++){c=a.M[b];c=X(c);var d=a.H;Yc(d.b[c>>>d.f],!1)}a.M=["br"];if(a.J)for(b=1;b<a.J.length;b++)c=a.J[b],c=X(c),d=a.H,Yc(d.b[c>>>d.f],!0);a.J=["bw"];a.ra=0;a.ka=0}
l.Da=function(a,b,c){var d=!0;c||bg(this,a,b,!1,!0);if(a!=this.b){var e=X(b);if(-1===e)this.i("invalid address: "+O(this,b.B)),d=!1;else{var g=this.H;g.b[e>>>g.f].Da(e&16383,a==this.J)}}d&&(a.push(b),c?b.fa=!0:(cg(this,a,a.length-1,"set"),Pe(this)));return d};function bg(a,b,c,d,e){var g=!1;c=X(c);for(var f=1;f<b.length;f++){var h=b[f];if(c==X(h)&&(!d||h.fa)){g=!0;h.fa||e||cg(a,b,f,"cleared");b.splice(f,1);b!=a.b&&(d=a.H,Yc(d.b[c>>>d.f],b==a.J));h.fa||Pe(a);break}}return g}
function dg(a,b){for(var c=1;c<b.length;c++)cg(a,b,c);return b.length-1}function cg(a,b,c,d){c=b[c];a.i(b[0]+" "+O(a,c.B)+(d?" "+d:c.Qa?' "'+c.Qa+'"':""))}function Uf(a,b){if(void 0!==b)Zc(a,b,1,a.b,!0),a.N=0;else for(b=1;b<a.b.length;b++){var c=a.b[b];if(c.fa){if(!bg(a,a.b,c,!0))break;b=0}}}
function Zc(a,b,c,d,e){var g=!1;if(!a.ra++)for(var f=1;!g&&f<d.length;f++){var h=d[f];if(!e||h.fa)for(var k=X(h)&(d==a.b?65535:-1),m=0;m<c;m++)if(b+m==k){var n,g=!0;h.fa&&(bg(a,d,h,!0),e=!0);if(n=h.jb){for(var g=!1,t=0;t<n.length;t++)if(!eg(a,n[t],!0)){if(n[t].indexOf("if")){g=!0;break}for(var D=t+1;D<n.length&&n[D].indexOf("else");D++)t++;if(D==n.length){g=!0;break}}a.u.v.K||(g=!0)}if(g){e||cg(a,d,f,"hit");break}}}a.ra--;return g}
function fg(a,b){b=void 0===b?!0:b;for(var c="",d=0;16>d;d++){!d||d&3||(c+="\n");var e=a,g=wa(d,2);Re(e.va,d);g+="="+O(e,e.ya(e.va),36)+" ";c+=g}if(b){b="";for(d=0;d<Xe.length;d++)(e=Xe[d]||"")&&(e+="="+O(a,a.$a(d),d>=af?1:d==Ze?23:18)+" "),b+=e;c+="\n"+b}return c}l.mb=function(a,b){return a[0]>b[0]?1:a[0]<b[0]?-1:0};
function ye(a,b,c,d,e){var g=[],f;for(f in e){var h=e[f];"number"==typeof h&&(e[f]=h={o:h});var k=h.o,m=h.a;if(void 0!==k){var n=g,k=[k>>>0,f],t=Ka(n,k,a.mb);0>t&&n.splice(-(t+1),0,k)}m&&(h.a=m.replace(/''/g,'"'))}a.G.push({bd:b,B:c,Bb:d,T:e,kb:g})}function gg(a,b,c){var d=[],e=X(b)>>>0;for(b=0;b<a.G.length;b++){var g=a.G[b],f=g.B>>>0,h=g.Bb;if(e>=f&&e<f+h){e=Ka(g.kb,[e-f],a.mb);0<=e?hg(a,b,e,d):c&&(e=~e,hg(a,b,e-1,d),hg(a,b,e,d));break}}return d}
function hg(a,b,c,d){var e={},g=a.G[b].kb,f=0,h=null;0<=c&&c<g.length&&(f=g[c][0],h=g[c][1]);h&&(e=a.G[b].T[h],h="."==h.charAt(0)?null:e.l||h);d.push(h);d.push(f);d.push(e.a);d.push(e.c)}function ig(a,b){var c=b.match(/^\s*([A-Z_]?[A-Z0-9_]*)\s*(=?)\s*(.*)$/i);if(c){if(!c[1])return Me(a)||a.i("no variables"),!0;if(!c[2])return Me(a,c[1]);if(!c[3])return delete a.W[c[1]],!0;b=He(a,c[3]);return void 0!==b?(a.W[c[1]]=b,!0):!1}a.i("invalid assignment:"+b);return!1}
function jg(a,b,c){var d=null;if(b=Y(a,b)){var e=gg(a,b,!0);if(e.length){var g,f;e[0]&&(f="",(g=b.B-e[1])&&(f=" + "+q(g,4,!0)),g=e[0]+" ("+O(a,e[1])+")"+f,c&&a.i(g),d=g);4<e.length&&e[4]&&(f="",(g=e[5]-b.B)&&(f=" - "+q(g,4,!0)),g=e[4]+" ("+O(a,e[5])+")"+f,c&&a.i(g),d||(d=g))}else c&&a.i("no symbols")}return d}
function Sf(a,b){var c;if(b&&"?"==b[1])a.i("register commands:"),a.i("\tr\tdump registers"),a.i("\trm\tdump misc registers"),a.i("\trx [#]\tset flag or register x to [#]");else{var d=a.u,e=void 0;null==c&&(c=!0);if(b&&1<b.length){var g=b[1];if("m"==g)e=!0;else{var f=g.indexOf("=");if(0<f)b=g.substr(f+1),g=g.substr(0,f);else if(2<b.length)b=b[2];else{a.i("missing value for "+b[1]);return}f=He(a,b);if(void 0===f)return;switch(g.toUpperCase()){case "PC":d.A=f%Sb;Re(a.L,d.A);break;default:a.i("unknown register: "+
g);return}N(a.F);a.i("updated registers:")}}a.i(fg(a,e));c&&(Re(a.L,d.A),Tf(a,O(a,a.L.B)))}}function kg(a,b){b=Ja(b);var c=b.match(/^(['"])(.*?)\1$/);c?1<c[2].length?a.i(c[2]):Le(a,null,c[2].charCodeAt(0)):He(a,b,!0)}
function lg(a,b,c){if("?"==c)a.i("trace commands:"),a.i("\tt [#]\ttrace # instructions"),a.i("\ttr [#]\ttrace # instructions with register updates"),a.i("\ttc [#]\ttrace # cycles"),a.i("note: bn [#] breaks after # instructions without updates");else{var d="t"!=b;c=Je(a,c,null,!0)||1;var e=0;"tc"==b&&(e=c,c=1);a.ta=b;cb(c,function(){return Nb(a,!0)&&yc(a,e,d,!1)},function(){a.ea&&a.ea.stop();N(a.F,-1);Nb(a,!1)})}}
function Tf(a,b,c,d){if(b=Y(a,b,a.L)){void 0===d&&(d=1);var e=256;if(void 0!==c)if("l"==c.charAt(0))c=Je(a,c.substr(1)),null!=c&&(d=c);else{d=Y(a,c);if(!d||d.B<b.B)return;e=d.B-b.B;if(256<e){a.i("range too large");return}d=-1}for(c=0;0<e&&d--;){var g=Mb(a,!1)||a.N?a.C:null,f=null!=g?"cycles":null,h=gg(a,b),k=b.B;if(h[0]&&d&&(!c&&d||0>h[0].indexOf("+"))){var m=h[0]+":";h[2]&&(m+=" "+h[2]);a.i(m)}h[3]&&(f=h[3],g=null);h=a.ba;m=b;h.B=m.B;h.Na=m.Na;h.fa=m.fa;h.ca=m.ca;a.i(Vf(a,b,f,g));e-=b.B-k;c++}}}
function eg(a,b,c){var d=!0;try{b.length&&"end"!=b?c||a.i(Rf+b):(a.P&&(a.i("ended assemble at "+O(a,a.ba.B)),a.P=!1),b="");var e=b.charAt(0);if('"'==e||"'"==e)return!0;a.S=null;if(Lb(a)&&0<b.length){a.P&&(b="a "+O(a,a.ba.B)+" "+b);var g=!1,f=b.replace(/ +/g," ").split(" ");f[0]=f[0].toLowerCase();if(f&&f.length)for(var h=f[0],k=h.charAt(0),m=1;m<h.length;m++){var n=h.charAt(m);if("?"==k||"r"==k||"a">n||"z"<n){f[0]=h.substr(m);f.unshift(h.substr(0,m));break}}switch(f[0].charAt(0)){case "a":var t=Y(a,
f[1],a.ba);if(t){var D=f[2];if(void 0==D)a.i("begin assemble at "+O(a,t.B)),a.P=!0,N(a.F);else{f.shift();f.shift();f.shift();var ca,gf=f.join(""),C=-1,pc,Ng=D.toUpperCase(),qd;for(qd in Wf){var Ra;pc=+qd;var hf=Wf[qd];switch(pc){case 32512:Ra=Xf;break;case 32256:Ra=Yf;break;case 29248:Ra=Zf;break;default:Ra=[""]}var jf,rd;for(rd in hf){for(var kf=hf[rd],Sa=0;Sa<Ra.length;Sa++){var sd=Ra[Sa];"S"==sd&&kf>$f&&(sd="B");if(Ng==ag[kf]+sd){jf=29248!=pc?Sa:(Sa&3)<<1|(Sa&12)<<2;C=(rd|jf<<6)*Xb;break}}if(0<=
C)break}if(0<=C)break}if(0<=C)if(gf)for(var td=gf.split(","),pb=0;pb<td.length;pb++){var qc=td[pb].trim();if(qc){if(1<pb){a.i("too many operands: "+qc);C=-1;break}var da=qc.match(/(@?)([^(]*)\(?([^)]*)\)?/);if(!da){a.i("unknown operand: "+qc);C=-1;break}var K=He(a,da[2]);if(void 0==K){C=-1;break}if(!pb&&1<td.length)if(28700==pc){if(0>K||127<K){a.i("device code out of range: "+da[2]);C=-1;break}C+=K*Yb}else{if(0>K||15<K){a.i("accumulator address out of range: "+da[2]);C=-1;break}C+=K<<23}else{if(0>
K||262143<K){a.i("memory address out of range: "+da[2]);C=-1;break}C+=K;if(da[3]){K=He(a,da[3]);if(void 0==K){C=-1;break}if(0>K||15<K){a.i("memory index out of range: "+da[3]);C=-1;break}C+=K<<18}da[1]&&(C+=4194304)}}}else a.i("missing operand(s)"),C=-1;else a.i("unknown instruction: "+D);ca=C;0<=ca&&(a.eb(t,ca),a.i(Vf(a,t)))}}break;case "b":a:{var Og=f[0],Ta=f[1],Pg=b;if("?"==Ta)a.i("breakpoint commands:"),a.i("\tbp #\tset exec breakpoint"),a.i("\tbr #\tset read breakpoint"),a.i("\tbw #\tset write breakpoint"),
a.i("\tbc #\tclear breakpoint (* to clear all)"),a.i("\tbl\tlist all breakpoints"),a.i("\tbn [#]\tbreak after # instruction(s)");else{var Ba=Og.charAt(1);if("l"==Ba){var ud;ud=0+dg(a,a.b);ud+=dg(a,a.M);(ud+=dg(a,a.J))||a.i("no breakpoints")}else if("n"==Ba){var lf=+Ta||0;Ta&&(a.ka=lf);a.i("break after "+lf+" instruction(s)")}else if(void 0===Ta)a.i("missing breakpoint address");else{var R=W();if("*"!=Ta&&(R=Y(a,Ta,a.L),!R))break a;"c"==Ba?null==R.B?(Oe(a),a.i("all breakpoints cleared")):bg(a,a.b,
R)||bg(a,a.M,R)||bg(a,a.J,R)||a.i("breakpoint missing: "+O(a,R.B)):null!=R.B&&(Ve(a,R,Pg),"p"==Ba?a.Da(a.b,R):"r"==Ba?a.Da(a.M,R):"w"==Ba?a.Da(a.J,R):a.i("unknown breakpoint command: "+Ba))}}}break;case "c":a.oa&&(a.oa.value="");break;case "d":a:{var Ua,Va=f[0],ea=f[1],ra=f[2],Qg=f[3];if("?"==ea){var Wa="";for(Ua in L)a.qa[Ua]&&(Wa&&(Wa+=","),Wa+=Ua);Wa+=",state,symbols";a.i("dump memory commands:");a.i("\tdw [a] [n] dump n words at address a");a.i("\tds [a] [n] dump n words at address a as JSON");
a.i("\tdh [p] [n] dump n instructions from history position p");Wa.length&&a.i("dump extension commands:\n\t"+Wa)}else if("state"==ea){var vd=mg(a.F,!0);"console"==ra?console.log(vd):(a.oa&&(a.oa.value=""),vd&&a.i(vd))}else if("symbols"==ea)for(var wd=0;wd<a.G.length;wd++){var xd=a.G[wd],Xa;for(Xa in xd.T)if("."!=Xa.charAt(0)){var mf=xd.T[Xa].o;if(void 0!==mf){var nf=xd.T[Xa].l;nf&&(Xa=nf);a.i(O(a,mf)+" "+Xa)}}}else{if("d"==Va){for(Ua in L)if(f[1]==Ua){var of=a.qa[Ua];of?(f.shift(),f.shift(),of(f)):
a.i("no dump registered for "+ea);break a}ea||(Va=a.Ba||"dw")}else a.Ba=Va;if("dh"==Va){var pf=ea,qf=ra,rf="",sf=0,Z=a.R,fa=a.f;if(fa.length){var V=+pf||a.sa,rb=+qf||10;isNaN(V)?V=rb:rf="more ";V>fa.length&&(a.i("note: only "+fa.length+" available"),V=fa.length);Z-=V;0>Z&&(null==fa[fa.length-1].B?(V=Z+V,Z=0):Z+=fa.length);var yd=[];"call"==qf&&(rb=1E5,yd=["CALL"]);for(void 0!==pf&&a.i(V+" instructions earlier:");0<rb&&Z!=a.R;){var tf=fa[Z++];if(null==tf.B)break;var sb=W(tf.B),Rg=V--,uf=Vf(a,sb,"history",
Rg);(!yd.length||0<=uf.indexOf(yd[0]))&&a.i(uf);sb.Ya&&(Z+=sb.Ya,rb-=sb.Ya,V-=sb.Ya);Z>=fa.length&&(Z=0);a.sa=V;sf++;rb--}}sf||(a.i("no "+rf+"history available"),a.sa=void 0)}else{var Ya=Y(a,ea,a.ja);if(Ya){var Ca=0,vf="ds"==Va;if(ra){if("l"==ra.charAt(0))ra=ra.substr(1)||Qg,Ca=Je(a,ra);else{var wf=Y(a,ra);wf&&(Ca=wf.B-Ya.B)}0>Ca&&(Ca=0);65536<Ca&&(Ca=65536)}var Sg=a.ca;Ya.ca&&(a.ca=Ya.ca);for(var xf="db"==Va?1:2,zd=Ca||32,Ad=1==xf?2:4,Tg=(zd+Ad-1)/Ad|0||1,Da="";Tg--&&0<zd;){for(var Ea="",yf="",ea=
O(a,Ya.B),zf=Ad;0<zf--&&0<zd--;){var rc=a.ya(Ya,1);vf?(Ea&&(Ea+=","),Ea+=rc):(Ea+=We(rc),Ea+=" ");for(var Af=0;1==xf&&6>Af;Af++)yf+=String.fromCharCode((rc%64|0)+32),rc/=64}Da&&(Da+="\n");Da=vf?Da+(Ea+","):Da+(ea+": "+Ea+(0>zf?" "+yf:""))}Da&&a.i(Da);a.ca=Sg}}}}break;case "e":if("else"==f[0])break;var Bf,Cf,Df=f[0],Bd=f[1];"e"==Df||"ew"==Df?(Bf=a.ya,Cf=a.eb):Bd=null;if(null==Bd)a.i("edit memory commands:"),a.i("\tew [a] [...] edit words at address a");else{var sc=Y(a,Bd,a.ja);if(sc)for(var tc=2;tc<
f.length;tc++){var Cd=He(a,f[tc]);if(void 0===Cd){a.i("unknown value: "+f[tc]);break}a.i("changing "+O(a,sc.B)+" from "+We(Bf.call(a,sc))+" to "+We(Cd));Cf.call(a,sc,Cd,1)}}break;case "g":a:{var Ef=f[1],Ug=b;if(void 0!==Ef){var Dd=Y(a,Ef);if(!Dd)break a;Ve(a,Dd,Ug);a.Da(a.b,Dd,!0)}Of(a,!0,c)}break;case "h":a.v.K?(c||a.i("halting"),a.V()):Mb(a,!0)||c||a.i("already halted");break;case "i":if("if"==f[0]){var Ed;var tb=b.substr(2),tb=Ja(tb);He(a,tb)?(c||a.i("true: "+tb),Ed=!0):(c||a.i("false: "+tb),Ed=
!1);Ed||(d=!1);break}g=!0;break;case "k":var Vg=f[0];if("?"==f[1])a.i("stack trace commands:"),a.i("\tk\tshow frame addresses"),a.i("\tks\tshow symbol information");else{var Fd=0,Gd=W(),ub=W();for(a.i("stack trace for "+O(a,ub.B));10>Fd;){for(var Fa=null,Wg=256;65536>ub.B>>>0;){Gd.B=a.ya(ub,2);if(null==ub.B||!Wg--)break;if(!(Gd.B&1)){for(var Xg=a,uc=Gd,Ff=null,vb=uc.B,Gf=vb,Hd=1;6>=Hd&&vb;Hd++){if(2<Hd){uc.B=vb;var vc=Vf(Xg,uc);if(0<=vc.indexOf("JSR")){var Hf=vc.indexOf(" ");if(vb+(vc.indexOf(" ",
Hf+1)-Hf-1)/2==Gf){Ff=vc;break}}}vb-=2}uc.B=Gf;if(Fa=Ff)break}}if(!Fa||null==Fa)break;var If=null;if("ks"==Vg){var Jf=Fa.match(/[0-9A-F]+$/);Jf&&(If=jg(a,Jf[0]))}Fa=Ia(Fa,50)+" ;"+(If||"stack="+O(a,ub.B));a.i(Fa);Fd++}Fd||a.i("no return addresses found")}break;case "l":if("ln"==f[0]){jg(a,f[1],!0);break}g=!0;break;case "m":a:{var ga,ha=null,E=f[1];"?"==E&&(E=void 0);if(void 0!==E){var sa=0;if("all"==E)sa=1879046143,E=null;else if("on"==E)ha=!0,E=null;else if("off"==E)ha=!1,E=null;else{"keys"==E&&
(E="key");"kbd"==E&&(E="keyboard");for(ga in L)if(E==ga){sa=L[ga];ha=!!(a.X&sa);break}if(!sa){a.i("unknown message category: "+E);break a}}if(sa)if("on"==f[2])a.X|=sa,ha=!0;else if("off"==f[2]&&(a.X&=~sa,ha=!1,1073741824==sa)){for(var Kf=1E3<=a.O.length?a.O.length-1E3:0;Kf<a.O.length;)a.i(a.O[Kf++]);a.O=[]}}var Yg=0,wb="";for(ga in L)if(!E||E==ga){var Zg=!!(a.X&L[ga]);if(null===ha||ha==Zg)wb&&(wb+=","),++Yg%10||(wb+="\n\t"),"key"==ga&&(ga="keys"),wb+=ga}void 0===E&&a.i("message commands:\n\tm [category] [on|off]\tturn categories on/off");
a.i((null!==ha?ha?"messages on: ":"messages off: ":"message categories:\n\t")+(wb||"none"));Pe(a)}break;case "p":if("print"==f[0]){kg(a,b.substr(5));break}var Lf=f[0],Mf="p"==Lf?0:"pr"==Lf?1:-1;if("?"==f[1]||0>Mf)a.i("step commands:"),a.i("\tp\tstep over instruction"),a.i("\tpr\tstep over instruction with register update");else if(a.N)a.i("step in progress");else{var Nf=W(a.u.A);a.ya(Nf);a.N?(a.Da(a.b,Nf,!0),Of(a)||(a.F&&ld(a.F),a.N=0)):lg(a,Mf?"tr":"t")}break;case "r":if("reset"==b){a.F&&a.F.reset();
break}Sf(a,f);break;case "s":a:switch(f[1]){case "base":if(f[2]){var xb=+f[2];if(8==xb||10==xb||16==xb)a.ca=xb;else{a.i("invalid base: "+xb);break}}a.i("default base: "+a.ca);break;case "cs":var yb;void 0!==f[3]&&(yb=+f[3]);switch(f[2]){case "int":a.u.ia=yb;break;case "start":a.u.va=yb;break;case "stop":a.u.ka=yb;break;default:a.i("unknown cs option");break a}void 0!==yb&&dd(a.u);a.i("checksums "+(a.u.v.Ea?"enabled":"disabled"));break;case "sp":void 0!==f[2]&&(id(a.u,+f[2])||a.i("warning: using 1x multiplier, previous target not reached"));
a.i("target speed: "+(a.u.aa.toFixed(2)+"Mhz")+" ("+a.u.ba+"x)");break;default:if(f[1]){a.i("unknown option: "+f[1]);break}case "?":a.i("debugger options:"),a.i("\tbase #\t\tset default base to #"),a.i("\tcs int #\tset checksum cycle interval to #"),a.i("\tcs start #\tset checksum cycle start count to #"),a.i("\tcs stop #\tset checksum cycle stop count to #"),a.i("\tsp #\t\tset speed multiplier to #")}break;case "t":lg(a,f[0],f[1]);break;case "u":Tf(a,f[1],f[2],8);break;case "v":if("var"==f[0]){ig(a,
b.substr(3))||(d=!1);break}if("ver"==f[0]){a.i((Pb||"PDP10")+" version 1.34.2 ("+a.u.hb+",RELEASE)");a.i(window?window.navigator.userAgent:"");break}g=!0;break;case "?":if(f[1]){kg(a,b.substr(1));break}var Hd="commands:",Id;for(Id in ng)Hd+="\n"+Ha(Id,9)+ng[Id];Qd(a)||(Hd+="\nnote: history disabled if no exec breakpoints");a.i(Hd);break;default:g=!0}g&&(a.i("unknown command: "+b),d=!1)}}catch(Of){a.i("debugger error: "+(Of.stack||Of.message)),d=!1}return d}
function hd(a,b,c){b=Ge(a,b,c);for(var d in b)if(!eg(a,b[+d]))return!1;return!0}
b.substr(3))||(d=!1);break}if("ver"==f[0]){a.i((Qb||"PDP10")+" version 1.34.2 ("+a.u.hb+",RELEASE)");a.i(window?window.navigator.userAgent:"");break}g=!0;break;case "?":if(f[1]){kg(a,b.substr(1));break}var Id="commands:",Jd;for(Jd in ng)Id+="\n"+Ia(Jd,9)+ng[Jd];Pd(a)||(Id+="\nnote: history disabled if no exec breakpoints");a.i(Id);break;default:g=!0}g&&(a.i("unknown command: "+b),d=!1)}}catch(Pf){a.i("debugger error: "+(Pf.stack||Pf.message)),d=!1}return d}
function gd(a,b,c){b=Fe(a,b,c);for(var d in b)if(!eg(a,b[+d]))return!1;return!0}
var ng={"?":"help/print","a [#]":"assemble","b [#]":"breakpoint",c:"clear output","d [#]":"dump memory","e [#]":"edit memory","g [#]":"go [to #]",h:"halt","if":"eval expression","int [#]":"request interrupt",k:"stack trace",ln:"list nearest symbol(s)",m:"messages",p:"step over",print:"print expression",r:"dump/set registers",reset:"reset machine",s:"set options","t [#]":"trace","u [#]":"unassemble","var":"assign variable",ver:"print version"},$f=20,ag=".WORD HLL HLLZ HLLO HLLE HRL HRLZ HRLO HRLE HRR HRRZ HRRO HRRE HLR HLRZ HLRO HLRE MOVE MOVS MOVN MOVM EXCH BLT PUSH POP LDB DPB IBP ILDB IDPB SETZ SETO SETA SETCA SETM SETCM AND ANDCA ANDCM ANDCB IOR ORCA ORCM ORCB XOR EQV LSH LSHC ROT ROTC ADD SUB MUL IMUL DIV IDIV ASH ASHC FSC FADR FSBR FMPR FDVR DFN UFA FAD FSB FMP FDV AOBJP AOBJN CAI CA JUMP SKIP AOJ AOS SOJ SOS TR TL TD TS XCT JFFO JFCL JSR JSP JRST JSA JRA PUSHJ POPJ BLKI DATAI BLKO DATAO CONO CONI CONSZ CONSO UUO".split(" "),
Ye=0,Ze=1,$e=2,af=3,bf=4,cf=5,df=6,ef=7,Xe="PC RA EA C0 C1 OV ND PD".split(" "),og={},Wf=(og[28672]={0:101},og[32704]={5632:64,5696:63,5760:58,5824:27,5888:28,5952:25,6016:29,6080:26,10240:56,10304:48,10368:46,10432:84,10496:57,10560:49,10624:47,10752:21,10816:22,10880:69,10944:70,11008:88,11072:85,11136:83,11264:91,11328:23,11392:24,11456:92,11520:86,11584:87,11648:89,11712:90},og[32512]={6144:65,6400:59,6656:66,6912:60,7168:67,7424:61,7680:68,7936:62,8192:17,8448:18,8704:19,8960:$f,9216:53,9472:52,
9728:55,9984:54,11776:50,12032:51,16384:30,16640:36,16896:37,17152:34,17408:38,17664:32,17920:44,18176:40,18432:39,18688:45,18944:33,19200:41,19456:35,19712:42,19968:43,20224:31,20480:1,20736:5,20992:2,21248:6,21504:3,21760:7,22016:4,22272:8,22528:9,22784:13,23040:10,23296:14,23552:11,23808:15,24064:12,24320:16},og[32256]={12288:71,12800:72,13312:73,13824:74,14336:75,14848:76,15360:77,15872:78},og[29248]={24576:79,24640:80,25088:81,25152:82},og[28700]={28672:93,28676:94,28680:95,28684:96,28688:97,
28692:98,28696:99,28700:100},og),Xf=["","I","M","S"],Yf=" L E LE A GE N G".split(" "),Zf="N NE NA NN Z ZE ZA ZN C CE CA CN O OE OA ON".split(" "),Nf=1E3,Rf=">> ";eb(function(){for(var a=z(document,y,"debugger"),b=0;b<a.length;b++){var c=a[b],d=x(c),d=new Ne(d);Cb(d,c)}});
function pg(a,b,c){v.call(this,"Computer",a,33554432);this.v.U=!1;this.R=null;qg(this,b);this.O=cd(this,"autoPower",a,6);this.A=0;this.aa=+a.busWidth||+a.buswidth;this.M=this.G=this.N=null;this.L=this.W=!1;this.J=this.C=null;this.S=this.P=!1;this.ba=cd(this,"url")||"";(Math.random()+.1).toString(36);this.f=rg(this);if(this.u=Bb("CPU",this.id)){this.D=Bb("Debugger",this.id);this.H=new Gc({id:this.La+".bus",busWidth:this.aa},this.u,this.D);var d,e=zb(this.id);if((this.w=Bb("Panel",this.id))&&this.w.oa)for(b=
0;b<e.length;b++)d=e[b],d.da=this.w.da,d.i=this.w.i,d.oa=this.w.oa;this.i(Pb+" v1.34.2\nCopyright \u00a9 2012-2017 Jeff Parsons <Jeff@pcjs.org>\nLicense: GPL version 3 or later <http://gnu.org/licenses/gpl.html>");for(b=0;b<e.length;b++)d=e[b],d.xa&&d.xa(this,this.H,this.u,this.D);b=null;d=cd(this,"resume",a);void 0!==d&&(1<d.length?b=this.G=d:this.b=parseInt(d,10));var g;if(a=cd(this,"state")||(g=!0,a.state))this.N=b=a,g||(this.L=!0,this.b=sg),this.b&&(this.J=new L(this,"1.34.2"),tg(this.J)?b=null:
delete this.J);!b&&this.b&&(b=ug(this))&&(this.L=!0);if(b){var f=this;La(b,null,!0,function(a,b,c){c?(f.G=null,f.L=!1,f.da("Unable to load machine state from server (error "+c+(b?": "+Ia(b):"")+")")):(f.M=b,f.W=!0);B(f)})}else B(this);this.I.power||(this.O=!0);!c&&this.O&&vg(this,this.Ga)}else u("Unable to find CPU component")}p(pg,v);function qg(a,b){if(!b){var c;if("object"==typeof resources&&(c=resources.parms))try{b=eval("("+c+")")}catch(d){u(d.message+" ("+c+")")}}a.R=b}
function cd(a,b,c,d){var e=b.toLowerCase(),e=$a(b)||$a(e);void 0===e&&a.R&&(e=a.R[b]);void 0===e&&c&&(e=c[b]);void 0===e&&"object"==typeof resources&&resources[b]&&(e=b);void 0===e&&(e=void 0);if("string"==typeof e&&d)switch(d){case 4:e=+e;isNaN(e)&&(e=0);break;case 6:e="true"==e}return e}function vg(a,b,c){for(var d=zb(a.id),e=0;e<=d.length;e++){var g=e<d.length?d[e]:a;if(!Kb(g)){Kb(g,function(){vg(a,b,c)});return}}b.call(a,c)}
function wg(a,b){var c=new L(a,"1.34.2",xg);if(tg(c)&&yg(c)){var d=c.get(zg),e=b?b.get(zg):"unknown";d!=e&&(a.da("Machine state may be out-of-date\n("+d+" vs. "+e+")\nCheck your browser's local storage limits"),b||c.clear())}}l=pg.prototype;
l.Ga=function(a){void 0===a&&(a=this.b||(this.M?Ag:sg));if(!this.A){this.A++;var b=!1,c=!1;this.P=!1;var d=this.J||new L(this,"1.34.2");if(a==Bg)b=!0;else if(a>sg){if(tg(d,this.M)){this.C=new L(this,"1.34.2",Cg);tg(this.C)&&(Dg(this,d),a=Eg,Fg(this.C));this.C.set(zg,Ka());Gg(this.C);var e=this.b&&!this.L;if(a==Ag||yb("Click OK to restore the previous "+Pb+" machine state, or CANCEL to reset the machine.")){if(c=yg(d)){var g=d.get("code"),f=d.get("data");g&&("ok"==g?tg(d,f):("error"==g&&"no machine state"!=
f?(this.da("Error: "+f),"unable to verify user"==f&&(Ya(Hg,""),this.f=null)):this.i(g+": "+f),Fg(d),tg(d)?(c=yg(d),e=!0):c=!1))}e&&wg(this,c?d:null)}else a==Eg&&d.clear()}else wg(this);delete this.M;delete this.J}e=zb(this.id);for(g=0;g<e.length;g++)f=e[g],f!==this&&f!=this.u&&(c=Ig(this,f,d,b,c));b=[d,a,c];a!=Bg?vg(this,this.nb,b):this.nb(b)}};
function Ig(a,b,c,d,e){if(!b.v.U){b.v.U=!0;var g=null;try{if(e&&((g=c.get(b.id))||(g=c.get(b.id.replace(/[a-z0-9]\./i,".")))),"string"===typeof g&&(g=null),!b.pa(g,d)&&g&&(u("Unable to restore state for "+b.type),a.N&&!a.W?(c.clear(),a.b=sg,window&&window.location.reload()):a.P=!0,b.pa(null),e=!1),!d&&b.gb){var f=b.gb.split("|");for(a=0;a<f.length;a++)b.status(f[a])}}catch(h){u("Error restoring state for "+b.type+" ("+h.message+")")}}return e}
l.nb=function(a){var b=a[0],c=0>a[1];a=a[2];this.S=!0;this.v.U=!0;var d=this.I.power;d&&(d.textContent="Shutdown");this.u&&(Ig(this,this.u,b,c,a),M(this,-2),this.u.Z());this.P&&(Dg(this,b),b.clear());!c&&this.C&&(this.C.clear(),delete this.C);this.A=0};
function Dg(a,b){if(yb("There may be a problem with your "+Pb+" machine.\n\nTo help us diagnose it, click OK to send this "+Pb+" machine state to http://www.pcjs.org.")){var c=a.ba;a=a.f||"";b=b.toString();var d={};d.app=Pb;d.ver="1.34.2";d.url=c;d.user=a;d.type="bug";d.data=b;La("http://www.pcjs.org/api/v1/report",d,!0)}}
function mg(a,b,c){var d,e="none";if(a.A)return null;a.A--;var g=new L(a,"1.34.2"),f=new L(a,"1.34.2",xg),h=Ka();f.set(zg,h);g.set(zg,h);g.set(Jg,"1.34.2");g.set(Kg,window?window.location.href:null);g.set(Lg,window?window.navigator.userAgent:"");a.u&&a.u.ga&&(c&&(b&&(a.u.v.Z=a.u.v.K),a.u.V()),d=a.u.ga(b,c),"object"===typeof d&&g.set(a.u.id,d),c&&(a.u.v.U=!1,!1===d&&(e=null)));for(var h=zb(a.id),k=0;k<h.length;k++){var m=h[k];m.v.U&&(m.ga&&(d=m.ga(b,c),"object"===typeof d&&g.set(m.id,d)),c&&(m.v.U=
28692:98,28696:99,28700:100},og),Xf=["","I","M","S"],Yf=" L E LE A GE N G".split(" "),Zf="N NE NA NN Z ZE ZA ZN C CE CA CN O OE OA ON".split(" "),ff=1E3,Rf=">> ";fb(function(){for(var a=y(document,x,"debugger"),b=0;b<a.length;b++){var c=a[b],d=w(c),d=new Ne(d);Db(d,c)}});
function pg(a,b,c){u.call(this,"Computer",a,33554432);this.v.U=!1;this.R=null;qg(this,b);this.O=bd(this,"autoPower",a,6);this.A=0;this.aa=+a.busWidth||+a.buswidth;this.M=this.G=this.N=null;this.L=this.W=!1;this.J=this.C=null;this.S=this.P=!1;this.ba=bd(this,"url")||"";(Math.random()+.1).toString(36);this.f=rg(this);if(this.u=Cb("CPU",this.id)){this.D=Cb("Debugger",this.id);this.H=new Fc({id:this.La+".bus",busWidth:this.aa},this.u,this.D);var d,e=Ab(this.id);if((this.w=Cb("Panel",this.id))&&this.w.oa)for(b=
0;b<e.length;b++)d=e[b],d.da=this.w.da,d.i=this.w.i,d.oa=this.w.oa;this.i(Qb+" v1.34.2\nCopyright \u00a9 2012-2017 Jeff Parsons <Jeff@pcjs.org>\nLicense: GPL version 3 or later <http://gnu.org/licenses/gpl.html>");for(b=0;b<e.length;b++)d=e[b],d.xa&&d.xa(this,this.H,this.u,this.D);b=null;d=bd(this,"resume",a);void 0!==d&&(1<d.length?b=this.G=d:this.b=parseInt(d,10));var g;if(a=bd(this,"state")||(g=!0,a.state))this.N=b=a,g||(this.L=!0,this.b=sg),this.b&&(this.J=new M(this,"1.34.2"),tg(this.J)?b=null:
delete this.J);!b&&this.b&&(b=ug(this))&&(this.L=!0);if(b){var f=this;Ma(b,null,!0,function(a,b,c){c?(f.G=null,f.L=!1,f.da("Unable to load machine state from server (error "+c+(b?": "+Ja(b):"")+")")):(f.M=b,f.W=!0);z(f)})}else z(this);this.I.power||(this.O=!0);!c&&this.O&&vg(this,this.Ga)}else r("Unable to find CPU component")}p(pg,u);function qg(a,b){if(!b){var c;if("object"==typeof resources&&(c=resources.parms))try{b=eval("("+c+")")}catch(d){r(d.message+" ("+c+")")}}a.R=b}
function bd(a,b,c,d){var e=b.toLowerCase(),e=ab(b)||ab(e);void 0===e&&a.R&&(e=a.R[b]);void 0===e&&c&&(e=c[b]);void 0===e&&"object"==typeof resources&&resources[b]&&(e=b);void 0===e&&(e=void 0);if("string"==typeof e&&d)switch(d){case 4:e=+e;isNaN(e)&&(e=0);break;case 6:e="true"==e}return e}function vg(a,b,c){for(var d=Ab(a.id),e=0;e<=d.length;e++){var g=e<d.length?d[e]:a;if(!Lb(g)){Lb(g,function(){vg(a,b,c)});return}}b.call(a,c)}
function wg(a,b){var c=new M(a,"1.34.2",xg);if(tg(c)&&yg(c)){var d=c.get(zg),e=b?b.get(zg):"unknown";d!=e&&(a.da("Machine state may be out-of-date\n("+d+" vs. "+e+")\nCheck your browser's local storage limits"),b||c.clear())}}l=pg.prototype;
l.Ga=function(a){void 0===a&&(a=this.b||(this.M?Ag:sg));if(!this.A){this.A++;var b=!1,c=!1;this.P=!1;var d=this.J||new M(this,"1.34.2");if(a==Bg)b=!0;else if(a>sg){if(tg(d,this.M)){this.C=new M(this,"1.34.2",Cg);tg(this.C)&&(Dg(this,d),a=Eg,Fg(this.C));this.C.set(zg,La());Gg(this.C);var e=this.b&&!this.L;if(a==Ag||zb("Click OK to restore the previous "+Qb+" machine state, or CANCEL to reset the machine.")){if(c=yg(d)){var g=d.get("code"),f=d.get("data");g&&("ok"==g?tg(d,f):("error"==g&&"no machine state"!=
f?(this.da("Error: "+f),"unable to verify user"==f&&(Za(Hg,""),this.f=null)):this.i(g+": "+f),Fg(d),tg(d)?(c=yg(d),e=!0):c=!1))}e&&wg(this,c?d:null)}else a==Eg&&d.clear()}else wg(this);delete this.M;delete this.J}e=Ab(this.id);for(g=0;g<e.length;g++)f=e[g],f!==this&&f!=this.u&&(c=Ig(this,f,d,b,c));b=[d,a,c];a!=Bg?vg(this,this.nb,b):this.nb(b)}};
function Ig(a,b,c,d,e){if(!b.v.U){b.v.U=!0;var g=null;try{if(e&&((g=c.get(b.id))||(g=c.get(b.id.replace(/[a-z0-9]\./i,".")))),"string"===typeof g&&(g=null),!b.pa(g,d)&&g&&(r("Unable to restore state for "+b.type),a.N&&!a.W?(c.clear(),a.b=sg,window&&window.location.reload()):a.P=!0,b.pa(null),e=!1),!d&&b.gb){var f=b.gb.split("|");for(a=0;a<f.length;a++)b.status(f[a])}}catch(h){r("Error restoring state for "+b.type+" ("+h.message+")")}}return e}
l.nb=function(a){var b=a[0],c=0>a[1];a=a[2];this.S=!0;this.v.U=!0;var d=this.I.power;d&&(d.textContent="Shutdown");this.u&&(Ig(this,this.u,b,c,a),N(this,-2),this.u.Z());this.P&&(Dg(this,b),b.clear());!c&&this.C&&(this.C.clear(),delete this.C);this.A=0};
function Dg(a,b){if(zb("There may be a problem with your "+Qb+" machine.\n\nTo help us diagnose it, click OK to send this "+Qb+" machine state to http://www.pcjs.org.")){var c=a.ba;a=a.f||"";b=b.toString();var d={};d.app=Qb;d.ver="1.34.2";d.url=c;d.user=a;d.type="bug";d.data=b;Ma("http://www.pcjs.org/api/v1/report",d,!0)}}
function mg(a,b,c){var d,e="none";if(a.A)return null;a.A--;var g=new M(a,"1.34.2"),f=new M(a,"1.34.2",xg),h=La();f.set(zg,h);g.set(zg,h);g.set(Jg,"1.34.2");g.set(Kg,window?window.location.href:null);g.set(Lg,window?window.navigator.userAgent:"");a.u&&a.u.ga&&(c&&(b&&(a.u.v.Z=a.u.v.K),a.u.V()),d=a.u.ga(b,c),"object"===typeof d&&g.set(a.u.id,d),c&&(a.u.v.U=!1,!1===d&&(e=null)));for(var h=Ab(a.id),k=0;k<h.length;k++){var m=h[k];m.v.U&&(m.ga&&(d=m.ga(b,c),"object"===typeof d&&g.set(m.id,d)),c&&(m.v.U=
!1,!1===d&&(e=null)))}e&&(c?(h=d=!1,b?(a.f&&Mg(a,a.f,g.toString()),Gg(f)&&Gg(g)||(e=null,d=h=!0)):a.b&&(d=!0,h=a.b==$g),d&&g.clear(h)):e=g.toString());c&&(a.v.U=!1,b=a.I.power)&&(b.textContent="Power");a.A=0;return e}
l.reset=function(){this.v.reset=!0;this.H&&this.H.reset&&(Ob(this,"Resetting "+this.H.type),this.H.reset());this.u&&this.u.reset&&(Ob(this,"Resetting "+this.u.type),this.u.reset());for(var a=zb(this.id),b=0;b<a.length;b++){var c=a[b];c!==this&&c!==this.H&&c!==this.u&&c.reset&&(Ob(this,"Resetting "+c.type),c.reset())}this.v.reset=!1;M(this,-1)};l.start=function(a,b){for(var c=zb(this.id),d=0;d<c.length;d++){var e=c[d];"CPU"!=e.type&&e!==this&&e.start&&e.start(a,b)}M(this,-1)};
l.stop=function(a,b){for(var c=zb(this.id),d=0;d<c.length;d++){var e=c[d];"CPU"!=e.type&&e!==this&&e.stop&&e.stop(a,b)}M(this,-1)};
function M(a,b){if(a.u){var c=a.u,d=b||0,e=c.I.speed;e&&(0>=d||30<=(c.Sa+=d))&&(e.textContent=c.v.K?c.W.toFixed(2)+"Mhz":"Stopped",c.Sa=0)}if(a.w&&(a=a.w,b=b||0,a.M)){c=a.u.v.K;d=!!(a.u.C&8);if(0>=b||60<=(a.L+=b)){e=a.u.A;if(a.I.PC){var g=a.D&&a.D.ca||8,e=e||0,e=8==g?va(e,void 0):t(e,void 0);a.I.PC.textContent!=e&&(a.I.PC.textContent=e)}a.L=0}-1>b?a.f=a.u.A:0<b&&c&&!d&&(a.f=a.u.qa);jc(a,a.f);dc(a,a.A)}}
l.ha=function(a,b,c){var d=this;switch(b){case "power":return this.I[b]=c,c.onclick=function(){d.A||(d.v.U?mg(d,!1,!0):vg(d,d.Ga))},!0;case "reset":return this.I[b]=c,c.onclick=function(){if(d.v.U&&!d.A)if(d.b&&!d.G){var a=yb("Click OK to save changes to this "+Pb+" machine.\n\nWARNING: If you CANCEL, all disk changes will be discarded.");mg(d,a,!0);!a&&d.N?window&&window.location.reload():d.Ga(sg)}else d.reset(),d.u&&!d.D&&d.u.Z()},!0;case "save":if(ya())c.parentNode.removeChild(c);else return this.I[b]=
l.reset=function(){this.v.reset=!0;this.H&&this.H.reset&&(Pb(this,"Resetting "+this.H.type),this.H.reset());this.u&&this.u.reset&&(Pb(this,"Resetting "+this.u.type),this.u.reset());for(var a=Ab(this.id),b=0;b<a.length;b++){var c=a[b];c!==this&&c!==this.H&&c!==this.u&&c.reset&&(Pb(this,"Resetting "+c.type),c.reset())}this.v.reset=!1;N(this,-1)};l.start=function(a,b){for(var c=Ab(this.id),d=0;d<c.length;d++){var e=c[d];"CPU"!=e.type&&e!==this&&e.start&&e.start(a,b)}N(this,-1)};
l.stop=function(a,b){for(var c=Ab(this.id),d=0;d<c.length;d++){var e=c[d];"CPU"!=e.type&&e!==this&&e.stop&&e.stop(a,b)}N(this,-1)};
function N(a,b){if(a.u){var c=a.u,d=b||0,e=c.I.speed;e&&(0>=d||30<=(c.Sa+=d))&&(e.textContent=c.v.K?c.W.toFixed(2)+"Mhz":"Stopped",c.Sa=0)}if(a.w&&(a=a.w,b=b||0,a.M)){c=a.u.v.K;d=!!(a.u.C&8);if(0>=b||60<=(a.L+=b)){e=a.u.A;if(a.I.PC){var g=a.D&&a.D.ca||8,e=e||0,e=8==g?wa(e,void 0):q(e,void 0);a.I.PC.textContent!=e&&(a.I.PC.textContent=e)}a.L=0}-1>b?a.f=a.u.A:0<b&&c&&!d&&(a.f=a.u.qa);ic(a,a.f);cc(a,a.A)}}
l.ha=function(a,b,c){var d=this;switch(b){case "power":return this.I[b]=c,c.onclick=function(){d.A||(d.v.U?mg(d,!1,!0):vg(d,d.Ga))},!0;case "reset":return this.I[b]=c,c.onclick=function(){if(d.v.U&&!d.A)if(d.b&&!d.G){var a=zb("Click OK to save changes to this "+Qb+" machine.\n\nWARNING: If you CANCEL, all disk changes will be discarded.");mg(d,a,!0);!a&&d.N?window&&window.location.reload():d.Ga(sg)}else d.reset(),d.u&&!d.D&&d.u.Z()},!0;case "save":if(za())c.parentNode.removeChild(c);else return this.I[b]=
c,c.onclick=function(){var a=rg(d,!0);if(a){var b=!!(d.b&&!d.G||d.N),c=mg(d,b);b?Mg(d,a,c):d.da("Resume disabled, machine state not saved")}},!0}return!1};
function rg(a,b){var c=a.f;c||((c=Xa(Hg),void 0!==c)?!c&&b&&(b=null,window&&(b=window.prompt("Saving machine states on the pcjs.org server is currently unsupported.\n\nIf you're running your own server, enter your user ID below.","")),c=b)&&((c=ah(a,c))||a.da("The user ID is invalid.")):b&&a.da("Browser local storage is not available"));return c}
function ah(a,b){a.f=null;b=La(Ea()+"/api/v1/user?req=verify&user="+b);var c=b[1];if(!b[0]&&c)try{b=eval("("+c+")"),b.code&&"ok"==b.code&&(Ya(Hg,b.data),a.f=b.data)}catch(d){u(d.message+" ("+c+")")}return a.f}function ug(a){var b=null;a.f&&(b=Ea()+"/api/v1/user?req=load&user="+a.f+"&state="+bh(a,"1.34.2"));return b}
function Mg(a,b,c){if(c){var d={req:"store"};d.user=b;d.state=bh(a,"1.34.2");d.data=c;b=La(Ea()+"/api/v1/user",d);d=b[0];if(b[1]){if(d){var e=d.indexOf("\n");0<e&&(d=d.substr(0,e));d.indexOf("Error: ")||(d=d.substr(7))}d='{"code":'+b[1]+',"data":"'+d+'"}'}b=JSON.parse(d);b&&"ok"==b.code?a.da("Machine state saved to server"):c&&(c=b&&b.data||"unable to save machine state",c="error"==b.code?"Error: "+c:"Error "+b.code+": "+c,a.da(c),Ya(Hg,""),a.f=null)}}
function md(a,b){if(a.oa){var c=0,d=0;!b&&window&&(c=window.scrollX,d=window.scrollY);a.oa.focus();!b&&window&&window.scrollTo(c,d)}}var Cg="failsafe",xg="validate",zg="timestamp",Jg="version",Kg="url",Lg="browser",Hg="user",Bg=-1,sg=0,Ag=1,Eg=2,$g=3;eb(function(){for(var a=z(document,y+"-machine"),b=0;b<a.length;b++)for(var c=a[b],d=x(c),c=z(c,y,"computer"),e=0;e<c.length;e++){var g=c[e],f=x(g),f=new pg(f,d,!0);Cb(f,g);f.O&&vg(f,f.Ga)}});
fb.show.push(function(){for(var a=z(document,y,"computer"),b=0;b<a.length;b++){var c=x(a[b]);(c=Bb("Computer",c.id))&&c.S&&!c.v.U&&c.Ga(Bg)}});fb.exit.push(function(){for(var a=z(document,y,"computer"),b=0;b<a.length;b++){var c=x(a[b]);(c=Bb("Computer",c.id))&&c.v.U&&mg(c,!(!c.b||c.G),!0)}});function L(a,b,c){this.id=a.id;this.f="";this.b={};this.u=this.D=!1;this.key=bh(a,b,c);Fg(this,a.wb)}l=L.prototype;l.set=function(a,b){try{this.b[a]=b}catch(c){}};l.get=function(a){return this.b[a]||null};
l.data=function(){return this.b};function tg(a,b){return b?(a.f=b,a.u=!0,a.D=!1,!0):a.u?!0:Na()&&(b=Xa(a.key))?(a.f=b,a.u=!0):!1}function yg(a){var b=!0;if(!a.D)try{a.b=JSON.parse(a.f),a.D=!0}catch(c){u(c.message||c),b=!1}return b}function Gg(a){var b=!0;if(Na()){var c=JSON.stringify(a.b);Ya(a.key,c)||(u("Unable to store "+c.length+" bytes in browser local storage"),b=!1)}return b}l.toString=function(){return this.b?JSON.stringify(this.b):this.f};
function rg(a,b){var c=a.f;c||((c=Qa(Hg),void 0!==c)?!c&&b&&(b=null,window&&(b=window.prompt("Saving machine states on the pcjs.org server is currently unsupported.\n\nIf you're running your own server, enter your user ID below.","")),c=b)&&((c=ah(a,c))||a.da("The user ID is invalid.")):b&&a.da("Browser local storage is not available"));return c}
function ah(a,b){a.f=null;b=Ma(Aa()+"/api/v1/user?req=verify&user="+b);var c=b[1];if(!b[0]&&c)try{b=eval("("+c+")"),b.code&&"ok"==b.code&&(Za(Hg,b.data),a.f=b.data)}catch(d){r(d.message+" ("+c+")")}return a.f}function ug(a){var b=null;a.f&&(b=Aa()+"/api/v1/user?req=load&user="+a.f+"&state="+bh(a,"1.34.2"));return b}
function Mg(a,b,c){if(c){var d={req:"store"};d.user=b;d.state=bh(a,"1.34.2");d.data=c;b=Ma(Aa()+"/api/v1/user",d);d=b[0];if(b[1]){if(d){var e=d.indexOf("\n");0<e&&(d=d.substr(0,e));d.indexOf("Error: ")||(d=d.substr(7))}d='{"code":'+b[1]+',"data":"'+d+'"}'}b=JSON.parse(d);b&&"ok"==b.code?a.da("Machine state saved to server"):c&&(c=b&&b.data||"unable to save machine state",c="error"==b.code?"Error: "+c:"Error "+b.code+": "+c,a.da(c),Za(Hg,""),a.f=null)}}
function ld(a,b){if(a.oa){var c=0,d=0;!b&&window&&(c=window.scrollX,d=window.scrollY);a.oa.focus();!b&&window&&window.scrollTo(c,d)}}var Cg="failsafe",xg="validate",zg="timestamp",Jg="version",Kg="url",Lg="browser",Hg="user",Bg=-1,sg=0,Ag=1,Eg=2,$g=3;fb(function(){for(var a=y(document,x+"-machine"),b=0;b<a.length;b++)for(var c=a[b],d=w(c),c=y(c,x,"computer"),e=0;e<c.length;e++){var g=c[e],f=w(g),f=new pg(f,d,!0);Db(f,g);f.O&&vg(f,f.Ga)}});
gb.show.push(function(){for(var a=y(document,x,"computer"),b=0;b<a.length;b++){var c=w(a[b]);(c=Cb("Computer",c.id))&&c.S&&!c.v.U&&c.Ga(Bg)}});gb.exit.push(function(){for(var a=y(document,x,"computer"),b=0;b<a.length;b++){var c=w(a[b]);(c=Cb("Computer",c.id))&&c.v.U&&mg(c,!(!c.b||c.G),!0)}});function M(a,b,c){this.id=a.id;this.f="";this.b={};this.u=this.D=!1;this.key=bh(a,b,c);Fg(this,a.wb)}l=M.prototype;l.set=function(a,b){try{this.b[a]=b}catch(c){}};l.get=function(a){return this.b[a]||null};
l.data=function(){return this.b};function tg(a,b){return b?(a.f=b,a.u=!0,a.D=!1,!0):a.u?!0:Oa()&&(b=Qa(a.key))?(a.f=b,a.u=!0):!1}function yg(a){var b=!0;if(!a.D)try{a.b=JSON.parse(a.f),a.D=!0}catch(c){r(c.message||c),b=!1}return b}function Gg(a){var b=!0;if(Oa()){var c=JSON.stringify(a.b);Za(a.key,c)||(r("Unable to store "+c.length+" bytes in browser local storage"),b=!1)}return b}l.toString=function(){return this.b?JSON.stringify(this.b):this.f};
function Fg(a,b){a.f="";a.b={};a.u=a.D=!1;b&&a.set("parms",b)}l.clear=function(a){Fg(this);var b=[];try{for(var c=0,d=window.localStorage.length;c<d;c++)b.push(window.localStorage.key(c))}catch(e){}for(c=0;c<b.length;c++)if((d=b[c])&&(a||d.substr(0,this.key.length)==this.key)){try{window.localStorage.removeItem(d)}catch(e){}b.splice(c,1);c=0}};function bh(a,b,c){a=a.id;if(b){var d=b.indexOf(".");0<d&&(a+=".v"+b.substr(0,d))}c&&(a+="."+c);return a}var ch=0;
function dh(a,b,c,d,e,g,f){g("Loading "+a+"...");La(a,null,!0,function(h,k,m){m?(k||(k="unable to load "+a+" ("+m+")"),f(k,null)):eh(k,a,b,c,d,e,g,f)})}
function eh(a,b,c,d,e,g,f,h){function k(a,f){if(f)h(f,null);else{c&&(mb(c,b,a),(f=b)&&0>f.indexOf("/")&&"/"==window.location.pathname.slice(-1)&&(f=window.location.pathname+f),e?"}"==e.slice(-1)?(e=e.slice(0,-1),1<e.length&&(e+=",")):e='{state:"'+e+'",':e="{",e+='url:"'+f+'"}',"object"==typeof resources&&(f=null),a=a.replace(/(<machine[^>]*\sid=)(['"]).*?\2/,"$1$2"+c+"$2"+(e?" parms='"+e+"'":"")+(f?' url="'+f+'"':"")));g||(a=a.replace(/(<xsl:variable name="APPNAME">).*?(<\/xsl:variable>)/,"$1PDPjs$2"),
a=a.replace(/(<xsl:variable name="APPCLASS">).*?(<\/xsl:variable>)/,"$1"+d+"$2"));f=null;if("<"==a.charAt(0))try{g||(a=a.replace(/<!DOCTYPE(.|[\r\n])*]>\s*/g,"")),window.ActiveXObject||"ActiveXObject"in window?(f=new window.ActiveXObject("Microsoft.XMLDOM"),f.async=!1,f.loadXML(a)):f=(new window.DOMParser).parseFromString(a,"text/xml")}catch(r){f=null,a=r.message}else a="unrecognized XML: "+(255<a.length?a.substr(0,255)+"...":a);h(a,f)}}a?g?fh(a,f,k):k(a,null):h("no data"+(b?" for file: "+b:""),null)}
function fh(a,b,c){var d;if(d=/<([a-z]+)\s+ref="(.*?)"(.*?)\/>/g.exec(a)){var e=d[2];b("Loading "+e+"...");La(e,null,!0,function(g,f,h){if(h||!f)c(a,"unable to resolve XML reference: "+d[0]+" ("+h+")");else{if(g=d[3])if(h=f.match(new RegExp("<"+d[1]+"[^>]*>"))){for(var k=h[0],m,n=/( [a-z]+=)(['"])(.*?)\2/g;m=n.exec(g);)k=0>k.indexOf(m[1])?k.replace(">",m[0]+">"):k.replace(new RegExp(m[1]+"(['\"])(.*?)\\1"),m[0]);h[0]!=k&&(f=f.replace(h[0],k))}else{c(a,"missing <"+d[1]+"> in "+e);return}f=f.replace(/<\?xml[^>]*>[\r\n]*/,
function dh(a,b,c,d,e,g,f){g("Loading "+a+"...");Ma(a,null,!0,function(h,k,m){m?(k||(k="unable to load "+a+" ("+m+")"),f(k,null)):eh(k,a,b,c,d,e,g,f)})}
function eh(a,b,c,d,e,g,f,h){function k(a,f){if(f)h(f,null);else{c&&(nb(c,b,a),(f=b)&&0>f.indexOf("/")&&"/"==window.location.pathname.slice(-1)&&(f=window.location.pathname+f),e?"}"==e.slice(-1)?(e=e.slice(0,-1),1<e.length&&(e+=",")):e='{state:"'+e+'",':e="{",e+='url:"'+f+'"}',"object"==typeof resources&&(f=null),a=a.replace(/(<machine[^>]*\sid=)(['"]).*?\2/,"$1$2"+c+"$2"+(e?" parms='"+e+"'":"")+(f?' url="'+f+'"':"")));g||(a=a.replace(/(<xsl:variable name="APPNAME">).*?(<\/xsl:variable>)/,"$1PDPjs$2"),
a=a.replace(/(<xsl:variable name="APPCLASS">).*?(<\/xsl:variable>)/,"$1"+d+"$2"));f=null;if("<"==a.charAt(0))try{g||(a=a.replace(/<!DOCTYPE(.|[\r\n])*]>\s*/g,"")),window.ActiveXObject||"ActiveXObject"in window?(f=new window.ActiveXObject("Microsoft.XMLDOM"),f.async=!1,f.loadXML(a)):f=(new window.DOMParser).parseFromString(a,"text/xml")}catch(t){f=null,a=t.message}else a="unrecognized XML: "+(255<a.length?a.substr(0,255)+"...":a);h(a,f)}}a?g?fh(a,f,k):k(a,null):h("no data"+(b?" for file: "+b:""),null)}
function fh(a,b,c){var d;if(d=/<([a-z]+)\s+ref="(.*?)"(.*?)\/>/g.exec(a)){var e=d[2];b("Loading "+e+"...");Ma(e,null,!0,function(g,f,h){if(h||!f)c(a,"unable to resolve XML reference: "+d[0]+" ("+h+")");else{if(g=d[3])if(h=f.match(new RegExp("<"+d[1]+"[^>]*>"))){for(var k=h[0],m,n=/( [a-z]+=)(['"])(.*?)\2/g;m=n.exec(g);)k=0>k.indexOf(m[1])?k.replace(">",m[0]+">"):k.replace(new RegExp(m[1]+"(['\"])(.*?)\\1"),m[0]);h[0]!=k&&(f=f.replace(h[0],k))}else{c(a,"missing <"+d[1]+"> in "+e);return}f=f.replace(/<\?xml[^>]*>[\r\n]*/,
"");a=a.replace(d[0],f);fh(a,b,c)}})}else c(a,null)}
function gh(a,b,c,d,e){function g(a){if(void 0===k){var b=h&&z(h,"machine-warning");k=b&&b[0]||h}k&&(k.innerHTML=Fa(a))}function f(a){g("Error: "+a);m&&(--ch||ib(!0));m=!1}var h,k,m=!0;ch++;ob[b]={};try{if(h=document.getElementById(b)){var n;if("object"==typeof resources&&(n=resources.css)){var r=document.head||document.getElementsByTagName("head")[0],C=document.createElement("style");C.type="text/css";C.styleSheet?C.styleSheet.cssText=n:C.appendChild(document.createTextNode(n));r.appendChild(C)}d||
(n=a,"pdp"==a.substr(0,3)&&(n="pdpjs"),d="/versions/"+n+"/1.34.2/components.xsl");n=function(e,k){k?dh(d,null,a,null,!1,g,function(a,e){e?(mb(b,d,a),g("Processing "+c+"..."),window.ActiveXObject||"ActiveXObject"in window?(e=k.transformNode(e))?(h.outerHTML=e,--ch||ib(!0)):f("transformNodeToObject failed"):document.implementation&&document.implementation.createDocument?(a=new XSLTProcessor,a.importStylesheet(e),(e=a.transformToFragment(k,document))?h.parentNode?(h.parentNode.replaceChild(e,h),--ch||
ib(!0)):f("invalid machine element: "+b):f("transformToFragment failed")):f("unable to transform XML: unsupported browser")):f(a)}):f(e)};"<"!=c.charAt(0)?dh(c,b,a,e,!0,g,n):eh(c,null,b,a,e,!1,g,n)}else f("missing machine element: "+b)}catch(aa){f(aa.message)}return m}window.embedPDP10=function(a,b,c,d){ib(!1);return gh("pdp10",a,b,c,d)};window.embedPDP11=function(a,b,c,d){ib(!1);return gh("pdp11",a,b,c,d)};window.findMachineComponent=function(a,b){return Bb(b,a+".machine")};
window.processMachineScript=function(a,b){var c=!1;a+=".machine";if("string"==typeof b&&!Eb[a]){for(var c=!0,d=Eb,e=a,g=b.length,f=[],h=[],k="",m=null,n=0;n<g;n++){var r=b[n];if('"'==r||"'"==r)m&&r!=m?k+=r:(m?m=null:m=r,k&&(h.push(k),k=""));else{if(!m){if("\r"==r||"\n"==r)r=";";if(" "==r||"\t"==r||";"==r){k&&(h.push(k),k="");";"==r&&h.length&&(f.push(h),h=[]);continue}}k+=r}}k&&h.push(k);h.length&&f.push(h);d[e]=f;Db(a)||(c=!1)}return c};window.enableEvents=ib;window.sendEvent=kb;})();//# sourceMappingURL=/tmp/pdpjs/1.34.2/pdp10-dbg.map
function gh(a,b,c,d,e){function g(a){if(void 0===k){var b=h&&y(h,"machine-warning");k=b&&b[0]||h}k&&(k.innerHTML=Ga(a))}function f(a){g("Error: "+a);m&&(--ch||jb(!0));m=!1}var h,k,m=!0;ch++;ob[b]={};try{if(h=document.getElementById(b)){var n;if("object"==typeof resources&&(n=resources.css)){var t=document.head||document.getElementsByTagName("head")[0],D=document.createElement("style");D.type="text/css";D.styleSheet?D.styleSheet.cssText=n:D.appendChild(document.createTextNode(n));t.appendChild(D)}d||
(n=a,"pdp"==a.substr(0,3)&&(n="pdpjs"),d="/versions/"+n+"/1.34.2/components.xsl");n=function(e,k){k?dh(d,null,a,null,!1,g,function(a,e){e?(nb(b,d,a),g("Processing "+c+"..."),window.ActiveXObject||"ActiveXObject"in window?(e=k.transformNode(e))?(h.outerHTML=e,--ch||jb(!0)):f("transformNodeToObject failed"):document.implementation&&document.implementation.createDocument?(a=new XSLTProcessor,a.importStylesheet(e),(e=a.transformToFragment(k,document))?h.parentNode?(h.parentNode.replaceChild(e,h),--ch||
jb(!0)):f("invalid machine element: "+b):f("transformToFragment failed")):f("unable to transform XML: unsupported browser")):f(a)}):f(e)};"<"!=c.charAt(0)?dh(c,b,a,e,!0,g,n):eh(c,null,b,a,e,!1,g,n)}else f("missing machine element: "+b)}catch(ca){f(ca.message)}return m}window.embedPDP10=function(a,b,c,d){jb(!1);return gh("pdp10",a,b,c,d)};window.embedPDP11=function(a,b,c,d){jb(!1);return gh("pdp11",a,b,c,d)};window.findMachineComponent=function(a,b){return Cb(b,a+".machine")};
window.processMachineScript=function(a,b){var c=!1;a+=".machine";if("string"==typeof b&&!Fb[a]){for(var c=!0,d=Fb,e=a,g=b.length,f=[],h=[],k="",m=null,n=0;n<g;n++){var t=b[n];if('"'==t||"'"==t)m&&t!=m?k+=t:(m?m=null:m=t,k&&(h.push(k),k=""));else{if(!m){if("\r"==t||"\n"==t)t=";";if(" "==t||"\t"==t||";"==t){k&&(h.push(k),k="");";"==t&&h.length&&(f.push(h),h=[]);continue}}k+=t}}k&&h.push(k);h.length&&f.push(h);d[e]=f;Eb(a)||(c=!1)}return c};window.enableEvents=jb;window.sendEvent=lb;})();//# sourceMappingURL=/tmp/pdpjs/1.34.2/pdp10-dbg.map

View file

@ -33,138 +33,139 @@ function n(a,b){function c(){}c.prototype=b.prototype;a.prototype=new c;a.protot
ha("Math.trunc",function(a){return a?a:function(a){a=Number(a);if(isNaN(a)||Infinity===a||-Infinity===a||!a)return a;var b=Math.floor(Math.abs(a));return 0>a?-b:b}});ha("Math.log2",function(a){return a?a:function(a){return Math.log(a)/Math.LN2}});
var ia=Math.pow(2,36),ja=Math.pow(2,35),q={Ab:0,Ta:1,Cb:2,Db:3,Eb:4,Fb:5,Gb:6,Hb:7,Ma:8,Ib:9,Ua:10,Jb:11,Kb:12,Va:13,Lb:14,Mb:15,Nb:16,Ob:17,Pb:18,Qb:19,Rb:20,Sb:21,Tb:22,Ub:23,Vb:24,Wb:25,Xb:26," ":32,"!":33,'"':34,"#":35,$:36,"%":37,"&":38,"'":39,"(":40,")":41,"*":42,"+":43,",":44,"-":45,".":46,"/":47,0:48,1:49,2:50,3:51,4:52,5:53,6:54,7:55,8:56,9:57,":":58,";":59,"<":60,"=":61,">":62,"?":63,"@":64,La:65,zb:66,Bb:67,Yb:68,E:69,Zb:70,$b:71,ac:72,bc:73,cc:74,dc:75,ec:76,fc:77,gc:78,hc:79,ic:80,Q:81,
jc:82,kc:83,lc:84,mc:85,nc:86,oc:87,pc:88,qc:89,$a:90,"[":91,"\\":92,"]":93,"^":94,_:95,"`":96,rc:97,sc:98,tc:99,d:100,e:101,uc:102,vc:103,wc:104,xc:105,yc:106,k:107,zc:108,Ac:109,n:110,Bc:111,p:112,q:113,r:114,Cc:115,t:116,Dc:117,Ec:118,Fc:119,x:120,y:121,z:122,"{":123,"|":124,"}":125,"~":126,Wa:127};
function ka(a,b,c,d){var e="";if(null==a||isNaN(a))for(;0<c--;)e="?"+e;else for(0>a&&-1<a&&(a=-1);0<c--;){var f=a%b,f=f+(0<=f&&9>=f?48:55),e=String.fromCharCode(f)+e;a=Math.trunc(a/b)}return(void 0===d?"":d)+e}function la(a,b){b?12<b&&(b=12):b=a&-16777216?11:a&-65536?8:6;return ka(a,8,b,"")}function r(a,b,c){b?9<b&&(b=9):b=a&-65536?8:4;return ka(a,16,b,c?"0x":"")}function ma(a){var b=a,c=a.lastIndexOf("/");0<=c&&(b=a.substr(c+1));c=b.indexOf("&");0<c&&(b=b.substr(0,c));return b}
function na(a){var b="",c=a.lastIndexOf(".");0<=c&&(b=a.substr(c+1).toLowerCase());return b}function oa(){var a=pa();return-1!==a.indexOf("pcjs.org",a.length-8)}function qa(a){return a.replace(/[&<>"']/g,function(a){return sa[a]})}function ta(a){return String.prototype.trim?a.trim():a.replace(/^\s+|\s+$/g,"")}var sa={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#039;"};
function ua(){function a(a){return(10>a?"0":"")+a}var b=new Date;return b.getFullYear()+"-"+a(b.getMonth()+1)+"-"+a(b.getDate())+" "+a(b.getHours())+":"+a(b.getMinutes())+":"+a(b.getSeconds())}
function t(a,b,c,d){c=void 0===c?!1:c;var e=0,f=null,g=null;if("object"==typeof resources&&(f=resources[a]))return d&&d(a,f,e),[f,e];if(c&&"function"==typeof resources)return resources(a,function(b,c){d&&d(a,b,c)}),g;var h=window.XMLHttpRequest?new window.XMLHttpRequest:new window.ActiveXObject("Microsoft.XMLHTTP");c&&(h.onreadystatechange=function(){4===h.readyState&&(f=h.responseText,200==h.status||!h.status&&f.length&&"file:"==(window?window.location.protocol:"file:")||(e=h.status||-1),d&&d(a,
function ka(a,b,c,d){var e="";if(null==a||isNaN(a))for(;0<c--;)e="?"+e;else for(0>a&&-1<a&&(a=-1);0<c--;){var f=a%b,f=f+(0<=f&&9>=f?48:55),e=String.fromCharCode(f)+e;a=Math.trunc(a/b)}return(void 0===d?"":d)+e}function la(a,b){b?12<b&&(b=12):b=a&-16777216?11:a&-65536?8:6;return ka(a,8,b,"")}function ma(a,b,c){b?9<b&&(b=9):b=a&-65536?8:4;return ka(a,16,b,c?"0x":"")}function na(a){var b=a,c=a.lastIndexOf("/");0<=c&&(b=a.substr(c+1));c=b.indexOf("&");0<c&&(b=b.substr(0,c));return b}
function oa(a){var b="",c=a.lastIndexOf(".");0<=c&&(b=a.substr(c+1).toLowerCase());return b}function pa(){var a=qa();return-1!==a.indexOf("pcjs.org",a.length-8)}function ra(a){return a.replace(/[&<>"']/g,function(a){return sa[a]})}function ua(a){return String.prototype.trim?a.trim():a.replace(/^\s+|\s+$/g,"")}var sa={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#039;"};
function va(){function a(a){return(10>a?"0":"")+a}var b=new Date;return b.getFullYear()+"-"+a(b.getMonth()+1)+"-"+a(b.getDate())+" "+a(b.getHours())+":"+a(b.getMinutes())+":"+a(b.getSeconds())}
function r(a,b,c,d){c=void 0===c?!1:c;var e=0,f=null,g=null;if("object"==typeof resources&&(f=resources[a]))return d&&d(a,f,e),[f,e];if(c&&"function"==typeof resources)return resources(a,function(b,c){d&&d(a,b,c)}),g;var h=window.XMLHttpRequest?new window.XMLHttpRequest:new window.ActiveXObject("Microsoft.XMLHTTP");c&&(h.onreadystatechange=function(){4===h.readyState&&(f=h.responseText,200==h.status||!h.status&&f.length&&"file:"==(window?window.location.protocol:"file:")||(e=h.status||-1),d&&d(a,
f,e))});if(b&&"object"==typeof b){var l="",p;for(p in b)b.hasOwnProperty(p)&&(l&&(l+="&"),l+=p+"="+encodeURIComponent(b[p]));l=l.replace(/%20/g,"+");h.open("POST",a,c);h.setRequestHeader("Content-type","application/x-www-form-urlencoded");h.send(l)}else h.open("GET",a,c),"bytes"==b&&h.overrideMimeType("text/plain; charset=x-user-defined"),h.send();c||(f=h.responseText,200!=h.status&&(e=h.status||-1),d&&d(a,f,e),g=[f,e]);return g}
function va(a,b){var c,d={H:null,O:null,T:null,S:null};if("["==b.charAt(0)||"{"==b.charAt(0))try{var e,f,g;if("<"==b.substr(0,1))throw Error(b);g=0>b.indexOf("0x")&&0>b.indexOf("0o")&&'["'!=b.substr(0,2)?JSON.parse(b.replace(/([a-z]+):/gm,'"$1":').replace(/\/\/[^\n]*/gm,"")):eval("("+b+")");d.T=g.load;d.S=g.exec;if(e=g.bytes)d.H=e;else if(e=g.words)for(d.H=Array(2*e.length),f=c=0;c<e.length;c++)d.H[f++]=e[c]&255,d.H[f++]=e[c]>>8&255;else if(e=g.longs)for(d.H=Array(4*e.length),f=c=0;c<e.length;c++)d.H[f++]=
e[c]&255,d.H[f++]=e[c]>>8&255,d.H[f++]=e[c]>>16&255,d.H[f++]=e[c]>>24&255;else(e=g.data)?d.Y=e:d.H=g;d.H&&(d.H.length?1==d.H.length&&(u(d.H[0]),d=null):(u("Empty resource: "+a),d=null));d.O=g.symbols}catch(h){u("Resource data error ("+a+"): "+h.message),d=null}else{e=[];b=b.replace(/\n/gm," ").replace(/ +$/,"").split(" ");for(c=0;c<b.length;c++){f=parseInt(b[c],16);if(isNaN(f)){u("Resource data error ("+a+"): invalid hex byte ("+b[c]+")");break}e.push(f&255)}c==b.length&&(d.H=e)}return d}
function pa(){return"http://"+(window?window.location.host:"www.pcjs.org")}function wa(){if(null==xa){var a=!1;if(window)try{window.localStorage.setItem("PCjs.localStorage","PCjs.localStorage"),a="PCjs.localStorage"==window.localStorage.getItem("PCjs.localStorage"),window.localStorage.removeItem("PCjs.localStorage")}catch(b){a=!1}xa=a}return xa}function ya(a){var b;if(window)try{b=window.localStorage.getItem(a)}catch(c){}return b}
function za(a,b){try{return window.localStorage.setItem(a,b),!0}catch(c){}return!1}function Aa(a){if(window){var b=window?window.navigator.userAgent:"";return"iOS"==a&&!!b.match(/(iPod|iPhone|iPad)/)&&!!b.match(/AppleWebKit/)||"MSIE"==a&&!!b.match(/(MSIE|Trident)/)||0<=b.indexOf(a)}return!1}
function Ba(a){if(!Ca){var b,c={};if(window){b||(b=window.location.search.substr(1));for(var d,e=/\+/g,f=/([^&=]+)=?([^&]*)/g;d=f.exec(b);)c[decodeURIComponent(d[1].replace(e," "))]=decodeURIComponent(d[2].replace(e," "))}Ca=c}return Ca[a]}function Da(a,b){if(window){var c=window[a];window[a]="function"!==typeof c?b:function(){c&&c();b()}}}function w(a){x.init.push(a)}
function Ea(a){if(Fa)try{for(var b=0;b<a.length;b++)a[b]()}catch(c){u(""+("An unexpected exception occurred:\n\n"+c.message+"\n\nPlease send this information to support@pcjs.org. Thanks."))}}function Ga(a){!Fa&&a?(Fa=!0,Ha&&Ia("init"),Ja&&Ia("show")):Fa=a}function Ia(a){x[a]&&Ea(x[a])}var Ca=null,x={init:[],show:[],exit:[]},Ha=!1,Ja=!1,Fa=!0,xa=null;Da("onload",function(){Ha=!0;Ea(x.init)});Da("onpageshow",function(){Ja=!0;Ea(x.show)});Da(Aa("Opera")||Aa("iOS")?"onunload":"onbeforeunload",function(){Ea(x.exit)});
function y(a,b){this.type=a;b||(b={id:"",name:""});this.id=b.id||"";this.name=b.name;this.Oa=b.comment;this.Za=b;this.exports={};this.m=this.bindings={};a=this.id.indexOf(".");0>a?this.oa=this.id:(this.pa=this.id.substr(0,a),this.oa=this.id.substr(a+1));this.g={ready:!1,ua:!1,Ga:!1,D:!1,error:!1};this.wa=null;this.g.error=!1;this.v=this.h=this.s=this.u=this.ba=null;A.push(this)}function Ka(a,b,c){La[a]&&b&&(La[a][b]=c)}function Ma(){return Date.now()||+new Date}
function u(a){window&&window.alert(a)}function Na(a){var b=!1;window&&(b=window.confirm(a));return b}function B(a){var b,c=[];a&&(a=0<(b=a.indexOf("."))?a.substr(0,b+1):"");for(b=0;b<A.length;b++){var d=A[b];a&&d.id.indexOf(a)||c.push(d)}return c}function Oa(a){if(void 0!==a){var b;for(b=0;b<A.length;b++)if(A[b].id===a)return A[b]}return null}
function C(a,b){var c;if(void 0!==a){var d;b&&(b=0<(d=b.indexOf("."))?b.substr(0,d+1):"");for(d=0;d<A.length;d++)if(c)c==A[d]&&(c=null);else if(!(a!=A[d].type||b&&A[d].id.indexOf(b)))return A[d]}return null}function D(a){var b=null;if(a=a.getAttribute("data-value"))try{b=eval("("+a+")")}catch(c){u(c.message+" ("+a+")")}return b}
function E(a,b){var c=F;b=G(b.parentNode,c+"-control");for(var d=0;d<b.length;d++)for(var e=b[d].childNodes,f=0;f<e.length;f++){var g=e[f];if(1===g.nodeType){var h=g.getAttribute("class");if(h)for(var l=h.split(" "),p=0;p<l.length;p++)switch(h=l[p],h){case c+"-binding":(h=D(g))&&h.binding&&a.U(h.type,h.binding,g,h.value),p=l.length}}}}
function G(a,b,c){c&&(b+="-"+c+"-object");if(a.getElementsByClassName)return a.getElementsByClassName(b);var d;c=[];a=a.getElementsByTagName("*");var e=new RegExp("(^| )"+b+"( |$)");b=0;for(d=a.length;b<d;b++)e.test(a[b].className)&&c.push(a[b]);return c}
function Pa(a){for(var b=!0,c=Qa[a];c&&c.length;){var d=c.splice(0,1)[0],e=d[0],f=null;0<=Ra.indexOf(e)&&(f=function(){return function(){Pa(a)}}());var g=Sa[e];if(g)if(!f)b=g(d[1],d[2],d[3]);else{if(!g(f,d[1],d[2],d[3]))break}else{var b=!1,h=C(d[1],a);if(h)if(g=Ta[e])b=g(h,d[2],d[3]);else{var l=h.exports;if(l&&(g=l[e]))if(b=!0,!f)b=g.call(h,d[2],d[3]);else if(!g.call(h,f,d[2],d[3]))break}}if(!b){u("Script error: "+e+(g?" failed":" unrecognized"));break}}c&&!c.length&&delete Qa[a];return b}k=y.prototype;
function wa(a,b){var c,d={H:null,O:null,T:null,S:null};if("["==b.charAt(0)||"{"==b.charAt(0))try{var e,f,g;if("<"==b.substr(0,1))throw Error(b);g=0>b.indexOf("0x")&&0>b.indexOf("0o")&&'["'!=b.substr(0,2)?JSON.parse(b.replace(/([a-z]+):/gm,'"$1":').replace(/\/\/[^\n]*/gm,"")):eval("("+b+")");d.T=g.load;d.S=g.exec;if(e=g.bytes)d.H=e;else if(e=g.words)for(d.H=Array(2*e.length),f=c=0;c<e.length;c++)d.H[f++]=e[c]&255,d.H[f++]=e[c]>>8&255;else if(e=g.longs)for(d.H=Array(4*e.length),f=c=0;c<e.length;c++)d.H[f++]=
e[c]&255,d.H[f++]=e[c]>>8&255,d.H[f++]=e[c]>>16&255,d.H[f++]=e[c]>>24&255;else(e=g.data)?d.Y=e:d.H=g;d.H&&(d.H.length?1==d.H.length&&(t(d.H[0]),d=null):(t("Empty resource: "+a),d=null));d.O=g.symbols}catch(h){t("Resource data error ("+a+"): "+h.message),d=null}else{e=[];b=b.replace(/\n/gm," ").replace(/ +$/,"").split(" ");for(c=0;c<b.length;c++){f=parseInt(b[c],16);if(isNaN(f)){t("Resource data error ("+a+"): invalid hex byte ("+b[c]+")");break}e.push(f&255)}c==b.length&&(d.H=e)}return d}
function qa(){return"http://"+(window?window.location.host:"www.pcjs.org")}function xa(){if(null==ya){var a=!1;if(window)try{window.localStorage.setItem("PCjs.localStorage","PCjs.localStorage"),a="PCjs.localStorage"==window.localStorage.getItem("PCjs.localStorage"),window.localStorage.removeItem("PCjs.localStorage")}catch(b){a=!1}ya=a}return ya}function za(a){var b;if(window)try{b=window.localStorage.getItem(a)}catch(c){}return b}
function Aa(a,b){try{return window.localStorage.setItem(a,b),!0}catch(c){}return!1}function Ba(a){if(window){var b=window?window.navigator.userAgent:"";return"iOS"==a&&!!b.match(/(iPod|iPhone|iPad)/)&&!!b.match(/AppleWebKit/)||"MSIE"==a&&!!b.match(/(MSIE|Trident)/)||0<=b.indexOf(a)}return!1}
function Ca(a){if(!Da){var b,c={};if(window){b||(b=window.location.search.substr(1));for(var d,e=/\+/g,f=/([^&=]+)=?([^&]*)/g;d=f.exec(b);)c[decodeURIComponent(d[1].replace(e," "))]=decodeURIComponent(d[2].replace(e," "))}Da=c}return Da[a]}function Ea(a,b){if(window){var c=window[a];window[a]="function"!==typeof c?b:function(){c&&c();b()}}}function u(a){w.init.push(a)}
function Fa(a){if(Ga)try{for(var b=0;b<a.length;b++)a[b]()}catch(c){t(""+("An unexpected exception occurred:\n\n"+c.message+"\n\nPlease send this information to support@pcjs.org. Thanks."))}}function Ha(a){!Ga&&a?(Ga=!0,Ia&&Ja("init"),Ka&&Ja("show")):Ga=a}function Ja(a){w[a]&&Fa(w[a])}var Da=null,w={init:[],show:[],exit:[]},Ia=!1,Ka=!1,Ga=!0,ya=null;Ea("onload",function(){Ia=!0;Fa(w.init)});Ea("onpageshow",function(){Ka=!0;Fa(w.show)});Ea(Ba("Opera")||Ba("iOS")?"onunload":"onbeforeunload",function(){Fa(w.exit)});
function x(a,b){this.type=a;b||(b={id:"",name:""});this.id=b.id||"";this.name=b.name;this.Oa=b.comment;this.Za=b;this.exports={};this.m=this.bindings={};a=this.id.indexOf(".");0>a?this.oa=this.id:(this.pa=this.id.substr(0,a),this.oa=this.id.substr(a+1));this.g={ready:!1,ua:!1,Ga:!1,D:!1,error:!1};this.wa=null;this.g.error=!1;this.v=this.i=this.s=this.u=this.ba=null;y.push(this)}function La(a,b,c){Ma[a]&&b&&(Ma[a][b]=c)}function Na(){return Date.now()||+new Date}
function t(a){window&&window.alert(a)}function Oa(a){var b=!1;window&&(b=window.confirm(a));return b}function z(a){var b,c=[];a&&(a=0<(b=a.indexOf("."))?a.substr(0,b+1):"");for(b=0;b<y.length;b++){var d=y[b];a&&d.id.indexOf(a)||c.push(d)}return c}function Pa(a){if(void 0!==a){var b;for(b=0;b<y.length;b++)if(y[b].id===a)return y[b]}return null}
function B(a,b){var c;if(void 0!==a){var d;b&&(b=0<(d=b.indexOf("."))?b.substr(0,d+1):"");for(d=0;d<y.length;d++)if(c)c==y[d]&&(c=null);else if(!(a!=y[d].type||b&&y[d].id.indexOf(b)))return y[d]}return null}function C(a){var b=null;if(a=a.getAttribute("data-value"))try{b=eval("("+a+")")}catch(c){t(c.message+" ("+a+")")}return b}
function D(a,b){var c=E;b=F(b.parentNode,c+"-control");for(var d=0;d<b.length;d++)for(var e=b[d].childNodes,f=0;f<e.length;f++){var g=e[f];if(1===g.nodeType){var h=g.getAttribute("class");if(h)for(var l=h.split(" "),p=0;p<l.length;p++)switch(h=l[p],h){case c+"-binding":(h=C(g))&&h.binding&&a.U(h.type,h.binding,g,h.value),p=l.length}}}}
function F(a,b,c){c&&(b+="-"+c+"-object");if(a.getElementsByClassName)return a.getElementsByClassName(b);var d;c=[];a=a.getElementsByTagName("*");var e=new RegExp("(^| )"+b+"( |$)");b=0;for(d=a.length;b<d;b++)e.test(a[b].className)&&c.push(a[b]);return c}
function Qa(a){for(var b=!0,c=Ra[a];c&&c.length;){var d=c.splice(0,1)[0],e=d[0],f=null;0<=Sa.indexOf(e)&&(f=function(){return function(){Qa(a)}}());var g=Ta[e];if(g)if(!f)b=g(d[1],d[2],d[3]);else{if(!g(f,d[1],d[2],d[3]))break}else{var b=!1,h=B(d[1],a);if(h)if(g=Ua[e])b=g(h,d[2],d[3]);else{var l=h.exports;if(l&&(g=l[e]))if(b=!0,!f)b=g.call(h,d[2],d[3]);else if(!g.call(h,f,d[2],d[3]))break}}if(!b){t("Script error: "+e+(g?" failed":" unrecognized"));break}}c&&!c.length&&delete Ra[a];return b}k=x.prototype;
k.toString=function(){return this.name?this.name:this.id||this.type};
k.U=function(a,b,c){switch(b){case "clear":return this.m[b]||(this.m[b]=c,c.onclick=function(a){return function(){a.m.print&&(a.m.print.value="")}}(this)),!0;case "print":return this.m[b]||(this.ba=this.m[b]=c,c.value="",this.M=function(a){return function(b,c){8192<a.value.length&&(a.value=a.value.substr(a.value.length-4096));a.value+=(void 0!==c?c+": ":"")+(b||"")+"\n";a.scrollTop=a.scrollHeight}}(c),this.F=function(a){this.M(a,this.oa)}),!0;default:return!1}};k.log=function(){};k.M=function(){};
k.status=function(a){this.M(this.oa+": "+a)};k.F=function(a,b,c){c=c||this.type;b||u((c?c+": ":"")+a)};function Ua(a,b){b&&(a.g.ready?b():a.wa=b);return a.g.ready}function H(a){if(!a.g.error&&(a.g.ready=!0,a.g.ready)){var b=a.wa;a.wa=null;b&&b()}}function Va(a,b){a.g.Ga?(a.g.ua=!1,a.g.Ga=!1):a.g.error?a.M(a.toString()+" error"):a.g.ua=b}k.V=function(){return this.g.D=!0};k.R=function(a,b){b&&(this.g.D=!1);return!0};
k.status=function(a){this.M(this.oa+": "+a)};k.F=function(a,b,c){c=c||this.type;b||t((c?c+": ":"")+a)};function Va(a,b){b&&(a.g.ready?b():a.wa=b);return a.g.ready}function G(a){if(!a.g.error&&(a.g.ready=!0,a.g.ready)){var b=a.wa;a.wa=null;b&&b()}}function Wa(a,b){a.g.Ga?(a.g.ua=!1,a.g.Ga=!1):a.g.error?a.M(a.toString()+" error"):a.g.ua=b}k.V=function(){return this.g.D=!0};k.R=function(a,b){b&&(this.g.D=!1);return!0};
window&&(window.PCjs||(window.PCjs={}),window.PCjs.Machines||(window.PCjs.Machines={}),window.PCjs.Components||(window.PCjs.Components=[]),window.PCjs.Commands||(window.PCjs.Commands={}));
var La=window?window.PCjs.Machines:{},A=window?window.PCjs.Components:[],Qa=window?window.PCjs.Commands:{},Ra=["hold","sleep","wait"],Sa={alert:function(a){u(a);return!0},sleep:function(a,b){setTimeout(a,+b);return!1}},Ta={select:function(a,b,c){var d=!1;if(a=a.bindings[b])for(b=0;b<a.options.length;b++)if(a.options[b].textContent==c){a.selectedIndex!=b&&(a.selectedIndex=b);d=!0;break}return d}};
var Ma=window?window.PCjs.Machines:{},y=window?window.PCjs.Components:[],Ra=window?window.PCjs.Commands:{},Sa=["hold","sleep","wait"],Ta={alert:function(a){t(a);return!0},sleep:function(a,b){setTimeout(a,+b);return!1}},Ua={select:function(a,b,c){var d=!1;if(a=a.bindings[b])for(b=0;b<a.options.length;b++)if(a.options[b].textContent==c){a.selectedIndex!=b&&(a.selectedIndex=b);d=!0;break}return d}};
Array.prototype.indexOf||(Array.prototype.indexOf=function(a,b){b=b||0;for(var c=this.length;b<c;b++)if(this[b]===a)return b;return-1});Array.isArray||(Array.isArray=function(a){return"[object Array]"===Object.prototype.toString.call(a)});
Function.prototype.bind||(Function.prototype.bind=function(a){function b(){return e.apply(this instanceof c&&a?this:a,d.concat(Array.prototype.slice.call(arguments)))}function c(){}if("function"!=typeof this)throw new TypeError("Function.prototype.bind: non-callable object");var d=Array.prototype.slice.call(arguments,1),e=this;c.prototype=this.prototype;b.prototype=new c;return b});
var F="pdp10",I="PDPjs",Wa=Math.pow(2,18)-1,Xa=Math.pow(2,18),Ya=Math.pow(2,35)-1,Za=Math.pow(2,35),J=Math.pow(2,36)-1,K=Math.pow(2,36),L=Math.pow(2,18)-1,M=Math.pow(2,18),$a=Math.pow(2,17)-1,N=Math.pow(2,35)-1,ab=Math.pow(2,35),bb=Math.pow(2,36),O=Math.pow(2,32),cb=Math.pow(2,23),db=Math.pow(2,30),F="pdp10",I="PDPjs";
function eb(a,b){y.call(this,"Panel",a);this.B=this.C=0;this.P=b;this.b=this.w=this.i=this.j=0;this.G=this.I=-1;this.K=this.L=this.o=!1;this.N=fb;this.l={};this.a={START:[1,1,!0,!1,this.kb],STEP:[1,1,!1,!1,this.lb],ENABLE:[1,1,!1,!1,this.fb],CONT:[1,1,!0,!1,this.cb],DEP:[0,0,!0,!1,this.eb],EXAM:[1,1,!0,!1,this.gb],LOAD:[1,1,!0,!1,this.ib],TEST:[0,0,!0,!1,this.hb]};for(a=0;22>a;a++)this.a["S"+a]=[0,0,!1,!1,this.jb,a];this.v=this.h=this.s=this.u=null;this.exports={hold:this.bb,toggle:this.ub,reset:this.qb,
set:this.tb};H(this)}n(eb,y);k=eb.prototype;k.reset=function(a){this.stop();a&&gb(this,this.j=0)};
k.U=function(a,b,c,d){if(this.u&&this.u.U(a,b,c,d)||this.h&&this.h.U(a,b,c,d))return!0;switch(b){case "PC":return this.m[b]=c,this.C++,!0;default:return"led"==a||"rled"==a?(this.m[b]=c,this.l[b]=d?1:0,this.C++,!0):"switch"==a?(void 0===this.a[b]&&(this.a[b]=[d?1:0,d?1:0]),this.m[b]=c,a=c.parentElement||c,a=a.parentElement||a,a.onmousedown=function(a,b){return function(){hb(a,b)}}(this,b),a.onmouseup=a.onmouseout=function(a,b){return function(){ib(a,b)}}(this,b),a.ontouchstart=function(a,b){return function(c){hb(a,
b);c.preventDefault()}}(this,b),a.ontouchend=function(a,b){return function(){ib(a,b)}}(this,b),!0):y.prototype.U.call(this,a,b,c,d)}};k.Z=function(a,b,c,d){this.u=a;this.s=b;this.h=c;this.v=d;jb(this);kb(this)};k.V=function(a,b){if(!b)if(this.P&&lb(),!a)this.reset(!0);else if(!this.restore(a))return!1;return!0};k.R=function(a){return a?this.save():!0};k.save=function(){var a=new P(this);a.set(0,[this.b,this.j,this.i]);return a.data()};
k.restore=function(a){if(a=a[0])mb(this,this.b=a[0]),gb(this,this.j=a[1]),nb(this,a[2]);return!0};k.qb=function(){for(var a in this.a){var b=this.a[a];b[1]=b[0]}kb(this);return!0};function ob(a,b,c){if(a=a.m[b])a.style.backgroundColor=c?"#ff0000":"#000000"}function jb(a,b){for(var c in a.l)ob(a,c,null!=b?b:a.l[c])}function pb(a,b,c){if(a=a.m[b])a.style.marginTop=c?"0px":"20px",a.style.backgroundColor=c?"#00ff00":"#228B22"}function kb(a){for(var b in a.a)pb(a,b,a.a[b][1])}
k.bb=function(a,b,c){if(hb(this,b)){if(c){var d=this;setTimeout(function(){ib(d,b);a&&a()},+c);return!1}ib(this,b)}return!0};
var E="pdp10",H="PDPjs",Xa=Math.pow(2,18)-1,Ya=Math.pow(2,18),I=Math.pow(2,18)-1,J=Math.pow(2,18),K=Math.pow(2,35)-1,L=Math.pow(2,35),M=Math.pow(2,36)-1,N=Math.pow(2,36),Za=Math.pow(2,17)-1,O=Math.pow(2,35)-1,$a=Math.pow(2,35),ab=Math.pow(2,36),P=Math.pow(2,32),bb=Math.pow(2,23),cb=Math.pow(2,30),E="pdp10",H="PDPjs";
function db(a,b){x.call(this,"Panel",a);this.B=this.C=0;this.P=b;this.b=this.w=this.h=this.j=0;this.G=this.I=-1;this.K=this.L=this.o=!1;this.N=eb;this.l={};this.a={START:[1,1,!0,!1,this.kb],STEP:[1,1,!1,!1,this.lb],ENABLE:[1,1,!1,!1,this.fb],CONT:[1,1,!0,!1,this.cb],DEP:[0,0,!0,!1,this.eb],EXAM:[1,1,!0,!1,this.gb],LOAD:[1,1,!0,!1,this.ib],TEST:[0,0,!0,!1,this.hb]};for(a=0;22>a;a++)this.a["S"+a]=[0,0,!1,!1,this.jb,a];this.v=this.i=this.s=this.u=null;this.exports={hold:this.bb,toggle:this.ub,reset:this.qb,
set:this.tb};G(this)}n(db,x);k=db.prototype;k.reset=function(a){this.stop();a&&fb(this,this.j=0)};
k.U=function(a,b,c,d){if(this.u&&this.u.U(a,b,c,d)||this.i&&this.i.U(a,b,c,d))return!0;switch(b){case "PC":return this.m[b]=c,this.C++,!0;default:return"led"==a||"rled"==a?(this.m[b]=c,this.l[b]=d?1:0,this.C++,!0):"switch"==a?(void 0===this.a[b]&&(this.a[b]=[d?1:0,d?1:0]),this.m[b]=c,a=c.parentElement||c,a=a.parentElement||a,a.onmousedown=function(a,b){return function(){gb(a,b)}}(this,b),a.onmouseup=a.onmouseout=function(a,b){return function(){hb(a,b)}}(this,b),a.ontouchstart=function(a,b){return function(c){gb(a,
b);c.preventDefault()}}(this,b),a.ontouchend=function(a,b){return function(){hb(a,b)}}(this,b),!0):x.prototype.U.call(this,a,b,c,d)}};k.Z=function(a,b,c,d){this.u=a;this.s=b;this.i=c;this.v=d;ib(this);jb(this)};k.V=function(a,b){if(!b)if(this.P&&kb(),!a)this.reset(!0);else if(!this.restore(a))return!1;return!0};k.R=function(a){return a?this.save():!0};k.save=function(){var a=new Q(this);a.set(0,[this.b,this.j,this.h]);return a.data()};
k.restore=function(a){if(a=a[0])lb(this,this.b=a[0]),fb(this,this.j=a[1]),mb(this,a[2]);return!0};k.qb=function(){for(var a in this.a){var b=this.a[a];b[1]=b[0]}jb(this);return!0};function nb(a,b,c){if(a=a.m[b])a.style.backgroundColor=c?"#ff0000":"#000000"}function ib(a,b){for(var c in a.l)nb(a,c,null!=b?b:a.l[c])}function ob(a,b,c){if(a=a.m[b])a.style.marginTop=c?"0px":"20px",a.style.backgroundColor=c?"#00ff00":"#228B22"}function jb(a){for(var b in a.a)ob(a,b,a.a[b][1])}
k.bb=function(a,b,c){if(gb(this,b)){if(c){var d=this;setTimeout(function(){hb(d,b);a&&a()},+c);return!1}hb(this,b)}return!0};
k.tb=function(a,b){if("SR"==a){a=b;b=8;var c;if(a){b||(b=10);var d=a.charAt(0),e=0<a.indexOf(",");e&&(a=a.replace(/,/g,""));"#"==d?(b=8,d=null):"$"==d&&(b=16,d=null);null==d?a=a.substr(1):("0"==d&&(d=a.charAt(1),"b"==d&&e&&(b=2,d=null),"o"==d?(b=8,d=null):"x"==d&&(b=16,d=null)),null==d?a=a.substr(2):(d=a.charAt(a.length-1).toLowerCase(),"y"==d?(b=2,d=null):"."==d?(b=10,d=null):"h"==d&&(b=16,d=null),null==d&&(a=a.substr(0,a.length-1))));var f,d=a;((e=b)&&10!=e?16==e?d.match(/^[0-9a-f]+$/i):8==e?d.match(/^[0-7]+$/):
2==e&&d.match(/^[01]+$/):d.match(/^[0-9]+$/))&&!isNaN(f=parseInt(a,b))&&(c=f)}return nb(this,c)}return(c=this.a[a])?(c[1]=+b?1:0,pb(this,a,c[1]),!0):!1};k.ub=function(a){return hb(this,a)?(ib(this,a),!0):!1};function hb(a,b){var c=a.a[b];return c?(pb(a,b,c[1]=1-c[1]),c[3]=!0,c[4]&&c[4].call(a,c[1],c[5]),b!=qb&&(a.K=b==rb,a.L=b==sb),!0):!1}function ib(a,b){var c=a.a[b];c&&(c[2]&&c[3]&&(pb(a,b,c[1]=c[0]),c[4]&&c[4].call(a,c[1],c[5])),c[3]=!1)}
k.kb=function(a){a||this.h.g.A||(this.h.o=this.b%Xa,this.a[tb]&&this.a[tb][1]&&ub(this.h))};k.lb=function(){};k.fb=function(a){a||Q(this.h)};k.cb=function(a){if(!a&&!this.h.g.A)if(this.a[tb]&&this.a[tb][1])ub(this.h);else{a=this.v;var b;if(b=a)a.g.ua&&(a.g.Ga=!0),b=!a.g.ua;if(b)Va(a,!0),a.b(0,null),Va(a,!1);else try{var c=this.h.za(1);0<c&&(vb(this.h,c),wb(this.h,c,!0),xb(this.h,c))}catch(d){"number"!=typeof d&&(c=this.h,a=d.stack||d.message,c.g.error=!0,c.F(a))}this.stop();this.u&&R(this.u)}};
k.eb=function(a){a&&!this.h.g.A&&(this.K&&yb(this),a=gb(this,this.j=this.i),this.N==fb?zb(this.s,this.b,a):this.h.f(this.b,a))};k.gb=function(a){if(!a&&!this.h.g.A){this.L&&yb(this);if(this.N==fb){a=this.s;var b=this.b,c=a.a[(b&a.i)>>>a.b];a.j++;b=c.s(b&16383,b);a.j--;a=b}else a=this.h.c(this.b);gb(this,this.j=a)}};k.ib=function(a){a||this.h.g.A||mb(this,this.i)};k.hb=function(a){a?(this.o=!0,jb(this,!0)):(this.o=!1,jb(this),nb(this,0))};k.jb=function(a,b){this.i=a?this.i|1<<b:this.i&~(1<<b)};
function yb(a){var b=1,c=a.s.i;a.a[qb]&&a.a[qb][1]||(b=-b);mb(a,a.b&~c|a.b+b&c)}function mb(a,b){a.b=b&a.s.i;if(a.G!==a.b){a.G=a.b;b=a.G;for(var c=0;22>c;c++){var d=a,e="A"+c,f=b&1<<c;d.l[e]=f;d.o||ob(d,e,f)}}}function gb(a,b){a.w=b%K;if(a.I!==a.w){a.I=a.w;b=a.I;for(var c=0;16>c;c++){var d=a,e="D"+c,f=b&1<<c;d.l[e]=f;d.o||ob(d,e,f)}}return a.w}function nb(a,b){a.i=b|0;for(b=0;22>b;b++)a.a["S"+b][1]=a.i&1<<b?1:0;kb(a);return!0}k.stop=function(){mb(this,this.h.o)};
function lb(){for(var a=G(document,F,"panel"),b=0;b<a.length;b++){var c=a[b],d=D(c),e=Oa(d.id);e||(e=new eb(d,!0));E(e,c)}}var fb=7,rb="DEP",tb="ENABLE",sb="EXAM",qb="STEP";w(lb);function Ab(a,b,c){y.call(this,"Bus",a);this.h=b;this.v=c;this.w=+a.busWidth||18;this.o=1<<this.w;this.i=this.o-1;this.b=Math.log2(16384);this.l=this.o/16384|0;this.j=0;this.a=[];a=new S(this);Bb(a);this.a=Array(this.l);for(b=0;b<this.l;b++)this.a[b]=a;H(this)}n(Ab,y);k=Ab.prototype;k.reset=function(){};
k.V=function(a,b){if(!b)if(!a)this.reset();else if(!this.restore(a))return!1;return!0};k.R=function(a){return a?this.save():!0};k.save=function(){var a=new P(this);a.set(0,Cb(this));return a.data()};k.restore=function(a){a:{a=a[0];var b;for(b=0;b<a.length-1;b+=2){var c=a[b],d=a[b+1];if(d&&4096>d.length){for(var e=0,f=Array(4096),g=0;g<d.length-1;)for(var h=d[g++],l=d[g++];h--;)f[e++]=l;d=f}e=this.a[c];if(!e||!e.restore(d)){u("Unable to restore memory block "+c);a=!1;break a}}a=!0}return a};
function Db(a,b,c,d){for(var e=b,f=c,g=e>>>a.b;0<f&&g<a.a.length;){var h=a.a[g],l=16384*g,p=16384-(e-l);p>f&&(p=f);if(h&&h.size){if(h.type==d){if(e+f<=h.aa)return h.ya+=h.aa-e,h.aa=e,!0;if(e>=h.aa+h.ya){p=h.size-(e-l);p>f&&(p=f);h.ya=e-h.aa+p;e=l+16384;f-=p;g++;continue}}return Eb(Fb,e,f)}e=new S(a,e,p,16384,d);Bb(e,h);a.a[g++]=e;e=l+16384;f-=p}return 0>=f?(a.status("Added "+(c>>10)+"Kb "+Gb[d]+" at "+la(b)),!0):Eb(Hb,b,c)}function zb(a,b,c){var d=a.a[(b&a.i)>>>a.b];a.j++;d.m(c,b&16383,b);a.j--}
function Cb(a){for(var b=0,c=[],d=0;d<a.l;d++){var e=a.a[d];if(e.Ha||e.ab){c[b++]=d;var f=b++;if(e=e.save()){for(var g=0,h=0,l=[];g<e.length;){for(var p=e[g],v=g+1;v<e.length&&e[v]===p;)v++;l[h++]=v-g;l[h++]=p;g=v}l.length<e.length&&(e=l)}c[f]=e}}return c}function Eb(a,b,c){u("Memory block error ("+a+": "+r(b)+","+r(c)+")");return!1}var Fb=1,Hb=2;function Ib(a){y.call(this,"Device",a)}n(Ib,y);k=Ib.prototype;k.Z=function(a,b,c,d){this.s=b;this.u=a;this.h=c;this.v=d;H(this)};
k.V=function(a,b){if(!b)if(!a)this.reset();else if(!this.restore(a))return!1;return!0};k.R=function(a){return a?this.save():!0};k.reset=function(){};k.save=function(){return(new P(this)).data()};k.restore=function(){return!0};w(function(){for(var a=G(document,F,"device"),b=0;b<a.length;b++){var c,d=a[b];c=D(d);switch(c.type){case "default":c=new Ib(c),E(c,d)}}});
function S(a,b,c,d,e){this.v=a;this.id=Jb+=2;this.aa=b;this.ya=c;this.size=d||0;this.type=e||Kb;this.u=e==Lb;this.c=this.s=this.Ia;this.f=this.m=this.Ka;this.b=this.h=0;Bb(this);this.Ha=this.ab=!1;if(this.size){a=this.a=Array(this.size);for(b=0;b<a.length;b++)a[b]=0;Mb(this,Nb)}else Mb(this)}k=S.prototype;k.save=function(){return this.a};k.restore=function(a){return a&&this.size==a.length?(this.a=a,this.Ha=!0):!1};function Mb(a,b){b||(b=Ob);Pb(a,b,void 0);Qb(a,b,void 0)}
function Pb(a,b,c){c&&a.b||(a.c=b[0]||a.Ia);if(c||void 0===c)a.s=b[0]||a.Ia}function Qb(a,b,c){c&&a.h||(a.f=!a.u&&b[1]||a.Ka);if(c||void 0===c)a.m=b[1]||a.Ka}function Bb(a,b){a.b=a.h=0;b&&((a.b=b.b)&&Pb(a,Rb,!1),(a.h=b.h)&&Qb(a,Rb,!1))}k.Ia=function(){var a=this.v;a.j||Q(a.h);return-1};k.Ka=function(){};k.ob=function(a){return this.a[a]};k.xb=function(a,b){this.a[b]!=a&&(this.a[b]=a,this.Ha=!0)};k.mb=function(a,b){return this.s(a,b)};k.wb=function(a,b,c){this.u||this.m(a,b,c)};
var Kb=0,Lb=2,Gb=["NONE","RAM","ROM"],Jb=0,Ob=[],Nb=[S.prototype.ob,S.prototype.xb],Rb=[S.prototype.mb,S.prototype.wb];
function Sb(a,b){y.call(this,"CPU",a);b=+a.cycles||b;var c=+a.multiplier||1;this.Aa=0;this.Ea=b;this.ca=c;this.Ca=Math.round(this.Ea/1E4)/100;this.W=this.Ca*this.ca;this.Da=this.ja=this.da=this.sa=0;this.g.A=this.g.Ja=!1;this.g.J=a.autoStart;"string"==typeof this.g.J&&(this.g.J="true"==this.g.J);this.g.va=!1;this.qa=this.X=0;this.ra=+a.csStart;this.ha=+a.csInterval;this.ia=+a.csStop;this.G=[];this.Pa=this.rb.bind(this);this.N=this.C=this.K=this.L=this.B=this.ga=this.I=this.ea=this.Fa=this.P=0;this.ma=
null;H(this)}n(Sb,y);k=Sb.prototype;k.Z=function(a,b,c,d){this.u=a;this.s=b;this.v=d;this.ma=a.i;for(a=0;a<Tb.length;a++)(b=this.m[Tb[a]])&&this.u.U(null,Tb[a],b);H(this)};k.reset=function(){};k.save=function(){return null};k.restore=function(){return!1};
k.V=function(a,b){var c=Ub(this.u,"autoStart");null!=c?this.g.J="true"==c?!0:"false"==c?!1:!!c:null==this.g.J&&(this.g.J=void 0===this.m.run);if(!b){if(a){Vb(this);if(!this.restore(a))return!1;Wb(this)}else this.reset();this.status("No debugger detected");this.g.J||this.M("CPU will not be auto-started "+(this.ma?"(click Run to start)":"(type 'go' to start)"))}return!0};k.R=function(a){return a?this.save():!0};k.J=function(){return this.g.A?!0:this.g.J?(ub(this),!0):!1};k.Ra=function(){return 0};
function Wb(a){void 0===a.ra&&(a.ra=0);void 0===a.ha&&(a.ha=-1);void 0===a.ia&&(a.ia=-1);a.g.va=0<=a.ra&&0<a.ha;a.g.va&&(a.qa=0,a.X=a.ra-a.N)}function xb(a,b){if(a.g.va){var c=!1;a.qa=a.qa+a.Ra()|0;a.X-=b;0>=a.X&&(a.X+=a.ha,c=!0);0<=a.ia&&a.ia<=Xb(a)&&(a.ha=a.ia=-1,Wb(a),Q(a),c=!0);c&&a.M(Xb(a)+" cycles: checksum="+r(a.qa))}}
k.U=function(a,b,c){var d=this;switch(b){case "power":case "reset":return this.m[b]=c,!0;case "run":return this.m[b]=c,c.onclick=function(){var a;if(a=d.u)if(a=d.u,a.g.D)a=!0;else{var b=null,c,h=B(a.id);for(c=0;c<h.length&&(b=h[c],b===a||b.g.ready);c++);if(c==h.length)for(c=0;c<h.length&&(b=h[c],b===a||b.g.D);c++);c==h.length&&(b=a);u("The "+b.type+" component ("+b.id+") is not "+(b.g.ready?"powered yet":"ready yet"+(b.wa?" (waiting for notification)":""))+".");a=!1}a&&(d.g.A?Q(d):ub(d))},!0;case "speed":return this.m[b]=
c,!0;case "setSpeed":return this.m[b]=c,c.onclick=function(){Yb(d,d.ca<<1,!0)},c.textContent=this.W.toFixed(2)+"Mhz",!0}return!1};function wb(a,b,c){a.N+=b;c&&(a.K=a.L=0)}function Zb(a,b){var c=1;b&&1<a.ca&&a.P&&(c=a.P/a.Ca);a.Da=Math.round(1E3/$b);a.ja=Math.floor(a.Ea/$b*c);b||(a.da=a.ja);a.sa=0}function Xb(a){return a.N+a.C+a.K-a.L}function Vb(a){a.P=0;a.Fa=0;a.N=a.C=a.K=a.L=0;Wb(a);Yb(a,1)}
function Yb(a,b,c){if(void 0!==b){.8>a.P/a.W&&(b=1);a.ca=b;b=a.Ca*a.ca;if(a.W!=b){a.W=b;b=a.W.toFixed(2)+"Mhz";var d=a.m.setSpeed;d&&(d.textContent=b);a.M("target speed: "+b)}c&&a.u&&(c=a.u,c.ba&&(d=b=0,window&&(b=window.scrollX,d=window.scrollY),c.ba.focus(),window&&window.scrollTo(b,d)))}wb(a,a.C);a.C=0;a.B=Ma();a.I=0;Zb(a)}function ac(a){for(var b=[],c=0;c<a.G.length;c++)b.push(a.G[c][0]);return b}
function vb(a,b){for(var c=a.G.length-1;0<=c;c--){var d=a.G[c];0>d[0]||(d[0]-=b,0>=d[0]&&(d[0]=-1,d[1]()))}}function bc(a,b){var c=a.K-=a.L;a.L=0;b&&(a.K=0);return c}
k.rb=function(){if(this.g.A){this.sa>=this.Ea&&Zb(this,!0);this.ea=0;this.ga=Ma();if(this.I){var a=this.ga-this.I;a>this.Da&&(this.B+=a,this.B>this.ga&&(this.B=this.ga))}try{do{for(var b,c=this.g.va?1:this.ja,d=this.G.length-1;0<=d;d--){var e=this.G[d];0>e[0]||c>e[0]&&(c=e[0])}b=c;try{this.za(b)}catch(f){if("number"!=typeof f)throw f;}b=bc(this,!0);this.ea+=b;this.C+=b;xb(this,b);vb(this,b);this.da-=b;if(0>=this.da){this.da+=this.ja;++this.Fa>=cc&&(this.u&&R(this.u,void 0),this.Fa=0);break}}while(this.g.A)}catch(f){Q(this);
this.u&&this.u.stop(Ma(),Xb(this));a=f.stack||f.message;this.g.error=!0;this.F(a);return}if(this.g.A){a=setTimeout;b=this.Pa;this.I=Ma();c=this.Da;this.ea&&(c=Math.round(c*this.ea/this.ja));c-=this.I-this.ga;if(d=this.I-this.B)this.P=Math.round(this.C/(10*d))/100,864E5<=d&&(this.N=0,Yb(this));if(0>c||this.P<this.W)-1E3>c&&(this.B-=c),c=0;this.sa+=this.ea;this.I+=c;a(b,c)}}};
function ub(a){var b;a.g.error?(a.M(a.toString()+" error"),b=!0):b=!1;if(!b)if(a.g.A)a.M(a.toString()+" busy");else{Yb(a);a.g.A=!0;a.g.Ja=!0;if(b=a.m.run)b.textContent="Halt";a.u&&a.u.start(a.B,Xb(a));a.v||a.status("Started");setTimeout(a.Pa,0)}}k.za=function(){return 0};function Q(a){var b=!1;if(a.g.A){bc(a);wb(a,a.C);a.C=0;a.g.A=!1;if(b=a.m.run)b.textContent="Run";a.u&&a.u.stop(Ma(),Xb(a));b=!0;a.v||a.status("Stopped")}a.g.complete=void 0;return b}var $b=30,cc=15,Tb=["power","reset"];
function dc(a){var b=+a.model||1001;Sb.call(this,a,1E6);this.Xa=b;this.na=+a.addrReset||0;this.Ya=ec.bind(this);this.a=T.bind(this);this.fa=null;this.Na=[];this.g.complete=!1}n(dc,Sb);k=dc.prototype;k.reset=function(){this.status("Model "+this.Xa);this.g.A&&Q(this);this.b=this.w=this.ta=0;this.o=this.Ba=this.na;this.l=-1;this.i=0;this.la=this.o;this.j=0;this.c=this.nb;this.f=this.yb;this.fa=null;Vb(this);this.g.error=!1;Sb.prototype.reset.call(this)};k.Ra=function(){return 0};
k.save=function(){var a=new P(this);a.set(0,[this.b,this.w,this.ta,this.o,this.l,this.i,this.j,this.Ba,this.la,this.na]);a.set(1,[]);a.set(2,[this.N,this.ca,this.g.J]);a.set(3,fc(this));a.set(4,ac(this));return a.data()};
k.restore=function(a){var b;b=a[0];ea();ba();ea();var c=b[Symbol.iterator];b=c?c.call(b):fa(b);this.b=b.next().value;this.w=b.next().value;this.ta=b.next().value;this.o=b.next().value;this.l=b.next().value;this.i=b.next().value;this.j=b.next().value;this.Ba=b.next().value;this.la=b.next().value;this.na=b.next().value;b=a[2];this.N=b[0];Yb(this,b[1]);this.g.J=b[2];b=a[3];for(c=b.length-1;0<=c;c--){var d;a:{for(d=0;d<this.Na.length;d++){var e=this.Na[d];if(e.vb===b[c]){d=e;break a}}d=null}d&&(d.next=
this.fa,this.fa=d)}a=a[4];for(b=0;b<this.G.length&&b<a.length;b++)this.G[b][0]=a[b];return!0};function gc(a){a.o=(a.o+-1)%Xa}k.abs=function(a){a>N&&(a!=ab?a=bb-a:this.i|=163840);return a};function hc(a,b){b?b==ab?a.i|=163840:b=bb-b:a.i|=98304;return b}function fc(a){var b=[];for(a=a.fa;a;)b.push(a.vb),a=a.next;return b}k.nb=function(a){var b=this.s;a=this.la=a;return b.a[(a&b.i)>>>b.b].c(a&16383,a)};k.yb=function(a,b){var c=this.s;a=this.la=a;c.a[(a&c.i)>>>c.b].f(b,a&16383,a);return b};
k.za=function(a){this.g.complete=!0;var b=a?this.g.Ja?0:1:-1;this.g.Ja=!1;this.K=this.L=a;this.j=this.j&-5|0;do{if(a=this.j)if(a=this.j&11)this.j&2?this.fa||(this.j&=-3):this.j&1&&this.j++,a=!1;if(a){if(this.j&4&&this.v.j(this.o,b)){Q(this);break}if(0>b)break}this.j&=15;this.w=this.w&4194304?this.c(this.b):this.ta=this.c(this.Ba=this.o);this.w&=8388607;this.b=this.w&262143;if(a=this.w>>18&15)this.b=this.b+this.c(a)&Wa;this.w&4194304?a=-1:(this.o=(this.o+1)%Xa,a=this.ta/cb|0);0<=a&&this.Ya(a)}while(0<
this.L);return this.g.complete?this.K-this.L:!1===this.g.complete?-1:0};w(function(){for(var a=G(document,F,"cpu"),b=0;b<a.length;b++){var c=a[b],d=D(c),d=new dc(d);E(d,c)}});function ec(a){ic[a>>4].call(this,a,a&15)}function U(a){this.a(a)}function jc(){var a=0,b=this.c(this.b),c=b/db&63,d=b>>24&63,c=c-d;0>c&&(a++,c=36-d,0>c&&(c=64-d));b=c*db+(d<<24)+(b&16777215);a&&(b=(b+a)%K);this.f(this.b,b)}
function kc(a,b){a=this.c(this.b);if(0>this.l)this.l=a,this.w=this.b|4194304,gc(this);else{var c=this.l/db&63,d=this.l>>24&63;a=32>=c+d?(a>>c&(1<<d)-1)>>>0:Math.trunc(a/Math.pow(2,c))%Math.pow(2,d);this.f(b,a);this.l=-1}}function lc(a,b){a=this.c(this.b);if(0>this.l)this.l=a,this.w=this.b|4194304,gc(this);else{var c=this.l/db&63,d=this.l>>24&63;b=this.c(b)%Math.pow(2,d)*Math.pow(2,c)%K;a=a-a%Math.pow(2,c+d)+b+a%Math.pow(2,c);this.f(this.b,a);this.l=-1}}function mc(a,b){this.f(b,this.c(this.b))}
function nc(a,b){this.f(b,this.b)}function oc(a,b){this.f(this.b,this.c(b))}function pc(a,b){this.f(b,0)}function qc(a,b){this.f(b,J-this.c(b))}function rc(a,b){this.f(b,J)}function sc(a,b){var c=this.c(this.b),d=this.c(b);this.f(b,V(a,d,c)+(c-(c&L)))}function tc(a,b){var c=this.c(b);this.f(b,V(a,c,0))}function uc(a,b){b=this.c(b);var c=this.c(this.b);this.f(this.b,V(a,c,b)+(b-(b&L)))}
function vc(a,b){var c=this.c(this.b),d=c;if(a&=384)switch(d-=d&L,a){case 256:d+=L;break;case 384:d+=c>N?L:0}c=d;this.f(this.b,c);b&&this.f(b,c)}function wc(a,b){var c=(this.c(this.b)&L)*M,d=this.c(b);this.f(b,V(a,d,c)+c)}function xc(a,b){var c=this.b*M,d=this.c(b);this.f(b,V(a,d,c)+c)}function yc(a,b){b=(this.c(b)&L)*M;var c=this.c(this.b);this.f(this.b,V(a,c,b)+b)}function zc(a,b){var c=this.c(this.b),d=(c&L)*M,c=V(a,c,d)+d;this.f(this.b,c);b&&this.f(b,c)}
function Ac(a,b){var c=this.c(this.b)&L,d=this.c(b);this.f(b,W(a,d,c)+c)}function Bc(a,b){var c=this.c(b);this.f(b,W(a,c,this.b)+this.b)}function Cc(a,b){b=this.c(b)&L;var c=this.c(this.b);this.f(this.b,W(a,c,b)+b)}function Dc(a,b){var c=this.c(this.b),d=c;if(a&=384)switch(d&=L,a){case 256:d+=L*M;break;case 384:d+=c>$a?L*M:0}c=d;this.f(this.b,c);b&&this.f(b,c)}function Ec(a,b){var c=this.c(this.b)/M|0,d=this.c(b);this.f(b,W(a,d,c)+c)}function Fc(a,b){var c=this.c(b);this.f(b,W(a,c,0))}
function Gc(a,b){b=this.c(b)/M|0;var c=this.c(this.b);this.f(this.b,W(a,c,b)+b)}function Hc(a,b){var c=this.c(this.b),d=c/M|0,c=W(a,c,d)+d;this.f(this.b,c);b&&this.f(b,c)}function X(a){Ic[a&7].call(this,a,a>>3&127)}function Jc(){}function T(a){this.M("undefined opcode: "+la(a));gc(this);Q(this)}function W(a,b,c){switch(a&384){case 0:b-=b&L;break;case 128:b=0;break;case 256:b=L*M;break;case 384:b=c>$a?L*M:0}return b}
function V(a,b,c){switch(a&384){case 0:b&=L;break;case 128:b=0;break;case 256:b=L;break;case 384:b=c>N?L:0}return b}function Y(a,b){return((a/O|0)&(b/O|0))*O+((a&b)>>>0)}function Kc(a,b){return((a/O|0)^(b/O|0))*O+((a^b)>>>0)}function Lc(a,b){return(~((a/O|0)^(b/O|0))&15)*O+(~(a^b)>>>0)}function Z(a,b){return(a/O|0|b/O|0)*O+((a|b)>>>0)}
var ic=[U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},jc,function(a,b){0>this.l&&jc.call(this);kc.call(this,0,b)},kc,function(a,b){0>this.l&&jc.call(this);lc.call(this,0,b)},lc,function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},
2==e&&d.match(/^[01]+$/):d.match(/^[0-9]+$/))&&!isNaN(f=parseInt(a,b))&&(c=f)}return mb(this,c)}return(c=this.a[a])?(c[1]=+b?1:0,ob(this,a,c[1]),!0):!1};k.ub=function(a){return gb(this,a)?(hb(this,a),!0):!1};function gb(a,b){var c=a.a[b];return c?(ob(a,b,c[1]=1-c[1]),c[3]=!0,c[4]&&c[4].call(a,c[1],c[5]),b!=pb&&(a.K=b==qb,a.L=b==rb),!0):!1}function hb(a,b){var c=a.a[b];c&&(c[2]&&c[3]&&(ob(a,b,c[1]=c[0]),c[4]&&c[4].call(a,c[1],c[5])),c[3]=!1)}
k.kb=function(a){a||this.i.g.A||(this.i.o=this.b%Ya,this.a[sb]&&this.a[sb][1]&&tb(this.i))};k.lb=function(){};k.fb=function(a){a||R(this.i)};k.cb=function(a){if(!a&&!this.i.g.A)if(this.a[sb]&&this.a[sb][1])tb(this.i);else{a=this.v;var b;if(b=a)a.g.ua&&(a.g.Ga=!0),b=!a.g.ua;if(b)Wa(a,!0),a.b(0,null),Wa(a,!1);else try{var c=this.i.za(1);0<c&&(ub(this.i,c),vb(this.i,c,!0),wb(this.i,c))}catch(d){"number"!=typeof d&&(c=this.i,a=d.stack||d.message,c.g.error=!0,c.F(a))}this.stop();this.u&&S(this.u)}};
k.eb=function(a){a&&!this.i.g.A&&(this.K&&xb(this),a=fb(this,this.j=this.h),this.N==eb?yb(this.s,this.b,a):this.i.f(this.b,a))};k.gb=function(a){if(!a&&!this.i.g.A){this.L&&xb(this);if(this.N==eb){a=this.s;var b=this.b,c=a.a[(b&a.h)>>>a.b];a.j++;b=c.m(b&16383,b);a.j--;a=b}else a=this.i.c(this.b);fb(this,this.j=a)}};k.ib=function(a){a||this.i.g.A||lb(this,this.h)};k.hb=function(a){a?(this.o=!0,ib(this,!0)):(this.o=!1,ib(this),mb(this,0))};k.jb=function(a,b){this.h=a?this.h|1<<b:this.h&~(1<<b)};
function xb(a){var b=1,c=a.s.h;a.a[pb]&&a.a[pb][1]||(b=-b);lb(a,a.b&~c|a.b+b&c)}function lb(a,b){a.b=b&a.s.h;if(a.G!==a.b){a.G=a.b;b=a.G;for(var c=0;22>c;c++){var d=a,e="A"+c,f=b&1<<c;d.l[e]=f;d.o||nb(d,e,f)}}}function fb(a,b){a.w=b%N;if(a.I!==a.w){a.I=a.w;b=a.I;for(var c=0;16>c;c++){var d=a,e="D"+c,f=b&1<<c;d.l[e]=f;d.o||nb(d,e,f)}}return a.w}function mb(a,b){a.h=b|0;for(b=0;22>b;b++)a.a["S"+b][1]=a.h&1<<b?1:0;jb(a);return!0}k.stop=function(){lb(this,this.i.o)};
function kb(){for(var a=F(document,E,"panel"),b=0;b<a.length;b++){var c=a[b],d=C(c),e=Pa(d.id);e||(e=new db(d,!0));D(e,c)}}var eb=7,qb="DEP",sb="ENABLE",rb="EXAM",pb="STEP";u(kb);function zb(a,b,c){x.call(this,"Bus",a);this.i=b;this.v=c;this.w=+a.busWidth||18;this.o=1<<this.w;this.h=this.o-1;this.b=Math.log2(16384);this.l=this.o/16384|0;this.j=0;this.a=[];a=new T(this);Ab(a);this.a=Array(this.l);for(b=0;b<this.l;b++)this.a[b]=a;G(this)}n(zb,x);k=zb.prototype;k.reset=function(){};
k.V=function(a,b){if(!b)if(!a)this.reset();else if(!this.restore(a))return!1;return!0};k.R=function(a){return a?this.save():!0};k.save=function(){var a=new Q(this);a.set(0,Bb(this));return a.data()};k.restore=function(a){a:{a=a[0];var b;for(b=0;b<a.length-1;b+=2){var c=a[b],d=a[b+1];if(d&&4096>d.length){for(var e=0,f=Array(4096),g=0;g<d.length-1;)for(var h=d[g++],l=d[g++];h--;)f[e++]=l;d=f}e=this.a[c];if(!e||!e.restore(d)){t("Unable to restore memory block "+c);a=!1;break a}}a=!0}return a};
function Cb(a,b,c,d){for(var e=b,f=c,g=e>>>a.b;0<f&&g<a.a.length;){var h=a.a[g],l=16384*g,p=16384-(e-l);p>f&&(p=f);if(h&&h.size){if(h.type==d){if(e+f<=h.aa)return h.ya+=h.aa-e,h.aa=e,!0;if(e>=h.aa+h.ya){p=h.size-(e-l);p>f&&(p=f);h.ya=e-h.aa+p;e=l+16384;f-=p;g++;continue}}return Db(Eb,e,f)}e=new T(a,e,p,16384,d);Ab(e,h);a.a[g++]=e;e=l+16384;f-=p}return 0>=f?(a.status("Added "+(c>>10)+"Kb "+Fb[d]+" at "+la(b)),!0):Db(Gb,b,c)}function yb(a,b,c){var d=a.a[(b&a.h)>>>a.b];a.j++;d.h(c,b&16383,b);a.j--}
function Bb(a){for(var b=0,c=[],d=0;d<a.l;d++){var e=a.a[d];if(e.Ha||e.ab){c[b++]=d;var f=b++;if(e=e.save()){for(var g=0,h=0,l=[];g<e.length;){for(var p=e[g],v=g+1;v<e.length&&e[v]===p;)v++;l[h++]=v-g;l[h++]=p;g=v}l.length<e.length&&(e=l)}c[f]=e}}return c}function Db(a,b,c){t("Memory block error ("+a+": "+ma(b)+","+ma(c)+")");return!1}var Eb=1,Gb=2;function Hb(a){x.call(this,"Device",a)}n(Hb,x);k=Hb.prototype;k.Z=function(a,b,c,d){this.s=b;this.u=a;this.i=c;this.v=d;G(this)};
k.V=function(a,b){if(!b)if(!a)this.reset();else if(!this.restore(a))return!1;return!0};k.R=function(a){return a?this.save():!0};k.reset=function(){};k.save=function(){return(new Q(this)).data()};k.restore=function(){return!0};u(function(){for(var a=F(document,E,"device"),b=0;b<a.length;b++){var c,d=a[b];c=C(d);switch(c.type){case "default":c=new Hb(c),D(c,d)}}});
function T(a,b,c,d,e){this.u=a;this.id=Ib+=2;this.aa=b;this.ya=c;this.size=d||0;this.type=e||Jb;this.s=e==Kb;this.c=this.m=this.Ia;this.f=this.h=this.Ka;this.b=this.i=0;Ab(this);this.Ha=this.ab=!1;if(this.size){a=this.a=Array(this.size);for(b=0;b<a.length;b++)a[b]=0;Lb(this,Mb)}else Lb(this)}k=T.prototype;k.save=function(){return this.a};k.restore=function(a){return a&&this.size==a.length?(this.a=a,this.Ha=!0):!1};function Lb(a,b){b||(b=Nb);Ob(a,b,void 0);Pb(a,b,void 0)}
function Ob(a,b,c){c&&a.b||(a.c=b[0]||a.Ia);if(c||void 0===c)a.m=b[0]||a.Ia}function Pb(a,b,c){c&&a.i||(a.f=!a.s&&b[1]||a.Ka);if(c||void 0===c)a.h=b[1]||a.Ka}function Ab(a,b){a.b=a.i=0;b&&((a.b=b.b)&&Ob(a,Qb,!1),(a.i=b.i)&&Pb(a,Qb,!1))}k.Ia=function(){var a=this.u;a.j||R(a.i);return-1};k.Ka=function(){};k.ob=function(a){return this.a[a]};k.xb=function(a,b){this.a[b]!=a&&(this.a[b]=a,this.Ha=!0)};k.mb=function(a,b){return this.m(a,b)};k.wb=function(a,b,c){this.s||this.h(a,b,c)};
var Jb=0,Kb=2,Fb=["NONE","RAM","ROM"],Ib=0,Nb=[],Mb=[T.prototype.ob,T.prototype.xb],Qb=[T.prototype.mb,T.prototype.wb];
function Rb(a,b){x.call(this,"CPU",a);b=+a.cycles||b;var c=+a.multiplier||1;this.Aa=0;this.Ea=b;this.ca=c;this.Ca=Math.round(this.Ea/1E4)/100;this.W=this.Ca*this.ca;this.Da=this.ja=this.da=this.sa=0;this.g.A=this.g.Ja=!1;this.g.J=a.autoStart;"string"==typeof this.g.J&&(this.g.J="true"==this.g.J);this.g.va=!1;this.qa=this.X=0;this.ra=+a.csStart;this.ha=+a.csInterval;this.ia=+a.csStop;this.G=[];this.Pa=this.rb.bind(this);this.N=this.C=this.K=this.L=this.B=this.ga=this.I=this.ea=this.Fa=this.P=0;this.ma=
null;G(this)}n(Rb,x);k=Rb.prototype;k.Z=function(a,b,c,d){this.u=a;this.s=b;this.v=d;this.ma=a.h;for(a=0;a<Sb.length;a++)(b=this.m[Sb[a]])&&this.u.U(null,Sb[a],b);G(this)};k.reset=function(){};k.save=function(){return null};k.restore=function(){return!1};
k.V=function(a,b){var c=Tb(this.u,"autoStart");null!=c?this.g.J="true"==c?!0:"false"==c?!1:!!c:null==this.g.J&&(this.g.J=void 0===this.m.run);if(!b){if(a){Ub(this);if(!this.restore(a))return!1;Vb(this)}else this.reset();this.status("No debugger detected");this.g.J||this.M("CPU will not be auto-started "+(this.ma?"(click Run to start)":"(type 'go' to start)"))}return!0};k.R=function(a){return a?this.save():!0};k.J=function(){return this.g.A?!0:this.g.J?(tb(this),!0):!1};k.Ra=function(){return 0};
function Vb(a){void 0===a.ra&&(a.ra=0);void 0===a.ha&&(a.ha=-1);void 0===a.ia&&(a.ia=-1);a.g.va=0<=a.ra&&0<a.ha;a.g.va&&(a.qa=0,a.X=a.ra-a.N)}function wb(a,b){if(a.g.va){var c=!1;a.qa=a.qa+a.Ra()|0;a.X-=b;0>=a.X&&(a.X+=a.ha,c=!0);0<=a.ia&&a.ia<=Wb(a)&&(a.ha=a.ia=-1,Vb(a),R(a),c=!0);c&&a.M(Wb(a)+" cycles: checksum="+ma(a.qa))}}
k.U=function(a,b,c){var d=this;switch(b){case "power":case "reset":return this.m[b]=c,!0;case "run":return this.m[b]=c,c.onclick=function(){var a;if(a=d.u)if(a=d.u,a.g.D)a=!0;else{var b=null,c,h=z(a.id);for(c=0;c<h.length&&(b=h[c],b===a||b.g.ready);c++);if(c==h.length)for(c=0;c<h.length&&(b=h[c],b===a||b.g.D);c++);c==h.length&&(b=a);t("The "+b.type+" component ("+b.id+") is not "+(b.g.ready?"powered yet":"ready yet"+(b.wa?" (waiting for notification)":""))+".");a=!1}a&&(d.g.A?R(d):tb(d))},!0;case "speed":return this.m[b]=
c,!0;case "setSpeed":return this.m[b]=c,c.onclick=function(){Xb(d,d.ca<<1,!0)},c.textContent=this.W.toFixed(2)+"Mhz",!0}return!1};function vb(a,b,c){a.N+=b;c&&(a.K=a.L=0)}function Yb(a,b){var c=1;b&&1<a.ca&&a.P&&(c=a.P/a.Ca);a.Da=Math.round(1E3/Zb);a.ja=Math.floor(a.Ea/Zb*c);b||(a.da=a.ja);a.sa=0}function Wb(a){return a.N+a.C+a.K-a.L}function Ub(a){a.P=0;a.Fa=0;a.N=a.C=a.K=a.L=0;Vb(a);Xb(a,1)}
function Xb(a,b,c){if(void 0!==b){.8>a.P/a.W&&(b=1);a.ca=b;b=a.Ca*a.ca;if(a.W!=b){a.W=b;b=a.W.toFixed(2)+"Mhz";var d=a.m.setSpeed;d&&(d.textContent=b);a.M("target speed: "+b)}c&&a.u&&(c=a.u,c.ba&&(d=b=0,window&&(b=window.scrollX,d=window.scrollY),c.ba.focus(),window&&window.scrollTo(b,d)))}vb(a,a.C);a.C=0;a.B=Na();a.I=0;Yb(a)}function $b(a){for(var b=[],c=0;c<a.G.length;c++)b.push(a.G[c][0]);return b}
function ub(a,b){for(var c=a.G.length-1;0<=c;c--){var d=a.G[c];0>d[0]||(d[0]-=b,0>=d[0]&&(d[0]=-1,d[1]()))}}function ac(a,b){var c=a.K-=a.L;a.L=0;b&&(a.K=0);return c}
k.rb=function(){if(this.g.A){this.sa>=this.Ea&&Yb(this,!0);this.ea=0;this.ga=Na();if(this.I){var a=this.ga-this.I;a>this.Da&&(this.B+=a,this.B>this.ga&&(this.B=this.ga))}try{do{for(var b,c=this.g.va?1:this.ja,d=this.G.length-1;0<=d;d--){var e=this.G[d];0>e[0]||c>e[0]&&(c=e[0])}b=c;try{this.za(b)}catch(f){if("number"!=typeof f)throw f;}b=ac(this,!0);this.ea+=b;this.C+=b;wb(this,b);ub(this,b);this.da-=b;if(0>=this.da){this.da+=this.ja;++this.Fa>=bc&&(this.u&&S(this.u,void 0),this.Fa=0);break}}while(this.g.A)}catch(f){R(this);
this.u&&this.u.stop(Na(),Wb(this));a=f.stack||f.message;this.g.error=!0;this.F(a);return}if(this.g.A){a=setTimeout;b=this.Pa;this.I=Na();c=this.Da;this.ea&&(c=Math.round(c*this.ea/this.ja));c-=this.I-this.ga;if(d=this.I-this.B)this.P=Math.round(this.C/(10*d))/100,864E5<=d&&(this.N=0,Xb(this));if(0>c||this.P<this.W)-1E3>c&&(this.B-=c),c=0;this.sa+=this.ea;this.I+=c;a(b,c)}}};
function tb(a){var b;a.g.error?(a.M(a.toString()+" error"),b=!0):b=!1;if(!b)if(a.g.A)a.M(a.toString()+" busy");else{Xb(a);a.g.A=!0;a.g.Ja=!0;if(b=a.m.run)b.textContent="Halt";a.u&&a.u.start(a.B,Wb(a));a.v||a.status("Started");setTimeout(a.Pa,0)}}k.za=function(){return 0};function R(a){var b=!1;if(a.g.A){ac(a);vb(a,a.C);a.C=0;a.g.A=!1;if(b=a.m.run)b.textContent="Run";a.u&&a.u.stop(Na(),Wb(a));b=!0;a.v||a.status("Stopped")}a.g.complete=void 0;return b}var Zb=30,bc=15,Sb=["power","reset"];
function cc(a){var b=+a.model||1001;Rb.call(this,a,1E6);this.Xa=b;this.na=+a.addrReset||0;this.Ya=dc.bind(this);this.a=U.bind(this);this.fa=null;this.Na=[];this.g.complete=!1}n(cc,Rb);k=cc.prototype;k.reset=function(){this.status("Model "+this.Xa);this.g.A&&R(this);this.b=this.w=this.ta=0;this.o=this.Ba=this.na;this.l=-1;this.h=0;this.la=this.o;this.j=0;this.c=this.nb;this.f=this.yb;this.fa=null;Ub(this);this.g.error=!1;Rb.prototype.reset.call(this)};k.Ra=function(){return 0};
k.save=function(){var a=new Q(this);a.set(0,[this.b,this.w,this.ta,this.o,this.l,this.h,this.j,this.Ba,this.la,this.na]);a.set(1,[]);a.set(2,[this.N,this.ca,this.g.J]);a.set(3,ec(this));a.set(4,$b(this));return a.data()};
k.restore=function(a){var b;b=a[0];ea();ba();ea();var c=b[Symbol.iterator];b=c?c.call(b):fa(b);this.b=b.next().value;this.w=b.next().value;this.ta=b.next().value;this.o=b.next().value;this.l=b.next().value;this.h=b.next().value;this.j=b.next().value;this.Ba=b.next().value;this.la=b.next().value;this.na=b.next().value;b=a[2];this.N=b[0];Xb(this,b[1]);this.g.J=b[2];b=a[3];for(c=b.length-1;0<=c;c--){var d;a:{for(d=0;d<this.Na.length;d++){var e=this.Na[d];if(e.vb===b[c]){d=e;break a}}d=null}d&&(d.next=
this.fa,this.fa=d)}a=a[4];for(b=0;b<this.G.length&&b<a.length;b++)this.G[b][0]=a[b];return!0};function fc(a){a.o=(a.o+-1)%Ya}k.abs=function(a){a>O&&(a!=$a?a=ab-a:this.h|=163840);return a};function gc(a,b){b?b==$a?a.h|=163840:b=ab-b:a.h|=98304;return b}function ec(a){var b=[];for(a=a.fa;a;)b.push(a.vb),a=a.next;return b}k.nb=function(a){var b=this.s;a=this.la=a;return b.a[(a&b.h)>>>b.b].c(a&16383,a)};k.yb=function(a,b){var c=this.s;a=this.la=a;c.a[(a&c.h)>>>c.b].f(b,a&16383,a);return b};
k.za=function(a){this.g.complete=!0;var b=a?this.g.Ja?0:1:-1;this.g.Ja=!1;this.K=this.L=a;this.j=this.j&-5|0;do{if(a=this.j)if(a=this.j&11)this.j&2?this.fa||(this.j&=-3):this.j&1&&this.j++,a=!1;if(a){if(this.j&4&&this.v.j(this.o,b)){R(this);break}if(0>b)break}this.j&=15;this.w=this.w&4194304?this.c(this.b):this.ta=this.c(this.Ba=this.o);this.w&=8388607;this.b=this.w&262143;if(a=this.w>>18&15)this.b=this.b+this.c(a)&Xa;this.w&4194304?a=-1:(this.o=(this.o+1)%Ya,a=this.ta/bb|0);0<=a&&this.Ya(a)}while(0<
this.L);return this.g.complete?this.K-this.L:!1===this.g.complete?-1:0};u(function(){for(var a=F(document,E,"cpu"),b=0;b<a.length;b++){var c=a[b],d=C(c),d=new cc(d);D(d,c)}});function dc(a){hc[a>>4].call(this,a,a&15)}function V(a){this.a(a)}function ic(){var a=0,b=this.c(this.b),c=b/cb&63,d=b>>24&63,c=c-d;0>c&&(a++,c=36-d,0>c&&(c=64-d));b=c*cb+(d<<24)+(b&16777215);a&&(b=(b+a)%N);this.f(this.b,b)}
function jc(a,b){a=this.c(this.b);if(0>this.l)this.l=a,this.w=this.b|4194304,fc(this);else{var c=this.l/cb&63,d=this.l>>24&63;a=32>=c+d?(a>>c&(1<<d)-1)>>>0:Math.trunc(a/Math.pow(2,c))%Math.pow(2,d);this.f(b,a);this.l=-1}}function kc(a,b){a=this.c(this.b);if(0>this.l)this.l=a,this.w=this.b|4194304,fc(this);else{var c=this.l/cb&63,d=this.l>>24&63;b=this.c(b)%Math.pow(2,d)*Math.pow(2,c)%N;a=a-a%Math.pow(2,c+d)+b+a%Math.pow(2,c);this.f(this.b,a);this.l=-1}}function lc(a,b){this.f(b,this.c(this.b))}
function mc(a,b){this.f(b,this.b)}function nc(a,b){this.f(this.b,this.c(b))}function oc(a,b){this.f(b,0)}function pc(a,b){this.f(b,M-this.c(b))}function qc(a,b){this.f(b,M)}function rc(a,b){var c=this.c(this.b),d=this.c(b);this.f(b,W(a,d,c)+(c-(c&I)))}function sc(a,b){var c=this.c(b);this.f(b,W(a,c,0))}function tc(a,b){b=this.c(b);var c=this.c(this.b);this.f(this.b,W(a,c,b)+(b-(b&I)))}
function uc(a,b){var c=this.c(this.b),d=c;if(a&=384)switch(d-=d&I,a){case 256:d+=I;break;case 384:d+=c>O?I:0}c=d;this.f(this.b,c);b&&this.f(b,c)}function vc(a,b){var c=(this.c(this.b)&I)*J,d=this.c(b);this.f(b,W(a,d,c)+c)}function wc(a,b){var c=this.b*J,d=this.c(b);this.f(b,W(a,d,c)+c)}function xc(a,b){b=(this.c(b)&I)*J;var c=this.c(this.b);this.f(this.b,W(a,c,b)+b)}function yc(a,b){var c=this.c(this.b),d=(c&I)*J,c=W(a,c,d)+d;this.f(this.b,c);b&&this.f(b,c)}
function zc(a,b){var c=this.c(this.b)&I,d=this.c(b);this.f(b,Ac(a,d,c)+c)}function Bc(a,b){var c=this.c(b);this.f(b,Ac(a,c,this.b)+this.b)}function Cc(a,b){b=this.c(b)&I;var c=this.c(this.b);this.f(this.b,Ac(a,c,b)+b)}function Dc(a,b){var c=this.c(this.b),d=c;if(a&=384)switch(d&=I,a){case 256:d+=I*J;break;case 384:d+=c>Za?I*J:0}c=d;this.f(this.b,c);b&&this.f(b,c)}function Ec(a,b){var c=this.c(this.b)/J|0,d=this.c(b);this.f(b,Ac(a,d,c)+c)}function Fc(a,b){var c=this.c(b);this.f(b,Ac(a,c,0))}
function Gc(a,b){b=this.c(b)/J|0;var c=this.c(this.b);this.f(this.b,Ac(a,c,b)+b)}function Hc(a,b){var c=this.c(this.b),d=c/J|0,c=Ac(a,c,d)+d;this.f(this.b,c);b&&this.f(b,c)}function X(a){Ic[a&7].call(this,a,a>>3&127)}function Jc(){}function U(a){this.M("undefined opcode: "+la(a));fc(this);R(this)}function Ac(a,b,c){switch(a&384){case 0:b-=b&I;break;case 128:b=0;break;case 256:b=I*J;break;case 384:b=c>Za?I*J:0}return b}
function W(a,b,c){switch(a&384){case 0:b&=I;break;case 128:b=0;break;case 256:b=I;break;case 384:b=c>O?I:0}return b}function Y(a,b){return((a/P|0)&(b/P|0))*P+((a&b)>>>0)}function Kc(a,b){return((a/P|0)^(b/P|0))*P+((a^b)>>>0)}function Lc(a,b){return(~((a/P|0)^(b/P|0))&15)*P+(~(a^b)>>>0)}function Z(a,b){return(a/P|0|b/P|0)*P+((a|b)>>>0)}
var hc=[V,V,V,V,V,V,V,V,V,V,V,V,V,V,V,V,V,V,V,V,V,V,V,V,V,V,V,V,V,V,V,V,V,V,V,V,V,V,V,V,V,V,V,V,V,V,V,V,V,V,V,V,V,V,V,V,V,V,V,V,V,V,V,V,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},ic,function(a,b){0>this.l&&ic.call(this);jc.call(this,0,b)},jc,function(a,b){0>this.l&&ic.call(this);kc.call(this,0,b)},kc,function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},
function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},
function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},mc,nc,oc,function(a,b){b&&this.f(b,this.c(this.b))},function(a,b){a=this.c(this.b);a=(a/M|0)+a%M*M;this.f(b,a)},function(a,b){this.f(b,this.b*M)},function(a,b){a=this.c(b);a=(a/M|0)+a%M*M;this.f(this.b,a)},function(a,b){a=this.c(this.b);a=(a/M|0)+a%M*M;this.f(this.b,a);b&&this.f(b,a)},function(a,b){this.f(b,hc(this,this.c(this.b)))},function(a,b){this.f(b,this.b?bb-this.b:0)},function(a,b){this.f(this.b,hc(this,
this.c(b)))},function(a,b){a=hc(this,this.c(this.b));this.f(this.b,a);b&&this.f(b,a)},function(a,b){this.f(b,this.abs(this.c(this.b)))},function(a,b){this.f(b,this.b)},function(a,b){this.f(this.b,this.abs(this.c(b)))},function(a,b){a=this.abs(this.c(this.b));this.f(this.b,a);b&&this.f(b,a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},
function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a,b){var c=(this.b<<14>>14)%256;if(c){a=this.c(b);var d=a>N?-(K-a):a;0<c?(35<=c?(d=0>d?Za:0,c=Ya):(d=d*Math.pow(2,c)%Za,c=Za-Math.pow(2,35-c)),a<=N?a+c>N&&(this.i|=131072):a-c<=N&&(this.i|=131072)):d=-35>=c?0>d?-1:0:Math.trunc(d/Math.pow(2,-c));a=0>d?d+K:d;this.f(b,a)}},function(a,b){if(a=(this.b<<14>>14)%36){var c=this.c(b);0>a&&(a=36+a);c=c*Math.pow(2,
a)%K+Math.trunc(c/Math.pow(2,36-a));this.f(b,c)}},function(a,b){if(a=(this.b<<14>>14)%256){var c=this.c(b),c=0<a?36<=a?0:c*Math.pow(2,a)%K:-36>=a?0:Math.trunc(c/Math.pow(2,-a));this.f(b,c)}},function(a){this.a(a)},function(a){this.a(a)},function(a,b){if(a=(this.b<<14>>14)%72){var c=this.c(b),d=this.c(b+1&15),e=c;0>a&&(a=72+a);36>a?(c=c*Math.pow(2,a)%K+Math.trunc(d/Math.pow(2,36-a)),d=d*Math.pow(2,a)%K+Math.trunc(e/Math.pow(2,36-a))):(c=d*Math.pow(2,a-36)%K+Math.trunc(c/Math.pow(2,72-a)),d=e*Math.pow(2,
a-36)%K+Math.trunc(d/Math.pow(2,72-a)));this.f(b,c);this.f(b+1&15,d)}},function(a,b){if(a=(this.b<<14>>14)%256){var c=this.c(b),d=this.c(b+1&15);0<a?36<=a?(d=0,c=72<=a?0:d*Math.pow(2,a-36)%K):(c=c*Math.pow(2,a)%K+Math.trunc(d/Math.pow(2,36-a)),d=d*Math.pow(2,a)%K):-36>=a?(c=0,d=-72>=a?0:Math.trunc(c/Math.pow(2,-a-36))):(d=Math.trunc(d/Math.pow(2,-a))+c*Math.pow(2,36+a)%K,c=Math.trunc(c/Math.pow(2,-a)));this.f(b,c);this.f(b+1&15,d)}},T,function(a,b){a=this.c(b);this.f(b,this.c(this.b));this.f(this.b,
a)},function(a,b){a=!1;for(var c=this.c(b),d=c/M|0,c=c&L;!a;)this.f(c,this.c(d)),c==this.b&&(a=!0),d=d+1&L,c=c+1&L,this.g.A||(this.f(b,d*M+c),a||gc(this),a=!0)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},T,function(a){this.a(a)},function(a,b){a=this.c(b);a+=262145;this.f(a&L,this.c(this.b));a>=K&&(a-=K);a/M|0||(this.i|=262144);this.f(b,a)},function(a,b){a=this.c(b);var c=this.c(a&L);this.f(this.b,c);this.b==b&&(a=c);a-=262145;
0>a&&(a+=K);(a/M|0)==L&&(this.i|=262144);this.f(b,a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},
function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},lc,mc,nc,function(a,b){b&&this.f(b,this.c(this.b))},function(a,b){a=this.c(this.b);a=(a/J|0)+a%J*J;this.f(b,a)},function(a,b){this.f(b,this.b*J)},function(a,b){a=this.c(b);a=(a/J|0)+a%J*J;this.f(this.b,a)},function(a,b){a=this.c(this.b);a=(a/J|0)+a%J*J;this.f(this.b,a);b&&this.f(b,a)},function(a,b){this.f(b,gc(this,this.c(this.b)))},function(a,b){this.f(b,this.b?ab-this.b:0)},function(a,b){this.f(this.b,gc(this,
this.c(b)))},function(a,b){a=gc(this,this.c(this.b));this.f(this.b,a);b&&this.f(b,a)},function(a,b){this.f(b,this.abs(this.c(this.b)))},function(a,b){this.f(b,this.b)},function(a,b){this.f(this.b,this.abs(this.c(b)))},function(a,b){a=this.abs(this.c(this.b));this.f(this.b,a);b&&this.f(b,a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},
function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a,b){var c=(this.b<<14>>14)%256;if(c){a=this.c(b);var d=a>O?-(N-a):a;0<c?(35<=c?(d=0>d?L:0,c=K):(d=d*Math.pow(2,c)%L,c=L-Math.pow(2,35-c)),a<=O?a+c>O&&(this.h|=131072):a-c<=O&&(this.h|=131072)):d=-35>=c?0>d?-1:0:Math.trunc(d/Math.pow(2,-c));a=0>d?d+N:d;this.f(b,a)}},function(a,b){if(a=(this.b<<14>>14)%36){var c=this.c(b);0>a&&(a=36+a);c=c*Math.pow(2,a)%
N+Math.trunc(c/Math.pow(2,36-a));this.f(b,c)}},function(a,b){if(a=(this.b<<14>>14)%256){var c=this.c(b),c=0<a?36<=a?0:c*Math.pow(2,a)%N:-36>=a?0:Math.trunc(c/Math.pow(2,-a));this.f(b,c)}},function(a){this.a(a)},function(a,b){if(a=(this.b<<14>>14)%256){var c,d=this.c(b),e=this.c(b+1&15);if(0<a){var f=d;if(36<=a){if(0<d&&d<L||d>K&&d<M)this.h|=131072;if(71<=a){if(0<e&&e<L||e>K&&e<M)this.h|=131072;d=0}else d=e*Math.pow(2,a-35)%L,c=L-Math.pow(2,70-a),f<=O?e+c>O&&(this.h|=131072):e-c<=O&&(this.h|=131072);
e=0;f>K&&(d+=L,e+=L)}else d=d*Math.pow(2,a)%L+Math.trunc(e%L/Math.pow(2,35-a)),e=e*Math.pow(2,a)%L,c=L-Math.pow(2,35-a),f<=O?f+c>O&&(this.h|=131072):(f-c<=O&&(this.h|=131072),d+=L,e+=L)}else-36>=a?(e=-72>=a?d>K?M:0:Math.trunc(d%L/Math.pow(2,-a-35)),d<=K?d=0:(d=M,e+=L)):(c=d>K?N-Math.pow(2,36-a):0,e=Math.trunc(e%L/Math.pow(2,-a))+d%L*Math.pow(2,35+a)%L,d=Math.trunc(d/Math.pow(2,-a))+c,d>K&&(e+=L));this.f(b,d);this.f(b+1&15,e)}},function(a,b){if(a=(this.b<<14>>14)%72){var c=this.c(b),d=this.c(b+1&15),
e=c;0>a&&(a=72+a);36>a?(c=c*Math.pow(2,a)%N+Math.trunc(d/Math.pow(2,36-a)),d=d*Math.pow(2,a)%N+Math.trunc(e/Math.pow(2,36-a))):(c=d*Math.pow(2,a-36)%N+Math.trunc(c/Math.pow(2,72-a)),d=e*Math.pow(2,a-36)%N+Math.trunc(d/Math.pow(2,72-a)));this.f(b,c);this.f(b+1&15,d)}},function(a,b){if(a=(this.b<<14>>14)%256){var c=this.c(b),d=this.c(b+1&15);0<a?36<=a?(c=72<=a?0:d*Math.pow(2,a-36)%N,d=0):(c=c*Math.pow(2,a)%N+Math.trunc(d/Math.pow(2,36-a)),d=d*Math.pow(2,a)%N):-36>=a?(d=-72>=a?0:Math.trunc(c/Math.pow(2,
-a-36)),c=0):(d=Math.trunc(d/Math.pow(2,-a))+c*Math.pow(2,36+a)%N,c=Math.trunc(c/Math.pow(2,-a)));this.f(b,c);this.f(b+1&15,d)}},U,function(a,b){a=this.c(b);this.f(b,this.c(this.b));this.f(this.b,a)},function(a,b){a=!1;for(var c=this.c(b),d=c/J|0,c=c&I;!a;)this.f(c,this.c(d)),c==this.b&&(a=!0),d=d+1&I,c=c+1&I,this.g.A||(this.f(b,d*J+c),a||fc(this),a=!0)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},U,function(a){this.a(a)},function(a,
b){a=this.c(b);a+=262145;this.f(a&I,this.c(this.b));a>=N&&(a-=N);a/J|0||(this.h|=262144);this.f(b,a)},function(a,b){a=this.c(b);var c=this.c(a&I);this.f(this.b,c);this.b==b&&(a=c);a-=262145;0>a&&(a+=N);(a/J|0)==I&&(this.h|=262144);this.f(b,a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},
function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},
function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},
function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},pc,pc,function(){this.f(this.b,0)},function(a,b){this.f(this.b,this.f(b,0))},function(a,b){this.f(b,Y(this.c(b),this.c(this.b)))},function(a,b){this.f(b,Y(this.c(b),this.b))},function(a,b){this.f(this.b,
Y(this.c(b),this.c(this.b)))},function(a,b){this.f(this.b,this.f(b,Y(this.c(b),this.c(this.b))))},function(a,b){this.f(b,Y(J-this.c(b),this.c(this.b)))},function(a,b){this.f(b,Y(J-this.c(b),this.b))},function(a,b){this.f(this.b,Y(J-this.c(b),this.c(this.b)))},function(a,b){this.f(this.b,this.f(b,Y(J-this.c(b),this.c(this.b))))},mc,nc,Jc,mc,function(a,b){this.f(b,Y(this.c(b),J-this.c(this.b)))},function(a,b){this.f(b,Y(this.c(b),J-this.b))},function(a,b){this.f(this.b,Y(this.c(b),J-this.c(this.b)))},
function(a,b){this.f(this.b,this.f(b,Y(this.c(b),J-this.c(this.b))))},Jc,Jc,oc,oc,function(a,b){this.f(b,Kc(this.c(b),this.c(this.b)))},function(a,b){this.f(b,Kc(this.c(b),this.b))},function(a,b){this.f(this.b,Kc(this.c(b),this.c(this.b)))},function(a,b){this.f(this.b,this.f(b,Kc(this.c(b),this.c(this.b))))},function(a,b){this.f(b,Z(this.c(b),this.c(this.b)))},function(a,b){this.f(b,Z(this.c(b),this.b))},function(a,b){this.f(this.b,Z(this.c(b),this.c(this.b)))},function(a,b){this.f(this.b,this.f(b,
Z(this.c(b),this.c(this.b))))},function(a,b){this.f(b,Y(J-this.c(b),J-this.c(this.b)))},function(a,b){this.f(b,Y(J-this.c(b),J-this.b))},function(a,b){this.f(this.b,Y(J-this.c(b),J-this.c(this.b)))},function(a,b){this.f(this.b,this.f(b,Y(J-this.c(b),J-this.c(this.b))))},function(a,b){this.f(b,Lc(this.c(b),this.c(this.b)))},function(a,b){this.f(b,Lc(this.c(b),this.b))},function(a,b){this.f(this.b,Lc(this.c(b),this.c(this.b)))},function(a,b){this.f(this.b,this.f(b,Lc(this.c(b),this.c(this.b))))},qc,
qc,function(a,b){this.f(this.b,J-this.c(b))},function(a,b){this.f(this.b,this.f(b,J-this.c(b)))},function(a,b){this.f(b,Z(J-this.c(b),this.c(this.b)))},function(a,b){this.f(b,Z(J-this.c(b),this.b))},function(a,b){this.f(this.b,Z(J-this.c(b),this.c(this.b)))},function(a,b){this.f(this.b,this.f(b,Z(J-this.c(b),this.c(this.b))))},function(a,b){this.f(b,J-this.c(this.b))},function(a,b){this.f(b,J-this.b)},function(){this.f(this.b,J-this.c(this.b))},function(a,b){this.f(this.b,this.f(b,J-this.c(this.b)))},
function(a,b){this.f(b,Z(this.c(b),J-this.c(this.b)))},function(a,b){this.f(b,Z(this.c(b),J-this.b))},function(a,b){this.f(this.b,Z(this.c(b),J-this.c(this.b)))},function(a,b){this.f(this.b,this.f(b,Z(this.c(b),J-this.c(this.b))))},function(a,b){this.f(b,Z(J-this.c(b),J-this.c(this.b)))},function(a,b){this.f(b,Z(J-this.c(b),J-this.b))},function(a,b){this.f(this.b,Z(J-this.c(b),J-this.c(this.b)))},function(a,b){this.f(this.b,this.f(b,Z(J-this.c(b),J-this.c(this.b))))},rc,rc,function(){this.f(this.b,
J)},function(a,b){this.f(this.b,this.f(b,J))},sc,tc,uc,vc,wc,xc,yc,zc,sc,tc,uc,vc,wc,xc,yc,zc,sc,tc,uc,vc,wc,xc,yc,zc,sc,tc,uc,vc,wc,xc,yc,zc,Ac,Bc,Cc,Dc,Ec,Fc,Gc,Hc,Ac,Bc,Cc,Dc,Ec,Fc,Gc,Hc,Ac,Bc,Cc,Dc,Ec,Fc,Gc,Hc,Ac,Bc,Cc,Dc,Ec,Fc,Gc,Hc,function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},
function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},oc,oc,function(){this.f(this.b,
0)},function(a,b){this.f(this.b,this.f(b,0))},function(a,b){this.f(b,Y(this.c(b),this.c(this.b)))},function(a,b){this.f(b,Y(this.c(b),this.b))},function(a,b){this.f(this.b,Y(this.c(b),this.c(this.b)))},function(a,b){this.f(this.b,this.f(b,Y(this.c(b),this.c(this.b))))},function(a,b){this.f(b,Y(M-this.c(b),this.c(this.b)))},function(a,b){this.f(b,Y(M-this.c(b),this.b))},function(a,b){this.f(this.b,Y(M-this.c(b),this.c(this.b)))},function(a,b){this.f(this.b,this.f(b,Y(M-this.c(b),this.c(this.b))))},
lc,mc,Jc,lc,function(a,b){this.f(b,Y(this.c(b),M-this.c(this.b)))},function(a,b){this.f(b,Y(this.c(b),M-this.b))},function(a,b){this.f(this.b,Y(this.c(b),M-this.c(this.b)))},function(a,b){this.f(this.b,this.f(b,Y(this.c(b),M-this.c(this.b))))},Jc,Jc,nc,nc,function(a,b){this.f(b,Kc(this.c(b),this.c(this.b)))},function(a,b){this.f(b,Kc(this.c(b),this.b))},function(a,b){this.f(this.b,Kc(this.c(b),this.c(this.b)))},function(a,b){this.f(this.b,this.f(b,Kc(this.c(b),this.c(this.b))))},function(a,b){this.f(b,
Z(this.c(b),this.c(this.b)))},function(a,b){this.f(b,Z(this.c(b),this.b))},function(a,b){this.f(this.b,Z(this.c(b),this.c(this.b)))},function(a,b){this.f(this.b,this.f(b,Z(this.c(b),this.c(this.b))))},function(a,b){this.f(b,Y(M-this.c(b),M-this.c(this.b)))},function(a,b){this.f(b,Y(M-this.c(b),M-this.b))},function(a,b){this.f(this.b,Y(M-this.c(b),M-this.c(this.b)))},function(a,b){this.f(this.b,this.f(b,Y(M-this.c(b),M-this.c(this.b))))},function(a,b){this.f(b,Lc(this.c(b),this.c(this.b)))},function(a,
b){this.f(b,Lc(this.c(b),this.b))},function(a,b){this.f(this.b,Lc(this.c(b),this.c(this.b)))},function(a,b){this.f(this.b,this.f(b,Lc(this.c(b),this.c(this.b))))},pc,pc,function(a,b){this.f(this.b,M-this.c(b))},function(a,b){this.f(this.b,this.f(b,M-this.c(b)))},function(a,b){this.f(b,Z(M-this.c(b),this.c(this.b)))},function(a,b){this.f(b,Z(M-this.c(b),this.b))},function(a,b){this.f(this.b,Z(M-this.c(b),this.c(this.b)))},function(a,b){this.f(this.b,this.f(b,Z(M-this.c(b),this.c(this.b))))},function(a,
b){this.f(b,M-this.c(this.b))},function(a,b){this.f(b,M-this.b)},function(){this.f(this.b,M-this.c(this.b))},function(a,b){this.f(this.b,this.f(b,M-this.c(this.b)))},function(a,b){this.f(b,Z(this.c(b),M-this.c(this.b)))},function(a,b){this.f(b,Z(this.c(b),M-this.b))},function(a,b){this.f(this.b,Z(this.c(b),M-this.c(this.b)))},function(a,b){this.f(this.b,this.f(b,Z(this.c(b),M-this.c(this.b))))},function(a,b){this.f(b,Z(M-this.c(b),M-this.c(this.b)))},function(a,b){this.f(b,Z(M-this.c(b),M-this.b))},
function(a,b){this.f(this.b,Z(M-this.c(b),M-this.c(this.b)))},function(a,b){this.f(this.b,this.f(b,Z(M-this.c(b),M-this.c(this.b))))},qc,qc,function(){this.f(this.b,M)},function(a,b){this.f(this.b,this.f(b,M))},rc,sc,tc,uc,vc,wc,xc,yc,rc,sc,tc,uc,vc,wc,xc,yc,rc,sc,tc,uc,vc,wc,xc,yc,rc,sc,tc,uc,vc,wc,xc,yc,zc,Bc,Cc,Dc,Ec,Fc,Gc,Hc,zc,Bc,Cc,Dc,Ec,Fc,Gc,Hc,zc,Bc,Cc,Dc,Ec,Fc,Gc,Hc,zc,Bc,Cc,Dc,Ec,Fc,Gc,Hc,function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},
function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},
function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},
function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X],Ic=[function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a,b){switch(b){case 0:a=this.c(this.b);a&8&&(this.i&=-131073);a&131072&&(this.i&=-262145);
break;default:this.a(a)}},function(a,b){switch(b){case 0:a=0;this.i&131072&&(a|=8);this.i&262144&&(a|=65536);this.f(this.b,a);break;default:this.a(a)}},function(a){this.a(a)},function(a){this.a(a)}];
function Mc(a){y.call(this,"ROM",a);this.O=this.a=null;this.l=+a.addr;this.i=+a.size;this.b=a.alias;"string"==typeof this.b&&(this.b=eval(this.b));this.j=a.file;this.o=ma(this.j);if(this.j){a=this.j;var b=na(this.o);"json"!=b&&"hex"!=b&&(a=pa()+"/api/v1/dump?file="+this.j+"&format=bytes&decimal=true");var c=this;t(a,null,!0,function(a,b,f){f?(c.F("Unable to load ROM resource (error "+f+": "+a+")"),c.j=null):(Ka(c.pa,a,b),(a=va(a,b))?(c.a=a.H,c.O=a.O):c.j=null);Nc(c)})}}n(Mc,y);
Mc.prototype.Z=function(a,b,c,d){this.s=b;this.h=c;this.v=d;Nc(this)};Mc.prototype.V=function(){this.O&&(this.v&&this.v.a(this.id,this.l,this.i,this.O),delete this.O);return!0};Mc.prototype.R=function(){return!0};
function Nc(a){if(!Ua(a)){if(a.j){if(!a.a||!a.s)return;a.i||(a.i=a.a.length);if(a.a.length!=a.i){var b="ROM size ("+r(a.a.length,8,!0)+") does not match specified size ("+r(a.i,8,!0)+")";a.g.error=!0;a.F(b)}else{b=a.l;if(Db(a.s,b,a.i,Lb)){var c;for(c=0;c<a.a.length;c++)zb(a.s,b+c,a.a[c]);b=!0}else b=!1;if(b){b=[];"number"==typeof a.b?b.push(a.b):null!=a.b&&a.b.length&&(b=a.b);for(c=0;c<b.length;c++){for(var d=a,e=b[c],f=d.s,g=d.i,h=[],l=d.l>>>f.b;0<g&&l<f.a.length;)h.push(f.a[l++]),g-=16384;f=d.s;
d=d.i;g=0;for(e>>>=f.b;0<d&&e<f.a.length;){l=h[g++];if(!l)break;f.a[e++]=l;d-=16384}}delete a.a}}}H(a)}}w(function(){for(var a=G(document,F,"rom"),b=0;b<a.length;b++){var c=a[b],d=D(c),d=new Mc(d);E(d,c)}});
function Oc(a){y.call(this,"RAM",a);this.O=this.Y=null;this.b=+a.addr;this.i=+a.size;this.T=a.load;this.S=a.exec;null!=this.T&&(this.T=+this.T);null!=this.S&&(this.S=+this.S);this.j=this.o=!1;this.a=a.file;this.l=ma(this.a);if(this.a){a=this.a;var b=na(this.l);"json"!=b&&"hex"!=b&&(a=pa()+"/api/v1/dump?file="+this.a+"&format=bytes&decimal=true");var c=this;t(a,null,!0,function(a,b,f){f?(c.F("Unable to load RAM resource (error "+f+": "+a+")"),c.a=null):(Ka(c.pa,a,b),(a=va(a,b))?(c.Y=a.Y,c.O=a.O,null==
c.T&&(c.T=a.T),null==c.S&&(c.S=a.S)):c.a=null);Pc(c)})}}n(Oc,y);Oc.prototype.Z=function(a,b,c,d){this.s=b;this.h=c;this.v=d;Pc(this)};Oc.prototype.V=function(a,b){this.O&&(this.v&&this.v.a(this.id,this.b,this.i,this.O),delete this.O);b||this.reset();return!0};Oc.prototype.R=function(){return!0};
function Pc(a){if(a.s&&(!a.j&&a.i&&(Db(a.s,a.b,a.i,1)?a.j=!0:a.i=0),!Ua(a))){if(!a.j)u("No RAM allocated");else if(a.a){if(!a.Y)return;Qc(a,a.Y,a.T,a.S,a.b)?a.status('Loaded image "'+a.l+'"'):a.F('Error loading image "'+a.l+'"')}a.o=!0;H(a)}}
Oc.prototype.reset=function(){if(this.j&&!this.o){for(var a=this.s,b=this.b,c=this.i,d=b&16383,b=b>>>a.b;0<c&&b<a.a.length;){var e=a.a[b],f=c,g=0,h,d=d||0,g=g||0;0>g&&g>=-ja&&(g+=ia);g=Math.trunc(Math.abs(g))%Math.pow(2,36);void 0===f&&(f=e.size);for(h=d;f--&&h<e.size;h++)e.m(g,d,e.aa+d);c-=16384;b++;d=0}this.Y&&Qc(this,this.Y,this.T,this.S,this.b,!this.v)}this.o=!1};
function Qc(a,b,c,d,e,f){var g=!1;null==c&&(c=e);if(null!=c){for(g=0;g<b.length;g++)zb(a.s,c+g,b[g]);g=!0}g&&(null==d&&(Q(a.h),f=!1),null!=d&&(a=a.h,a.na=d,a.o=d%Xa,f?a.g.D?a.g.A||ub(a):a.g.J=!0:a.v&&a.g.D?Q(a)||a.u.g.reset||(a.v.i(),R(a.u,-1)):!1===f&&Q(a),!a.g.A&&a.ma&&a.ma.stop()));return g}w(function(){for(var a=G(document,F,"ram"),b=0;b<a.length;b++){var c=a[b],d=D(c),d=new Oc(d);E(d,c)}});
function Rc(a){y.call(this,"SerialPort",a);this.j=a.upperCase;"string"==typeof this.j&&(this.j="true"==this.j);this.i=!0;this.b=[];var b=a.binding;if("console"!=b){var c;a=Sc;b&&(void 0===c&&(c="Panel"),(c=C(c,this.id))&&(b=c.m[b])&&this.U(null,a,b))}this.a=this.l=null;this.exports={connect:this.Sa,receiveData:this.xa,receiveStatus:this.pb,setConnection:this.sb}}n(Rc,y);k=Rc.prototype;
function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X],Ic=[function(a){this.a(a)},
function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a,b){switch(b){case 0:a=this.c(this.b);a&8&&(this.h&=-131073);a&131072&&(this.h&=-262145);break;default:this.a(a)}},function(a,b){switch(b){case 0:a=0;this.h&131072&&(a|=8);this.h&262144&&(a|=65536);this.f(this.b,a);break;default:this.a(a)}},function(a){this.a(a)},function(a){this.a(a)}];
function Mc(a){x.call(this,"ROM",a);this.O=this.a=null;this.l=+a.addr;this.h=+a.size;this.b=a.alias;"string"==typeof this.b&&(this.b=eval(this.b));this.j=a.file;this.o=na(this.j);if(this.j){a=this.j;var b=oa(this.o);"json"!=b&&"hex"!=b&&(a=qa()+"/api/v1/dump?file="+this.j+"&format=bytes&decimal=true");var c=this;r(a,null,!0,function(a,b,f){f?(c.F("Unable to load ROM resource (error "+f+": "+a+")"),c.j=null):(La(c.pa,a,b),(a=wa(a,b))?(c.a=a.H,c.O=a.O):c.j=null);Nc(c)})}}n(Mc,x);
Mc.prototype.Z=function(a,b,c,d){this.s=b;this.i=c;this.v=d;Nc(this)};Mc.prototype.V=function(){this.O&&(this.v&&this.v.a(this.id,this.l,this.h,this.O),delete this.O);return!0};Mc.prototype.R=function(){return!0};
function Nc(a){if(!Va(a)){if(a.j){if(!a.a||!a.s)return;a.h||(a.h=a.a.length);if(a.a.length!=a.h){var b="ROM size ("+ma(a.a.length,8,!0)+") does not match specified size ("+ma(a.h,8,!0)+")";a.g.error=!0;a.F(b)}else{b=a.l;if(Cb(a.s,b,a.h,Kb)){var c;for(c=0;c<a.a.length;c++)yb(a.s,b+c,a.a[c]);b=!0}else b=!1;if(b){b=[];"number"==typeof a.b?b.push(a.b):null!=a.b&&a.b.length&&(b=a.b);for(c=0;c<b.length;c++){for(var d=a,e=b[c],f=d.s,g=d.h,h=[],l=d.l>>>f.b;0<g&&l<f.a.length;)h.push(f.a[l++]),g-=16384;f=d.s;
d=d.h;g=0;for(e>>>=f.b;0<d&&e<f.a.length;){l=h[g++];if(!l)break;f.a[e++]=l;d-=16384}}delete a.a}}}G(a)}}u(function(){for(var a=F(document,E,"rom"),b=0;b<a.length;b++){var c=a[b],d=C(c),d=new Mc(d);D(d,c)}});
function Oc(a){x.call(this,"RAM",a);this.O=this.Y=null;this.b=+a.addr;this.h=+a.size;this.T=a.load;this.S=a.exec;null!=this.T&&(this.T=+this.T);null!=this.S&&(this.S=+this.S);this.j=this.o=!1;this.a=a.file;this.l=na(this.a);if(this.a){a=this.a;var b=oa(this.l);"json"!=b&&"hex"!=b&&(a=qa()+"/api/v1/dump?file="+this.a+"&format=bytes&decimal=true");var c=this;r(a,null,!0,function(a,b,f){f?(c.F("Unable to load RAM resource (error "+f+": "+a+")"),c.a=null):(La(c.pa,a,b),(a=wa(a,b))?(c.Y=a.Y,c.O=a.O,null==
c.T&&(c.T=a.T),null==c.S&&(c.S=a.S)):c.a=null);Pc(c)})}}n(Oc,x);Oc.prototype.Z=function(a,b,c,d){this.s=b;this.i=c;this.v=d;Pc(this)};Oc.prototype.V=function(a,b){this.O&&(this.v&&this.v.a(this.id,this.b,this.h,this.O),delete this.O);b||this.reset();return!0};Oc.prototype.R=function(){return!0};
function Pc(a){if(a.s&&(!a.j&&a.h&&(Cb(a.s,a.b,a.h,1)?a.j=!0:a.h=0),!Va(a))){if(!a.j)t("No RAM allocated");else if(a.a){if(!a.Y)return;Qc(a,a.Y,a.T,a.S,a.b)?a.status('Loaded image "'+a.l+'"'):a.F('Error loading image "'+a.l+'"')}a.o=!0;G(a)}}
Oc.prototype.reset=function(){if(this.j&&!this.o){for(var a=this.s,b=this.b,c=this.h,d=b&16383,b=b>>>a.b;0<c&&b<a.a.length;){var e=a.a[b],f=c,g=0,h,d=d||0,g=g||0;0>g&&g>=-ja&&(g+=ia);g=Math.trunc(Math.abs(g))%Math.pow(2,36);void 0===f&&(f=e.size);for(h=d;f--&&h<e.size;h++)e.h(g,d,e.aa+d);c-=16384;b++;d=0}this.Y&&Qc(this,this.Y,this.T,this.S,this.b,!this.v)}this.o=!1};
function Qc(a,b,c,d,e,f){var g=!1;null==c&&(c=e);if(null!=c){for(g=0;g<b.length;g++)yb(a.s,c+g,b[g]);g=!0}g&&(null==d&&(R(a.i),f=!1),null!=d&&(a=a.i,a.na=d,a.o=d%Ya,f?a.g.D?a.g.A||tb(a):a.g.J=!0:a.v&&a.g.D?R(a)||a.u.g.reset||(a.v.h(),S(a.u,-1)):!1===f&&R(a),!a.g.A&&a.ma&&a.ma.stop()));return g}u(function(){for(var a=F(document,E,"ram"),b=0;b<a.length;b++){var c=a[b],d=C(c),d=new Oc(d);D(d,c)}});
function Rc(a){x.call(this,"SerialPort",a);this.j=a.upperCase;"string"==typeof this.j&&(this.j="true"==this.j);this.h=!0;this.b=[];var b=a.binding;if("console"!=b){var c;a=Sc;b&&(void 0===c&&(c="Panel"),(c=B(c,this.id))&&(b=c.m[b])&&this.U(null,a,b))}this.a=this.l=null;this.exports={connect:this.Sa,receiveData:this.xa,receiveStatus:this.pb,setConnection:this.sb}}n(Rc,x);k=Rc.prototype;
k.U=function(a,b,c){var d=this;switch(b){case Sc:return this.m[b]=c,c.onkeydown=function(a){a=a||window.event;var b=0,c=a.keyCode;8==c?b=a.altKey?q.Ma:q.Wa:46==c?b=q.Ma:a.ctrlKey&&c>=q.La&&c<=q.$a&&(b=c-(q.La-q.Ta));b&&(a.preventDefault&&a.preventDefault(),d.xa(b));return!0},c.onkeypress=function(a){a=a||window.event;if(!a.metaKey){var b=a.which||a.keyCode;a.altKey&&b==q.Va&&(b=q.Ua);d.xa(b);a.preventDefault&&a.preventDefault()}return!0},c.onpaste=function(a){a.stopPropagation&&a.stopPropagation();
a.preventDefault&&a.preventDefault();(a=a.clipboardData||window.clipboardData)&&d.xa(a.getData("Text"))},c.removeAttribute("readonly"),!0}return!1};k.Z=function(a,b,c,d){this.u=a;this.s=b;this.h=c;this.v=d;H(this)};
k.Sa=function(a){if(!this.a){var b=Ub(this.u,"connection");if(b){var c=b.split("->");if(2==c.length){var d=ta(c[0]);if(d!=this.oa)return;c=ta(c[1]);if(this.a=Oa(c)){var e=this.a.exports;if(e){var f=e.connect;f&&f.call(this.a,this.i);if(this.l=e.receiveData){this.i=a;this.status("Connected "+this.pa+"."+d+" to "+c);return}}}}this.status("Unable to establish connection: "+b)}}};k.V=function(a,b){if(!b)if(this.Sa(this.i),!a)this.reset();else if(!this.restore(a))return!1;return!0};
k.R=function(a){return a?this.save():!0};k.reset=function(){};k.save=function(){var a=new P(this);a.set(0,[]);return a.data()};k.restore=function(){return!0};k.xa=function(a){if("number"==typeof a)this.b.push(a);else if("string"==typeof a)for(var b=0,c,d=0;d<a.length;d++){c=b;b=a.charCodeAt(d);if(10==b){if(13==c)continue;b=13}this.b.push(b)}else this.b=this.b.concat(a);return!0};k.pb=function(){};k.sb=function(a,b){return this.a?!1:(this.a=a,this.l=b,!0)};var Sc="buffer";
w(function(){for(var a=G(document,F,"serial"),b=0;b<a.length;b++){var c=a[b],d=D(c),d=new Rc(d);E(d,c)}});
function Tc(a,b,c){y.call(this,"Computer",a);this.g.D=!1;this.L=null;Uc(this,b);this.I=Ub(this,"autoPower",a,6);this.j=0;this.W=+a.busWidth||+a.buswidth;this.C=this.o=this.G=null;this.B=this.P=!1;this.w=this.l=null;this.N=this.K=!1;this.X=Ub(this,"url")||"";(Math.random()+.1).toString(36);this.b=Vc(this);if(this.h=C("CPU",this.id)){this.v=C("Debugger",this.id);this.s=new Ab({id:this.pa+".bus",busWidth:this.W},this.h,this.v);var d,e=B(this.id);if((this.i=C("Panel",this.id))&&this.i.ba)for(b=0;b<e.length;b++)d=
e[b],d.F=this.i.F,d.M=this.i.M,d.ba=this.i.ba;this.M(I+" v1.34.2\nCopyright \u00a9 2012-2017 Jeff Parsons <Jeff@pcjs.org>\nLicense: GPL version 3 or later <http://gnu.org/licenses/gpl.html>");for(b=0;b<e.length;b++)d=e[b],d.Z&&d.Z(this,this.s,this.h,this.v);b=null;d=Ub(this,"resume",a);void 0!==d&&(1<d.length?b=this.o=d:this.a=parseInt(d,10));var f;if(a=Ub(this,"state")||(f=!0,a.state))this.G=b=a,f||(this.B=!0,this.a=Wc),this.a&&(this.w=new P(this,"1.34.2"),Xc(this.w)?b=null:delete this.w);!b&&this.a&&
(b=Yc(this))&&(this.B=!0);if(b){var g=this;t(b,null,!0,function(a,b,c){c?(g.o=null,g.B=!1,g.F("Unable to load machine state from server (error "+c+(b?": "+ta(b):"")+")")):(g.C=b,g.P=!0);H(g)})}else H(this);this.m.power||(this.I=!0);!c&&this.I&&Zc(this,this.ka)}else u("Unable to find CPU component")}n(Tc,y);function Uc(a,b){if(!b){var c;if("object"==typeof resources&&(c=resources.parms))try{b=eval("("+c+")")}catch(d){u(d.message+" ("+c+")")}}a.L=b}
function Ub(a,b,c,d){var e=b.toLowerCase(),e=Ba(b)||Ba(e);void 0===e&&a.L&&(e=a.L[b]);void 0===e&&c&&(e=c[b]);void 0===e&&"object"==typeof resources&&resources[b]&&(e=b);void 0===e&&(e=void 0);if("string"==typeof e&&d)switch(d){case 4:e=+e;isNaN(e)&&(e=0);break;case 6:e="true"==e}return e}function Zc(a,b,c){for(var d=B(a.id),e=0;e<=d.length;e++){var f=e<d.length?d[e]:a;if(!Ua(f)){Ua(f,function(){Zc(a,b,c)});return}}b.call(a,c)}
function $c(a,b){var c=new P(a,"1.34.2",ad);if(Xc(c)&&bd(c)){var d=c.get(cd),e=b?b.get(cd):"unknown";d!=e&&(a.F("Machine state may be out-of-date\n("+d+" vs. "+e+")\nCheck your browser's local storage limits"),b||c.clear())}}k=Tc.prototype;
k.ka=function(a){void 0===a&&(a=this.a||(this.C?dd:Wc));if(!this.j){this.j++;var b=!1,c=!1;this.K=!1;var d=this.w||new P(this,"1.34.2");if(a==ed)b=!0;else if(a>Wc){if(Xc(d,this.C)){this.l=new P(this,"1.34.2",fd);Xc(this.l)&&(gd(this,d),a=hd,id(this.l));this.l.set(cd,ua());jd(this.l);var e=this.a&&!this.B;if(a==dd||Na("Click OK to restore the previous "+I+" machine state, or CANCEL to reset the machine.")){if(c=bd(d)){var f=d.get("code"),g=d.get("data");f&&("ok"==f?Xc(d,g):("error"==f&&"no machine state"!=
g?(this.F("Error: "+g),"unable to verify user"==g&&(za(kd,""),this.b=null)):this.M(f+": "+g),id(d),Xc(d)?(c=bd(d),e=!0):c=!1))}e&&$c(this,c?d:null)}else a==hd&&d.clear()}else $c(this);delete this.C;delete this.w}e=B(this.id);for(f=0;f<e.length;f++)g=e[f],g!==this&&g!=this.h&&(c=ld(this,g,d,b,c));b=[d,a,c];a!=ed?Zc(this,this.Qa,b):this.Qa(b)}};
function ld(a,b,c,d,e){if(!b.g.D){b.g.D=!0;var f=null;try{if(e&&((f=c.get(b.id))||(f=c.get(b.id.replace(/[a-z0-9]\./i,".")))),"string"===typeof f&&(f=null),!b.V(f,d)&&f&&(u("Unable to restore state for "+b.type),a.G&&!a.P?(c.clear(),a.a=Wc,window&&window.location.reload()):a.K=!0,b.V(null),e=!1),!d&&b.Oa){var g=b.Oa.split("|");for(a=0;a<g.length;a++)b.status(g[a])}}catch(h){u("Error restoring state for "+b.type+" ("+h.message+")")}}return e}
k.Qa=function(a){var b=a[0],c=0>a[1];a=a[2];this.N=!0;this.g.D=!0;var d=this.m.power;d&&(d.textContent="Shutdown");this.h&&(ld(this,this.h,b,c,a),R(this,-2),this.h.J());this.K&&(gd(this,b),b.clear());!c&&this.l&&(this.l.clear(),delete this.l);this.j=0};
function gd(a,b){if(Na("There may be a problem with your "+I+" machine.\n\nTo help us diagnose it, click OK to send this "+I+" machine state to http://www.pcjs.org.")){var c=a.X;a=a.b||"";b=b.toString();var d={};d.app=I;d.ver="1.34.2";d.url=c;d.user=a;d.type="bug";d.data=b;t("http://www.pcjs.org/api/v1/report",d,!0)}}
function md(a,b,c){var d,e="none";if(a.j)return null;a.j--;var f=new P(a,"1.34.2"),g=new P(a,"1.34.2",ad),h=ua();g.set(cd,h);f.set(cd,h);f.set(nd,"1.34.2");f.set(od,window?window.location.href:null);f.set(pd,window?window.navigator.userAgent:"");a.h&&a.h.R&&(c&&(b&&(a.h.g.J=a.h.g.A),Q(a.h)),d=a.h.R(b,c),"object"===typeof d&&f.set(a.h.id,d),c&&(a.h.g.D=!1,!1===d&&(e=null)));for(var h=B(a.id),l=0;l<h.length;l++){var p=h[l];p.g.D&&(p.R&&(d=p.R(b,c),"object"===typeof d&&f.set(p.id,d)),c&&(p.g.D=!1,!1===
d&&(e=null)))}e&&(c?(h=d=!1,b?(a.b&&qd(a,a.b,f.toString()),jd(g)&&jd(f)||(e=null,d=h=!0)):a.a&&(d=!0,h=a.a==rd),d&&f.clear(h)):e=f.toString());c&&(a.g.D=!1,b=a.m.power)&&(b.textContent="Power");a.j=0;return e}k.reset=function(){this.g.reset=!0;this.s&&this.s.reset&&this.s.reset();this.h&&this.h.reset&&this.h.reset();for(var a=B(this.id),b=0;b<a.length;b++){var c=a[b];c!==this&&c!==this.s&&c!==this.h&&c.reset&&c.reset()}this.g.reset=!1;R(this,-1)};
k.start=function(a,b){for(var c=B(this.id),d=0;d<c.length;d++){var e=c[d];"CPU"!=e.type&&e!==this&&e.start&&e.start(a,b)}R(this,-1)};k.stop=function(a,b){for(var c=B(this.id),d=0;d<c.length;d++){var e=c[d];"CPU"!=e.type&&e!==this&&e.stop&&e.stop(a,b)}R(this,-1)};
function R(a,b){if(a.h){var c=a.h,d=b||0,e=c.m.speed;e&&(0>=d||30<=(c.Aa+=d))&&(e.textContent=c.g.A?c.P.toFixed(2)+"Mhz":"Stopped",c.Aa=0)}if(a.i&&(a=a.i,b=b||0,a.C)){c=a.h.g.A;d=!!(a.h.j&8);if(0>=b||60<=(a.B+=b)){e=a.h.o;if(a.m.PC){var f=a.v&&a.v.l||8,e=e||0,e=8==f?la(e,void 0):r(e,void 0);a.m.PC.textContent!=e&&(a.m.PC.textContent=e)}a.B=0}-1>b?a.b=a.h.o:0<b&&c&&!d&&(a.b=a.h.la);mb(a,a.b);gb(a,a.j)}}
k.U=function(a,b,c){var d=this;switch(b){case "power":return this.m[b]=c,c.onclick=function(){d.j||(d.g.D?md(d,!1,!0):Zc(d,d.ka))},!0;case "reset":return this.m[b]=c,c.onclick=function(){if(d.g.D&&!d.j)if(d.a&&!d.o){var a=Na("Click OK to save changes to this "+I+" machine.\n\nWARNING: If you CANCEL, all disk changes will be discarded.");md(d,a,!0);!a&&d.G?window&&window.location.reload():d.ka(Wc)}else d.reset(),d.h&&!d.v&&d.h.J()},!0;case "save":if(oa())c.parentNode.removeChild(c);else return this.m[b]=
c,c.onclick=function(){var a=Vc(d,!0);if(a){var b=!!(d.a&&!d.o||d.G),c=md(d,b);b?qd(d,a,c):d.F("Resume disabled, machine state not saved")}},!0}return!1};function Vc(a,b){var c=a.b;c||((c=ya(kd),void 0!==c)?!c&&b&&(b=null,window&&(b=window.prompt("Saving machine states on the pcjs.org server is currently unsupported.\n\nIf you're running your own server, enter your user ID below.","")),c=b)&&((c=sd(a,c))||a.F("The user ID is invalid.")):b&&a.F("Browser local storage is not available"));return c}
function sd(a,b){a.b=null;b=t(pa()+"/api/v1/user?req=verify&user="+b);var c=b[1];if(!b[0]&&c)try{b=eval("("+c+")"),b.code&&"ok"==b.code&&(za(kd,b.data),a.b=b.data)}catch(d){u(d.message+" ("+c+")")}return a.b}function Yc(a){var b=null;a.b&&(b=pa()+"/api/v1/user?req=load&user="+a.b+"&state="+td(a,"1.34.2"));return b}
function qd(a,b,c){if(c){var d={req:"store"};d.user=b;d.state=td(a,"1.34.2");d.data=c;b=t(pa()+"/api/v1/user",d);d=b[0];if(b[1]){if(d){var e=d.indexOf("\n");0<e&&(d=d.substr(0,e));d.indexOf("Error: ")||(d=d.substr(7))}d='{"code":'+b[1]+',"data":"'+d+'"}'}b=JSON.parse(d);b&&"ok"==b.code?a.F("Machine state saved to server"):c&&(c=b&&b.data||"unable to save machine state",c="error"==b.code?"Error: "+c:"Error "+b.code+": "+c,a.F(c),za(kd,""),a.b=null)}}
var fd="failsafe",ad="validate",cd="timestamp",nd="version",od="url",pd="browser",kd="user",ed=-1,Wc=0,dd=1,hd=2,rd=3;w(function(){for(var a=G(document,F+"-machine"),b=0;b<a.length;b++)for(var c=a[b],d=D(c),c=G(c,F,"computer"),e=0;e<c.length;e++){var f=c[e],g=D(f),g=new Tc(g,d,!0);E(g,f);g.I&&Zc(g,g.ka)}});x.show.push(function(){for(var a=G(document,F,"computer"),b=0;b<a.length;b++){var c=D(a[b]);(c=C("Computer",c.id))&&c.N&&!c.g.D&&c.ka(ed)}});
x.exit.push(function(){for(var a=G(document,F,"computer"),b=0;b<a.length;b++){var c=D(a[b]);(c=C("Computer",c.id))&&c.g.D&&md(c,!(!c.a||c.o),!0)}});function P(a,b,c){this.id=a.id;this.b="";this.a={};this.h=this.m=!1;this.key=td(a,b,c);id(this,a.Za)}k=P.prototype;k.set=function(a,b){try{this.a[a]=b}catch(c){}};k.get=function(a){return this.a[a]||null};k.data=function(){return this.a};function Xc(a,b){return b?(a.b=b,a.h=!0,a.m=!1,!0):a.h?!0:wa()&&(b=ya(a.key))?(a.b=b,a.h=!0):!1}
function bd(a){var b=!0;if(!a.m)try{a.a=JSON.parse(a.b),a.m=!0}catch(c){u(c.message||c),b=!1}return b}function jd(a){var b=!0;if(wa()){var c=JSON.stringify(a.a);za(a.key,c)||(u("Unable to store "+c.length+" bytes in browser local storage"),b=!1)}return b}k.toString=function(){return this.a?JSON.stringify(this.a):this.b};function id(a,b){a.b="";a.a={};a.h=a.m=!1;b&&a.set("parms",b)}
a.preventDefault&&a.preventDefault();(a=a.clipboardData||window.clipboardData)&&d.xa(a.getData("Text"))},c.removeAttribute("readonly"),!0}return!1};k.Z=function(a,b,c,d){this.u=a;this.s=b;this.i=c;this.v=d;G(this)};
k.Sa=function(a){if(!this.a){var b=Tb(this.u,"connection");if(b){var c=b.split("->");if(2==c.length){var d=ua(c[0]);if(d!=this.oa)return;c=ua(c[1]);if(this.a=Pa(c)){var e=this.a.exports;if(e){var f=e.connect;f&&f.call(this.a,this.h);if(this.l=e.receiveData){this.h=a;this.status("Connected "+this.pa+"."+d+" to "+c);return}}}}this.status("Unable to establish connection: "+b)}}};k.V=function(a,b){if(!b)if(this.Sa(this.h),!a)this.reset();else if(!this.restore(a))return!1;return!0};
k.R=function(a){return a?this.save():!0};k.reset=function(){};k.save=function(){var a=new Q(this);a.set(0,[]);return a.data()};k.restore=function(){return!0};k.xa=function(a){if("number"==typeof a)this.b.push(a);else if("string"==typeof a)for(var b=0,c,d=0;d<a.length;d++){c=b;b=a.charCodeAt(d);if(10==b){if(13==c)continue;b=13}this.b.push(b)}else this.b=this.b.concat(a);return!0};k.pb=function(){};k.sb=function(a,b){return this.a?!1:(this.a=a,this.l=b,!0)};var Sc="buffer";
u(function(){for(var a=F(document,E,"serial"),b=0;b<a.length;b++){var c=a[b],d=C(c),d=new Rc(d);D(d,c)}});
function Tc(a,b,c){x.call(this,"Computer",a);this.g.D=!1;this.L=null;Uc(this,b);this.I=Tb(this,"autoPower",a,6);this.j=0;this.W=+a.busWidth||+a.buswidth;this.C=this.o=this.G=null;this.B=this.P=!1;this.w=this.l=null;this.N=this.K=!1;this.X=Tb(this,"url")||"";(Math.random()+.1).toString(36);this.b=Vc(this);if(this.i=B("CPU",this.id)){this.v=B("Debugger",this.id);this.s=new zb({id:this.pa+".bus",busWidth:this.W},this.i,this.v);var d,e=z(this.id);if((this.h=B("Panel",this.id))&&this.h.ba)for(b=0;b<e.length;b++)d=
e[b],d.F=this.h.F,d.M=this.h.M,d.ba=this.h.ba;this.M(H+" v1.34.2\nCopyright \u00a9 2012-2017 Jeff Parsons <Jeff@pcjs.org>\nLicense: GPL version 3 or later <http://gnu.org/licenses/gpl.html>");for(b=0;b<e.length;b++)d=e[b],d.Z&&d.Z(this,this.s,this.i,this.v);b=null;d=Tb(this,"resume",a);void 0!==d&&(1<d.length?b=this.o=d:this.a=parseInt(d,10));var f;if(a=Tb(this,"state")||(f=!0,a.state))this.G=b=a,f||(this.B=!0,this.a=Wc),this.a&&(this.w=new Q(this,"1.34.2"),Xc(this.w)?b=null:delete this.w);!b&&this.a&&
(b=Yc(this))&&(this.B=!0);if(b){var g=this;r(b,null,!0,function(a,b,c){c?(g.o=null,g.B=!1,g.F("Unable to load machine state from server (error "+c+(b?": "+ua(b):"")+")")):(g.C=b,g.P=!0);G(g)})}else G(this);this.m.power||(this.I=!0);!c&&this.I&&Zc(this,this.ka)}else t("Unable to find CPU component")}n(Tc,x);function Uc(a,b){if(!b){var c;if("object"==typeof resources&&(c=resources.parms))try{b=eval("("+c+")")}catch(d){t(d.message+" ("+c+")")}}a.L=b}
function Tb(a,b,c,d){var e=b.toLowerCase(),e=Ca(b)||Ca(e);void 0===e&&a.L&&(e=a.L[b]);void 0===e&&c&&(e=c[b]);void 0===e&&"object"==typeof resources&&resources[b]&&(e=b);void 0===e&&(e=void 0);if("string"==typeof e&&d)switch(d){case 4:e=+e;isNaN(e)&&(e=0);break;case 6:e="true"==e}return e}function Zc(a,b,c){for(var d=z(a.id),e=0;e<=d.length;e++){var f=e<d.length?d[e]:a;if(!Va(f)){Va(f,function(){Zc(a,b,c)});return}}b.call(a,c)}
function $c(a,b){var c=new Q(a,"1.34.2",ad);if(Xc(c)&&bd(c)){var d=c.get(cd),e=b?b.get(cd):"unknown";d!=e&&(a.F("Machine state may be out-of-date\n("+d+" vs. "+e+")\nCheck your browser's local storage limits"),b||c.clear())}}k=Tc.prototype;
k.ka=function(a){void 0===a&&(a=this.a||(this.C?dd:Wc));if(!this.j){this.j++;var b=!1,c=!1;this.K=!1;var d=this.w||new Q(this,"1.34.2");if(a==ed)b=!0;else if(a>Wc){if(Xc(d,this.C)){this.l=new Q(this,"1.34.2",fd);Xc(this.l)&&(gd(this,d),a=hd,id(this.l));this.l.set(cd,va());jd(this.l);var e=this.a&&!this.B;if(a==dd||Oa("Click OK to restore the previous "+H+" machine state, or CANCEL to reset the machine.")){if(c=bd(d)){var f=d.get("code"),g=d.get("data");f&&("ok"==f?Xc(d,g):("error"==f&&"no machine state"!=
g?(this.F("Error: "+g),"unable to verify user"==g&&(Aa(kd,""),this.b=null)):this.M(f+": "+g),id(d),Xc(d)?(c=bd(d),e=!0):c=!1))}e&&$c(this,c?d:null)}else a==hd&&d.clear()}else $c(this);delete this.C;delete this.w}e=z(this.id);for(f=0;f<e.length;f++)g=e[f],g!==this&&g!=this.i&&(c=ld(this,g,d,b,c));b=[d,a,c];a!=ed?Zc(this,this.Qa,b):this.Qa(b)}};
function ld(a,b,c,d,e){if(!b.g.D){b.g.D=!0;var f=null;try{if(e&&((f=c.get(b.id))||(f=c.get(b.id.replace(/[a-z0-9]\./i,".")))),"string"===typeof f&&(f=null),!b.V(f,d)&&f&&(t("Unable to restore state for "+b.type),a.G&&!a.P?(c.clear(),a.a=Wc,window&&window.location.reload()):a.K=!0,b.V(null),e=!1),!d&&b.Oa){var g=b.Oa.split("|");for(a=0;a<g.length;a++)b.status(g[a])}}catch(h){t("Error restoring state for "+b.type+" ("+h.message+")")}}return e}
k.Qa=function(a){var b=a[0],c=0>a[1];a=a[2];this.N=!0;this.g.D=!0;var d=this.m.power;d&&(d.textContent="Shutdown");this.i&&(ld(this,this.i,b,c,a),S(this,-2),this.i.J());this.K&&(gd(this,b),b.clear());!c&&this.l&&(this.l.clear(),delete this.l);this.j=0};
function gd(a,b){if(Oa("There may be a problem with your "+H+" machine.\n\nTo help us diagnose it, click OK to send this "+H+" machine state to http://www.pcjs.org.")){var c=a.X;a=a.b||"";b=b.toString();var d={};d.app=H;d.ver="1.34.2";d.url=c;d.user=a;d.type="bug";d.data=b;r("http://www.pcjs.org/api/v1/report",d,!0)}}
function md(a,b,c){var d,e="none";if(a.j)return null;a.j--;var f=new Q(a,"1.34.2"),g=new Q(a,"1.34.2",ad),h=va();g.set(cd,h);f.set(cd,h);f.set(nd,"1.34.2");f.set(od,window?window.location.href:null);f.set(pd,window?window.navigator.userAgent:"");a.i&&a.i.R&&(c&&(b&&(a.i.g.J=a.i.g.A),R(a.i)),d=a.i.R(b,c),"object"===typeof d&&f.set(a.i.id,d),c&&(a.i.g.D=!1,!1===d&&(e=null)));for(var h=z(a.id),l=0;l<h.length;l++){var p=h[l];p.g.D&&(p.R&&(d=p.R(b,c),"object"===typeof d&&f.set(p.id,d)),c&&(p.g.D=!1,!1===
d&&(e=null)))}e&&(c?(h=d=!1,b?(a.b&&qd(a,a.b,f.toString()),jd(g)&&jd(f)||(e=null,d=h=!0)):a.a&&(d=!0,h=a.a==rd),d&&f.clear(h)):e=f.toString());c&&(a.g.D=!1,b=a.m.power)&&(b.textContent="Power");a.j=0;return e}k.reset=function(){this.g.reset=!0;this.s&&this.s.reset&&this.s.reset();this.i&&this.i.reset&&this.i.reset();for(var a=z(this.id),b=0;b<a.length;b++){var c=a[b];c!==this&&c!==this.s&&c!==this.i&&c.reset&&c.reset()}this.g.reset=!1;S(this,-1)};
k.start=function(a,b){for(var c=z(this.id),d=0;d<c.length;d++){var e=c[d];"CPU"!=e.type&&e!==this&&e.start&&e.start(a,b)}S(this,-1)};k.stop=function(a,b){for(var c=z(this.id),d=0;d<c.length;d++){var e=c[d];"CPU"!=e.type&&e!==this&&e.stop&&e.stop(a,b)}S(this,-1)};
function S(a,b){if(a.i){var c=a.i,d=b||0,e=c.m.speed;e&&(0>=d||30<=(c.Aa+=d))&&(e.textContent=c.g.A?c.P.toFixed(2)+"Mhz":"Stopped",c.Aa=0)}if(a.h&&(a=a.h,b=b||0,a.C)){c=a.i.g.A;d=!!(a.i.j&8);if(0>=b||60<=(a.B+=b)){e=a.i.o;if(a.m.PC){var f=a.v&&a.v.l||8,e=e||0,e=8==f?la(e,void 0):ma(e,void 0);a.m.PC.textContent!=e&&(a.m.PC.textContent=e)}a.B=0}-1>b?a.b=a.i.o:0<b&&c&&!d&&(a.b=a.i.la);lb(a,a.b);fb(a,a.j)}}
k.U=function(a,b,c){var d=this;switch(b){case "power":return this.m[b]=c,c.onclick=function(){d.j||(d.g.D?md(d,!1,!0):Zc(d,d.ka))},!0;case "reset":return this.m[b]=c,c.onclick=function(){if(d.g.D&&!d.j)if(d.a&&!d.o){var a=Oa("Click OK to save changes to this "+H+" machine.\n\nWARNING: If you CANCEL, all disk changes will be discarded.");md(d,a,!0);!a&&d.G?window&&window.location.reload():d.ka(Wc)}else d.reset(),d.i&&!d.v&&d.i.J()},!0;case "save":if(pa())c.parentNode.removeChild(c);else return this.m[b]=
c,c.onclick=function(){var a=Vc(d,!0);if(a){var b=!!(d.a&&!d.o||d.G),c=md(d,b);b?qd(d,a,c):d.F("Resume disabled, machine state not saved")}},!0}return!1};function Vc(a,b){var c=a.b;c||((c=za(kd),void 0!==c)?!c&&b&&(b=null,window&&(b=window.prompt("Saving machine states on the pcjs.org server is currently unsupported.\n\nIf you're running your own server, enter your user ID below.","")),c=b)&&((c=sd(a,c))||a.F("The user ID is invalid.")):b&&a.F("Browser local storage is not available"));return c}
function sd(a,b){a.b=null;b=r(qa()+"/api/v1/user?req=verify&user="+b);var c=b[1];if(!b[0]&&c)try{b=eval("("+c+")"),b.code&&"ok"==b.code&&(Aa(kd,b.data),a.b=b.data)}catch(d){t(d.message+" ("+c+")")}return a.b}function Yc(a){var b=null;a.b&&(b=qa()+"/api/v1/user?req=load&user="+a.b+"&state="+td(a,"1.34.2"));return b}
function qd(a,b,c){if(c){var d={req:"store"};d.user=b;d.state=td(a,"1.34.2");d.data=c;b=r(qa()+"/api/v1/user",d);d=b[0];if(b[1]){if(d){var e=d.indexOf("\n");0<e&&(d=d.substr(0,e));d.indexOf("Error: ")||(d=d.substr(7))}d='{"code":'+b[1]+',"data":"'+d+'"}'}b=JSON.parse(d);b&&"ok"==b.code?a.F("Machine state saved to server"):c&&(c=b&&b.data||"unable to save machine state",c="error"==b.code?"Error: "+c:"Error "+b.code+": "+c,a.F(c),Aa(kd,""),a.b=null)}}
var fd="failsafe",ad="validate",cd="timestamp",nd="version",od="url",pd="browser",kd="user",ed=-1,Wc=0,dd=1,hd=2,rd=3;u(function(){for(var a=F(document,E+"-machine"),b=0;b<a.length;b++)for(var c=a[b],d=C(c),c=F(c,E,"computer"),e=0;e<c.length;e++){var f=c[e],g=C(f),g=new Tc(g,d,!0);D(g,f);g.I&&Zc(g,g.ka)}});w.show.push(function(){for(var a=F(document,E,"computer"),b=0;b<a.length;b++){var c=C(a[b]);(c=B("Computer",c.id))&&c.N&&!c.g.D&&c.ka(ed)}});
w.exit.push(function(){for(var a=F(document,E,"computer"),b=0;b<a.length;b++){var c=C(a[b]);(c=B("Computer",c.id))&&c.g.D&&md(c,!(!c.a||c.o),!0)}});function Q(a,b,c){this.id=a.id;this.b="";this.a={};this.i=this.h=!1;this.key=td(a,b,c);id(this,a.Za)}k=Q.prototype;k.set=function(a,b){try{this.a[a]=b}catch(c){}};k.get=function(a){return this.a[a]||null};k.data=function(){return this.a};function Xc(a,b){return b?(a.b=b,a.i=!0,a.h=!1,!0):a.i?!0:xa()&&(b=za(a.key))?(a.b=b,a.i=!0):!1}
function bd(a){var b=!0;if(!a.h)try{a.a=JSON.parse(a.b),a.h=!0}catch(c){t(c.message||c),b=!1}return b}function jd(a){var b=!0;if(xa()){var c=JSON.stringify(a.a);Aa(a.key,c)||(t("Unable to store "+c.length+" bytes in browser local storage"),b=!1)}return b}k.toString=function(){return this.a?JSON.stringify(this.a):this.b};function id(a,b){a.b="";a.a={};a.i=a.h=!1;b&&a.set("parms",b)}
k.clear=function(a){id(this);var b=[];try{for(var c=0,d=window.localStorage.length;c<d;c++)b.push(window.localStorage.key(c))}catch(e){}for(c=0;c<b.length;c++)if((d=b[c])&&(a||d.substr(0,this.key.length)==this.key)){try{window.localStorage.removeItem(d)}catch(e){}b.splice(c,1);c=0}};function td(a,b,c){a=a.id;if(b){var d=b.indexOf(".");0<d&&(a+=".v"+b.substr(0,d))}c&&(a+="."+c);return a}var ud=0;
function vd(a,b,c,d,e,f,g){f("Loading "+a+"...");t(a,null,!0,function(h,l,p){p?(l||(l="unable to load "+a+" ("+p+")"),g(l,null)):wd(l,a,b,c,d,e,f,g)})}
function wd(a,b,c,d,e,f,g,h){function l(a,g){if(g)h(g,null);else{c&&(Ka(c,b,a),(g=b)&&0>g.indexOf("/")&&"/"==window.location.pathname.slice(-1)&&(g=window.location.pathname+g),e?"}"==e.slice(-1)?(e=e.slice(0,-1),1<e.length&&(e+=",")):e='{state:"'+e+'",':e="{",e+='url:"'+g+'"}',"object"==typeof resources&&(g=null),a=a.replace(/(<machine[^>]*\sid=)(['"]).*?\2/,"$1$2"+c+"$2"+(e?" parms='"+e+"'":"")+(g?' url="'+g+'"':"")));f||(a=a.replace(/(<xsl:variable name="APPNAME">).*?(<\/xsl:variable>)/,"$1PDPjs$2"),
a=a.replace(/(<xsl:variable name="APPCLASS">).*?(<\/xsl:variable>)/,"$1"+d+"$2"));g=null;if("<"==a.charAt(0))try{f||(a=a.replace(/<!DOCTYPE(.|[\r\n])*]>\s*/g,"")),window.ActiveXObject||"ActiveXObject"in window?(g=new window.ActiveXObject("Microsoft.XMLDOM"),g.async=!1,g.loadXML(a)):g=(new window.DOMParser).parseFromString(a,"text/xml")}catch(z){g=null,a=z.message}else a="unrecognized XML: "+(255<a.length?a.substr(0,255)+"...":a);h(a,g)}}a?f?xd(a,g,l):l(a,null):h("no data"+(b?" for file: "+b:""),null)}
function xd(a,b,c){var d;if(d=/<([a-z]+)\s+ref="(.*?)"(.*?)\/>/g.exec(a)){var e=d[2];b("Loading "+e+"...");t(e,null,!0,function(f,g,h){if(h||!g)c(a,"unable to resolve XML reference: "+d[0]+" ("+h+")");else{if(f=d[3])if(h=g.match(new RegExp("<"+d[1]+"[^>]*>"))){for(var l=h[0],p,v=/( [a-z]+=)(['"])(.*?)\2/g;p=v.exec(f);)l=0>l.indexOf(p[1])?l.replace(">",p[0]+">"):l.replace(new RegExp(p[1]+"(['\"])(.*?)\\1"),p[0]);h[0]!=l&&(g=g.replace(h[0],l))}else{c(a,"missing <"+d[1]+"> in "+e);return}g=g.replace(/<\?xml[^>]*>[\r\n]*/,
function vd(a,b,c,d,e,f,g){f("Loading "+a+"...");r(a,null,!0,function(h,l,p){p?(l||(l="unable to load "+a+" ("+p+")"),g(l,null)):wd(l,a,b,c,d,e,f,g)})}
function wd(a,b,c,d,e,f,g,h){function l(a,g){if(g)h(g,null);else{c&&(La(c,b,a),(g=b)&&0>g.indexOf("/")&&"/"==window.location.pathname.slice(-1)&&(g=window.location.pathname+g),e?"}"==e.slice(-1)?(e=e.slice(0,-1),1<e.length&&(e+=",")):e='{state:"'+e+'",':e="{",e+='url:"'+g+'"}',"object"==typeof resources&&(g=null),a=a.replace(/(<machine[^>]*\sid=)(['"]).*?\2/,"$1$2"+c+"$2"+(e?" parms='"+e+"'":"")+(g?' url="'+g+'"':"")));f||(a=a.replace(/(<xsl:variable name="APPNAME">).*?(<\/xsl:variable>)/,"$1PDPjs$2"),
a=a.replace(/(<xsl:variable name="APPCLASS">).*?(<\/xsl:variable>)/,"$1"+d+"$2"));g=null;if("<"==a.charAt(0))try{f||(a=a.replace(/<!DOCTYPE(.|[\r\n])*]>\s*/g,"")),window.ActiveXObject||"ActiveXObject"in window?(g=new window.ActiveXObject("Microsoft.XMLDOM"),g.async=!1,g.loadXML(a)):g=(new window.DOMParser).parseFromString(a,"text/xml")}catch(A){g=null,a=A.message}else a="unrecognized XML: "+(255<a.length?a.substr(0,255)+"...":a);h(a,g)}}a?f?xd(a,g,l):l(a,null):h("no data"+(b?" for file: "+b:""),null)}
function xd(a,b,c){var d;if(d=/<([a-z]+)\s+ref="(.*?)"(.*?)\/>/g.exec(a)){var e=d[2];b("Loading "+e+"...");r(e,null,!0,function(f,g,h){if(h||!g)c(a,"unable to resolve XML reference: "+d[0]+" ("+h+")");else{if(f=d[3])if(h=g.match(new RegExp("<"+d[1]+"[^>]*>"))){for(var l=h[0],p,v=/( [a-z]+=)(['"])(.*?)\2/g;p=v.exec(f);)l=0>l.indexOf(p[1])?l.replace(">",p[0]+">"):l.replace(new RegExp(p[1]+"(['\"])(.*?)\\1"),p[0]);h[0]!=l&&(g=g.replace(h[0],l))}else{c(a,"missing <"+d[1]+"> in "+e);return}g=g.replace(/<\?xml[^>]*>[\r\n]*/,
"");a=a.replace(d[0],g);xd(a,b,c)}})}else c(a,null)}
function yd(a,b,c,d,e){function f(a){if(void 0===l){var b=h&&G(h,"machine-warning");l=b&&b[0]||h}l&&(l.innerHTML=qa(a))}function g(a){f("Error: "+a);p&&(--ud||Ga(!0));p=!1}var h,l,p=!0;ud++;La[b]={};try{if(h=document.getElementById(b)){var v;if("object"==typeof resources&&(v=resources.css)){var z=document.head||document.getElementsByTagName("head")[0],ra=document.createElement("style");ra.type="text/css";ra.styleSheet?ra.styleSheet.cssText=v:ra.appendChild(document.createTextNode(v));z.appendChild(ra)}d||
(v=a,"pdp"==a.substr(0,3)&&(v="pdpjs"),d="/versions/"+v+"/1.34.2/components.xsl");v=function(e,l){l?vd(d,null,a,null,!1,f,function(a,e){e?(Ka(b,d,a),f("Processing "+c+"..."),window.ActiveXObject||"ActiveXObject"in window?(e=l.transformNode(e))?(h.outerHTML=e,--ud||Ga(!0)):g("transformNodeToObject failed"):document.implementation&&document.implementation.createDocument?(a=new XSLTProcessor,a.importStylesheet(e),(e=a.transformToFragment(l,document))?h.parentNode?(h.parentNode.replaceChild(e,h),--ud||
Ga(!0)):g("invalid machine element: "+b):g("transformToFragment failed")):g("unable to transform XML: unsupported browser")):g(a)}):g(e)};"<"!=c.charAt(0)?vd(c,b,a,e,!0,f,v):wd(c,null,b,a,e,!1,f,v)}else g("missing machine element: "+b)}catch(zd){g(zd.message)}return p}window.embedPDP10=function(a,b,c,d){Ga(!1);return yd("pdp10",a,b,c,d)};window.embedPDP11=function(a,b,c,d){Ga(!1);return yd("pdp11",a,b,c,d)};window.findMachineComponent=function(a,b){return C(b,a+".machine")};
window.processMachineScript=function(a,b){var c=!1;a+=".machine";if("string"==typeof b&&!Qa[a]){for(var c=!0,d=Qa,e=a,f=b.length,g=[],h=[],l="",p=null,v=0;v<f;v++){var z=b[v];if('"'==z||"'"==z)p&&z!=p?l+=z:(p?p=null:p=z,l&&(h.push(l),l=""));else{if(!p){if("\r"==z||"\n"==z)z=";";if(" "==z||"\t"==z||";"==z){l&&(h.push(l),l="");";"==z&&h.length&&(g.push(h),h=[]);continue}}l+=z}}l&&h.push(l);h.length&&g.push(h);d[e]=g;Pa(a)||(c=!1)}return c};window.enableEvents=Ga;window.sendEvent=Ia;})();//# sourceMappingURL=/tmp/pdpjs/1.34.2/pdp10.map
function yd(a,b,c,d,e){function f(a){if(void 0===l){var b=h&&F(h,"machine-warning");l=b&&b[0]||h}l&&(l.innerHTML=ra(a))}function g(a){f("Error: "+a);p&&(--ud||Ha(!0));p=!1}var h,l,p=!0;ud++;Ma[b]={};try{if(h=document.getElementById(b)){var v;if("object"==typeof resources&&(v=resources.css)){var A=document.head||document.getElementsByTagName("head")[0],ta=document.createElement("style");ta.type="text/css";ta.styleSheet?ta.styleSheet.cssText=v:ta.appendChild(document.createTextNode(v));A.appendChild(ta)}d||
(v=a,"pdp"==a.substr(0,3)&&(v="pdpjs"),d="/versions/"+v+"/1.34.2/components.xsl");v=function(e,l){l?vd(d,null,a,null,!1,f,function(a,e){e?(La(b,d,a),f("Processing "+c+"..."),window.ActiveXObject||"ActiveXObject"in window?(e=l.transformNode(e))?(h.outerHTML=e,--ud||Ha(!0)):g("transformNodeToObject failed"):document.implementation&&document.implementation.createDocument?(a=new XSLTProcessor,a.importStylesheet(e),(e=a.transformToFragment(l,document))?h.parentNode?(h.parentNode.replaceChild(e,h),--ud||
Ha(!0)):g("invalid machine element: "+b):g("transformToFragment failed")):g("unable to transform XML: unsupported browser")):g(a)}):g(e)};"<"!=c.charAt(0)?vd(c,b,a,e,!0,f,v):wd(c,null,b,a,e,!1,f,v)}else g("missing machine element: "+b)}catch(zd){g(zd.message)}return p}window.embedPDP10=function(a,b,c,d){Ha(!1);return yd("pdp10",a,b,c,d)};window.embedPDP11=function(a,b,c,d){Ha(!1);return yd("pdp11",a,b,c,d)};window.findMachineComponent=function(a,b){return B(b,a+".machine")};
window.processMachineScript=function(a,b){var c=!1;a+=".machine";if("string"==typeof b&&!Ra[a]){for(var c=!0,d=Ra,e=a,f=b.length,g=[],h=[],l="",p=null,v=0;v<f;v++){var A=b[v];if('"'==A||"'"==A)p&&A!=p?l+=A:(p?p=null:p=A,l&&(h.push(l),l=""));else{if(!p){if("\r"==A||"\n"==A)A=";";if(" "==A||"\t"==A||";"==A){l&&(h.push(l),l="");";"==A&&h.length&&(g.push(h),h=[]);continue}}l+=A}}l&&h.push(l);h.length&&g.push(h);d[e]=g;Qa(a)||(c=!1)}return c};window.enableEvents=Ha;window.sendEvent=Ja;})();//# sourceMappingURL=/tmp/pdpjs/1.34.2/pdp10.map