032_逻辑运算符

1. 逻辑运算符有三种: NOT(!)、AND(&&)和OR(||)。

2. ToBoolean 操作

2.1. 抽象操作ToBoolean将其参数按照下表中的规则转换为逻辑值:

3. 逻辑NOT运算符

3.1. 在JavaScript中, 逻辑NOT运算符都由感叹号(!)表示。

3.2. 在JavaScript中, 逻辑NOT运算符返回的一定是Boolean值。

3.3. 逻辑NOT运算符的行为如下:

  • 如果运算数是undefined, 返回true
  • 如果运算数是null, 返回true。
  • 如果运算数是true, 返回false。
  • 如果运算数是false, 返回true。
  • 如果运算数是0, 返回true。
  • 如果运算数是NaN, 返回true。
  • 如果运算数是0和NaN之外的数字字面量, 返回false。
  • 如果运算数是''(空字符串), 返回true。
  • 如果运算数是非空字符串字面量, 返回false。
  • 如果运算数是对象(布尔对象、数字对象、字符串对象、数组和对象), 返回false。

3.4. 判断JavaScript变量的Boolean值时, 可以使用逻辑NOT运算符。需要在一行代码中使用两个NOT运算符。无论运算数是什么类型, 第一个NOT运算符返回Boolean值。第二个NOT将对该Boolean值求反, 从而给出变量真正的Boolean值。

3.5. 例子

3.5.1. 代码

<!DOCTYPE html>
<html lang="zh-CN">
	<head>
		<meta charset="utf-8" />
		<title>逻辑NOT运算符</title>
	</head>
	<body>
		<script type="text/javascript">
			var ua = undefined;
			var la = null;
			var ba = true, bb = false, bc = new Boolean(true), bd = new Boolean(false);
			var na = 0, nb = 1, nc = -10, nd = NaN, ne = Infinity, nf = -Infinity, ng = new Number(), nh = new Number(1000);
			var sa = '', sb = '1abc', sc = new String(), sd = new String('8');
			var aa = [], ab = ['高性能JavaScript'], ac = new Array();
			var oa = {}, ob = {id: 1001, name: 'zhangsan'}, oc = new Object();

			document.write('ua = ' + ua + ', !ua = ' + !ua + '<br />');
			document.write(ua + '的Boolean值是: ' + !!ua + '<hr />');
			
			document.write('la = ' + la + ', !la = ' + !la + '<br />');
			document.write(la + '的Boolean值是: ' + !!la + '<hr />');

			document.write('布尔字面量: <br />');
			document.write('ba = ' + ba + ', !ba = ' + !ba + ', bb = ' + bb + ', !bb = ' + !bb + '<br />');
			document.write(ba + '的Boolean值是: ' + !!ba + ', ' + bb + '的Boolean值是: ' + !!bb + '<hr />');
			
			document.write('布尔对象: <br />');
			document.write('bc = ' + bc + ', !bc = ' + !bc + ', bd = ' + bd + ', !bd = ' + !bd + '<br />');
			document.write(bc + '的Boolean值是: ' + !!bc + ', ' + bd + '的Boolean值是: ' + !!bd + '<hr />');

			document.write('数字字面量: <br />');
			document.write('na = ' + na + ', !na = ' + !na + ', nb = ' + nb + ', !nb = ' + !nb + ', nc = ' + nc + ', !nc = ' + !nc + '<br />');
			document.write(na + '的Boolean值是: ' + !!na + ', ' + nb + '的Boolean值是: ' + !!nb  + ', '+ nc + '的Boolean值是: ' + !!nc + '<br /><br />');
			document.write('nd = ' + nd + ', !nd = ' + !nd + ', ne = ' + ne + ', !ne = ' + !ne + ', nf = ' + nf + ', !nf = ' + !nf + '<br />');
			document.write(nd + '的Boolean值是: ' + !!nd + ', ' + ne + '的Boolean值是: ' + !!ne + ', ' + nf + '的Boolean值是: ' + !!nf + '<hr />');
	
			document.write('数字对象: <br />');
			document.write('ng = ' + ng + ', !ng = ' + !ng + ', nh = ' + nh + ', !nh = ' + !nh + '<br />');
			document.write(ng + '的Boolean值是: ' + !!ng + ', ' + nh + '的Boolean值是: ' + !!nh + '<hr />');

			document.write('字符串字面量: <br />');
			document.write('sa = ' + sa + ', !sa = ' + !sa + ', sb = ' + sb + ', !sb = ' + !sb + '<br />');
			document.write(sa + '的Boolean值是: ' + !!sa + ', ' + sb + '的Boolean值是: ' + !!sb + '<hr />');

			document.write('字符串对象: <br />');
			document.write('sc = ' + sc + ', !sc = ' + !sc + ', sd = ' + sd + ', !sd = ' + !sd + '<br />');
			document.write(sc + '的Boolean值是: ' + !!sc + ', ' + sd + '的Boolean值是: ' + !!sd + '<hr />');

			document.write('数组对象: <br />');
			document.write('aa = ' + aa + ', !aa = ' + !aa + ', ab = ' + ab + ', !ab = ' + !ab + ', ac = ' + ac + ', !ac = ' + !ac + '<br />');
			document.write(aa + '的Boolean值是: ' + !!aa + ', ' + ab + '的Boolean值是: ' + !!ab + ', ' + ac + '的Boolean值是: ' + !!ac + '<hr />');

			document.write('对象: <br />');
			document.write('oa = ' + oa + ', !oa = ' + !oa + ', ob = ' + ob + ', !ob = ' + !ob + ', oc = ' + oc + ', !oc = ' + !oc + '<br />');
			document.write(oa + '的Boolean值是: ' + !!oa + ', ' + ob + '的Boolean值是: ' + !!ob + ', ' + oc + '的Boolean值是: ' + !!oc + '<br /><br />');
		</script>
	</body>
</html>

3.5.2. 效果图

4. 逻辑AND运算符

4.1. 在JavaScript中, 逻辑AND运算符用双和号(&&)表示。

4.2. 下面的真值表描述了逻辑AND运算符的行为:

4.3. JavaScript中的逻辑AND运算是简便运算, 即如果第一个运算数决定了结果, 就不再计算第二个运算数。对于逻辑AND运算来说, 如果第一个运算数是false, 那么无论第二个运算数的值是什么, 结果都不可能等于true。

4.4. 如果某个运算数不是原始的Boolean型值, 逻辑AND运算并不一定返回Boolean值:

  • 如果第一个值是true、非0或NaN数字字面量、非空字符串字面量、对象(布尔对象、数字对象、字符串对象、数组和对象), 返回第二个值。
  • 如果第一个值是undefined、null、false、空字符串字面量、0、NaN, 返回第一个值。

4.5. 例子

4.5.1. 代码

<!DOCTYPE html>
<html lang="zh-CN">
	<head>
		<meta charset="utf-8" />
		<title>逻辑AND运算符</title>

		<style type="text/css">
			.span1 {
				position: absolute;
				left: 440px;
			}
			.span2 {
				position: absolute;
				left: 1400px;
			}
		</style>
	</head>
	<body>
		<script type="text/javascript">
			var ua = undefined;
			var la = null;
			var ba = true, bb = false, bc = new Boolean(true), bd = new Boolean(false);
			var na = 0, nb = 1, nc = -10, nd = NaN, ne = Infinity, nf = -Infinity, ng = new Number(), nh = new Number(1000);
			var sa = '', sb = '1abc', sc = new String(), sd = new String('8');
			var aa = [], ab = ['高性能JavaScript'], ac = new Array();
			var oa = {}, ob = {id: 1001, name: 'zhangsan'}, oc = new Object();

			document.write('<span>' + ua + ' && ' + ua + ' = ' + (ua && ua) + '</span><span class="span1">' + la + ' && ' + ua + ' = ' + (la && ua) + '</span><br />');
			document.write('<span>' + ua + ' && ' + la + ' = ' + (ua && la) + '</span><span class="span1">' + la + ' && ' + la + ' = ' + (la && la) + '</span><br />');
			document.write('<span>' + ua + ' && ' + ba + ' = ' + (ua && ba) + '</span><span class="span1">' + la + ' && ' + ba + ' = ' + (la && ba) + '</span><br />');
			document.write('<span>' + ua + ' && ' + bb + ' = ' + (ua && bb) + '</span><span class="span1">' + la + ' && ' + bb + ' = ' + (la && bb) + '</span><br />');
			document.write('<span>' + ua + ' && ' + bc + ' = ' + (ua && bc) + '</span><span class="span1">' + la + ' && ' + bc + ' = ' + (la && bc) + '</span><br />');
			document.write('<span>' + ua + ' && ' + bd + ' = ' + (ua && bd) + '</span><span class="span1">' + la + ' && ' + bd + ' = ' + (la && bd) + '</span><br />');
			document.write('<span>' + ua + ' && ' + na + ' = ' + (ua && na) + '</span><span class="span1">' + la + ' && ' + na + ' = ' + (la && na) + '</span><br />');
			document.write('<span>' + ua + ' && ' + nb + ' = ' + (ua && nb) + '</span><span class="span1">' + la + ' && ' + nb + ' = ' + (la && nb) + '</span><br />');
			document.write('<span>' + ua + ' && ' + nc + ' = ' + (ua && nc) + '</span><span class="span1">' + la + ' && ' + nc + ' = ' + (la && nc) + '</span><br />');
			document.write('<span>' + ua + ' && ' + nd + ' = ' + (ua && nd) + '</span><span class="span1">' + la + ' && ' + nd + ' = ' + (la && nd) + '</span><br />');
			document.write('<span>' + ua + ' && ' + ne + ' = ' + (ua && ne) + '</span><span class="span1">' + la + ' && ' + ne + ' = ' + (la && ne) + '</span><br />');
			document.write('<span>' + ua + ' && ' + nf + ' = ' + (ua && nf) + '</span><span class="span1">' + la + ' && ' + nf + ' = ' + (la && nf) + '</span><br />');
			document.write('<span>' + ua + ' && ' + ng + ' = ' + (ua && ng) + '</span><span class="span1">' + la + ' && ' + ng + ' = ' + (la && ng) + '</span><br />');
			document.write('<span>' + ua + ' && ' + nh + ' = ' + (ua && nh) + '</span><span class="span1">' + la + ' && ' + nh + ' = ' + (la && nh) + '</span><br />');
			document.write('<span>' + ua + ' && ' + sa + ' = ' + (ua && sa) + '</span><span class="span1">' + la + ' && ' + sa + ' = ' + (la && sa) + '</span><br />');
			document.write('<span>' + ua + ' && ' + sb + ' = ' + (ua && sb) + '</span><span class="span1">' + la + ' && ' + sb + ' = ' + (la && sb) + '</span><br />');
			document.write('<span>' + ua + ' && ' + sc + ' = ' + (ua && sc) + '</span><span class="span1">' + la + ' && ' + sc + ' = ' + (la && sc) + '</span><br />');
			document.write('<span>' + ua + ' && ' + sd + ' = ' + (ua && sd) + '</span><span class="span1">' + la + ' && ' + sd + ' = ' + (la && sd) + '</span><br />');
			document.write('<span>' + ua + ' && ' + aa + ' = ' + (ua && aa) + '</span><span class="span1">' + la + ' && ' + aa + ' = ' + (la && aa) + '</span><br />');
			document.write('<span>' + ua + ' && ' + ab + ' = ' + (ua && ab) + '</span><span class="span1">' + la + ' && ' + ab + ' = ' + (la && ab) + '</span><br />');
			document.write('<span>' + ua + ' && ' + ac + ' = ' + (ua && ac) + '</span><span class="span1">' + la + ' && ' + ac + ' = ' + (la && ac) + '</span><br />');
			document.write('<span>' + ua + ' && ' + oa + ' = ' + (ua && oa) + '</span><span class="span1">' + la + ' && ' + oa + ' = ' + (la && oa) + '</span><br />');
			document.write('<span>' + ua + ' && ' + ob + ' = ' + (ua && ob) + '</span><span class="span1">' + la + ' && ' + ob + ' = ' + (la && ob) + '</span><br />');
			document.write('<span>' + ua + ' && ' + oc + ' = ' + (ua && oc) + '</span><span class="span1">' + la + ' && ' + oc + ' = ' + (la && oc) + '</span><hr />');

			document.write('<div style="float: left;"')
			document.write('<span>' + ba + ' && ' + ua + ' = ' + (ba && ua) + '</span><span class="span1">' + bb + ' && ' + ua + ' = ' + (bb && ua) + '</span><br />');
			document.write('<span>' + ba + ' && ' + la + ' = ' + (ba && la) + '</span><span class="span1">' + bb + ' && ' + la + ' = ' + (bb && la) + '</span><br />');
			document.write('<span>' + ba + ' && ' + ba + ' = ' + (ba && ba) + '</span><span class="span1">' + bb + ' && ' + ba + ' = ' + (bb && ba) + '</span><br />');
			document.write('<span>' + ba + ' && ' + bb + ' = ' + (ba && bb) + '</span><span class="span1">' + bb + ' && ' + bb + ' = ' + (bb && bb) + '</span><br />');
			document.write('<span>' + ba + ' && ' + bc + ' = ' + (ba && bc) + '</span><span class="span1">' + bb + ' && ' + bc + ' = ' + (bb && bc) + '</span><br />');
			document.write('<span>' + ba + ' && ' + bd + ' = ' + (ba && bd) + '</span><span class="span1">' + bb + ' && ' + bd + ' = ' + (bb && bd) + '</span><br />');
			document.write('<span>' + ba + ' && ' + na + ' = ' + (ba && na) + '</span><span class="span1">' + bb + ' && ' + na + ' = ' + (bb && na) + '</span><br />');
			document.write('<span>' + ba + ' && ' + nb + ' = ' + (ba && nb) + '</span><span class="span1">' + bb + ' && ' + nb + ' = ' + (bb && nb) + '</span><br />');
			document.write('<span>' + ba + ' && ' + nc + ' = ' + (ba && nc) + '</span><span class="span1">' + bb + ' && ' + nc + ' = ' + (bb && nc) + '</span><br />');
			document.write('<span>' + ba + ' && ' + nd + ' = ' + (ba && nd) + '</span><span class="span1">' + bb + ' && ' + nd + ' = ' + (bb && nd) + '</span><br />');
			document.write('<span>' + ba + ' && ' + ne + ' = ' + (ba && ne) + '</span><span class="span1">' + bb + ' && ' + ne + ' = ' + (bb && ne) + '</span><br />');
			document.write('<span>' + ba + ' && ' + nf + ' = ' + (ba && nf) + '</span><span class="span1">' + bb + ' && ' + nf + ' = ' + (bb && nf) + '</span><br />');
			document.write('<span>' + ba + ' && ' + ng + ' = ' + (ba && ng) + '</span><span class="span1">' + bb + ' && ' + ng + ' = ' + (bb && ng) + '</span><br />');
			document.write('<span>' + ba + ' && ' + nh + ' = ' + (ba && nh) + '</span><span class="span1">' + bb + ' && ' + nh + ' = ' + (bb && nh) + '</span><br />');
			document.write('<span>' + ba + ' && ' + sa + ' = ' + (ba && sa) + '</span><span class="span1">' + bb + ' && ' + sa + ' = ' + (bb && sa) + '</span><br />');
			document.write('<span>' + ba + ' && ' + sb + ' = ' + (ba && sb) + '</span><span class="span1">' + bb + ' && ' + sb + ' = ' + (bb && sb) + '</span><br />');
			document.write('<span>' + ba + ' && ' + sc + ' = ' + (ba && sc) + '</span><span class="span1">' + bb + ' && ' + sc + ' = ' + (bb && sc) + '</span><br />');
			document.write('<span>' + ba + ' && ' + sd + ' = ' + (ba && sd) + '</span><span class="span1">' + bb + ' && ' + sd + ' = ' + (bb && sd) + '</span><br />');
			document.write('<span>' + ba + ' && ' + aa + ' = ' + (ba && aa) + '</span><span class="span1">' + bb + ' && ' + aa + ' = ' + (bb && aa) + '</span><br />');
			document.write('<span>' + ba + ' && ' + ab + ' = ' + (ba && ab) + '</span><span class="span1">' + bb + ' && ' + ab + ' = ' + (bb && ab) + '</span><br />');
			document.write('<span>' + ba + ' && ' + ac + ' = ' + (ba && ac) + '</span><span class="span1">' + bb + ' && ' + ac + ' = ' + (bb && ac) + '</span><br />');
			document.write('<span>' + ba + ' && ' + oa + ' = ' + (ba && oa) + '</span><span class="span1">' + bb + ' && ' + oa + ' = ' + (bb && oa) + '</span><br />');
			document.write('<span>' + ba + ' && ' + ob + ' = ' + (ba && ob) + '</span><span class="span1">' + bb + ' && ' + ob + ' = ' + (bb && ob) + '</span><br />');
			document.write('<span>' + ba + ' && ' + oc + ' = ' + (ba && oc) + '</span><span class="span1">' + bb + ' && ' + oc + ' = ' + (bb && oc) + '</span></div>');

			document.write('<div style="float: left; margin-left: 560px;"')
			document.write('<span>' + bc + ' && ' + ua + ' = ' + (bc && ua) + '</span><span class="span2">' + bd + ' && ' + ua + ' = ' + (bd && ua) + '</span><br />');
			document.write('<span>' + bc + ' && ' + la + ' = ' + (bc && la) + '</span><span class="span2">' + bd + ' && ' + la + ' = ' + (bd && la) + '</span><br />');
			document.write('<span>' + bc + ' && ' + ba + ' = ' + (bc && ba) + '</span><span class="span2">' + bd + ' && ' + ba + ' = ' + (bd && ba) + '</span><br />');
			document.write('<span>' + bc + ' && ' + bb + ' = ' + (bc && bb) + '</span><span class="span2">' + bd + ' && ' + bb + ' = ' + (bd && bb) + '</span><br />');
			document.write('<span>' + bc + ' && ' + bc + ' = ' + (bc && bc) + '</span><span class="span2">' + bd + ' && ' + bc + ' = ' + (bd && bc) + '</span><br />');
			document.write('<span>' + bc + ' && ' + bd + ' = ' + (bc && bd) + '</span><span class="span2">' + bd + ' && ' + bd + ' = ' + (bd && bd) + '</span><br />');
			document.write('<span>' + bc + ' && ' + na + ' = ' + (bc && na) + '</span><span class="span2">' + bd + ' && ' + na + ' = ' + (bd && na) + '</span><br />');
			document.write('<span>' + bc + ' && ' + nb + ' = ' + (bc && nb) + '</span><span class="span2">' + bd + ' && ' + nb + ' = ' + (bd && nb) + '</span><br />');
			document.write('<span>' + bc + ' && ' + nc + ' = ' + (bc && nc) + '</span><span class="span2">' + bd + ' && ' + nc + ' = ' + (bd && nc) + '</span><br />');
			document.write('<span>' + bc + ' && ' + nd + ' = ' + (bc && nd) + '</span><span class="span2">' + bd + ' && ' + nd + ' = ' + (bd && nd) + '</span><br />');
			document.write('<span>' + bc + ' && ' + ne + ' = ' + (bc && ne) + '</span><span class="span2">' + bd + ' && ' + ne + ' = ' + (bd && ne) + '</span><br />');
			document.write('<span>' + bc + ' && ' + nf + ' = ' + (bc && nf) + '</span><span class="span2">' + bd + ' && ' + nf + ' = ' + (bd && nf) + '</span><br />');
			document.write('<span>' + bc + ' && ' + ng + ' = ' + (bc && ng) + '</span><span class="span2">' + bd + ' && ' + ng + ' = ' + (bd && ng) + '</span><br />');
			document.write('<span>' + bc + ' && ' + nh + ' = ' + (bc && nh) + '</span><span class="span2">' + bd + ' && ' + nh + ' = ' + (bd && nh) + '</span><br />');
			document.write('<span>' + bc + ' && ' + sa + ' = ' + (bc && sa) + '</span><span class="span2">' + bd + ' && ' + sa + ' = ' + (bd && sa) + '</span><br />');
			document.write('<span>' + bc + ' && ' + sb + ' = ' + (bc && sb) + '</span><span class="span2">' + bd + ' && ' + sb + ' = ' + (bd && sb) + '</span><br />');
			document.write('<span>' + bc + ' && ' + sc + ' = ' + (bc && sc) + '</span><span class="span2">' + bd + ' && ' + sc + ' = ' + (bd && sc) + '</span><br />');
			document.write('<span>' + bc + ' && ' + sd + ' = ' + (bc && sd) + '</span><span class="span2">' + bd + ' && ' + sd + ' = ' + (bd && sd) + '</span><br />');
			document.write('<span>' + bc + ' && ' + aa + ' = ' + (bc && aa) + '</span><span class="span2">' + bd + ' && ' + aa + ' = ' + (bd && aa) + '</span><br />');
			document.write('<span>' + bc + ' && ' + ab + ' = ' + (bc && ab) + '</span><span class="span2">' + bd + ' && ' + ab + ' = ' + (bd && ab) + '</span><br />');
			document.write('<span>' + bc + ' && ' + ac + ' = ' + (bc && ac) + '</span><span class="span2">' + bd + ' && ' + ac + ' = ' + (bd && ac) + '</span><br />');
			document.write('<span>' + bc + ' && ' + oa + ' = ' + (bc && oa) + '</span><span class="span2">' + bd + ' && ' + oa + ' = ' + (bd && oa) + '</span><br />');
			document.write('<span>' + bc + ' && ' + ob + ' = ' + (bc && ob) + '</span><span class="span2">' + bd + ' && ' + ob + ' = ' + (bd && ob) + '</span><br />');
			document.write('<span>' + bc + ' && ' + oc + ' = ' + (bc && oc) + '</span><span class="span2">' + bd + ' && ' + oc + ' = ' + (bd && oc) + '</span></div>');
			document.write('<hr style="clear: left;" />');

			document.write('<div style="float: left;"')
			document.write('<span>' + na + ' && ' + ua + ' = ' + (na && ua) + '</span><span class="span1">' + nb + ' && ' + ua + ' = ' + (nb && ua) + '</span><br />');
			document.write('<span>' + na + ' && ' + la + ' = ' + (na && la) + '</span><span class="span1">' + nb + ' && ' + la + ' = ' + (nb && la) + '</span><br />');
			document.write('<span>' + na + ' && ' + ba + ' = ' + (na && ba) + '</span><span class="span1">' + nb + ' && ' + ba + ' = ' + (nb && ba) + '</span><br />');
			document.write('<span>' + na + ' && ' + bb + ' = ' + (na && bb) + '</span><span class="span1">' + nb + ' && ' + bb + ' = ' + (nb && bb) + '</span><br />');
			document.write('<span>' + na + ' && ' + bc + ' = ' + (na && bc) + '</span><span class="span1">' + nb + ' && ' + bc + ' = ' + (nb && bc) + '</span><br />');
			document.write('<span>' + na + ' && ' + bd + ' = ' + (na && bd) + '</span><span class="span1">' + nb + ' && ' + bd + ' = ' + (nb && bd) + '</span><br />');
			document.write('<span>' + na + ' && ' + na + ' = ' + (na && na) + '</span><span class="span1">' + nb + ' && ' + na + ' = ' + (nb && na) + '</span><br />');
			document.write('<span>' + na + ' && ' + nb + ' = ' + (na && nb) + '</span><span class="span1">' + nb + ' && ' + nb + ' = ' + (nb && nb) + '</span><br />');
			document.write('<span>' + na + ' && ' + nc + ' = ' + (na && nc) + '</span><span class="span1">' + nb + ' && ' + nc + ' = ' + (nb && nc) + '</span><br />');
			document.write('<span>' + na + ' && ' + nd + ' = ' + (na && nd) + '</span><span class="span1">' + nb + ' && ' + nd + ' = ' + (nb && nd) + '</span><br />');
			document.write('<span>' + na + ' && ' + ne + ' = ' + (na && ne) + '</span><span class="span1">' + nb + ' && ' + ne + ' = ' + (nb && ne) + '</span><br />');
			document.write('<span>' + na + ' && ' + nf + ' = ' + (na && nf) + '</span><span class="span1">' + nb + ' && ' + nf + ' = ' + (nb && nf) + '</span><br />');
			document.write('<span>' + na + ' && ' + ng + ' = ' + (na && ng) + '</span><span class="span1">' + nb + ' && ' + ng + ' = ' + (nb && ng) + '</span><br />');
			document.write('<span>' + na + ' && ' + nh + ' = ' + (na && nh) + '</span><span class="span1">' + nb + ' && ' + nh + ' = ' + (nb && nh) + '</span><br />');
			document.write('<span>' + na + ' && ' + sa + ' = ' + (na && sa) + '</span><span class="span1">' + nb + ' && ' + sa + ' = ' + (nb && sa) + '</span><br />');
			document.write('<span>' + na + ' && ' + sb + ' = ' + (na && sb) + '</span><span class="span1">' + nb + ' && ' + sb + ' = ' + (nb && sb) + '</span><br />');
			document.write('<span>' + na + ' && ' + sc + ' = ' + (na && sc) + '</span><span class="span1">' + nb + ' && ' + sc + ' = ' + (nb && sc) + '</span><br />');
			document.write('<span>' + na + ' && ' + sd + ' = ' + (na && sd) + '</span><span class="span1">' + nb + ' && ' + sd + ' = ' + (nb && sd) + '</span><br />');
			document.write('<span>' + na + ' && ' + aa + ' = ' + (na && aa) + '</span><span class="span1">' + nb + ' && ' + aa + ' = ' + (nb && aa) + '</span><br />');
			document.write('<span>' + na + ' && ' + ab + ' = ' + (na && ab) + '</span><span class="span1">' + nb + ' && ' + ab + ' = ' + (nb && ab) + '</span><br />');
			document.write('<span>' + na + ' && ' + ac + ' = ' + (na && ac) + '</span><span class="span1">' + nb + ' && ' + ac + ' = ' + (nb && ac) + '</span><br />');
			document.write('<span>' + na + ' && ' + oa + ' = ' + (na && oa) + '</span><span class="span1">' + nb + ' && ' + oa + ' = ' + (nb && oa) + '</span><br />');
			document.write('<span>' + na + ' && ' + ob + ' = ' + (na && ob) + '</span><span class="span1">' + nb + ' && ' + ob + ' = ' + (nb && ob) + '</span><br />');
			document.write('<span>' + na + ' && ' + oc + ' = ' + (na && oc) + '</span><span class="span1">' + nb + ' && ' + oc + ' = ' + (nb && oc) + '</span></div>');

			document.write('<div style="float: left; margin-left: 700px;"')
			document.write('<span>' + nc + ' && ' + ua + ' = ' + (nc && ua) + '</span><span class="span2">' + nd + ' && ' + ua + ' = ' + (nd && ua) + '</span><br />');
			document.write('<span>' + nc + ' && ' + la + ' = ' + (nc && la) + '</span><span class="span2">' + nd + ' && ' + la + ' = ' + (nd && la) + '</span><br />');
			document.write('<span>' + nc + ' && ' + ba + ' = ' + (nc && ba) + '</span><span class="span2">' + nd + ' && ' + ba + ' = ' + (nd && ba) + '</span><br />');
			document.write('<span>' + nc + ' && ' + bb + ' = ' + (nc && bb) + '</span><span class="span2">' + nd + ' && ' + bb + ' = ' + (nd && bb) + '</span><br />');
			document.write('<span>' + nc + ' && ' + bc + ' = ' + (nc && bc) + '</span><span class="span2">' + nd + ' && ' + bc + ' = ' + (nd && bc) + '</span><br />');
			document.write('<span>' + nc + ' && ' + bd + ' = ' + (nc && bd) + '</span><span class="span2">' + nd + ' && ' + bd + ' = ' + (nd && bd) + '</span><br />');
			document.write('<span>' + nc + ' && ' + na + ' = ' + (nc && na) + '</span><span class="span2">' + nd + ' && ' + na + ' = ' + (nd && na) + '</span><br />');
			document.write('<span>' + nc + ' && ' + nb + ' = ' + (nc && nb) + '</span><span class="span2">' + nd + ' && ' + nb + ' = ' + (nd && nb) + '</span><br />');
			document.write('<span>' + nc + ' && ' + nc + ' = ' + (nc && nc) + '</span><span class="span2">' + nd + ' && ' + nc + ' = ' + (nd && nc) + '</span><br />');
			document.write('<span>' + nc + ' && ' + nd + ' = ' + (nc && nd) + '</span><span class="span2">' + nd + ' && ' + nd + ' = ' + (nd && nd) + '</span><br />');
			document.write('<span>' + nc + ' && ' + ne + ' = ' + (nc && ne) + '</span><span class="span2">' + nd + ' && ' + ne + ' = ' + (nd && ne) + '</span><br />');
			document.write('<span>' + nc + ' && ' + nf + ' = ' + (nc && nf) + '</span><span class="span2">' + nd + ' && ' + nf + ' = ' + (nd && nf) + '</span><br />');
			document.write('<span>' + nc + ' && ' + ng + ' = ' + (nc && ng) + '</span><span class="span2">' + nd + ' && ' + ng + ' = ' + (nd && ng) + '</span><br />');
			document.write('<span>' + nc + ' && ' + nh + ' = ' + (nc && nh) + '</span><span class="span2">' + nd + ' && ' + nh + ' = ' + (nd && nh) + '</span><br />');
			document.write('<span>' + nc + ' && ' + sa + ' = ' + (nc && sa) + '</span><span class="span2">' + nd + ' && ' + sa + ' = ' + (nd && sa) + '</span><br />');
			document.write('<span>' + nc + ' && ' + sb + ' = ' + (nc && sb) + '</span><span class="span2">' + nd + ' && ' + sb + ' = ' + (nd && sb) + '</span><br />');
			document.write('<span>' + nc + ' && ' + sc + ' = ' + (nc && sc) + '</span><span class="span2">' + nd + ' && ' + sc + ' = ' + (nd && sc) + '</span><br />');
			document.write('<span>' + nc + ' && ' + sd + ' = ' + (nc && sd) + '</span><span class="span2">' + nd + ' && ' + sd + ' = ' + (nd && sd) + '</span><br />');
			document.write('<span>' + nc + ' && ' + aa + ' = ' + (nc && aa) + '</span><span class="span2">' + nd + ' && ' + aa + ' = ' + (nd && aa) + '</span><br />');
			document.write('<span>' + nc + ' && ' + ab + ' = ' + (nc && ab) + '</span><span class="span2">' + nd + ' && ' + ab + ' = ' + (nd && ab) + '</span><br />');
			document.write('<span>' + nc + ' && ' + ac + ' = ' + (nc && ac) + '</span><span class="span2">' + nd + ' && ' + ac + ' = ' + (nd && ac) + '</span><br />');
			document.write('<span>' + nc + ' && ' + oa + ' = ' + (nc && oa) + '</span><span class="span2">' + nd + ' && ' + oa + ' = ' + (nd && oa) + '</span><br />');
			document.write('<span>' + nc + ' && ' + ob + ' = ' + (nc && ob) + '</span><span class="span2">' + nd + ' && ' + ob + ' = ' + (nd && ob) + '</span><br />');
			document.write('<span>' + nc + ' && ' + oc + ' = ' + (nc && oc) + '</span><span class="span2">' + nd + ' && ' + oc + ' = ' + (nd && oc) + '</span></div>');	
			document.write('<hr style="clear: left;" />');		

			document.write('<div style="float: left;"')
			document.write('<span>' + ne + ' && ' + ua + ' = ' + (ne && ua) + '</span><span class="span1">' + nf + ' && ' + ua + ' = ' + (nf && ua) + '</span><br />');
			document.write('<span>' + ne + ' && ' + la + ' = ' + (ne && la) + '</span><span class="span1">' + nf + ' && ' + la + ' = ' + (nf && la) + '</span><br />');
			document.write('<span>' + ne + ' && ' + ba + ' = ' + (ne && ba) + '</span><span class="span1">' + nf + ' && ' + ba + ' = ' + (nf && ba) + '</span><br />');
			document.write('<span>' + ne + ' && ' + bb + ' = ' + (ne && bb) + '</span><span class="span1">' + nf + ' && ' + bb + ' = ' + (nf && bb) + '</span><br />');
			document.write('<span>' + ne + ' && ' + bc + ' = ' + (ne && bc) + '</span><span class="span1">' + nf + ' && ' + bc + ' = ' + (nf && bc) + '</span><br />');
			document.write('<span>' + ne + ' && ' + bd + ' = ' + (ne && bd) + '</span><span class="span1">' + nf + ' && ' + bd + ' = ' + (nf && bd) + '</span><br />');
			document.write('<span>' + ne + ' && ' + na + ' = ' + (ne && na) + '</span><span class="span1">' + nf + ' && ' + na + ' = ' + (nf && na) + '</span><br />');
			document.write('<span>' + ne + ' && ' + nb + ' = ' + (ne && nb) + '</span><span class="span1">' + nf + ' && ' + nb + ' = ' + (nf && nb) + '</span><br />');
			document.write('<span>' + ne + ' && ' + nc + ' = ' + (ne && nc) + '</span><span class="span1">' + nf + ' && ' + nc + ' = ' + (nf && nc) + '</span><br />');
			document.write('<span>' + ne + ' && ' + nd + ' = ' + (ne && nd) + '</span><span class="span1">' + nf + ' && ' + nd + ' = ' + (nf && nd) + '</span><br />');
			document.write('<span>' + ne + ' && ' + ne + ' = ' + (ne && ne) + '</span><span class="span1">' + nf + ' && ' + ne + ' = ' + (nf && ne) + '</span><br />');
			document.write('<span>' + ne + ' && ' + nf + ' = ' + (ne && nf) + '</span><span class="span1">' + nf + ' && ' + nf + ' = ' + (nf && nf) + '</span><br />');
			document.write('<span>' + ne + ' && ' + ng + ' = ' + (ne && ng) + '</span><span class="span1">' + nf + ' && ' + ng + ' = ' + (nf && ng) + '</span><br />');
			document.write('<span>' + ne + ' && ' + nh + ' = ' + (ne && nh) + '</span><span class="span1">' + nf + ' && ' + nh + ' = ' + (nf && nh) + '</span><br />');
			document.write('<span>' + ne + ' && ' + sa + ' = ' + (ne && sa) + '</span><span class="span1">' + nf + ' && ' + sa + ' = ' + (nf && sa) + '</span><br />');
			document.write('<span>' + ne + ' && ' + sb + ' = ' + (ne && sb) + '</span><span class="span1">' + nf + ' && ' + sb + ' = ' + (nf && sb) + '</span><br />');
			document.write('<span>' + ne + ' && ' + sc + ' = ' + (ne && sc) + '</span><span class="span1">' + nf + ' && ' + sc + ' = ' + (nf && sc) + '</span><br />');
			document.write('<span>' + ne + ' && ' + sd + ' = ' + (ne && sd) + '</span><span class="span1">' + nf + ' && ' + sd + ' = ' + (nf && sd) + '</span><br />');
			document.write('<span>' + ne + ' && ' + aa + ' = ' + (ne && aa) + '</span><span class="span1">' + nf + ' && ' + aa + ' = ' + (nf && aa) + '</span><br />');
			document.write('<span>' + ne + ' && ' + ab + ' = ' + (ne && ab) + '</span><span class="span1">' + nf + ' && ' + ab + ' = ' + (nf && ab) + '</span><br />');
			document.write('<span>' + ne + ' && ' + ac + ' = ' + (ne && ac) + '</span><span class="span1">' + nf + ' && ' + ac + ' = ' + (nf && ac) + '</span><br />');
			document.write('<span>' + ne + ' && ' + oa + ' = ' + (ne && oa) + '</span><span class="span1">' + nf + ' && ' + oa + ' = ' + (nf && oa) + '</span><br />');
			document.write('<span>' + ne + ' && ' + ob + ' = ' + (ne && ob) + '</span><span class="span1">' + nf + ' && ' + ob + ' = ' + (nf && ob) + '</span><br />');
			document.write('<span>' + ne + ' && ' + oc + ' = ' + (ne && oc) + '</span><span class="span1">' + nf + ' && ' + oc + ' = ' + (nf && oc) + '</span></div>');

			document.write('<div style="float: left; margin-left: 560px;"')
			document.write('<span>' + ng + ' && ' + ua + ' = ' + (ng && ua) + '</span><span class="span2">' + nh + ' && ' + ua + ' = ' + (nh && ua) + '</span><br />');
			document.write('<span>' + ng + ' && ' + la + ' = ' + (ng && la) + '</span><span class="span2">' + nh + ' && ' + la + ' = ' + (nh && la) + '</span><br />');
			document.write('<span>' + ng + ' && ' + ba + ' = ' + (ng && ba) + '</span><span class="span2">' + nh + ' && ' + ba + ' = ' + (nh && ba) + '</span><br />');
			document.write('<span>' + ng + ' && ' + bb + ' = ' + (ng && bb) + '</span><span class="span2">' + nh + ' && ' + bb + ' = ' + (nh && bb) + '</span><br />');
			document.write('<span>' + ng + ' && ' + bc + ' = ' + (ng && bc) + '</span><span class="span2">' + nh + ' && ' + bc + ' = ' + (nh && bc) + '</span><br />');
			document.write('<span>' + ng + ' && ' + bd + ' = ' + (ng && bd) + '</span><span class="span2">' + nh + ' && ' + bd + ' = ' + (nh && bd) + '</span><br />');
			document.write('<span>' + ng + ' && ' + na + ' = ' + (ng && na) + '</span><span class="span2">' + nh + ' && ' + na + ' = ' + (nh && na) + '</span><br />');
			document.write('<span>' + ng + ' && ' + nb + ' = ' + (ng && nb) + '</span><span class="span2">' + nh + ' && ' + nb + ' = ' + (nh && nb) + '</span><br />');
			document.write('<span>' + ng + ' && ' + nc + ' = ' + (ng && nc) + '</span><span class="span2">' + nh + ' && ' + nc + ' = ' + (nh && nc) + '</span><br />');
			document.write('<span>' + ng + ' && ' + nd + ' = ' + (ng && nd) + '</span><span class="span2">' + nh + ' && ' + nd + ' = ' + (nh && nd) + '</span><br />');
			document.write('<span>' + ng + ' && ' + ne + ' = ' + (ng && ne) + '</span><span class="span2">' + nh + ' && ' + ne + ' = ' + (nh && ne) + '</span><br />');
			document.write('<span>' + ng + ' && ' + nf + ' = ' + (ng && nf) + '</span><span class="span2">' + nh + ' && ' + nf + ' = ' + (nh && nf) + '</span><br />');
			document.write('<span>' + ng + ' && ' + ng + ' = ' + (ng && ng) + '</span><span class="span2">' + nh + ' && ' + ng + ' = ' + (nh && ng) + '</span><br />');
			document.write('<span>' + ng + ' && ' + nh + ' = ' + (ng && nh) + '</span><span class="span2">' + nh + ' && ' + nh + ' = ' + (nh && nh) + '</span><br />');
			document.write('<span>' + ng + ' && ' + sa + ' = ' + (ng && sa) + '</span><span class="span2">' + nh + ' && ' + sa + ' = ' + (nh && sa) + '</span><br />');
			document.write('<span>' + ng + ' && ' + sb + ' = ' + (ng && sb) + '</span><span class="span2">' + nh + ' && ' + sb + ' = ' + (nh && sb) + '</span><br />');
			document.write('<span>' + ng + ' && ' + sc + ' = ' + (ng && sc) + '</span><span class="span2">' + nh + ' && ' + sc + ' = ' + (nh && sc) + '</span><br />');
			document.write('<span>' + ng + ' && ' + sd + ' = ' + (ng && sd) + '</span><span class="span2">' + nh + ' && ' + sd + ' = ' + (nh && sd) + '</span><br />');
			document.write('<span>' + ng + ' && ' + aa + ' = ' + (ng && aa) + '</span><span class="span2">' + nh + ' && ' + aa + ' = ' + (nh && aa) + '</span><br />');
			document.write('<span>' + ng + ' && ' + ab + ' = ' + (ng && ab) + '</span><span class="span2">' + nh + ' && ' + ab + ' = ' + (nh && ab) + '</span><br />');
			document.write('<span>' + ng + ' && ' + ac + ' = ' + (ng && ac) + '</span><span class="span2">' + nh + ' && ' + ac + ' = ' + (nh && ac) + '</span><br />');
			document.write('<span>' + ng + ' && ' + oa + ' = ' + (ng && oa) + '</span><span class="span2">' + nh + ' && ' + oa + ' = ' + (nh && oa) + '</span><br />');
			document.write('<span>' + ng + ' && ' + ob + ' = ' + (ng && ob) + '</span><span class="span2">' + nh + ' && ' + ob + ' = ' + (nh && ob) + '</span><br />');
			document.write('<span>' + ng + ' && ' + oc + ' = ' + (ng && oc) + '</span><span class="span2">' + nh + ' && ' + oc + ' = ' + (nh && oc) + '</span></div>');
			document.write('<hr style="clear: left;" />');

			document.write('<div style="float: left;"')
			document.write('<span>' + sa + ' && ' + ua + ' = ' + (sa && ua) + '</span><span class="span1">' + sb + ' && ' + ua + ' = ' + (sb && ua) + '</span><br />');
			document.write('<span>' + sa + ' && ' + la + ' = ' + (sa && la) + '</span><span class="span1">' + sb + ' && ' + la + ' = ' + (sb && la) + '</span><br />');
			document.write('<span>' + sa + ' && ' + ba + ' = ' + (sa && ba) + '</span><span class="span1">' + sb + ' && ' + ba + ' = ' + (sb && ba) + '</span><br />');
			document.write('<span>' + sa + ' && ' + bb + ' = ' + (sa && bb) + '</span><span class="span1">' + sb + ' && ' + bb + ' = ' + (sb && bb) + '</span><br />');
			document.write('<span>' + sa + ' && ' + bc + ' = ' + (sa && bc) + '</span><span class="span1">' + sb + ' && ' + bc + ' = ' + (sb && bc) + '</span><br />');
			document.write('<span>' + sa + ' && ' + bd + ' = ' + (sa && bd) + '</span><span class="span1">' + sb + ' && ' + bd + ' = ' + (sb && bd) + '</span><br />');
			document.write('<span>' + sa + ' && ' + na + ' = ' + (sa && na) + '</span><span class="span1">' + sb + ' && ' + na + ' = ' + (sb && na) + '</span><br />');
			document.write('<span>' + sa + ' && ' + nb + ' = ' + (sa && nb) + '</span><span class="span1">' + sb + ' && ' + nb + ' = ' + (sb && nb) + '</span><br />');
			document.write('<span>' + sa + ' && ' + nc + ' = ' + (sa && nc) + '</span><span class="span1">' + sb + ' && ' + nc + ' = ' + (sb && nc) + '</span><br />');
			document.write('<span>' + sa + ' && ' + nd + ' = ' + (sa && nd) + '</span><span class="span1">' + sb + ' && ' + nd + ' = ' + (sb && nd) + '</span><br />');
			document.write('<span>' + sa + ' && ' + ne + ' = ' + (sa && ne) + '</span><span class="span1">' + sb + ' && ' + ne + ' = ' + (sb && ne) + '</span><br />');
			document.write('<span>' + sa + ' && ' + nf + ' = ' + (sa && nf) + '</span><span class="span1">' + sb + ' && ' + nf + ' = ' + (sb && nf) + '</span><br />');
			document.write('<span>' + sa + ' && ' + ng + ' = ' + (sa && ng) + '</span><span class="span1">' + sb + ' && ' + ng + ' = ' + (sb && ng) + '</span><br />');
			document.write('<span>' + sa + ' && ' + nh + ' = ' + (sa && nh) + '</span><span class="span1">' + sb + ' && ' + nh + ' = ' + (sb && nh) + '</span><br />');
			document.write('<span>' + sa + ' && ' + sa + ' = ' + (sa && sa) + '</span><span class="span1">' + sb + ' && ' + sa + ' = ' + (sb && sa) + '</span><br />');
			document.write('<span>' + sa + ' && ' + sb + ' = ' + (sa && sb) + '</span><span class="span1">' + sb + ' && ' + sb + ' = ' + (sb && sb) + '</span><br />');
			document.write('<span>' + sa + ' && ' + sc + ' = ' + (sa && sc) + '</span><span class="span1">' + sb + ' && ' + sc + ' = ' + (sb && sc) + '</span><br />');
			document.write('<span>' + sa + ' && ' + sd + ' = ' + (sa && sd) + '</span><span class="span1">' + sb + ' && ' + sd + ' = ' + (sb && sd) + '</span><br />');
			document.write('<span>' + sa + ' && ' + aa + ' = ' + (sa && aa) + '</span><span class="span1">' + sb + ' && ' + aa + ' = ' + (sb && aa) + '</span><br />');
			document.write('<span>' + sa + ' && ' + ab + ' = ' + (sa && ab) + '</span><span class="span1">' + sb + ' && ' + ab + ' = ' + (sb && ab) + '</span><br />');
			document.write('<span>' + sa + ' && ' + ac + ' = ' + (sa && ac) + '</span><span class="span1">' + sb + ' && ' + ac + ' = ' + (sb && ac) + '</span><br />');
			document.write('<span>' + sa + ' && ' + oa + ' = ' + (sa && oa) + '</span><span class="span1">' + sb + ' && ' + oa + ' = ' + (sb && oa) + '</span><br />');
			document.write('<span>' + sa + ' && ' + ob + ' = ' + (sa && ob) + '</span><span class="span1">' + sb + ' && ' + ob + ' = ' + (sb && ob) + '</span><br />');
			document.write('<span>' + sa + ' && ' + oc + ' = ' + (sa && oc) + '</span><span class="span1">' + sb + ' && ' + oc + ' = ' + (sb && oc) + '</span></div>');

			document.write('<div style="float: left; margin-left: 750px;"')
			document.write('<span>' + sc + ' && ' + ua + ' = ' + (sc && ua) + '</span><span class="span2">' + sd + ' && ' + ua + ' = ' + (sd && ua) + '</span><br />');
			document.write('<span>' + sc + ' && ' + la + ' = ' + (sc && la) + '</span><span class="span2">' + sd + ' && ' + la + ' = ' + (sd && la) + '</span><br />');
			document.write('<span>' + sc + ' && ' + ba + ' = ' + (sc && ba) + '</span><span class="span2">' + sd + ' && ' + ba + ' = ' + (sd && ba) + '</span><br />');
			document.write('<span>' + sc + ' && ' + bb + ' = ' + (sc && bb) + '</span><span class="span2">' + sd + ' && ' + bb + ' = ' + (sd && bb) + '</span><br />');
			document.write('<span>' + sc + ' && ' + bc + ' = ' + (sc && bc) + '</span><span class="span2">' + sd + ' && ' + bc + ' = ' + (sd && bc) + '</span><br />');
			document.write('<span>' + sc + ' && ' + bd + ' = ' + (sc && bd) + '</span><span class="span2">' + sd + ' && ' + bd + ' = ' + (sd && bd) + '</span><br />');
			document.write('<span>' + sc + ' && ' + na + ' = ' + (sc && na) + '</span><span class="span2">' + sd + ' && ' + na + ' = ' + (sd && na) + '</span><br />');
			document.write('<span>' + sc + ' && ' + nb + ' = ' + (sc && nb) + '</span><span class="span2">' + sd + ' && ' + nb + ' = ' + (sd && nb) + '</span><br />');
			document.write('<span>' + sc + ' && ' + nc + ' = ' + (sc && nc) + '</span><span class="span2">' + sd + ' && ' + nc + ' = ' + (sd && nc) + '</span><br />');
			document.write('<span>' + sc + ' && ' + nd + ' = ' + (sc && nd) + '</span><span class="span2">' + sd + ' && ' + nd + ' = ' + (sd && nd) + '</span><br />');
			document.write('<span>' + sc + ' && ' + ne + ' = ' + (sc && ne) + '</span><span class="span2">' + sd + ' && ' + ne + ' = ' + (sd && ne) + '</span><br />');
			document.write('<span>' + sc + ' && ' + nf + ' = ' + (sc && nf) + '</span><span class="span2">' + sd + ' && ' + nf + ' = ' + (sd && nf) + '</span><br />');
			document.write('<span>' + sc + ' && ' + ng + ' = ' + (sc && ng) + '</span><span class="span2">' + sd + ' && ' + ng + ' = ' + (sd && ng) + '</span><br />');
			document.write('<span>' + sc + ' && ' + nh + ' = ' + (sc && nh) + '</span><span class="span2">' + sd + ' && ' + nh + ' = ' + (sd && nh) + '</span><br />');
			document.write('<span>' + sc + ' && ' + sa + ' = ' + (sc && sa) + '</span><span class="span2">' + sd + ' && ' + sa + ' = ' + (sd && sa) + '</span><br />');
			document.write('<span>' + sc + ' && ' + sb + ' = ' + (sc && sb) + '</span><span class="span2">' + sd + ' && ' + sb + ' = ' + (sd && sb) + '</span><br />');
			document.write('<span>' + sc + ' && ' + sc + ' = ' + (sc && sc) + '</span><span class="span2">' + sd + ' && ' + sc + ' = ' + (sd && sc) + '</span><br />');
			document.write('<span>' + sc + ' && ' + sd + ' = ' + (sc && sd) + '</span><span class="span2">' + sd + ' && ' + sd + ' = ' + (sd && sd) + '</span><br />');
			document.write('<span>' + sc + ' && ' + aa + ' = ' + (sc && aa) + '</span><span class="span2">' + sd + ' && ' + aa + ' = ' + (sd && aa) + '</span><br />');
			document.write('<span>' + sc + ' && ' + ab + ' = ' + (sc && ab) + '</span><span class="span2">' + sd + ' && ' + ab + ' = ' + (sd && ab) + '</span><br />');
			document.write('<span>' + sc + ' && ' + ac + ' = ' + (sc && ac) + '</span><span class="span2">' + sd + ' && ' + ac + ' = ' + (sd && ac) + '</span><br />');
			document.write('<span>' + sc + ' && ' + oa + ' = ' + (sc && oa) + '</span><span class="span2">' + sd + ' && ' + oa + ' = ' + (sd && oa) + '</span><br />');
			document.write('<span>' + sc + ' && ' + ob + ' = ' + (sc && ob) + '</span><span class="span2">' + sd + ' && ' + ob + ' = ' + (sd && ob) + '</span><br />');
			document.write('<span>' + sc + ' && ' + oc + ' = ' + (sc && oc) + '</span><span class="span2">' + sd + ' && ' + oc + ' = ' + (sd && oc) + '</span></div>');
			document.write('<hr style="clear: left;" />');

			document.write('<div style="float: left;"')
			document.write('<span>' + aa + ' && ' + ua + ' = ' + (aa && ua) + '</span><span class="span1">' + ab + ' && ' + ua + ' = ' + (ab && ua) + '</span><br />');
			document.write('<span>' + aa + ' && ' + la + ' = ' + (aa && la) + '</span><span class="span1">' + ab + ' && ' + la + ' = ' + (ab && la) + '</span><br />');
			document.write('<span>' + aa + ' && ' + ba + ' = ' + (aa && ba) + '</span><span class="span1">' + ab + ' && ' + ba + ' = ' + (ab && ba) + '</span><br />');
			document.write('<span>' + aa + ' && ' + bb + ' = ' + (aa && bb) + '</span><span class="span1">' + ab + ' && ' + bb + ' = ' + (ab && bb) + '</span><br />');
			document.write('<span>' + aa + ' && ' + bc + ' = ' + (aa && bc) + '</span><span class="span1">' + ab + ' && ' + bc + ' = ' + (ab && bc) + '</span><br />');
			document.write('<span>' + aa + ' && ' + bd + ' = ' + (aa && bd) + '</span><span class="span1">' + ab + ' && ' + bd + ' = ' + (ab && bd) + '</span><br />');
			document.write('<span>' + aa + ' && ' + na + ' = ' + (aa && na) + '</span><span class="span1">' + ab + ' && ' + na + ' = ' + (ab && na) + '</span><br />');
			document.write('<span>' + aa + ' && ' + nb + ' = ' + (aa && nb) + '</span><span class="span1">' + ab + ' && ' + nb + ' = ' + (ab && nb) + '</span><br />');
			document.write('<span>' + aa + ' && ' + nc + ' = ' + (aa && nc) + '</span><span class="span1">' + ab + ' && ' + nc + ' = ' + (ab && nc) + '</span><br />');
			document.write('<span>' + aa + ' && ' + nd + ' = ' + (aa && nd) + '</span><span class="span1">' + ab + ' && ' + nd + ' = ' + (ab && nd) + '</span><br />');
			document.write('<span>' + aa + ' && ' + ne + ' = ' + (aa && ne) + '</span><span class="span1">' + ab + ' && ' + ne + ' = ' + (ab && ne) + '</span><br />');
			document.write('<span>' + aa + ' && ' + nf + ' = ' + (aa && nf) + '</span><span class="span1">' + ab + ' && ' + nf + ' = ' + (ab && nf) + '</span><br />');
			document.write('<span>' + aa + ' && ' + ng + ' = ' + (aa && ng) + '</span><span class="span1">' + ab + ' && ' + ng + ' = ' + (ab && ng) + '</span><br />');
			document.write('<span>' + aa + ' && ' + nh + ' = ' + (aa && nh) + '</span><span class="span1">' + ab + ' && ' + nh + ' = ' + (ab && nh) + '</span><br />');
			document.write('<span>' + aa + ' && ' + sa + ' = ' + (aa && sa) + '</span><span class="span1">' + ab + ' && ' + sa + ' = ' + (ab && sa) + '</span><br />');
			document.write('<span>' + aa + ' && ' + sb + ' = ' + (aa && sb) + '</span><span class="span1">' + ab + ' && ' + sb + ' = ' + (ab && sb) + '</span><br />');
			document.write('<span>' + aa + ' && ' + sc + ' = ' + (aa && sc) + '</span><span class="span1">' + ab + ' && ' + sc + ' = ' + (ab && sc) + '</span><br />');
			document.write('<span>' + aa + ' && ' + sd + ' = ' + (aa && sd) + '</span><span class="span1">' + ab + ' && ' + sd + ' = ' + (ab && sd) + '</span><br />');
			document.write('<span>' + aa + ' && ' + aa + ' = ' + (aa && aa) + '</span><span class="span1">' + ab + ' && ' + aa + ' = ' + (ab && aa) + '</span><br />');
			document.write('<span>' + aa + ' && ' + ab + ' = ' + (aa && ab) + '</span><span class="span1">' + ab + ' && ' + ab + ' = ' + (ab && ab) + '</span><br />');
			document.write('<span>' + aa + ' && ' + ac + ' = ' + (aa && ac) + '</span><span class="span1">' + ab + ' && ' + ac + ' = ' + (ab && ac) + '</span><br />');
			document.write('<span>' + aa + ' && ' + oa + ' = ' + (aa && oa) + '</span><span class="span1">' + ab + ' && ' + oa + ' = ' + (ab && oa) + '</span><br />');
			document.write('<span>' + aa + ' && ' + ob + ' = ' + (aa && ob) + '</span><span class="span1">' + ab + ' && ' + ob + ' = ' + (ab && ob) + '</span><br />');
			document.write('<span>' + aa + ' && ' + oc + ' = ' + (aa && oc) + '</span><span class="span1">' + ab + ' && ' + oc + ' = ' + (ab && oc) + '</span></div>');

			document.write('<div style="float: left; margin-left: 630px;"')
			document.write('<span>' + ac + ' && ' + ua + ' = ' + (ac && ua) + '</span><br />');
			document.write('<span>' + ac + ' && ' + la + ' = ' + (ac && la) + '</span><br />');
			document.write('<span>' + ac + ' && ' + ba + ' = ' + (ac && ba) + '</span><br />');
			document.write('<span>' + ac + ' && ' + bb + ' = ' + (ac && bb) + '</span><br />');
			document.write('<span>' + ac + ' && ' + bc + ' = ' + (ac && bc) + '</span><br />');
			document.write('<span>' + ac + ' && ' + bd + ' = ' + (ac && bd) + '</span><br />');
			document.write('<span>' + ac + ' && ' + na + ' = ' + (ac && na) + '</span><br />');
			document.write('<span>' + ac + ' && ' + nb + ' = ' + (ac && nb) + '</span><br />');
			document.write('<span>' + ac + ' && ' + nc + ' = ' + (ac && nc) + '</span><br />');
			document.write('<span>' + ac + ' && ' + nd + ' = ' + (ac && nd) + '</span><br />');
			document.write('<span>' + ac + ' && ' + ne + ' = ' + (ac && ne) + '</span><br />');
			document.write('<span>' + ac + ' && ' + nf + ' = ' + (ac && nf) + '</span><br />');
			document.write('<span>' + ac + ' && ' + ng + ' = ' + (ac && ng) + '</span><br />');
			document.write('<span>' + ac + ' && ' + nh + ' = ' + (ac && nh) + '</span><br />');
			document.write('<span>' + ac + ' && ' + sa + ' = ' + (ac && sa) + '</span><br />');
			document.write('<span>' + ac + ' && ' + sb + ' = ' + (ac && sb) + '</span><br />');
			document.write('<span>' + ac + ' && ' + sc + ' = ' + (ac && sc) + '</span><br />');
			document.write('<span>' + ac + ' && ' + sd + ' = ' + (ac && sd) + '</span><br />');
			document.write('<span>' + ac + ' && ' + aa + ' = ' + (ac && aa) + '</span><br />');
			document.write('<span>' + ac + ' && ' + ab + ' = ' + (ac && ab) + '</span><br />');
			document.write('<span>' + ac + ' && ' + ac + ' = ' + (ac && ac) + '</span><br />');
			document.write('<span>' + ac + ' && ' + oa + ' = ' + (ac && oa) + '</span><br />');
			document.write('<span>' + ac + ' && ' + ob + ' = ' + (ac && ob) + '</span><br />');
			document.write('<span>' + ac + ' && ' + oc + ' = ' + (ac && oc) + '</span></div>');
			document.write('<hr style="clear: left;" />');

			document.write('<div style="float: left;"')
			document.write('<span>' + oa + ' && ' + ua + ' = ' + (oa && ua) + '</span><span class="span1">' + ob + ' && ' + ua + ' = ' + (ob && ua) + '</span><br />');
			document.write('<span>' + oa + ' && ' + la + ' = ' + (oa && la) + '</span><span class="span1">' + ob + ' && ' + la + ' = ' + (ob && la) + '</span><br />');
			document.write('<span>' + oa + ' && ' + ba + ' = ' + (oa && ba) + '</span><span class="span1">' + ob + ' && ' + ba + ' = ' + (ob && ba) + '</span><br />');
			document.write('<span>' + oa + ' && ' + bb + ' = ' + (oa && bb) + '</span><span class="span1">' + ob + ' && ' + bb + ' = ' + (ob && bb) + '</span><br />');
			document.write('<span>' + oa + ' && ' + bc + ' = ' + (oa && bc) + '</span><span class="span1">' + ob + ' && ' + bc + ' = ' + (ob && bc) + '</span><br />');
			document.write('<span>' + oa + ' && ' + bd + ' = ' + (oa && bd) + '</span><span class="span1">' + ob + ' && ' + bd + ' = ' + (ob && bd) + '</span><br />');
			document.write('<span>' + oa + ' && ' + na + ' = ' + (oa && na) + '</span><span class="span1">' + ob + ' && ' + na + ' = ' + (ob && na) + '</span><br />');
			document.write('<span>' + oa + ' && ' + nb + ' = ' + (oa && nb) + '</span><span class="span1">' + ob + ' && ' + nb + ' = ' + (ob && nb) + '</span><br />');
			document.write('<span>' + oa + ' && ' + nc + ' = ' + (oa && nc) + '</span><span class="span1">' + ob + ' && ' + nc + ' = ' + (ob && nc) + '</span><br />');
			document.write('<span>' + oa + ' && ' + nd + ' = ' + (oa && nd) + '</span><span class="span1">' + ob + ' && ' + nd + ' = ' + (ob && nd) + '</span><br />');
			document.write('<span>' + oa + ' && ' + ne + ' = ' + (oa && ne) + '</span><span class="span1">' + ob + ' && ' + ne + ' = ' + (ob && ne) + '</span><br />');
			document.write('<span>' + oa + ' && ' + nf + ' = ' + (oa && nf) + '</span><span class="span1">' + ob + ' && ' + nf + ' = ' + (ob && nf) + '</span><br />');
			document.write('<span>' + oa + ' && ' + ng + ' = ' + (oa && ng) + '</span><span class="span1">' + ob + ' && ' + ng + ' = ' + (ob && ng) + '</span><br />');
			document.write('<span>' + oa + ' && ' + nh + ' = ' + (oa && nh) + '</span><span class="span1">' + ob + ' && ' + nh + ' = ' + (ob && nh) + '</span><br />');
			document.write('<span>' + oa + ' && ' + sa + ' = ' + (oa && sa) + '</span><span class="span1">' + ob + ' && ' + sa + ' = ' + (ob && sa) + '</span><br />');
			document.write('<span>' + oa + ' && ' + sb + ' = ' + (oa && sb) + '</span><span class="span1">' + ob + ' && ' + sb + ' = ' + (ob && sb) + '</span><br />');
			document.write('<span>' + oa + ' && ' + sc + ' = ' + (oa && sc) + '</span><span class="span1">' + ob + ' && ' + sc + ' = ' + (ob && sc) + '</span><br />');
			document.write('<span>' + oa + ' && ' + sd + ' = ' + (oa && sd) + '</span><span class="span1">' + ob + ' && ' + sd + ' = ' + (ob && sd) + '</span><br />');
			document.write('<span>' + oa + ' && ' + aa + ' = ' + (oa && aa) + '</span><span class="span1">' + ob + ' && ' + aa + ' = ' + (ob && aa) + '</span><br />');
			document.write('<span>' + oa + ' && ' + ab + ' = ' + (oa && ab) + '</span><span class="span1">' + ob + ' && ' + ab + ' = ' + (ob && ab) + '</span><br />');
			document.write('<span>' + oa + ' && ' + ac + ' = ' + (oa && ac) + '</span><span class="span1">' + ob + ' && ' + ac + ' = ' + (ob && ac) + '</span><br />');
			document.write('<span>' + oa + ' && ' + oa + ' = ' + (oa && oa) + '</span><span class="span1">' + ob + ' && ' + oa + ' = ' + (ob && oa) + '</span><br />');
			document.write('<span>' + oa + ' && ' + ob + ' = ' + (oa && ob) + '</span><span class="span1">' + ob + ' && ' + ob + ' = ' + (ob && ob) + '</span><br />');
			document.write('<span>' + oa + ' && ' + oc + ' = ' + (oa && oc) + '</span><span class="span1">' + ob + ' && ' + oc + ' = ' + (ob && oc) + '</span></div>');

			document.write('<div style="float: left; margin-left: 510px;"')
			document.write('<span>' + oc + ' && ' + ua + ' = ' + (oc && ua) + '</span><br />');
			document.write('<span>' + oc + ' && ' + la + ' = ' + (oc && la) + '</span><br />');
			document.write('<span>' + oc + ' && ' + ba + ' = ' + (oc && ba) + '</span><br />');
			document.write('<span>' + oc + ' && ' + bb + ' = ' + (oc && bb) + '</span><br />');
			document.write('<span>' + oc + ' && ' + bc + ' = ' + (oc && bc) + '</span><br />');
			document.write('<span>' + oc + ' && ' + bd + ' = ' + (oc && bd) + '</span><br />');
			document.write('<span>' + oc + ' && ' + na + ' = ' + (oc && na) + '</span><br />');
			document.write('<span>' + oc + ' && ' + nb + ' = ' + (oc && nb) + '</span><br />');
			document.write('<span>' + oc + ' && ' + nc + ' = ' + (oc && nc) + '</span><br />');
			document.write('<span>' + oc + ' && ' + nd + ' = ' + (oc && nd) + '</span><br />');
			document.write('<span>' + oc + ' && ' + ne + ' = ' + (oc && ne) + '</span><br />');
			document.write('<span>' + oc + ' && ' + nf + ' = ' + (oc && nf) + '</span><br />');
			document.write('<span>' + oc + ' && ' + ng + ' = ' + (oc && ng) + '</span><br />');
			document.write('<span>' + oc + ' && ' + nh + ' = ' + (oc && nh) + '</span><br />');
			document.write('<span>' + oc + ' && ' + sa + ' = ' + (oc && sa) + '</span><br />');
			document.write('<span>' + oc + ' && ' + sb + ' = ' + (oc && sb) + '</span><br />');
			document.write('<span>' + oc + ' && ' + sc + ' = ' + (oc && sc) + '</span><br />');
			document.write('<span>' + oc + ' && ' + sd + ' = ' + (oc && sd) + '</span><br />');
			document.write('<span>' + oc + ' && ' + aa + ' = ' + (oc && aa) + '</span><br />');
			document.write('<span>' + oc + ' && ' + ab + ' = ' + (oc && ab) + '</span><br />');
			document.write('<span>' + oc + ' && ' + ac + ' = ' + (oc && ac) + '</span><br />');
			document.write('<span>' + oc + ' && ' + oa + ' = ' + (oc && oa) + '</span><br />');
			document.write('<span>' + oc + ' && ' + ob + ' = ' + (oc && ob) + '</span><br />');
			document.write('<span>' + oc + ' && ' + oc + ' = ' + (oc && oc) + '</span></div>');
		</script>
	</body>
</html>

4.5.2. 效果图

5. 逻辑OR运算符

5.1. 在JavaScript中, 逻辑OR运算符用双竖线(||)表示。

5.2. 下面的真值表描述了逻辑OR运算符的行为:

5.3. 与逻辑AND运算符一样, 逻辑OR运算也是简便运算。对于逻辑OR运算符来说, 如果第一个运算数值为true, 就不再计算第二个运算数。

5.4. 如果某个运算数不是原始的Boolean型值, 逻辑OR运算并不一定返回Boolean值:

  • 如果第一个值是undefined、null、false、空字符串字面量、0、NaN, 返回第二个值。
  • 如果第一个值是true、非0或NaN数字字面量、非空字符串字面量、对象(布尔对象、数字对象、字符串对象、数组和对象), 返回第一个值。

5.5. 例子

5.5.1. 代码

<!DOCTYPE html>
<html lang="zh-CN">
	<head>
		<meta charset="utf-8" />
		<title>逻辑OR运算符</title>

		<style type="text/css">
			.span1 {
				position: absolute;
				left: 440px;
			}
			.span2 {
				position: absolute;
				left: 1400px;
			}
		</style>
	</head>
	<body>
		<script type="text/javascript">
			var ua = undefined;
			var la = null;
			var ba = true, bb = false, bc = new Boolean(true), bd = new Boolean(false);
			var na = 0, nb = 1, nc = -10, nd = NaN, ne = Infinity, nf = -Infinity, ng = new Number(), nh = new Number(1000);
			var sa = '', sb = '1abc', sc = new String(), sd = new String('8');
			var aa = [], ab = ['高性能JavaScript'], ac = new Array();
			var oa = {}, ob = {id: 1001, name: 'zhangsan'}, oc = new Object();

			document.write('<span>' + ua + ' || ' + ua + ' = ' + (ua || ua) + '</span><span class="span1">' + la + ' || ' + ua + ' = ' + (la || ua) + '</span><br />');
			document.write('<span>' + ua + ' || ' + la + ' = ' + (ua || la) + '</span><span class="span1">' + la + ' || ' + la + ' = ' + (la || la) + '</span><br />');
			document.write('<span>' + ua + ' || ' + ba + ' = ' + (ua || ba) + '</span><span class="span1">' + la + ' || ' + ba + ' = ' + (la || ba) + '</span><br />');
			document.write('<span>' + ua + ' || ' + bb + ' = ' + (ua || bb) + '</span><span class="span1">' + la + ' || ' + bb + ' = ' + (la || bb) + '</span><br />');
			document.write('<span>' + ua + ' || ' + bc + ' = ' + (ua || bc) + '</span><span class="span1">' + la + ' || ' + bc + ' = ' + (la || bc) + '</span><br />');
			document.write('<span>' + ua + ' || ' + bd + ' = ' + (ua || bd) + '</span><span class="span1">' + la + ' || ' + bd + ' = ' + (la || bd) + '</span><br />');
			document.write('<span>' + ua + ' || ' + na + ' = ' + (ua || na) + '</span><span class="span1">' + la + ' || ' + na + ' = ' + (la || na) + '</span><br />');
			document.write('<span>' + ua + ' || ' + nb + ' = ' + (ua || nb) + '</span><span class="span1">' + la + ' || ' + nb + ' = ' + (la || nb) + '</span><br />');
			document.write('<span>' + ua + ' || ' + nc + ' = ' + (ua || nc) + '</span><span class="span1">' + la + ' || ' + nc + ' = ' + (la || nc) + '</span><br />');
			document.write('<span>' + ua + ' || ' + nd + ' = ' + (ua || nd) + '</span><span class="span1">' + la + ' || ' + nd + ' = ' + (la || nd) + '</span><br />');
			document.write('<span>' + ua + ' || ' + ne + ' = ' + (ua || ne) + '</span><span class="span1">' + la + ' || ' + ne + ' = ' + (la || ne) + '</span><br />');
			document.write('<span>' + ua + ' || ' + nf + ' = ' + (ua || nf) + '</span><span class="span1">' + la + ' || ' + nf + ' = ' + (la || nf) + '</span><br />');
			document.write('<span>' + ua + ' || ' + ng + ' = ' + (ua || ng) + '</span><span class="span1">' + la + ' || ' + ng + ' = ' + (la || ng) + '</span><br />');
			document.write('<span>' + ua + ' || ' + nh + ' = ' + (ua || nh) + '</span><span class="span1">' + la + ' || ' + nh + ' = ' + (la || nh) + '</span><br />');
			document.write('<span>' + ua + ' || ' + sa + ' = ' + (ua || sa) + '</span><span class="span1">' + la + ' || ' + sa + ' = ' + (la || sa) + '</span><br />');
			document.write('<span>' + ua + ' || ' + sb + ' = ' + (ua || sb) + '</span><span class="span1">' + la + ' || ' + sb + ' = ' + (la || sb) + '</span><br />');
			document.write('<span>' + ua + ' || ' + sc + ' = ' + (ua || sc) + '</span><span class="span1">' + la + ' || ' + sc + ' = ' + (la || sc) + '</span><br />');
			document.write('<span>' + ua + ' || ' + sd + ' = ' + (ua || sd) + '</span><span class="span1">' + la + ' || ' + sd + ' = ' + (la || sd) + '</span><br />');
			document.write('<span>' + ua + ' || ' + aa + ' = ' + (ua || aa) + '</span><span class="span1">' + la + ' || ' + aa + ' = ' + (la || aa) + '</span><br />');
			document.write('<span>' + ua + ' || ' + ab + ' = ' + (ua || ab) + '</span><span class="span1">' + la + ' || ' + ab + ' = ' + (la || ab) + '</span><br />');
			document.write('<span>' + ua + ' || ' + ac + ' = ' + (ua || ac) + '</span><span class="span1">' + la + ' || ' + ac + ' = ' + (la || ac) + '</span><br />');
			document.write('<span>' + ua + ' || ' + oa + ' = ' + (ua || oa) + '</span><span class="span1">' + la + ' || ' + oa + ' = ' + (la || oa) + '</span><br />');
			document.write('<span>' + ua + ' || ' + ob + ' = ' + (ua || ob) + '</span><span class="span1">' + la + ' || ' + ob + ' = ' + (la || ob) + '</span><br />');
			document.write('<span>' + ua + ' || ' + oc + ' = ' + (ua || oc) + '</span><span class="span1">' + la + ' || ' + oc + ' = ' + (la || oc) + '</span><hr />');

			document.write('<div style="float: left;"')
			document.write('<span>' + ba + ' || ' + ua + ' = ' + (ba || ua) + '</span><span class="span1">' + bb + ' || ' + ua + ' = ' + (bb || ua) + '</span><br />');
			document.write('<span>' + ba + ' || ' + la + ' = ' + (ba || la) + '</span><span class="span1">' + bb + ' || ' + la + ' = ' + (bb || la) + '</span><br />');
			document.write('<span>' + ba + ' || ' + ba + ' = ' + (ba || ba) + '</span><span class="span1">' + bb + ' || ' + ba + ' = ' + (bb || ba) + '</span><br />');
			document.write('<span>' + ba + ' || ' + bb + ' = ' + (ba || bb) + '</span><span class="span1">' + bb + ' || ' + bb + ' = ' + (bb || bb) + '</span><br />');
			document.write('<span>' + ba + ' || ' + bc + ' = ' + (ba || bc) + '</span><span class="span1">' + bb + ' || ' + bc + ' = ' + (bb || bc) + '</span><br />');
			document.write('<span>' + ba + ' || ' + bd + ' = ' + (ba || bd) + '</span><span class="span1">' + bb + ' || ' + bd + ' = ' + (bb || bd) + '</span><br />');
			document.write('<span>' + ba + ' || ' + na + ' = ' + (ba || na) + '</span><span class="span1">' + bb + ' || ' + na + ' = ' + (bb || na) + '</span><br />');
			document.write('<span>' + ba + ' || ' + nb + ' = ' + (ba || nb) + '</span><span class="span1">' + bb + ' || ' + nb + ' = ' + (bb || nb) + '</span><br />');
			document.write('<span>' + ba + ' || ' + nc + ' = ' + (ba || nc) + '</span><span class="span1">' + bb + ' || ' + nc + ' = ' + (bb || nc) + '</span><br />');
			document.write('<span>' + ba + ' || ' + nd + ' = ' + (ba || nd) + '</span><span class="span1">' + bb + ' || ' + nd + ' = ' + (bb || nd) + '</span><br />');
			document.write('<span>' + ba + ' || ' + ne + ' = ' + (ba || ne) + '</span><span class="span1">' + bb + ' || ' + ne + ' = ' + (bb || ne) + '</span><br />');
			document.write('<span>' + ba + ' || ' + nf + ' = ' + (ba || nf) + '</span><span class="span1">' + bb + ' || ' + nf + ' = ' + (bb || nf) + '</span><br />');
			document.write('<span>' + ba + ' || ' + ng + ' = ' + (ba || ng) + '</span><span class="span1">' + bb + ' || ' + ng + ' = ' + (bb || ng) + '</span><br />');
			document.write('<span>' + ba + ' || ' + nh + ' = ' + (ba || nh) + '</span><span class="span1">' + bb + ' || ' + nh + ' = ' + (bb || nh) + '</span><br />');
			document.write('<span>' + ba + ' || ' + sa + ' = ' + (ba || sa) + '</span><span class="span1">' + bb + ' || ' + sa + ' = ' + (bb || sa) + '</span><br />');
			document.write('<span>' + ba + ' || ' + sb + ' = ' + (ba || sb) + '</span><span class="span1">' + bb + ' || ' + sb + ' = ' + (bb || sb) + '</span><br />');
			document.write('<span>' + ba + ' || ' + sc + ' = ' + (ba || sc) + '</span><span class="span1">' + bb + ' || ' + sc + ' = ' + (bb || sc) + '</span><br />');
			document.write('<span>' + ba + ' || ' + sd + ' = ' + (ba || sd) + '</span><span class="span1">' + bb + ' || ' + sd + ' = ' + (bb || sd) + '</span><br />');
			document.write('<span>' + ba + ' || ' + aa + ' = ' + (ba || aa) + '</span><span class="span1">' + bb + ' || ' + aa + ' = ' + (bb || aa) + '</span><br />');
			document.write('<span>' + ba + ' || ' + ab + ' = ' + (ba || ab) + '</span><span class="span1">' + bb + ' || ' + ab + ' = ' + (bb || ab) + '</span><br />');
			document.write('<span>' + ba + ' || ' + ac + ' = ' + (ba || ac) + '</span><span class="span1">' + bb + ' || ' + ac + ' = ' + (bb || ac) + '</span><br />');
			document.write('<span>' + ba + ' || ' + oa + ' = ' + (ba || oa) + '</span><span class="span1">' + bb + ' || ' + oa + ' = ' + (bb || oa) + '</span><br />');
			document.write('<span>' + ba + ' || ' + ob + ' = ' + (ba || ob) + '</span><span class="span1">' + bb + ' || ' + ob + ' = ' + (bb || ob) + '</span><br />');
			document.write('<span>' + ba + ' || ' + oc + ' = ' + (ba || oc) + '</span><span class="span1">' + bb + ' || ' + oc + ' = ' + (bb || oc) + '</span></div>');

			document.write('<div style="float: left; margin-left: 750px;"')
			document.write('<span>' + bc + ' || ' + ua + ' = ' + (bc || ua) + '</span><span class="span2">' + bd + ' || ' + ua + ' = ' + (bd || ua) + '</span><br />');
			document.write('<span>' + bc + ' || ' + la + ' = ' + (bc || la) + '</span><span class="span2">' + bd + ' || ' + la + ' = ' + (bd || la) + '</span><br />');
			document.write('<span>' + bc + ' || ' + ba + ' = ' + (bc || ba) + '</span><span class="span2">' + bd + ' || ' + ba + ' = ' + (bd || ba) + '</span><br />');
			document.write('<span>' + bc + ' || ' + bb + ' = ' + (bc || bb) + '</span><span class="span2">' + bd + ' || ' + bb + ' = ' + (bd || bb) + '</span><br />');
			document.write('<span>' + bc + ' || ' + bc + ' = ' + (bc || bc) + '</span><span class="span2">' + bd + ' || ' + bc + ' = ' + (bd || bc) + '</span><br />');
			document.write('<span>' + bc + ' || ' + bd + ' = ' + (bc || bd) + '</span><span class="span2">' + bd + ' || ' + bd + ' = ' + (bd || bd) + '</span><br />');
			document.write('<span>' + bc + ' || ' + na + ' = ' + (bc || na) + '</span><span class="span2">' + bd + ' || ' + na + ' = ' + (bd || na) + '</span><br />');
			document.write('<span>' + bc + ' || ' + nb + ' = ' + (bc || nb) + '</span><span class="span2">' + bd + ' || ' + nb + ' = ' + (bd || nb) + '</span><br />');
			document.write('<span>' + bc + ' || ' + nc + ' = ' + (bc || nc) + '</span><span class="span2">' + bd + ' || ' + nc + ' = ' + (bd || nc) + '</span><br />');
			document.write('<span>' + bc + ' || ' + nd + ' = ' + (bc || nd) + '</span><span class="span2">' + bd + ' || ' + nd + ' = ' + (bd || nd) + '</span><br />');
			document.write('<span>' + bc + ' || ' + ne + ' = ' + (bc || ne) + '</span><span class="span2">' + bd + ' || ' + ne + ' = ' + (bd || ne) + '</span><br />');
			document.write('<span>' + bc + ' || ' + nf + ' = ' + (bc || nf) + '</span><span class="span2">' + bd + ' || ' + nf + ' = ' + (bd || nf) + '</span><br />');
			document.write('<span>' + bc + ' || ' + ng + ' = ' + (bc || ng) + '</span><span class="span2">' + bd + ' || ' + ng + ' = ' + (bd || ng) + '</span><br />');
			document.write('<span>' + bc + ' || ' + nh + ' = ' + (bc || nh) + '</span><span class="span2">' + bd + ' || ' + nh + ' = ' + (bd || nh) + '</span><br />');
			document.write('<span>' + bc + ' || ' + sa + ' = ' + (bc || sa) + '</span><span class="span2">' + bd + ' || ' + sa + ' = ' + (bd || sa) + '</span><br />');
			document.write('<span>' + bc + ' || ' + sb + ' = ' + (bc || sb) + '</span><span class="span2">' + bd + ' || ' + sb + ' = ' + (bd || sb) + '</span><br />');
			document.write('<span>' + bc + ' || ' + sc + ' = ' + (bc || sc) + '</span><span class="span2">' + bd + ' || ' + sc + ' = ' + (bd || sc) + '</span><br />');
			document.write('<span>' + bc + ' || ' + sd + ' = ' + (bc || sd) + '</span><span class="span2">' + bd + ' || ' + sd + ' = ' + (bd || sd) + '</span><br />');
			document.write('<span>' + bc + ' || ' + aa + ' = ' + (bc || aa) + '</span><span class="span2">' + bd + ' || ' + aa + ' = ' + (bd || aa) + '</span><br />');
			document.write('<span>' + bc + ' || ' + ab + ' = ' + (bc || ab) + '</span><span class="span2">' + bd + ' || ' + ab + ' = ' + (bd || ab) + '</span><br />');
			document.write('<span>' + bc + ' || ' + ac + ' = ' + (bc || ac) + '</span><span class="span2">' + bd + ' || ' + ac + ' = ' + (bd || ac) + '</span><br />');
			document.write('<span>' + bc + ' || ' + oa + ' = ' + (bc || oa) + '</span><span class="span2">' + bd + ' || ' + oa + ' = ' + (bd || oa) + '</span><br />');
			document.write('<span>' + bc + ' || ' + ob + ' = ' + (bc || ob) + '</span><span class="span2">' + bd + ' || ' + ob + ' = ' + (bd || ob) + '</span><br />');
			document.write('<span>' + bc + ' || ' + oc + ' = ' + (bc || oc) + '</span><span class="span2">' + bd + ' || ' + oc + ' = ' + (bd || oc) + '</span></div>');
			document.write('<hr style="clear: left;" />');

			document.write('<div style="float: left;"')
			document.write('<span>' + na + ' || ' + ua + ' = ' + (na || ua) + '</span><span class="span1">' + nb + ' || ' + ua + ' = ' + (nb || ua) + '</span><br />');
			document.write('<span>' + na + ' || ' + la + ' = ' + (na || la) + '</span><span class="span1">' + nb + ' || ' + la + ' = ' + (nb || la) + '</span><br />');
			document.write('<span>' + na + ' || ' + ba + ' = ' + (na || ba) + '</span><span class="span1">' + nb + ' || ' + ba + ' = ' + (nb || ba) + '</span><br />');
			document.write('<span>' + na + ' || ' + bb + ' = ' + (na || bb) + '</span><span class="span1">' + nb + ' || ' + bb + ' = ' + (nb || bb) + '</span><br />');
			document.write('<span>' + na + ' || ' + bc + ' = ' + (na || bc) + '</span><span class="span1">' + nb + ' || ' + bc + ' = ' + (nb || bc) + '</span><br />');
			document.write('<span>' + na + ' || ' + bd + ' = ' + (na || bd) + '</span><span class="span1">' + nb + ' || ' + bd + ' = ' + (nb || bd) + '</span><br />');
			document.write('<span>' + na + ' || ' + na + ' = ' + (na || na) + '</span><span class="span1">' + nb + ' || ' + na + ' = ' + (nb || na) + '</span><br />');
			document.write('<span>' + na + ' || ' + nb + ' = ' + (na || nb) + '</span><span class="span1">' + nb + ' || ' + nb + ' = ' + (nb || nb) + '</span><br />');
			document.write('<span>' + na + ' || ' + nc + ' = ' + (na || nc) + '</span><span class="span1">' + nb + ' || ' + nc + ' = ' + (nb || nc) + '</span><br />');
			document.write('<span>' + na + ' || ' + nd + ' = ' + (na || nd) + '</span><span class="span1">' + nb + ' || ' + nd + ' = ' + (nb || nd) + '</span><br />');
			document.write('<span>' + na + ' || ' + ne + ' = ' + (na || ne) + '</span><span class="span1">' + nb + ' || ' + ne + ' = ' + (nb || ne) + '</span><br />');
			document.write('<span>' + na + ' || ' + nf + ' = ' + (na || nf) + '</span><span class="span1">' + nb + ' || ' + nf + ' = ' + (nb || nf) + '</span><br />');
			document.write('<span>' + na + ' || ' + ng + ' = ' + (na || ng) + '</span><span class="span1">' + nb + ' || ' + ng + ' = ' + (nb || ng) + '</span><br />');
			document.write('<span>' + na + ' || ' + nh + ' = ' + (na || nh) + '</span><span class="span1">' + nb + ' || ' + nh + ' = ' + (nb || nh) + '</span><br />');
			document.write('<span>' + na + ' || ' + sa + ' = ' + (na || sa) + '</span><span class="span1">' + nb + ' || ' + sa + ' = ' + (nb || sa) + '</span><br />');
			document.write('<span>' + na + ' || ' + sb + ' = ' + (na || sb) + '</span><span class="span1">' + nb + ' || ' + sb + ' = ' + (nb || sb) + '</span><br />');
			document.write('<span>' + na + ' || ' + sc + ' = ' + (na || sc) + '</span><span class="span1">' + nb + ' || ' + sc + ' = ' + (nb || sc) + '</span><br />');
			document.write('<span>' + na + ' || ' + sd + ' = ' + (na || sd) + '</span><span class="span1">' + nb + ' || ' + sd + ' = ' + (nb || sd) + '</span><br />');
			document.write('<span>' + na + ' || ' + aa + ' = ' + (na || aa) + '</span><span class="span1">' + nb + ' || ' + aa + ' = ' + (nb || aa) + '</span><br />');
			document.write('<span>' + na + ' || ' + ab + ' = ' + (na || ab) + '</span><span class="span1">' + nb + ' || ' + ab + ' = ' + (nb || ab) + '</span><br />');
			document.write('<span>' + na + ' || ' + ac + ' = ' + (na || ac) + '</span><span class="span1">' + nb + ' || ' + ac + ' = ' + (nb || ac) + '</span><br />');
			document.write('<span>' + na + ' || ' + oa + ' = ' + (na || oa) + '</span><span class="span1">' + nb + ' || ' + oa + ' = ' + (nb || oa) + '</span><br />');
			document.write('<span>' + na + ' || ' + ob + ' = ' + (na || ob) + '</span><span class="span1">' + nb + ' || ' + ob + ' = ' + (nb || ob) + '</span><br />');
			document.write('<span>' + na + ' || ' + oc + ' = ' + (na || oc) + '</span><span class="span1">' + nb + ' || ' + oc + ' = ' + (nb || oc) + '</span></div>');

			document.write('<div style="float: left; margin-left: 680px;"')
			document.write('<span>' + nc + ' || ' + ua + ' = ' + (nc || ua) + '</span><span class="span2">' + nd + ' || ' + ua + ' = ' + (nd || ua) + '</span><br />');
			document.write('<span>' + nc + ' || ' + la + ' = ' + (nc || la) + '</span><span class="span2">' + nd + ' || ' + la + ' = ' + (nd || la) + '</span><br />');
			document.write('<span>' + nc + ' || ' + ba + ' = ' + (nc || ba) + '</span><span class="span2">' + nd + ' || ' + ba + ' = ' + (nd || ba) + '</span><br />');
			document.write('<span>' + nc + ' || ' + bb + ' = ' + (nc || bb) + '</span><span class="span2">' + nd + ' || ' + bb + ' = ' + (nd || bb) + '</span><br />');
			document.write('<span>' + nc + ' || ' + bc + ' = ' + (nc || bc) + '</span><span class="span2">' + nd + ' || ' + bc + ' = ' + (nd || bc) + '</span><br />');
			document.write('<span>' + nc + ' || ' + bd + ' = ' + (nc || bd) + '</span><span class="span2">' + nd + ' || ' + bd + ' = ' + (nd || bd) + '</span><br />');
			document.write('<span>' + nc + ' || ' + na + ' = ' + (nc || na) + '</span><span class="span2">' + nd + ' || ' + na + ' = ' + (nd || na) + '</span><br />');
			document.write('<span>' + nc + ' || ' + nb + ' = ' + (nc || nb) + '</span><span class="span2">' + nd + ' || ' + nb + ' = ' + (nd || nb) + '</span><br />');
			document.write('<span>' + nc + ' || ' + nc + ' = ' + (nc || nc) + '</span><span class="span2">' + nd + ' || ' + nc + ' = ' + (nd || nc) + '</span><br />');
			document.write('<span>' + nc + ' || ' + nd + ' = ' + (nc || nd) + '</span><span class="span2">' + nd + ' || ' + nd + ' = ' + (nd || nd) + '</span><br />');
			document.write('<span>' + nc + ' || ' + ne + ' = ' + (nc || ne) + '</span><span class="span2">' + nd + ' || ' + ne + ' = ' + (nd || ne) + '</span><br />');
			document.write('<span>' + nc + ' || ' + nf + ' = ' + (nc || nf) + '</span><span class="span2">' + nd + ' || ' + nf + ' = ' + (nd || nf) + '</span><br />');
			document.write('<span>' + nc + ' || ' + ng + ' = ' + (nc || ng) + '</span><span class="span2">' + nd + ' || ' + ng + ' = ' + (nd || ng) + '</span><br />');
			document.write('<span>' + nc + ' || ' + nh + ' = ' + (nc || nh) + '</span><span class="span2">' + nd + ' || ' + nh + ' = ' + (nd || nh) + '</span><br />');
			document.write('<span>' + nc + ' || ' + sa + ' = ' + (nc || sa) + '</span><span class="span2">' + nd + ' || ' + sa + ' = ' + (nd || sa) + '</span><br />');
			document.write('<span>' + nc + ' || ' + sb + ' = ' + (nc || sb) + '</span><span class="span2">' + nd + ' || ' + sb + ' = ' + (nd || sb) + '</span><br />');
			document.write('<span>' + nc + ' || ' + sc + ' = ' + (nc || sc) + '</span><span class="span2">' + nd + ' || ' + sc + ' = ' + (nd || sc) + '</span><br />');
			document.write('<span>' + nc + ' || ' + sd + ' = ' + (nc || sd) + '</span><span class="span2">' + nd + ' || ' + sd + ' = ' + (nd || sd) + '</span><br />');
			document.write('<span>' + nc + ' || ' + aa + ' = ' + (nc || aa) + '</span><span class="span2">' + nd + ' || ' + aa + ' = ' + (nd || aa) + '</span><br />');
			document.write('<span>' + nc + ' || ' + ab + ' = ' + (nc || ab) + '</span><span class="span2">' + nd + ' || ' + ab + ' = ' + (nd || ab) + '</span><br />');
			document.write('<span>' + nc + ' || ' + ac + ' = ' + (nc || ac) + '</span><span class="span2">' + nd + ' || ' + ac + ' = ' + (nd || ac) + '</span><br />');
			document.write('<span>' + nc + ' || ' + oa + ' = ' + (nc || oa) + '</span><span class="span2">' + nd + ' || ' + oa + ' = ' + (nd || oa) + '</span><br />');
			document.write('<span>' + nc + ' || ' + ob + ' = ' + (nc || ob) + '</span><span class="span2">' + nd + ' || ' + ob + ' = ' + (nd || ob) + '</span><br />');
			document.write('<span>' + nc + ' || ' + oc + ' = ' + (nc || oc) + '</span><span class="span2">' + nd + ' || ' + oc + ' = ' + (nd || oc) + '</span></div>');	
			document.write('<hr style="clear: left;" />');		

			document.write('<div style="float: left;"')
			document.write('<span>' + ne + ' || ' + ua + ' = ' + (ne || ua) + '</span><span class="span1">' + nf + ' || ' + ua + ' = ' + (nf || ua) + '</span><br />');
			document.write('<span>' + ne + ' || ' + la + ' = ' + (ne || la) + '</span><span class="span1">' + nf + ' || ' + la + ' = ' + (nf || la) + '</span><br />');
			document.write('<span>' + ne + ' || ' + ba + ' = ' + (ne || ba) + '</span><span class="span1">' + nf + ' || ' + ba + ' = ' + (nf || ba) + '</span><br />');
			document.write('<span>' + ne + ' || ' + bb + ' = ' + (ne || bb) + '</span><span class="span1">' + nf + ' || ' + bb + ' = ' + (nf || bb) + '</span><br />');
			document.write('<span>' + ne + ' || ' + bc + ' = ' + (ne || bc) + '</span><span class="span1">' + nf + ' || ' + bc + ' = ' + (nf || bc) + '</span><br />');
			document.write('<span>' + ne + ' || ' + bd + ' = ' + (ne || bd) + '</span><span class="span1">' + nf + ' || ' + bd + ' = ' + (nf || bd) + '</span><br />');
			document.write('<span>' + ne + ' || ' + na + ' = ' + (ne || na) + '</span><span class="span1">' + nf + ' || ' + na + ' = ' + (nf || na) + '</span><br />');
			document.write('<span>' + ne + ' || ' + nb + ' = ' + (ne || nb) + '</span><span class="span1">' + nf + ' || ' + nb + ' = ' + (nf || nb) + '</span><br />');
			document.write('<span>' + ne + ' || ' + nc + ' = ' + (ne || nc) + '</span><span class="span1">' + nf + ' || ' + nc + ' = ' + (nf || nc) + '</span><br />');
			document.write('<span>' + ne + ' || ' + nd + ' = ' + (ne || nd) + '</span><span class="span1">' + nf + ' || ' + nd + ' = ' + (nf || nd) + '</span><br />');
			document.write('<span>' + ne + ' || ' + ne + ' = ' + (ne || ne) + '</span><span class="span1">' + nf + ' || ' + ne + ' = ' + (nf || ne) + '</span><br />');
			document.write('<span>' + ne + ' || ' + nf + ' = ' + (ne || nf) + '</span><span class="span1">' + nf + ' || ' + nf + ' = ' + (nf || nf) + '</span><br />');
			document.write('<span>' + ne + ' || ' + ng + ' = ' + (ne || ng) + '</span><span class="span1">' + nf + ' || ' + ng + ' = ' + (nf || ng) + '</span><br />');
			document.write('<span>' + ne + ' || ' + nh + ' = ' + (ne || nh) + '</span><span class="span1">' + nf + ' || ' + nh + ' = ' + (nf || nh) + '</span><br />');
			document.write('<span>' + ne + ' || ' + sa + ' = ' + (ne || sa) + '</span><span class="span1">' + nf + ' || ' + sa + ' = ' + (nf || sa) + '</span><br />');
			document.write('<span>' + ne + ' || ' + sb + ' = ' + (ne || sb) + '</span><span class="span1">' + nf + ' || ' + sb + ' = ' + (nf || sb) + '</span><br />');
			document.write('<span>' + ne + ' || ' + sc + ' = ' + (ne || sc) + '</span><span class="span1">' + nf + ' || ' + sc + ' = ' + (nf || sc) + '</span><br />');
			document.write('<span>' + ne + ' || ' + sd + ' = ' + (ne || sd) + '</span><span class="span1">' + nf + ' || ' + sd + ' = ' + (nf || sd) + '</span><br />');
			document.write('<span>' + ne + ' || ' + aa + ' = ' + (ne || aa) + '</span><span class="span1">' + nf + ' || ' + aa + ' = ' + (nf || aa) + '</span><br />');
			document.write('<span>' + ne + ' || ' + ab + ' = ' + (ne || ab) + '</span><span class="span1">' + nf + ' || ' + ab + ' = ' + (nf || ab) + '</span><br />');
			document.write('<span>' + ne + ' || ' + ac + ' = ' + (ne || ac) + '</span><span class="span1">' + nf + ' || ' + ac + ' = ' + (nf || ac) + '</span><br />');
			document.write('<span>' + ne + ' || ' + oa + ' = ' + (ne || oa) + '</span><span class="span1">' + nf + ' || ' + oa + ' = ' + (nf || oa) + '</span><br />');
			document.write('<span>' + ne + ' || ' + ob + ' = ' + (ne || ob) + '</span><span class="span1">' + nf + ' || ' + ob + ' = ' + (nf || ob) + '</span><br />');
			document.write('<span>' + ne + ' || ' + oc + ' = ' + (ne || oc) + '</span><span class="span1">' + nf + ' || ' + oc + ' = ' + (nf || oc) + '</span></div>');

			document.write('<div style="float: left; margin-left: 710px;"')
			document.write('<span>' + ng + ' || ' + ua + ' = ' + (ng || ua) + '</span><span class="span2">' + nh + ' || ' + ua + ' = ' + (nh || ua) + '</span><br />');
			document.write('<span>' + ng + ' || ' + la + ' = ' + (ng || la) + '</span><span class="span2">' + nh + ' || ' + la + ' = ' + (nh || la) + '</span><br />');
			document.write('<span>' + ng + ' || ' + ba + ' = ' + (ng || ba) + '</span><span class="span2">' + nh + ' || ' + ba + ' = ' + (nh || ba) + '</span><br />');
			document.write('<span>' + ng + ' || ' + bb + ' = ' + (ng || bb) + '</span><span class="span2">' + nh + ' || ' + bb + ' = ' + (nh || bb) + '</span><br />');
			document.write('<span>' + ng + ' || ' + bc + ' = ' + (ng || bc) + '</span><span class="span2">' + nh + ' || ' + bc + ' = ' + (nh || bc) + '</span><br />');
			document.write('<span>' + ng + ' || ' + bd + ' = ' + (ng || bd) + '</span><span class="span2">' + nh + ' || ' + bd + ' = ' + (nh || bd) + '</span><br />');
			document.write('<span>' + ng + ' || ' + na + ' = ' + (ng || na) + '</span><span class="span2">' + nh + ' || ' + na + ' = ' + (nh || na) + '</span><br />');
			document.write('<span>' + ng + ' || ' + nb + ' = ' + (ng || nb) + '</span><span class="span2">' + nh + ' || ' + nb + ' = ' + (nh || nb) + '</span><br />');
			document.write('<span>' + ng + ' || ' + nc + ' = ' + (ng || nc) + '</span><span class="span2">' + nh + ' || ' + nc + ' = ' + (nh || nc) + '</span><br />');
			document.write('<span>' + ng + ' || ' + nd + ' = ' + (ng || nd) + '</span><span class="span2">' + nh + ' || ' + nd + ' = ' + (nh || nd) + '</span><br />');
			document.write('<span>' + ng + ' || ' + ne + ' = ' + (ng || ne) + '</span><span class="span2">' + nh + ' || ' + ne + ' = ' + (nh || ne) + '</span><br />');
			document.write('<span>' + ng + ' || ' + nf + ' = ' + (ng || nf) + '</span><span class="span2">' + nh + ' || ' + nf + ' = ' + (nh || nf) + '</span><br />');
			document.write('<span>' + ng + ' || ' + ng + ' = ' + (ng || ng) + '</span><span class="span2">' + nh + ' || ' + ng + ' = ' + (nh || ng) + '</span><br />');
			document.write('<span>' + ng + ' || ' + nh + ' = ' + (ng || nh) + '</span><span class="span2">' + nh + ' || ' + nh + ' = ' + (nh || nh) + '</span><br />');
			document.write('<span>' + ng + ' || ' + sa + ' = ' + (ng || sa) + '</span><span class="span2">' + nh + ' || ' + sa + ' = ' + (nh || sa) + '</span><br />');
			document.write('<span>' + ng + ' || ' + sb + ' = ' + (ng || sb) + '</span><span class="span2">' + nh + ' || ' + sb + ' = ' + (nh || sb) + '</span><br />');
			document.write('<span>' + ng + ' || ' + sc + ' = ' + (ng || sc) + '</span><span class="span2">' + nh + ' || ' + sc + ' = ' + (nh || sc) + '</span><br />');
			document.write('<span>' + ng + ' || ' + sd + ' = ' + (ng || sd) + '</span><span class="span2">' + nh + ' || ' + sd + ' = ' + (nh || sd) + '</span><br />');
			document.write('<span>' + ng + ' || ' + aa + ' = ' + (ng || aa) + '</span><span class="span2">' + nh + ' || ' + aa + ' = ' + (nh || aa) + '</span><br />');
			document.write('<span>' + ng + ' || ' + ab + ' = ' + (ng || ab) + '</span><span class="span2">' + nh + ' || ' + ab + ' = ' + (nh || ab) + '</span><br />');
			document.write('<span>' + ng + ' || ' + ac + ' = ' + (ng || ac) + '</span><span class="span2">' + nh + ' || ' + ac + ' = ' + (nh || ac) + '</span><br />');
			document.write('<span>' + ng + ' || ' + oa + ' = ' + (ng || oa) + '</span><span class="span2">' + nh + ' || ' + oa + ' = ' + (nh || oa) + '</span><br />');
			document.write('<span>' + ng + ' || ' + ob + ' = ' + (ng || ob) + '</span><span class="span2">' + nh + ' || ' + ob + ' = ' + (nh || ob) + '</span><br />');
			document.write('<span>' + ng + ' || ' + oc + ' = ' + (ng || oc) + '</span><span class="span2">' + nh + ' || ' + oc + ' = ' + (nh || oc) + '</span></div>');
			document.write('<hr style="clear: left;" />');

			document.write('<div style="float: left;"')
			document.write('<span>' + sa + ' || ' + ua + ' = ' + (sa || ua) + '</span><span class="span1">' + sb + ' || ' + ua + ' = ' + (sb || ua) + '</span><br />');
			document.write('<span>' + sa + ' || ' + la + ' = ' + (sa || la) + '</span><span class="span1">' + sb + ' || ' + la + ' = ' + (sb || la) + '</span><br />');
			document.write('<span>' + sa + ' || ' + ba + ' = ' + (sa || ba) + '</span><span class="span1">' + sb + ' || ' + ba + ' = ' + (sb || ba) + '</span><br />');
			document.write('<span>' + sa + ' || ' + bb + ' = ' + (sa || bb) + '</span><span class="span1">' + sb + ' || ' + bb + ' = ' + (sb || bb) + '</span><br />');
			document.write('<span>' + sa + ' || ' + bc + ' = ' + (sa || bc) + '</span><span class="span1">' + sb + ' || ' + bc + ' = ' + (sb || bc) + '</span><br />');
			document.write('<span>' + sa + ' || ' + bd + ' = ' + (sa || bd) + '</span><span class="span1">' + sb + ' || ' + bd + ' = ' + (sb || bd) + '</span><br />');
			document.write('<span>' + sa + ' || ' + na + ' = ' + (sa || na) + '</span><span class="span1">' + sb + ' || ' + na + ' = ' + (sb || na) + '</span><br />');
			document.write('<span>' + sa + ' || ' + nb + ' = ' + (sa || nb) + '</span><span class="span1">' + sb + ' || ' + nb + ' = ' + (sb || nb) + '</span><br />');
			document.write('<span>' + sa + ' || ' + nc + ' = ' + (sa || nc) + '</span><span class="span1">' + sb + ' || ' + nc + ' = ' + (sb || nc) + '</span><br />');
			document.write('<span>' + sa + ' || ' + nd + ' = ' + (sa || nd) + '</span><span class="span1">' + sb + ' || ' + nd + ' = ' + (sb || nd) + '</span><br />');
			document.write('<span>' + sa + ' || ' + ne + ' = ' + (sa || ne) + '</span><span class="span1">' + sb + ' || ' + ne + ' = ' + (sb || ne) + '</span><br />');
			document.write('<span>' + sa + ' || ' + nf + ' = ' + (sa || nf) + '</span><span class="span1">' + sb + ' || ' + nf + ' = ' + (sb || nf) + '</span><br />');
			document.write('<span>' + sa + ' || ' + ng + ' = ' + (sa || ng) + '</span><span class="span1">' + sb + ' || ' + ng + ' = ' + (sb || ng) + '</span><br />');
			document.write('<span>' + sa + ' || ' + nh + ' = ' + (sa || nh) + '</span><span class="span1">' + sb + ' || ' + nh + ' = ' + (sb || nh) + '</span><br />');
			document.write('<span>' + sa + ' || ' + sa + ' = ' + (sa || sa) + '</span><span class="span1">' + sb + ' || ' + sa + ' = ' + (sb || sa) + '</span><br />');
			document.write('<span>' + sa + ' || ' + sb + ' = ' + (sa || sb) + '</span><span class="span1">' + sb + ' || ' + sb + ' = ' + (sb || sb) + '</span><br />');
			document.write('<span>' + sa + ' || ' + sc + ' = ' + (sa || sc) + '</span><span class="span1">' + sb + ' || ' + sc + ' = ' + (sb || sc) + '</span><br />');
			document.write('<span>' + sa + ' || ' + sd + ' = ' + (sa || sd) + '</span><span class="span1">' + sb + ' || ' + sd + ' = ' + (sb || sd) + '</span><br />');
			document.write('<span>' + sa + ' || ' + aa + ' = ' + (sa || aa) + '</span><span class="span1">' + sb + ' || ' + aa + ' = ' + (sb || aa) + '</span><br />');
			document.write('<span>' + sa + ' || ' + ab + ' = ' + (sa || ab) + '</span><span class="span1">' + sb + ' || ' + ab + ' = ' + (sb || ab) + '</span><br />');
			document.write('<span>' + sa + ' || ' + ac + ' = ' + (sa || ac) + '</span><span class="span1">' + sb + ' || ' + ac + ' = ' + (sb || ac) + '</span><br />');
			document.write('<span>' + sa + ' || ' + oa + ' = ' + (sa || oa) + '</span><span class="span1">' + sb + ' || ' + oa + ' = ' + (sb || oa) + '</span><br />');
			document.write('<span>' + sa + ' || ' + ob + ' = ' + (sa || ob) + '</span><span class="span1">' + sb + ' || ' + ob + ' = ' + (sb || ob) + '</span><br />');
			document.write('<span>' + sa + ' || ' + oc + ' = ' + (sa || oc) + '</span><span class="span1">' + sb + ' || ' + oc + ' = ' + (sb || oc) + '</span></div>');

			document.write('<div style="float: left; margin-left: 710px;"')
			document.write('<span>' + sc + ' || ' + ua + ' = ' + (sc || ua) + '</span><span class="span2">' + sd + ' || ' + ua + ' = ' + (sd || ua) + '</span><br />');
			document.write('<span>' + sc + ' || ' + la + ' = ' + (sc || la) + '</span><span class="span2">' + sd + ' || ' + la + ' = ' + (sd || la) + '</span><br />');
			document.write('<span>' + sc + ' || ' + ba + ' = ' + (sc || ba) + '</span><span class="span2">' + sd + ' || ' + ba + ' = ' + (sd || ba) + '</span><br />');
			document.write('<span>' + sc + ' || ' + bb + ' = ' + (sc || bb) + '</span><span class="span2">' + sd + ' || ' + bb + ' = ' + (sd || bb) + '</span><br />');
			document.write('<span>' + sc + ' || ' + bc + ' = ' + (sc || bc) + '</span><span class="span2">' + sd + ' || ' + bc + ' = ' + (sd || bc) + '</span><br />');
			document.write('<span>' + sc + ' || ' + bd + ' = ' + (sc || bd) + '</span><span class="span2">' + sd + ' || ' + bd + ' = ' + (sd || bd) + '</span><br />');
			document.write('<span>' + sc + ' || ' + na + ' = ' + (sc || na) + '</span><span class="span2">' + sd + ' || ' + na + ' = ' + (sd || na) + '</span><br />');
			document.write('<span>' + sc + ' || ' + nb + ' = ' + (sc || nb) + '</span><span class="span2">' + sd + ' || ' + nb + ' = ' + (sd || nb) + '</span><br />');
			document.write('<span>' + sc + ' || ' + nc + ' = ' + (sc || nc) + '</span><span class="span2">' + sd + ' || ' + nc + ' = ' + (sd || nc) + '</span><br />');
			document.write('<span>' + sc + ' || ' + nd + ' = ' + (sc || nd) + '</span><span class="span2">' + sd + ' || ' + nd + ' = ' + (sd || nd) + '</span><br />');
			document.write('<span>' + sc + ' || ' + ne + ' = ' + (sc || ne) + '</span><span class="span2">' + sd + ' || ' + ne + ' = ' + (sd || ne) + '</span><br />');
			document.write('<span>' + sc + ' || ' + nf + ' = ' + (sc || nf) + '</span><span class="span2">' + sd + ' || ' + nf + ' = ' + (sd || nf) + '</span><br />');
			document.write('<span>' + sc + ' || ' + ng + ' = ' + (sc || ng) + '</span><span class="span2">' + sd + ' || ' + ng + ' = ' + (sd || ng) + '</span><br />');
			document.write('<span>' + sc + ' || ' + nh + ' = ' + (sc || nh) + '</span><span class="span2">' + sd + ' || ' + nh + ' = ' + (sd || nh) + '</span><br />');
			document.write('<span>' + sc + ' || ' + sa + ' = ' + (sc || sa) + '</span><span class="span2">' + sd + ' || ' + sa + ' = ' + (sd || sa) + '</span><br />');
			document.write('<span>' + sc + ' || ' + sb + ' = ' + (sc || sb) + '</span><span class="span2">' + sd + ' || ' + sb + ' = ' + (sd || sb) + '</span><br />');
			document.write('<span>' + sc + ' || ' + sc + ' = ' + (sc || sc) + '</span><span class="span2">' + sd + ' || ' + sc + ' = ' + (sd || sc) + '</span><br />');
			document.write('<span>' + sc + ' || ' + sd + ' = ' + (sc || sd) + '</span><span class="span2">' + sd + ' || ' + sd + ' = ' + (sd || sd) + '</span><br />');
			document.write('<span>' + sc + ' || ' + aa + ' = ' + (sc || aa) + '</span><span class="span2">' + sd + ' || ' + aa + ' = ' + (sd || aa) + '</span><br />');
			document.write('<span>' + sc + ' || ' + ab + ' = ' + (sc || ab) + '</span><span class="span2">' + sd + ' || ' + ab + ' = ' + (sd || ab) + '</span><br />');
			document.write('<span>' + sc + ' || ' + ac + ' = ' + (sc || ac) + '</span><span class="span2">' + sd + ' || ' + ac + ' = ' + (sd || ac) + '</span><br />');
			document.write('<span>' + sc + ' || ' + oa + ' = ' + (sc || oa) + '</span><span class="span2">' + sd + ' || ' + oa + ' = ' + (sd || oa) + '</span><br />');
			document.write('<span>' + sc + ' || ' + ob + ' = ' + (sc || ob) + '</span><span class="span2">' + sd + ' || ' + ob + ' = ' + (sd || ob) + '</span><br />');
			document.write('<span>' + sc + ' || ' + oc + ' = ' + (sc || oc) + '</span><span class="span2">' + sd + ' || ' + oc + ' = ' + (sd || oc) + '</span></div>');
			document.write('<hr style="clear: left;" />');

			document.write('<div style="float: left;"')
			document.write('<span>' + aa + ' || ' + ua + ' = ' + (aa || ua) + '</span><span class="span1">' + ab + ' || ' + ua + ' = ' + (ab || ua) + '</span><br />');
			document.write('<span>' + aa + ' || ' + la + ' = ' + (aa || la) + '</span><span class="span1">' + ab + ' || ' + la + ' = ' + (ab || la) + '</span><br />');
			document.write('<span>' + aa + ' || ' + ba + ' = ' + (aa || ba) + '</span><span class="span1">' + ab + ' || ' + ba + ' = ' + (ab || ba) + '</span><br />');
			document.write('<span>' + aa + ' || ' + bb + ' = ' + (aa || bb) + '</span><span class="span1">' + ab + ' || ' + bb + ' = ' + (ab || bb) + '</span><br />');
			document.write('<span>' + aa + ' || ' + bc + ' = ' + (aa || bc) + '</span><span class="span1">' + ab + ' || ' + bc + ' = ' + (ab || bc) + '</span><br />');
			document.write('<span>' + aa + ' || ' + bd + ' = ' + (aa || bd) + '</span><span class="span1">' + ab + ' || ' + bd + ' = ' + (ab || bd) + '</span><br />');
			document.write('<span>' + aa + ' || ' + na + ' = ' + (aa || na) + '</span><span class="span1">' + ab + ' || ' + na + ' = ' + (ab || na) + '</span><br />');
			document.write('<span>' + aa + ' || ' + nb + ' = ' + (aa || nb) + '</span><span class="span1">' + ab + ' || ' + nb + ' = ' + (ab || nb) + '</span><br />');
			document.write('<span>' + aa + ' || ' + nc + ' = ' + (aa || nc) + '</span><span class="span1">' + ab + ' || ' + nc + ' = ' + (ab || nc) + '</span><br />');
			document.write('<span>' + aa + ' || ' + nd + ' = ' + (aa || nd) + '</span><span class="span1">' + ab + ' || ' + nd + ' = ' + (ab || nd) + '</span><br />');
			document.write('<span>' + aa + ' || ' + ne + ' = ' + (aa || ne) + '</span><span class="span1">' + ab + ' || ' + ne + ' = ' + (ab || ne) + '</span><br />');
			document.write('<span>' + aa + ' || ' + nf + ' = ' + (aa || nf) + '</span><span class="span1">' + ab + ' || ' + nf + ' = ' + (ab || nf) + '</span><br />');
			document.write('<span>' + aa + ' || ' + ng + ' = ' + (aa || ng) + '</span><span class="span1">' + ab + ' || ' + ng + ' = ' + (ab || ng) + '</span><br />');
			document.write('<span>' + aa + ' || ' + nh + ' = ' + (aa || nh) + '</span><span class="span1">' + ab + ' || ' + nh + ' = ' + (ab || nh) + '</span><br />');
			document.write('<span>' + aa + ' || ' + sa + ' = ' + (aa || sa) + '</span><span class="span1">' + ab + ' || ' + sa + ' = ' + (ab || sa) + '</span><br />');
			document.write('<span>' + aa + ' || ' + sb + ' = ' + (aa || sb) + '</span><span class="span1">' + ab + ' || ' + sb + ' = ' + (ab || sb) + '</span><br />');
			document.write('<span>' + aa + ' || ' + sc + ' = ' + (aa || sc) + '</span><span class="span1">' + ab + ' || ' + sc + ' = ' + (ab || sc) + '</span><br />');
			document.write('<span>' + aa + ' || ' + sd + ' = ' + (aa || sd) + '</span><span class="span1">' + ab + ' || ' + sd + ' = ' + (ab || sd) + '</span><br />');
			document.write('<span>' + aa + ' || ' + aa + ' = ' + (aa || aa) + '</span><span class="span1">' + ab + ' || ' + aa + ' = ' + (ab || aa) + '</span><br />');
			document.write('<span>' + aa + ' || ' + ab + ' = ' + (aa || ab) + '</span><span class="span1">' + ab + ' || ' + ab + ' = ' + (ab || ab) + '</span><br />');
			document.write('<span>' + aa + ' || ' + ac + ' = ' + (aa || ac) + '</span><span class="span1">' + ab + ' || ' + ac + ' = ' + (ab || ac) + '</span><br />');
			document.write('<span>' + aa + ' || ' + oa + ' = ' + (aa || oa) + '</span><span class="span1">' + ab + ' || ' + oa + ' = ' + (ab || oa) + '</span><br />');
			document.write('<span>' + aa + ' || ' + ob + ' = ' + (aa || ob) + '</span><span class="span1">' + ab + ' || ' + ob + ' = ' + (ab || ob) + '</span><br />');
			document.write('<span>' + aa + ' || ' + oc + ' = ' + (aa || oc) + '</span><span class="span1">' + ab + ' || ' + oc + ' = ' + (ab || oc) + '</span></div>');

			document.write('<div style="float: left; margin-left: 840px;"')
			document.write('<span>' + ac + ' || ' + ua + ' = ' + (ac || ua) + '</span><br />');
			document.write('<span>' + ac + ' || ' + la + ' = ' + (ac || la) + '</span><br />');
			document.write('<span>' + ac + ' || ' + ba + ' = ' + (ac || ba) + '</span><br />');
			document.write('<span>' + ac + ' || ' + bb + ' = ' + (ac || bb) + '</span><br />');
			document.write('<span>' + ac + ' || ' + bc + ' = ' + (ac || bc) + '</span><br />');
			document.write('<span>' + ac + ' || ' + bd + ' = ' + (ac || bd) + '</span><br />');
			document.write('<span>' + ac + ' || ' + na + ' = ' + (ac || na) + '</span><br />');
			document.write('<span>' + ac + ' || ' + nb + ' = ' + (ac || nb) + '</span><br />');
			document.write('<span>' + ac + ' || ' + nc + ' = ' + (ac || nc) + '</span><br />');
			document.write('<span>' + ac + ' || ' + nd + ' = ' + (ac || nd) + '</span><br />');
			document.write('<span>' + ac + ' || ' + ne + ' = ' + (ac || ne) + '</span><br />');
			document.write('<span>' + ac + ' || ' + nf + ' = ' + (ac || nf) + '</span><br />');
			document.write('<span>' + ac + ' || ' + ng + ' = ' + (ac || ng) + '</span><br />');
			document.write('<span>' + ac + ' || ' + nh + ' = ' + (ac || nh) + '</span><br />');
			document.write('<span>' + ac + ' || ' + sa + ' = ' + (ac || sa) + '</span><br />');
			document.write('<span>' + ac + ' || ' + sb + ' = ' + (ac || sb) + '</span><br />');
			document.write('<span>' + ac + ' || ' + sc + ' = ' + (ac || sc) + '</span><br />');
			document.write('<span>' + ac + ' || ' + sd + ' = ' + (ac || sd) + '</span><br />');
			document.write('<span>' + ac + ' || ' + aa + ' = ' + (ac || aa) + '</span><br />');
			document.write('<span>' + ac + ' || ' + ab + ' = ' + (ac || ab) + '</span><br />');
			document.write('<span>' + ac + ' || ' + ac + ' = ' + (ac || ac) + '</span><br />');
			document.write('<span>' + ac + ' || ' + oa + ' = ' + (ac || oa) + '</span><br />');
			document.write('<span>' + ac + ' || ' + ob + ' = ' + (ac || ob) + '</span><br />');
			document.write('<span>' + ac + ' || ' + oc + ' = ' + (ac || oc) + '</span></div>');
			document.write('<hr style="clear: left;" />');

			document.write('<div style="float: left;"')
			document.write('<span>' + oa + ' || ' + ua + ' = ' + (oa || ua) + '</span><span class="span1">' + ob + ' || ' + ua + ' = ' + (ob || ua) + '</span><br />');
			document.write('<span>' + oa + ' || ' + la + ' = ' + (oa || la) + '</span><span class="span1">' + ob + ' || ' + la + ' = ' + (ob || la) + '</span><br />');
			document.write('<span>' + oa + ' || ' + ba + ' = ' + (oa || ba) + '</span><span class="span1">' + ob + ' || ' + ba + ' = ' + (ob || ba) + '</span><br />');
			document.write('<span>' + oa + ' || ' + bb + ' = ' + (oa || bb) + '</span><span class="span1">' + ob + ' || ' + bb + ' = ' + (ob || bb) + '</span><br />');
			document.write('<span>' + oa + ' || ' + bc + ' = ' + (oa || bc) + '</span><span class="span1">' + ob + ' || ' + bc + ' = ' + (ob || bc) + '</span><br />');
			document.write('<span>' + oa + ' || ' + bd + ' = ' + (oa || bd) + '</span><span class="span1">' + ob + ' || ' + bd + ' = ' + (ob || bd) + '</span><br />');
			document.write('<span>' + oa + ' || ' + na + ' = ' + (oa || na) + '</span><span class="span1">' + ob + ' || ' + na + ' = ' + (ob || na) + '</span><br />');
			document.write('<span>' + oa + ' || ' + nb + ' = ' + (oa || nb) + '</span><span class="span1">' + ob + ' || ' + nb + ' = ' + (ob || nb) + '</span><br />');
			document.write('<span>' + oa + ' || ' + nc + ' = ' + (oa || nc) + '</span><span class="span1">' + ob + ' || ' + nc + ' = ' + (ob || nc) + '</span><br />');
			document.write('<span>' + oa + ' || ' + nd + ' = ' + (oa || nd) + '</span><span class="span1">' + ob + ' || ' + nd + ' = ' + (ob || nd) + '</span><br />');
			document.write('<span>' + oa + ' || ' + ne + ' = ' + (oa || ne) + '</span><span class="span1">' + ob + ' || ' + ne + ' = ' + (ob || ne) + '</span><br />');
			document.write('<span>' + oa + ' || ' + nf + ' = ' + (oa || nf) + '</span><span class="span1">' + ob + ' || ' + nf + ' = ' + (ob || nf) + '</span><br />');
			document.write('<span>' + oa + ' || ' + ng + ' = ' + (oa || ng) + '</span><span class="span1">' + ob + ' || ' + ng + ' = ' + (ob || ng) + '</span><br />');
			document.write('<span>' + oa + ' || ' + nh + ' = ' + (oa || nh) + '</span><span class="span1">' + ob + ' || ' + nh + ' = ' + (ob || nh) + '</span><br />');
			document.write('<span>' + oa + ' || ' + sa + ' = ' + (oa || sa) + '</span><span class="span1">' + ob + ' || ' + sa + ' = ' + (ob || sa) + '</span><br />');
			document.write('<span>' + oa + ' || ' + sb + ' = ' + (oa || sb) + '</span><span class="span1">' + ob + ' || ' + sb + ' = ' + (ob || sb) + '</span><br />');
			document.write('<span>' + oa + ' || ' + sc + ' = ' + (oa || sc) + '</span><span class="span1">' + ob + ' || ' + sc + ' = ' + (ob || sc) + '</span><br />');
			document.write('<span>' + oa + ' || ' + sd + ' = ' + (oa || sd) + '</span><span class="span1">' + ob + ' || ' + sd + ' = ' + (ob || sd) + '</span><br />');
			document.write('<span>' + oa + ' || ' + aa + ' = ' + (oa || aa) + '</span><span class="span1">' + ob + ' || ' + aa + ' = ' + (ob || aa) + '</span><br />');
			document.write('<span>' + oa + ' || ' + ab + ' = ' + (oa || ab) + '</span><span class="span1">' + ob + ' || ' + ab + ' = ' + (ob || ab) + '</span><br />');
			document.write('<span>' + oa + ' || ' + ac + ' = ' + (oa || ac) + '</span><span class="span1">' + ob + ' || ' + ac + ' = ' + (ob || ac) + '</span><br />');
			document.write('<span>' + oa + ' || ' + oa + ' = ' + (oa || oa) + '</span><span class="span1">' + ob + ' || ' + oa + ' = ' + (ob || oa) + '</span><br />');
			document.write('<span>' + oa + ' || ' + ob + ' = ' + (oa || ob) + '</span><span class="span1">' + ob + ' || ' + ob + ' = ' + (ob || ob) + '</span><br />');
			document.write('<span>' + oa + ' || ' + oc + ' = ' + (oa || oc) + '</span><span class="span1">' + ob + ' || ' + oc + ' = ' + (ob || oc) + '</span></div>');

			document.write('<div style="float: left; margin-left: 600px;"')
			document.write('<span>' + oc + ' || ' + ua + ' = ' + (oc || ua) + '</span><br />');
			document.write('<span>' + oc + ' || ' + la + ' = ' + (oc || la) + '</span><br />');
			document.write('<span>' + oc + ' || ' + ba + ' = ' + (oc || ba) + '</span><br />');
			document.write('<span>' + oc + ' || ' + bb + ' = ' + (oc || bb) + '</span><br />');
			document.write('<span>' + oc + ' || ' + bc + ' = ' + (oc || bc) + '</span><br />');
			document.write('<span>' + oc + ' || ' + bd + ' = ' + (oc || bd) + '</span><br />');
			document.write('<span>' + oc + ' || ' + na + ' = ' + (oc || na) + '</span><br />');
			document.write('<span>' + oc + ' || ' + nb + ' = ' + (oc || nb) + '</span><br />');
			document.write('<span>' + oc + ' || ' + nc + ' = ' + (oc || nc) + '</span><br />');
			document.write('<span>' + oc + ' || ' + nd + ' = ' + (oc || nd) + '</span><br />');
			document.write('<span>' + oc + ' || ' + ne + ' = ' + (oc || ne) + '</span><br />');
			document.write('<span>' + oc + ' || ' + nf + ' = ' + (oc || nf) + '</span><br />');
			document.write('<span>' + oc + ' || ' + ng + ' = ' + (oc || ng) + '</span><br />');
			document.write('<span>' + oc + ' || ' + nh + ' = ' + (oc || nh) + '</span><br />');
			document.write('<span>' + oc + ' || ' + sa + ' = ' + (oc || sa) + '</span><br />');
			document.write('<span>' + oc + ' || ' + sb + ' = ' + (oc || sb) + '</span><br />');
			document.write('<span>' + oc + ' || ' + sc + ' = ' + (oc || sc) + '</span><br />');
			document.write('<span>' + oc + ' || ' + sd + ' = ' + (oc || sd) + '</span><br />');
			document.write('<span>' + oc + ' || ' + aa + ' = ' + (oc || aa) + '</span><br />');
			document.write('<span>' + oc + ' || ' + ab + ' = ' + (oc || ab) + '</span><br />');
			document.write('<span>' + oc + ' || ' + ac + ' = ' + (oc || ac) + '</span><br />');
			document.write('<span>' + oc + ' || ' + oa + ' = ' + (oc || oa) + '</span><br />');
			document.write('<span>' + oc + ' || ' + ob + ' = ' + (oc || ob) + '</span><br />');
			document.write('<span>' + oc + ' || ' + oc + ' = ' + (oc || oc) + '</span></div>');
		</script>
	</body>
</html>

5.5.2. 效果图

% 转运后不良事件动态网络模型分析 % 修复了运算符使用无效的错误 clear; clc; close all; %% 1. 模拟符合因素效应特征的数据 np = 1500; % 样本量 rng(123); % 固定随机种子,保证结果可复现 % 初始化数据结构 data = struct(); %% 基础因素模拟(按效应特征) % T0阶段:转运前基础状态 data.GCS = round(unifrnd(3,15,np,1)); % GCS评分(<8分风险骤增) data.APACHE = round(unifrnd(0,30,np,1)); % APACHE II评分(线性弱相关) data.age = round(normrnd(60,15,np,1)); % 年龄(>65岁风险加速) data.hypertension = randi([0,1],np,1); % 既往高血压史(线性主导) % T1阶段:转运中过程变量 data.transport_time = round(normrnd(18,8,np,1)); % 转运时长(>20分钟风险增速) data.spo2_mean = round(normrnd(94,6,np,1)); % 平均血氧饱和度(<90%风险骤增) data.sedative = randi([0,1],np,1); % 镇静剂使用(负相关) data.respiratory_rate = round(normrnd(18,5,np,1)); % 呼吸频率(<10或>24风险高) data.transport_distance = round(normrnd(10,5,np,1)); % 转运距离(弱线性负相关) data.transport_personnel = randi([1,3],np,1); % 转运人员(弱线性负相关) data.temperature = normrnd(36.5,0.8,np,1); % 体温(<36或>38.5风险高) % T2阶段:转运后状态 data.spo2_final = data.spo2_mean + normrnd(0,2,np,1); % 转运后血氧 data.heart_rate = round(normrnd(85,20,np,1)); % 心率(<50或>120风险高) data.resp_support = randi([0,2],np,1); % 呼吸支持(正相关) %% 构建结局变量:转运后不良事件(严格按贡献度加权) % 1. GCS评分(25.7%):<8分时风险骤增 gcs_effect = zeros(np,1); for i = 1:np if data.GCS(i) < 8 gcs_effect(i) = -0.223 * (8 - data.GCS(i)); % <8分:每降1分风险增22.3% else gcs_effect(i) = -0.087 * (15 - data.GCS(i)); % ≥8分:影响减弱 end end % 2. 既往高血压史(18.5%):线性主导 ht_effect = 0.185 * data.hypertension; % 3. 转运时长(17.2%):>20分钟后风险增速翻倍 time_effect = zeros(np,1); for i = 1:np if data.transport_time(i) > 20 time_effect(i) = 0.032 * (data.transport_time(i) - 20); % >20分钟:每增1分钟风险增3.2% else time_effect(i) = 0.015 * data.transport_time(i); % <20分钟:每增1分钟风险增1.5% end end % 4. 年龄(15.3%):>65岁后风险加速 age_effect = zeros(np,1); for i = 1:np if data.age(i) > 65 age_effect(i) = 0.037 * (data.age(i) - 65)/5; % >65岁:每5岁风险增19% else age_effect(i) = 0.016 * data.age(i)/5; % <65岁:每5岁风险增8% end end % 5. 呼吸支持(9.6%):线性主导 resp_support_effect = 0.096 * data.resp_support; % 6. 血氧饱和度(6.2%):<90%时风险骤增 spo2_effect = zeros(np,1); for i = 1:np if data.spo2_final(i) < 90 spo2_effect(i) = -0.123 * (90 - data.spo2_final(i)); % <90%:每降1%风险增12.3% else spo2_effect(i) = -0.021 * (data.spo2_final(i) - 90); % 90-98%:每增1%风险降2.1% end end % 7. 心率(5.8%):<50或>120时风险骤升 hr_effect = zeros(np,1); for i = 1:np if data.heart_rate(i) < 50 hr_effect(i) = 0.42 * (50 - data.heart_rate(i))/10; % <50次:风险增42% elseif data.heart_rate(i) > 120 hr_effect(i) = 0.38 * (data.heart_rate(i) - 120)/10; % >120次:风险增38% end end % 8. 镇静剂使用(7.8%):稳定降低风险 sedative_effect = -0.1839 * data.sedative; % OR=0.8320对应系数 % 其他因素影响 rr_effect = zeros(np,1); for i = 1:np if data.respiratory_rate(i) < 10 rr_effect(i) = 0.35; % <10次:风险增35% elseif data.respiratory_rate(i) > 24 rr_effect(i) = 0.31; % >24次:风险增31% end end temp_effect = zeros(np,1); for i = 1:np if data.temperature(i) < 36 temp_effect(i) = 0.28; % <36℃:风险增28% elseif data.temperature(i) > 38.5 temp_effect(i) = 0.25; % >38.5℃:风险增25% end end distance_effect = -0.028 * data.transport_distance/5; % 转运距离:每5km风险降2.8% personnel_effect = -0.025 * (data.transport_personnel - 1); % 人员配置优化降低风险 apache_effect = 0.011 * data.APACHE/10; % APACHE评分:每10分风险增1.1% % 总风险计算 logit = 0.2 + ... 基础风险偏置 0.257*gcs_effect + ... % 权重匹配贡献度25.7% 0.185*ht_effect + ... % 18.5% 0.172*time_effect + ... % 17.2% 0.153*age_effect + ... % 15.3% 0.096*resp_support_effect + ... % 9.6% 0.078*sedative_effect + ... % 7.8% 0.062*spo2_effect + ... % 6.2% 0.058*hr_effect + ... % 5.8% 0.049*rr_effect + ... % 4.9% 0.045*temp_effect + ... % 4.5% 0.028*distance_effect + ... % 2.8% 0.025*personnel_effect + ... % 2.5% 0.011*apache_effect; % 1.1% % 生成不良事件结局(0=未发生,1=发生) prob = 1 ./ (1 + exp(-logit)); data.adverse_event = binornd(1, prob); %% 2. 核心因素筛选(按问题描述步骤) % 2.1 排除逻辑无关变量 factors = { '心率', data.heart_rate; '血氧饱和度', data.spo2_final; 'GCS评分', data.GCS; '转运时长', data.transport_time; '镇静剂使用', data.sedative; '呼吸支持', data.resp_support; '年龄', data.age; 'APACHE II评分', data.APACHE; }; % 2.2 统计显著性筛选(点二列相关) rpb = zeros(1,8); p_values = zeros(1,8); for i = 1:8 [r, p] = pointbiserial(cell2mat(factors(i,2)), data.adverse_event); rpb(i) = r; p_values(i) = p; end % 筛选结果(按阈值|rpb|≥0.2且P<0.1) keep_idx = abs(rpb) >= 0.2 & p_values < 0.1; filtered_factors = factors(keep_idx,:); filtered_data = cell2mat(factors(keep_idx,2)); fprintf('=== 因素筛选结果 ===\n'); for i = 1:length(factors) status = keep_idx(i) ? '保留' : '剔除'; fprintf('%s: rpb=%.2f, P=%.2f (%s)\n', ... factors{i,1}, rpb(i), p_values(i), status); end %% 3. 共线性处理(VIF计算) % 3.1 计算VIF值 [n_vars, ~] = size(filtered_data); VIF = zeros(1, n_vars); for i = 1:n_vars % 将第i个变量作为因变量,其他作为自变量 y = filtered_data(:,i); x = filtered_data(:, setdiff(1:n_vars, i)); x = [ones(length(y),1), x]; % 添加截距项 % 线性回归 b = regress(y, x); y_hat = x * b; r2 = 1 - sum((y - y_hat).^2) / sum((y - mean(y)).^2); VIF(i) = 1 / (1 - r2); end % 3.2 显示VIF结果 fprintf('\n=== VIF共线性分析 ===\n'); vif_table = table(); vif_table.因素 = filtered_factors(:,1); vif_table.VIF值 = VIF'; disp(vif_table); %% 4. 偏相关分析 % 4.1 准备数据(包含结局变量) all_vars = [filtered_data, data.adverse_event]; var_names = [filtered_factors(:,1); {'转运后不良事件'}]; n = size(all_vars, 2); % 4.2 计算偏相关矩阵 partial_corr = zeros(n); for i = 1:n for j = 1:n if i ~= j % 控制其他所有变量 controls = setdiff(1:n, [i,j]); [r, ~] = partialcorr(all_vars, i, j, controls); partial_corr(i,j) = r; else partial_corr(i,j) = 1; end end end % 4.3 显示显著直接关联 fprintf('\n=== 显著直接关联(偏相关|r|>0.3) ===\n'); for i = 1:n-1 % 排除结局变量自身 if abs(partial_corr(i,n)) > 0.3 fprintf('%s 与 转运后不良事件: r=%.3f\n', var_names{i}, partial_corr(i,n)); end end %% 5. 动态网络模型构建 % 5.1 定义阶段节点 T0_nodes = find(ismember(var_names, {'GCS评分', 'APACHE II评分', '年龄'})); T1_nodes = find(ismember(var_names, {'转运时长', '血氧饱和度', '镇静剂使用'})); T2_nodes = [find(ismember(var_names, {'心率', '呼吸支持'})), n]; % 最后一个是结局 % 5.2 构建有向图 G = digraph(); G = addnode(G, var_names); % 添加边(显著关联) for i = 1:n for j = 1:n if i ~= j && abs(partial_corr(i,j)) > 0.2 % 计算边权重(公式13) weight = sign(partial_corr(i,j)) * abs(partial_corr(i,j)) * 10; G = addedge(G, i, j, weight); end end end % 5.3 计算节点核心度(公式14) node_core = sum(abs(partial_corr), 2) - 1; % 减去自身的1 %% 6. 动态特征量化分析 % 6.1 高风险路径提取 - 修复了此处的运算符错误 fprintf('\n=== 高风险路径分析 ===\n'); risk_paths = {}; path_text = {}; path_weights = []; path_idx = 1; ae_node = n; % 不良事件节点索引 for t0 = T0_nodes for t1 = T1_nodes for t2 = T2_nodes(T2_nodes ~= ae_node) if G.hasedge(t0, t1) && G.hasedge(t1, t2) && G.hasedge(t2, ae_node) % 计算路径权重乘积 w1 = partial_corr(t0, t1); w2 = partial_corr(t1, t2); w3 = partial_corr(t2, ae_node); weight_product = abs(w1 * w2 * w3); if weight_product > 0.1 risk_paths{path_idx} = [t0, t1, t2, ae_node]; path_text{path_idx} = [var_names{t0}, ' -> ', var_names{t1}, ' -> ', ... var_names{t2}, ' -> ', var_names{ae_node}]; path_weights(path_idx) = weight_product; path_idx = path_idx + 1; end end end end end if ~isempty(risk_paths) for i = 1:length(risk_paths) fprintf('路径 %d: %s (权重乘积=%.3f)\n', i, path_text{i}, path_weights(i)); end else fprintf('未发现高风险路径\n'); end % 6.2 阶段贡献度分析 t0_strength = sum(sum(abs(partial_corr(T0_nodes, :)))) - length(T0_nodes); t1_strength = sum(sum(abs(partial_corr(T1_nodes, :)))) - length(T1_nodes); t2_strength = sum(sum(abs(partial_corr(T2_nodes, :)))) - length(T2_nodes); total_strength = t0_strength + t1_strength + t2_strength; t0_contrib = (t0_strength / total_strength) * 100; t1_contrib = (t1_strength / total_strength) * 100; t2_contrib = (t2_strength / total_strength) * 100; fprintf('\n=== 阶段贡献度分析 ===\n'); contrib_table = table(); contrib_table.阶段 = {'T0:转运前', 'T1:转运中', 'T2:转运后'}; contrib_table.贡献度百分比 = [t0_contrib; t1_contrib; t2_contrib]; disp(contrib_table); %% 7. 可视化动态网络 figure('Position', [100, 100, 1200, 800]); % 节点颜色(按阶段区分) node_colors = ones(n, 3); node_colors(T0_nodes, :) = repmat([0.8, 0.9, 1], length(T0_nodes), 1); % 浅蓝色 node_colors(T1_nodes, :) = repmat([0.9, 0.8, 1], length(T1_nodes), 1); % 浅紫色 node_colors(T2_nodes, :) = repmat([1, 0.8, 0.8], length(T2_nodes), 1); % 浅红色 % 绘制网络 plot(G, 'Layout', 'force3', ... 'NodeColor', node_colors, ... 'EdgeWidth', abs(G.Edges.Weight)/2, ... 'NodeSize', (node_core + 0.1) * 500, ... 'EdgeColor', [0.5, 0.5, 0.5]); title('转运后不良事件动态关联网络', 'FontSize', 16); legend('T0:转运前', 'T1:转运中', 'T2:转运后', 'Location', 'best'); annotation('textbox', [0.05, 0.05, 0.2, 0.1], ... 'String', '节点大小:核心度\n边粗细:关联强度\n红色边:正相关\n蓝色边:负相关', ... 'FitBoxToText', 'on'); %% 8. 节点核心度排序 fprintf('\n=== 节点核心度排序 ===\n'); core_table = table(); core_table.节点 = var_names; core_table.核心度 = node_core; core_table = sortrows(core_table, -2); % 降序排列 disp(core_table); 改成python
07-24
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值