>2]=w,+f[h>>2])>2]=m,+f[h>>2]);s=(c[h>>2]=q,+f[h>>2]);r=(c[h>>2]=t,+f[h>>2]);p=(c[h>>2]=v,+f[h>>2]);n=(c[h>>2]=w,+f[h>>2]);k=(c[h>>2]=x,+f[h>>2]);i=u-s>2]=i;g=u-s>>0)%3|0;c[I+104>>2]=g;t=(i^3)-g|0;c[I+108>>2]=t;y=((t+1|0)%3|0|0)==(i|0)?(u-s)*9.788566967472434e-05:-((u-s)*9.788566967472434e-05);A=((t+1|0)%3|0|0)==(i|0)?(r-p)*9.788566967472434e-05:-((r-p)*9.788566967472434e-05);B=((t+1|0)%3|0|0)==(i|0)?(n-k)*9.788566967472434e-05:-((n-k)*9.788566967472434e-05);f[I>>2]=y;f[I+4>>2]=A;f[I+8>>2]=B;f[I+12>>2]=0.0;y=y!=0.0?1.0/y:y;A=A!=0.0?1.0/A:A;B=B!=0.0?1.0/B:B;f[I+16>>2]=(u+s)*.5;f[I+20>>2]=(r+p)*.5;f[I+24>>2]=(n+k)*.5;f[I+28>>2]=0.0;t=I+144+16|0;a[t>>0]=1;q=I+144+12|0;c[q>>2]=0;c[I+144+4>>2]=0;c[I+144+8>>2]=0;c[6747]=(c[6747]|0)+1;g=kb((e<<4|3)+16|0)|0;if(!g)l=0;else{c[(g+4+15&-16)+-4>>2]=g;l=g+4+15&-16}j=c[I+144+4>>2]|0;i=c[q>>2]|0;if((j|0)<=0){if(i|0)H=25}else{g=0;do{H=l+(g<<4)|0;F=i+(g<<4)|0;c[H>>2]=c[F>>2];c[H+4>>2]=c[F+4>>2];c[H+8>>2]=c[F+8>>2];c[H+12>>2]=c[F+12>>2];g=g+1|0}while((g|0)!=(j|0));H=25}if((H|0)==25){if(a[t>>0]|0){c[6748]=(c[6748]|0)+1;uc(c[i+-4>>2]|0)}c[q>>2]=0}a[t>>0]=1;c[q>>2]=l;c[I+144+8>>2]=e;c[l>>2]=c[I+128>>2];c[l+4>>2]=c[I+128+4>>2];c[l+8>>2]=c[I+128+8>>2];c[l+12>>2]=c[I+128+12>>2];if((e|0)!=1){g=1;do{F=(c[q>>2]|0)+(g<<4)|0;c[F>>2]=c[I+128>>2];c[F+4>>2]=c[I+128+4>>2];c[F+8>>2]=c[I+128+8>>2];c[F+12>>2]=c[I+128+12>>2];g=g+1|0}while((g|0)!=(e|0))}c[I+144+4>>2]=e;j=I+128+(c[I+108>>2]<<2)|0;i=c[q>>2]|0;l=I+128+(c[I+112>>2]<<2)|0;m=I+128+(c[I+104>>2]<<2)|0;k=+f[I+16>>2];n=+f[I+20>>2];p=+f[I+24>>2];o=0;g=d;while(1){s=A*(+f[g+4>>2]-n);u=B*(+f[g+8>>2]-p);f[I+128>>2]=y*(+f[g>>2]-k);f[I+128+4>>2]=s;f[I+128+8>>2]=u;f[I+128+12>>2]=0.0;c[i+(o<<4)>>2]=~~+f[j>>2];c[i+(o<<4)+4>>2]=~~+f[l>>2];c[i+(o<<4)+8>>2]=~~+f[m>>2];c[i+(o<<4)+12>>2]=o;o=o+1|0;if((o|0)==(e|0))break;else g=g+16|0}if((e|0)>1)hg(I+144|0,0,e+-1|0);c[I+36>>2]=c[I+32>>2];c[I+40>>2]=0;c[I+44>>2]=e;g=c[I+84>>2]|0;if((g|0)<(e|0)){if((c[I+88>>2]|0)<(e|0)){if(!e){j=g;l=0}else{c[6747]=(c[6747]|0)+1;i=kb((e<<2|3)+16|0)|0;if(!i)i=0;else{c[(i+4+15&-16)+-4>>2]=i;i=i+4+15&-16}j=c[I+84>>2]|0;l=i}if((j|0)>0){i=0;do{c[l+(i<<2)>>2]=c[(c[I+92>>2]|0)+(i<<2)>>2];i=i+1|0}while((i|0)!=(j|0))}i=c[I+92>>2]|0;if(i|0){if(a[I+96>>0]|0){c[6748]=(c[6748]|0)+1;uc(c[i+-4>>2]|0)}c[I+92>>2]=0}a[I+96>>0]=1;c[I+92>>2]=l;c[I+88>>2]=e}do{c[(c[I+92>>2]|0)+(g<<2)>>2]=0;g=g+1|0}while((g|0)!=(e|0))}c[I+84>>2]=e;m=0;do{g=c[I+40>>2]|0;if(!g){g=c[I+36>>2]|0;if(!g){c[6747]=(c[6747]|0)+1;g=kb(31)|0;if(!g)i=0;else{c[(g+4+15&-16)+-4>>2]=g;i=g+4+15&-16}g=c[I+44>>2]|0;c[i+4>>2]=g;j=i+8|0;c[j>>2]=0;c[6747]=(c[6747]|0)+1;g=kb((g*112|3)+16|0)|0;if(!g)g=0;else{c[(g+4+15&-16)+-4>>2]=g;g=g+4+15&-16}c[i>>2]=g;c[j>>2]=c[I+32>>2];c[I+32>>2]=i}else{c[I+36>>2]=c[g+8>>2];i=g}g=c[i>>2]|0;i=c[i+4>>2]|0;if((i|0)>0?(c[g>>2]=(i|0)!=1?g+112|0:0,(i|0)!=1):0){j=1;l=g+112|0;do{j=j+1|0;F=(j|0)<(i|0);E=l;l=l+112|0;c[E>>2]=F?l:0}while(F)}}c[I+40>>2]=c[g>>2];F=g+104|0;c[g>>2]=0;c[g+4>>2]=0;c[g+8>>2]=0;c[g+12>>2]=0;c[g+16>>2]=0;c[F>>2]=-1;c[g+8>>2]=0;D=(c[q>>2]|0)+(m<<4)|0;E=g+88|0;c[E>>2]=c[D>>2];c[E+4>>2]=c[D+4>>2];c[E+8>>2]=c[D+8>>2];c[E+12>>2]=c[D+12>>2];c[F>>2]=-1;c[(c[I+92>>2]|0)+(m<<2)>>2]=g;m=m+1|0}while((m|0)<(e|0));g=c[q>>2]|0;if(g|0){if(a[t>>0]|0){c[6748]=(c[6748]|0)+1;uc(c[g+-4>>2]|0)}c[q>>2]=0}a[t>>0]=1;c[q>>2]=0;c[I+144+4>>2]=0;c[I+144+8>>2]=0;c[I+52>>2]=c[I+48>>2];c[I+56>>2]=0;c[I+60>>2]=e*6;c[I+116>>2]=0;c[I+120>>2]=0;c[I+100>>2]=-3;c[I+128>>2]=0;c[I+128+4>>2]=0;c[I+128+8>>2]=0;c[I+128+12>>2]=0;hb(I,0,e,I+128|0);c[I+124>>2]=c[I+128>>2];g=c[q>>2]|0;if(g|0){if(a[t>>0]|0){c[6748]=(c[6748]|0)+1;uc(c[g+-4>>2]|0)}c[q>>2]=0}g=c[b+4>>2]|0;if((g|0)<0){if((c[b+8>>2]|0)<0){i=c[b+12>>2]|0;if(i|0){if(a[b+16>>0]|0){c[6748]=(c[6748]|0)+1;uc(c[i+-4>>2]|0)}c[b+12>>2]=0}a[b+16>>0]=1;c[b+12>>2]=0;c[b+8>>2]=0}do{F=(c[b+12>>2]|0)+(g<<4)|0;c[F>>2]=c[I+144>>2];c[F+4>>2]=c[I+144+4>>2];c[F+8>>2]=c[I+144+8>>2];c[F+12>>2]=c[I+144+12>>2];g=g+1|0}while((g|0)!=0)}c[b+4>>2]=0;c[I+144>>2]=0;c[I+144+4>>2]=0;c[I+144+8>>2]=0;g=c[b+24>>2]|0;if((g|0)<0){if((c[b+28>>2]|0)<0){i=c[b+32>>2]|0;if(i|0){if(a[b+36>>0]|0){c[6748]=(c[6748]|0)+1;uc(c[i+-4>>2]|0)}c[b+32>>2]=0}a[b+36>>0]=1;c[b+32>>2]=0;c[b+28>>2]=0}do{F=(c[b+32>>2]|0)+(g*12|0)|0;c[F>>2]=c[I+144>>2];c[F+4>>2]=c[I+144+4>>2];c[F+8>>2]=c[I+144+8>>2];g=g+1|0}while((g|0)!=0)}c[b+24>>2]=0;i=c[b+44>>2]|0;if((i|0)<0){g=c[b+52>>2]|0;if((c[b+48>>2]|0)<0){if(g|0?a[b+56>>0]|0:0){c[6748]=(c[6748]|0)+1;uc(c[g+-4>>2]|0)}a[b+56>>0]=1;c[b+52>>2]=0;c[b+48>>2]=0;g=0}hk(g+(i<<2)|0,0,z(i,-4)|0)|0}c[b+44>>2]=0;i=c[I+124>>2]|0;if((c[i+104>>2]|0)<0){c[i+104>>2]=0;c[6747]=(c[6747]|0)+1;g=kb(23)|0;if(!g)g=0;else{c[(g+4+15&-16)+-4>>2]=g;g=g+4+15&-16}c[g>>2]=i;o=g;q=g;F=0;t=1;v=g;j=1;while(1){if((c[i+100>>2]|0)>-1){f[I+144+(c[I+108>>2]<<2)>>2]=+(c[i+88>>2]|0);f[I+144+(c[I+112>>2]<<2)>>2]=+(c[i+92>>2]|0);k=+(c[i+96>>2]|0)}else{k=+nk(i+24|0);E=i+72|0;k=k/+nk(E);f[I+144+(c[I+108>>2]<<2)>>2]=k;k=+nk(i+40|0);k=k/+nk(E);f[I+144+(c[I+112>>2]<<2)>>2]=k;k=+nk(i+56|0);k=k/+nk(E)}f[I+144+(c[I+104>>2]<<2)>>2]=k;k=+f[I+144>>2]*+f[I>>2]+ +f[I+16>>2];p=+f[I+144+4>>2]*+f[I+4>>2]+ +f[I+20>>2];n=+f[I+144+8>>2]*+f[I+8>>2]+ +f[I+24>>2];g=c[b+4>>2]|0;if((g|0)==(c[b+8>>2]|0)?(G=(g|0)==0?1:g<<1,(g|0)<(G|0)):0){if(!G)l=0;else{c[6747]=(c[6747]|0)+1;g=kb((G<<4|3)+16|0)|0;if(!g)l=0;else{c[(g+4+15&-16)+-4>>2]=g;l=g+4+15&-16}g=c[b+4>>2]|0}if((g|0)>0){m=0;do{E=l+(m<<4)|0;D=(c[b+12>>2]|0)+(m<<4)|0;c[E>>2]=c[D>>2];c[E+4>>2]=c[D+4>>2];c[E+8>>2]=c[D+8>>2];c[E+12>>2]=c[D+12>>2];m=m+1|0}while((m|0)!=(g|0))}g=c[b+12>>2]|0;if(g|0){if(a[b+16>>0]|0){c[6748]=(c[6748]|0)+1;uc(c[g+-4>>2]|0)}c[b+12>>2]=0}a[b+16>>0]=1;c[b+12>>2]=l;c[b+8>>2]=G;g=c[b+4>>2]|0}E=c[b+12>>2]|0;f[E+(g<<4)>>2]=k;f[E+(g<<4)+4>>2]=p;f[E+(g<<4)+8>>2]=n;f[E+(g<<4)+12>>2]=0.0;c[b+4>>2]=(c[b+4>>2]|0)+1;E=c[i+8>>2]|0;if(!E){x=q;l=o;m=t;w=v}else{l=o;w=q;D=E;i=-1;m=t;e=v;C=-1;while(1){d=D+20|0;g=c[d>>2]|0;if((g|0)<0){x=c[b+24>>2]|0;c[I+144>>2]=0;c[I+144+4>>2]=0;c[I+144+8>>2]=0;do if((x|0)==(c[b+28>>2]|0)){t=(x|0)==0?1:x<<1;if((x|0)>=(t|0)){g=x;break}if(!t){o=x;q=0}else{c[6747]=(c[6747]|0)+1;g=kb((t*12|3)+16|0)|0;if(!g)g=0;else{c[(g+4+15&-16)+-4>>2]=g;g=g+4+15&-16}o=c[b+24>>2]|0;q=g}if((o|0)>0){g=0;do{v=q+(g*12|0)|0;J=(c[b+32>>2]|0)+(g*12|0)|0;c[v>>2]=c[J>>2];c[v+4>>2]=c[J+4>>2];c[v+8>>2]=c[J+8>>2];g=g+1|0}while((g|0)!=(o|0))}g=c[b+32>>2]|0;if(g|0){if(a[b+36>>0]|0){c[6748]=(c[6748]|0)+1;uc(c[g+-4>>2]|0)}c[b+32>>2]=0}a[b+36>>0]=1;c[b+32>>2]=q;c[b+28>>2]=t;g=c[b+24>>2]|0}else g=x;while(0);g=(c[b+32>>2]|0)+(g*12|0)|0;c[g>>2]=c[I+144>>2];c[g+4>>2]=c[I+144+4>>2];c[g+8>>2]=c[I+144+8>>2];g=(c[b+24>>2]|0)+1|0;c[b+24>>2]=g;c[I+144>>2]=0;c[I+144+4>>2]=0;c[I+144+8>>2]=0;do if((g|0)==(c[b+28>>2]|0)){t=(g|0)==0?1:g<<1;if((g|0)>=(t|0))break;if(!t)o=0;else{c[6747]=(c[6747]|0)+1;g=kb((t*12|3)+16|0)|0;if(!g)o=0;else{c[(g+4+15&-16)+-4>>2]=g;o=g+4+15&-16}g=c[b+24>>2]|0}if((g|0)>0){q=0;do{J=o+(q*12|0)|0;v=(c[b+32>>2]|0)+(q*12|0)|0;c[J>>2]=c[v>>2];c[J+4>>2]=c[v+4>>2];c[J+8>>2]=c[v+8>>2];q=q+1|0}while((q|0)!=(g|0))}g=c[b+32>>2]|0;if(g|0){if(a[b+36>>0]|0){c[6748]=(c[6748]|0)+1;uc(c[g+-4>>2]|0)}c[b+32>>2]=0}a[b+36>>0]=1;c[b+32>>2]=o;c[b+28>>2]=t;g=c[b+24>>2]|0}while(0);v=(c[b+32>>2]|0)+(g*12|0)|0;c[v>>2]=c[I+144>>2];c[v+4>>2]=c[I+144+4>>2];c[v+8>>2]=c[I+144+8>>2];c[b+24>>2]=(c[b+24>>2]|0)+1;v=c[b+32>>2]|0;c[d>>2]=x;c[(c[D+8>>2]|0)+20>>2]=x+1;c[v+(x*12|0)+4>>2]=1;c[v+((x+1|0)*12|0)+4>>2]=-1;t=c[D+12>>2]|0;g=c[t+104>>2]|0;if((g|0)<0){c[t+104>>2]=j;do if((j|0)==(m|0)){q=(m|0)==0?1:m<<1;if((m|0)>=(q|0)){g=w;o=e;break}do if(!q)o=0;else{c[6747]=(c[6747]|0)+1;g=kb((q<<2|3)+16|0)|0;if(!g){o=0;break}c[(g+4+15&-16)+-4>>2]=g;o=g+4+15&-16}while(0);if((m|0)>0){g=0;do{c[o+(g<<2)>>2]=c[e+(g<<2)>>2];g=g+1|0}while((g|0)!=(m|0));if(!l){g=o;l=o;m=q;break}}else if((e|0)==0|(l|0)==0){g=o;l=o;m=q;break}c[6748]=(c[6748]|0)+1;uc(c[l+-4>>2]|0);g=o;l=o;m=q}else{g=w;o=e}while(0);c[o+(j<<2)>>2]=t;q=g;g=j;j=j+1|0}else{q=w;o=e}c[v+(x*12|0)+8>>2]=g;c[v+((x+1|0)*12|0)+8>>2]=F;g=c[d>>2]|0}else{q=w;o=e}if((C|0)>-1)c[(c[b+32>>2]|0)+(g*12|0)>>2]=C-g;else i=g;D=c[D>>2]|0;if((D|0)==(E|0))break;else{w=q;e=o;C=g}}c[(c[b+32>>2]|0)+(i*12|0)>>2]=g-i;x=q;w=o}g=F+1|0;if((g|0)>=(j|0))break;i=c[w+(g<<2)>>2]|0;o=l;q=x;F=g;t=m;v=w}v=0;while(1){q=c[(c[w+(v<<2)>>2]|0)+8>>2]|0;if(q|0){t=q;do{o=t+20|0;g=c[o>>2]|0;if((g|0)>-1){i=c[b+44>>2]|0;do if((i|0)==(c[b+48>>2]|0)){m=(i|0)==0?1:i<<1;if((i|0)>=(m|0))break;if(!m){g=i;i=0}else{c[6747]=(c[6747]|0)+1;g=kb((m<<2|3)+16|0)|0;if(!g)i=0;else{c[(g+4+15&-16)+-4>>2]=g;i=g+4+15&-16}g=c[b+44>>2]|0}l=c[b+52>>2]|0;if((g|0)<=0){if(l)H=186}else{j=0;do{c[i+(j<<2)>>2]=c[l+(j<<2)>>2];j=j+1|0}while((j|0)!=(g|0));H=186}if((H|0)==186){H=0;if(a[b+56>>0]|0){c[6748]=(c[6748]|0)+1;uc(c[l+-4>>2]|0)}c[b+52>>2]=0;g=c[b+44>>2]|0}a[b+56>>0]=1;c[b+52>>2]=i;c[b+48>>2]=m;i=g;g=c[o>>2]|0}while(0);c[(c[b+52>>2]|0)+(i<<2)>>2]=g;c[b+44>>2]=(c[b+44>>2]|0)+1;g=t;do{c[g+20>>2]=-1;g=c[(c[g+8>>2]|0)+4>>2]|0}while((g|0)!=(t|0))}t=c[t>>2]|0}while((t|0)!=(q|0))}if((v|0)==(F|0))break;else v=v+1|0}if(!((w|0)==0|(x|0)==0)){c[6748]=(c[6748]|0)+1;uc(c[x+-4>>2]|0)}}_h(I);ea=I;return}function nb(b){b=b|0;var d=0,e=0.0,g=0.0,h=0,i=0,j=0.0,k=0,l=0.0,m=0.0,n=0.0,o=0,p=0,q=0,r=0.0,s=0.0,t=0.0,u=0.0,v=0.0,w=0.0,x=0.0,y=0.0,z=0.0,A=0.0,B=0.0,C=0.0,D=0.0,E=0.0,F=0.0,G=0,H=0,I=0,J=0.0,K=0.0,L=0.0,M=0.0,N=0.0,O=0.0,P=0.0,Q=0.0,R=0.0,S=0.0,T=0.0,U=0.0,V=0.0,W=0;I=ea;ea=ea+64|0;if(!(a[b+356>>0]|0)){b=a[b+312>>0]|0;b=b<<24>>24!=0;ea=I;return b|0}c[b+336>>2]=0;c[b+336+4>>2]=0;c[b+336+8>>2]=0;c[b+336+12>>2]=0;a[b+336+16>>0]=0;k=a[b+332>>0]|0;a[b+332>>0]=k&-16;a[b+356>>0]=0;switch(c[b>>2]|0){case 0:{a[b+312>>0]=0;b=0;b=b<<24>>24!=0;ea=I;return b|0}case 1:{c[b+244>>2]=c[b+84>>2];c[b+244+4>>2]=c[b+84+4>>2];c[b+244+8>>2]=c[b+84+8>>2];c[b+244+12>>2]=c[b+84+12>>2];c[b+260>>2]=c[b+164>>2];c[b+260+4>>2]=c[b+164+4>>2];c[b+260+8>>2]=c[b+164+8>>2];c[b+260+12>>2]=c[b+164+12>>2];E=+f[b+248>>2]-+f[b+264>>2];F=+f[b+252>>2]-+f[b+268>>2];f[b+276>>2]=+f[b+244>>2]-+f[b+260>>2];f[b+280>>2]=E;f[b+284>>2]=F;f[b+288>>2]=0.0;a[b+352>>0]=0;a[b+332>>0]=k&-16;f[b+336>>2]=1.0;f[b+340>>2]=0.0;f[b+344>>2]=0.0;f[b+348>>2]=0.0;a[b+312>>0]=1;b=1;b=b<<24>>24!=0;ea=I;return b|0}case 2:{e=+f[b+4>>2];g=+f[b+8>>2];j=+f[b+12>>2];l=+f[b+20>>2]-e;n=+f[b+24>>2]-g;m=+f[b+28>>2]-j;if((0.0-e)*l+(0.0-g)*n+(0.0-j)*m>0.0)if((0.0-e)*l+(0.0-g)*n+(0.0-j)*m>0]=k&-16|h;e=1.0-g;f[b+336>>2]=e;f[b+340>>2]=g;f[b+344>>2]=0.0;f[b+348>>2]=0.0;A=+f[b+84>>2];C=+f[b+88>>2];E=+f[b+92>>2];A=A+g*(+f[b+100>>2]-A);C=C+g*(+f[b+104>>2]-C);E=E+g*(+f[b+108>>2]-E);f[b+244>>2]=A;f[b+248>>2]=C;f[b+252>>2]=E;f[b+256>>2]=0.0;B=+f[b+164>>2];D=+f[b+168>>2];F=+f[b+172>>2];B=B+g*(+f[b+180>>2]-B);D=D+g*(+f[b+184>>2]-D);F=F+g*(+f[b+188>>2]-F);f[b+260>>2]=B;f[b+264>>2]=D;f[b+268>>2]=F;f[b+272>>2]=0.0;f[b+276>>2]=A-B;f[b+280>>2]=C-D;f[b+284>>2]=E-F;f[b+288>>2]=0.0;if(!(h&2)){c[b>>2]=1;d=0}else d=1;if(!(h&1)){q=b+4+(d<<4)|0;G=b+84+(d<<4)|0;H=b+164+(d<<4)|0;c[b>>2]=d;c[b+4>>2]=c[q>>2];c[b+4+4>>2]=c[q+4>>2];c[b+4+8>>2]=c[q+8>>2];c[b+4+12>>2]=c[q+12>>2];c[b+84>>2]=c[G>>2];c[b+84+4>>2]=c[G+4>>2];c[b+84+8>>2]=c[G+8>>2];c[b+84+12>>2]=c[G+12>>2];c[b+164>>2]=c[H>>2];c[b+164+4>>2]=c[H+4>>2];c[b+164+8>>2]=c[H+8>>2];c[b+164+12>>2]=c[H+12>>2]}H=g>=0.0&e>=0.0&1;a[b+312>>0]=H;b=H;b=b<<24>>24!=0;ea=I;return b|0}case 3:{c[I+16>>2]=0;c[I+16+4>>2]=0;c[I+16+8>>2]=0;c[I+16+12>>2]=0;de(I+16|0,b+4|0,b+20|0,b+36|0,b+316|0);F=+f[b+336>>2];e=+f[b+340>>2];g=+f[b+344>>2];A=+f[b+84>>2]*F+ +f[b+100>>2]*e+ +f[b+116>>2]*g;C=F*+f[b+88>>2]+e*+f[b+104>>2]+g*+f[b+120>>2];E=F*+f[b+92>>2]+e*+f[b+108>>2]+g*+f[b+124>>2];f[b+244>>2]=A;f[b+248>>2]=C;f[b+252>>2]=E;f[b+256>>2]=0.0;B=F*+f[b+164>>2]+e*+f[b+180>>2]+g*+f[b+196>>2];D=F*+f[b+168>>2]+e*+f[b+184>>2]+g*+f[b+200>>2];F=F*+f[b+172>>2]+e*+f[b+188>>2]+g*+f[b+204>>2];f[b+260>>2]=B;f[b+264>>2]=D;f[b+268>>2]=F;f[b+272>>2]=0.0;f[b+276>>2]=A-B;f[b+280>>2]=C-D;f[b+284>>2]=E-F;f[b+288>>2]=0.0;k=c[b>>2]|0;do if((k|0)>3){d=a[b+332>>0]|0;if(!(d&8)){h=b+164+(k+-1<<4)|0;i=b+84+(k+-1<<4)|0;H=b+4+(k+-1<<4)|0;c[b>>2]=k+-1;c[b+52>>2]=c[H>>2];c[b+52+4>>2]=c[H+4>>2];c[b+52+8>>2]=c[H+8>>2];c[b+52+12>>2]=c[H+12>>2];c[b+132>>2]=c[i>>2];c[b+132+4>>2]=c[i+4>>2];c[b+132+8>>2]=c[i+8>>2];c[b+132+12>>2]=c[i+12>>2];c[b+212>>2]=c[h>>2];c[b+212+4>>2]=c[h+4>>2];c[b+212+8>>2]=c[h+8>>2];c[b+212+12>>2]=c[h+12>>2];h=b+332|0;k=k+-1|0;i=d;H=19}else{h=b+332|0;i=d;H=19}}else{if((k|0)==3){h=b+332|0;k=3;i=a[b+332>>0]|0;H=19;break}if((k|0)<=1){if((k|0)==1){d=1;H=26}}else{d=2;H=22}}while(0);if((H|0)==19){d=k+-1|0;if(!(i&4)){c[b>>2]=d;c[b+36>>2]=c[b+4+(d<<4)>>2];c[b+36+4>>2]=c[b+4+(d<<4)+4>>2];c[b+36+8>>2]=c[b+4+(d<<4)+8>>2];c[b+36+12>>2]=c[b+4+(d<<4)+12>>2];c[b+116>>2]=c[b+84+(d<<4)>>2];c[b+116+4>>2]=c[b+84+(d<<4)+4>>2];c[b+116+8>>2]=c[b+84+(d<<4)+8>>2];c[b+116+12>>2]=c[b+84+(d<<4)+12>>2];c[b+196>>2]=c[b+164+(d<<4)>>2];c[b+196+4>>2]=c[b+164+(d<<4)+4>>2];c[b+196+8>>2]=c[b+164+(d<<4)+8>>2];c[b+196+12>>2]=c[b+164+(d<<4)+12>>2];H=23}else{d=k;H=22}}if((H|0)==22){h=b+332|0;H=23}if((H|0)==23){i=d+-1|0;if(!(a[h>>0]&2)){c[b>>2]=i;c[b+20>>2]=c[b+4+(i<<4)>>2];c[b+20+4>>2]=c[b+4+(i<<4)+4>>2];c[b+20+8>>2]=c[b+4+(i<<4)+8>>2];c[b+20+12>>2]=c[b+4+(i<<4)+12>>2];c[b+100>>2]=c[b+84+(i<<4)>>2];c[b+100+4>>2]=c[b+84+(i<<4)+4>>2];c[b+100+8>>2]=c[b+84+(i<<4)+8>>2];c[b+100+12>>2]=c[b+84+(i<<4)+12>>2];c[b+180>>2]=c[b+164+(i<<4)>>2];c[b+180+4>>2]=c[b+164+(i<<4)+4>>2];c[b+180+8>>2]=c[b+164+(i<<4)+8>>2];c[b+180+12>>2]=c[b+164+(i<<4)+12>>2];o=h;H=27}else H=26}if((H|0)==26){o=b+332|0;i=d;H=27}if((H|0)==27?(p=i+-1|0,(a[o>>0]&1)==0):0){c[b>>2]=p;c[b+4>>2]=c[b+4+(p<<4)>>2];c[b+4+4>>2]=c[b+4+(p<<4)+4>>2];c[b+4+8>>2]=c[b+4+(p<<4)+8>>2];c[b+4+12>>2]=c[b+4+(p<<4)+12>>2];c[b+84>>2]=c[b+84+(p<<4)>>2];c[b+84+4>>2]=c[b+84+(p<<4)+4>>2];c[b+84+8>>2]=c[b+84+(p<<4)+8>>2];c[b+84+12>>2]=c[b+84+(p<<4)+12>>2];c[b+164>>2]=c[b+164+(p<<4)>>2];c[b+164+4>>2]=c[b+164+(p<<4)+4>>2];c[b+164+8>>2]=c[b+164+(p<<4)+8>>2];c[b+164+12>>2]=c[b+164+(p<<4)+12>>2]}if((e>=0.0?!(+f[b+336>>2]>=0.0):1)|!(g>=0.0))d=0;else d=+f[b+348>>2]>=0.0&1;a[b+312>>0]=d;b=d;b=b<<24>>24!=0;ea=I;return b|0}case 4:{c[I>>2]=0;c[I+4>>2]=0;c[I+8>>2]=0;c[I+12>>2]=0;q=I+16+16|0;a[q>>0]=0;c[b+316>>2]=0;c[b+316+4>>2]=0;c[b+316+8>>2]=0;c[b+316+12>>2]=0;a[b+332>>0]=k|15;K=+f[b+20>>2];T=+f[b+4>>2];Q=+f[b+24>>2];J=+f[b+8>>2];M=+f[b+28>>2];U=+f[b+12>>2];P=+f[b+36>>2];R=+f[b+40>>2];N=+f[b+44>>2];L=+f[b+52>>2];S=+f[b+56>>2];O=+f[b+60>>2];V=((Q-J)*(N-U)-(M-U)*(R-J))*(L-T)+((M-U)*(P-T)-(K-T)*(N-U))*(S-J)+((K-T)*(R-J)-(Q-J)*(P-T))*(O-U);i=V*V<9.99999905104687e-09?-1:((0.0-T)*((Q-J)*(N-U)-(M-U)*(R-J))+(0.0-J)*((M-U)*(P-T)-(K-T)*(N-U))+((K-T)*(R-J)-(Q-J)*(P-T))*(0.0-U))*V<0.0&1;V=(M-U)*((P-T)*(S-J)-(R-J)*(L-T))+((K-T)*((R-J)*(O-U)-(N-U)*(S-J))+(Q-J)*((N-U)*(L-T)-(P-T)*(O-U)));k=V*V<9.99999905104687e-09?-1:((0.0-U)*((P-T)*(S-J)-(R-J)*(L-T))+((0.0-T)*((R-J)*(O-U)-(N-U)*(S-J))+(0.0-J)*((N-U)*(L-T)-(P-T)*(O-U))))*V<0.0&1;V=(N-U)*((Q-J)*(L-T)-(K-T)*(S-J))+((P-T)*((M-U)*(S-J)-(Q-J)*(O-U))+(R-J)*((K-T)*(O-U)-(M-U)*(L-T)));o=V*V<9.99999905104687e-09?-1:((0.0-U)*((Q-J)*(L-T)-(K-T)*(S-J))+((0.0-T)*((M-U)*(S-J)-(Q-J)*(O-U))+(0.0-J)*((K-T)*(O-U)-(M-U)*(L-T))))*V<0.0&1;J=(U-M)*((R-Q)*(L-K)-(P-K)*(S-Q))+((T-K)*((N-M)*(S-Q)-(R-Q)*(O-M))+(J-Q)*((P-K)*(O-M)-(N-M)*(L-K)));p=J*J<9.99999905104687e-09?-1:((0.0-M)*((R-Q)*(L-K)-(P-K)*(S-Q))+((0.0-K)*((N-M)*(S-Q)-(R-Q)*(O-M))+(0.0-Q)*((P-K)*(O-M)-(N-M)*(L-K))))*J<0.0&1;do if((k|i|o|p|0)<0){a[b+352>>0]=1;d=b+312|0;H=68}else{if(!(k|i|o|p)){if(a[b+352>>0]|0){d=b+312|0;H=68;break}a[b+312>>0]=1;c[b+276>>2]=0;c[b+276+4>>2]=0;c[b+276+8>>2]=0;c[b+276+12>>2]=0;d=1;break}if((i|0)!=0?(de(I,b+4|0,b+20|0,b+36|0,I+16|0),e=+f[I+16>>2],g=+f[I+16+4>>2],j=+f[I+16+8>>2],l=e-+f[I>>2],n=g-+f[I+4>>2],m=j-+f[I+8>>2],l*l+n*n+m*m<3402823466385288598117041.0e14):0){W=c[I+16+12>>2]|0;f[b+316>>2]=e;f[b+320>>2]=g;f[b+324>>2]=j;c[b+328>>2]=W;W=a[q>>0]|0;a[b+332>>0]=W&1|a[b+332>>0]&-16|W&2|W&4;W=c[I+16+24>>2]|0;i=c[I+16+28>>2]|0;c[b+336>>2]=c[I+16+20>>2];c[b+340>>2]=W;c[b+344>>2]=i;f[b+348>>2]=0.0;e=l*l+n*n+m*m}else e=3402823466385288598117041.0e14;if((k|0)!=0?(de(I,b+4|0,b+36|0,b+52|0,I+16|0),r=+f[I+16>>2],s=+f[I+16+4>>2],t=+f[I+16+8>>2],u=r-+f[I>>2],w=s-+f[I+4>>2],v=t-+f[I+8>>2],u*u+w*w+v*v>2]|0;f[b+316>>2]=r;f[b+320>>2]=s;f[b+324>>2]=t;c[b+328>>2]=k;k=a[q>>0]|0;a[b+332>>0]=k&1|a[b+332>>0]&-16|k<<1&4|k<<1&8;k=c[I+16+24>>2]|0;W=c[I+16+28>>2]|0;c[b+336>>2]=c[I+16+20>>2];f[b+340>>2]=0.0;c[b+344>>2]=k;c[b+348>>2]=W;e=u*u+w*w+v*v}if((o|0)!=0?(de(I,b+4|0,b+52|0,b+20|0,I+16|0),x=+f[I+16>>2],y=+f[I+16+4>>2],z=+f[I+16+8>>2],A=x-+f[I>>2],C=y-+f[I+4>>2],B=z-+f[I+8>>2],A*A+C*C+B*B>2]|0;f[b+316>>2]=x;f[b+320>>2]=y;f[b+324>>2]=z;c[b+328>>2]=o;o=a[q>>0]|0;a[b+332>>0]=o&1|a[b+332>>0]&-16|(1?(o&255)>>>1:o&255)&2|o<<2&8;o=c[I+16+28>>2]|0;W=c[I+16+24>>2]|0;c[b+336>>2]=c[I+16+20>>2];c[b+340>>2]=o;f[b+344>>2]=0.0;c[b+348>>2]=W;e=A*A+C*C+B*B}if(p|0?(de(I,b+20|0,b+52|0,b+36|0,I+16|0),D=+f[I+16>>2],E=+f[I+16+4>>2],F=+f[I+16+8>>2],T=D-+f[I>>2],U=E-+f[I+4>>2],V=F-+f[I+8>>2],T*T+U*U+V*V>2]|0;f[b+316>>2]=D;f[b+320>>2]=E;f[b+324>>2]=F;c[b+328>>2]=p;p=a[q>>0]|0;a[b+332>>0]=p&4|a[b+332>>0]&-16|p<<1&2|p<<2&8;p=c[I+16+20>>2]|0;q=c[I+16+28>>2]|0;W=c[I+16+24>>2]|0;f[b+336>>2]=0.0;c[b+340>>2]=p;c[b+344>>2]=q;c[b+348>>2]=W}O=+f[b+336>>2];P=+f[b+340>>2];V=+f[b+344>>2];e=+f[b+348>>2];Q=+f[b+84>>2]*O+ +f[b+100>>2]*P+ +f[b+116>>2]*V+ +f[b+132>>2]*e;S=O*+f[b+88>>2]+P*+f[b+104>>2]+V*+f[b+120>>2]+e*+f[b+136>>2];U=O*+f[b+92>>2]+P*+f[b+108>>2]+V*+f[b+124>>2]+e*+f[b+140>>2];f[b+244>>2]=Q;f[b+248>>2]=S;f[b+252>>2]=U;f[b+256>>2]=0.0;R=O*+f[b+164>>2]+P*+f[b+180>>2]+V*+f[b+196>>2]+e*+f[b+212>>2];T=O*+f[b+168>>2]+P*+f[b+184>>2]+V*+f[b+200>>2]+e*+f[b+216>>2];V=O*+f[b+172>>2]+P*+f[b+188>>2]+V*+f[b+204>>2]+e*+f[b+220>>2];f[b+260>>2]=R;f[b+264>>2]=T;f[b+268>>2]=V;f[b+272>>2]=0.0;f[b+276>>2]=Q-R;f[b+280>>2]=S-T;f[b+284>>2]=U-V;f[b+288>>2]=0.0;i=c[b>>2]|0;do if((i|0)>3){d=a[b+332>>0]|0;if(!(d&8)){h=b+164+(i+-1<<4)|0;k=b+84+(i+-1<<4)|0;H=b+4+(i+-1<<4)|0;c[b>>2]=i+-1;c[b+52>>2]=c[H>>2];c[b+52+4>>2]=c[H+4>>2];c[b+52+8>>2]=c[H+8>>2];c[b+52+12>>2]=c[H+12>>2];c[b+132>>2]=c[k>>2];c[b+132+4>>2]=c[k+4>>2];c[b+132+8>>2]=c[k+8>>2];c[b+132+12>>2]=c[k+12>>2];c[b+212>>2]=c[h>>2];c[b+212+4>>2]=c[h+4>>2];c[b+212+8>>2]=c[h+8>>2];c[b+212+12>>2]=c[h+12>>2];h=b+332|0;k=i+-1|0;i=d;H=52}else{h=b+332|0;k=i;i=d;H=52}}else{if((i|0)==3){h=b+332|0;k=3;i=a[b+332>>0]|0;H=52;break}if((i|0)<=1){if((i|0)==1){d=1;H=59}}else{d=2;H=55}}while(0);if((H|0)==52){d=k+-1|0;if(!(i&4)){c[b>>2]=d;c[b+36>>2]=c[b+4+(d<<4)>>2];c[b+36+4>>2]=c[b+4+(d<<4)+4>>2];c[b+36+8>>2]=c[b+4+(d<<4)+8>>2];c[b+36+12>>2]=c[b+4+(d<<4)+12>>2];c[b+116>>2]=c[b+84+(d<<4)>>2];c[b+116+4>>2]=c[b+84+(d<<4)+4>>2];c[b+116+8>>2]=c[b+84+(d<<4)+8>>2];c[b+116+12>>2]=c[b+84+(d<<4)+12>>2];c[b+196>>2]=c[b+164+(d<<4)>>2];c[b+196+4>>2]=c[b+164+(d<<4)+4>>2];c[b+196+8>>2]=c[b+164+(d<<4)+8>>2];c[b+196+12>>2]=c[b+164+(d<<4)+12>>2];H=56}else{d=k;H=55}}if((H|0)==55){h=b+332|0;H=56}if((H|0)==56){i=d+-1|0;if(!(a[h>>0]&2)){c[b>>2]=i;c[b+20>>2]=c[b+4+(i<<4)>>2];c[b+20+4>>2]=c[b+4+(i<<4)+4>>2];c[b+20+8>>2]=c[b+4+(i<<4)+8>>2];c[b+20+12>>2]=c[b+4+(i<<4)+12>>2];c[b+100>>2]=c[b+84+(i<<4)>>2];c[b+100+4>>2]=c[b+84+(i<<4)+4>>2];c[b+100+8>>2]=c[b+84+(i<<4)+8>>2];c[b+100+12>>2]=c[b+84+(i<<4)+12>>2];c[b+180>>2]=c[b+164+(i<<4)>>2];c[b+180+4>>2]=c[b+164+(i<<4)+4>>2];c[b+180+8>>2]=c[b+164+(i<<4)+8>>2];c[b+180+12>>2]=c[b+164+(i<<4)+12>>2];d=i;H=60}else H=59}if((H|0)==59){h=b+332|0;H=60}if((H|0)==60?(G=d+-1|0,(a[h>>0]&1)==0):0){c[b>>2]=G;c[b+4>>2]=c[b+4+(G<<4)>>2];c[b+4+4>>2]=c[b+4+(G<<4)+4>>2];c[b+4+8>>2]=c[b+4+(G<<4)+8>>2];c[b+4+12>>2]=c[b+4+(G<<4)+12>>2];c[b+84>>2]=c[b+84+(G<<4)>>2];c[b+84+4>>2]=c[b+84+(G<<4)+4>>2];c[b+84+8>>2]=c[b+84+(G<<4)+8>>2];c[b+84+12>>2]=c[b+84+(G<<4)+12>>2];c[b+164>>2]=c[b+164+(G<<4)>>2];c[b+164+4>>2]=c[b+164+(G<<4)+4>>2];c[b+164+8>>2]=c[b+164+(G<<4)+8>>2];c[b+164+12>>2]=c[b+164+(G<<4)+12>>2]}if((+f[b+336>>2]>=0.0?+f[b+340>>2]>=0.0:0)?+f[b+344>>2]>=0.0:0)d=e>=0.0&1;else d=0;a[b+312>>0]=d}while(0);if((H|0)==68){a[d>>0]=0;d=0}W=d;W=W<<24>>24!=0;ea=I;return W|0}default:{a[b+312>>0]=0;W=0;W=W<<24>>24!=0;ea=I;return W|0}}return 0}function ob(b,d,e,g,h,i,j,k,l){b=b|0;d=d|0;e=e|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;l=l|0;var m=0,n=0,o=0,p=0.0,q=0,t=0.0,u=0.0,v=0.0,w=0.0,x=0.0,y=0.0,z=0.0,A=0.0,B=0.0,C=0.0,D=0.0,E=0.0,F=0.0,G=0.0,H=0.0,I=0.0,J=0.0,K=0.0,L=0.0,M=0.0,N=0.0,O=0.0,P=0.0,Q=0.0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Z=0,_=0;_=ea;ea=ea+256|0;c[b+188>>2]=-1;Fi(15490);c[b+184>>2]=0;if((e|0)>0){l=0;do{c[(c[d+(l<<2)>>2]|0)+212>>2]=-1;l=l+1|0}while((l|0)!=(e|0))}l=c[b+12>>2]|0;if((l|0)>(e|0))n=b+8|0;else{if((e+1|0)!=0?(c[6747]=(c[6747]|0)+1,m=kb(((e+1|0)*244|3)+16|0)|0,(m|0)!=0):0){c[(m+4+15&-16)+-4>>2]=m;n=m+4+15&-16}else n=0;l=c[b+8>>2]|0;if((l|0)>0){m=0;do{W=n+(m*244|0)|0;X=c[b+16>>2]|0;V=X+(m*244|0)|0;c[W>>2]=c[V>>2];c[W+4>>2]=c[V+4>>2];c[W+8>>2]=c[V+8>>2];c[W+12>>2]=c[V+12>>2];W=X+(m*244|0)+16|0;V=n+(m*244|0)+16|0;c[V>>2]=c[W>>2];c[V+4>>2]=c[W+4>>2];c[V+8>>2]=c[W+8>>2];c[V+12>>2]=c[W+12>>2];V=X+(m*244|0)+32|0;W=n+(m*244|0)+32|0;c[W>>2]=c[V>>2];c[W+4>>2]=c[V+4>>2];c[W+8>>2]=c[V+8>>2];c[W+12>>2]=c[V+12>>2];W=n+(m*244|0)+48|0;V=X+(m*244|0)+48|0;c[W>>2]=c[V>>2];c[W+4>>2]=c[V+4>>2];c[W+8>>2]=c[V+8>>2];c[W+12>>2]=c[V+12>>2];vh(n+(m*244|0)+64|0,X+(m*244|0)+64|0,180)|0;m=m+1|0}while((m|0)!=(l|0))}l=c[b+16>>2]|0;if(l|0){if(a[b+20>>0]|0){c[6748]=(c[6748]|0)+1;uc(c[l+-4>>2]|0)}c[b+16>>2]=0}a[b+20>>0]=1;c[b+16>>2]=n;c[b+12>>2]=e+1;l=e+1|0;n=b+8|0}hk(_|0,0,244)|0;m=c[n>>2]|0;if((m|0)<0){if((l|0)<0){l=c[b+16>>2]|0;if(l|0){if(a[b+20>>0]|0){c[6748]=(c[6748]|0)+1;uc(c[l+-4>>2]|0)}c[b+16>>2]=0}a[b+20>>0]=1;c[b+16>>2]=0;c[b+12>>2]=0}l=m;do{X=c[b+16>>2]|0;W=X+(l*244|0)|0;c[W>>2]=c[_>>2];c[W+4>>2]=c[_+4>>2];c[W+8>>2]=c[_+8>>2];c[W+12>>2]=c[_+12>>2];W=X+(l*244|0)+16|0;c[W>>2]=c[_+16>>2];c[W+4>>2]=c[_+16+4>>2];c[W+8>>2]=c[_+16+8>>2];c[W+12>>2]=c[_+16+12>>2];W=X+(l*244|0)+32|0;c[W>>2]=c[_+32>>2];c[W+4>>2]=c[_+32+4>>2];c[W+8>>2]=c[_+32+8>>2];c[W+12>>2]=c[_+32+12>>2];W=X+(l*244|0)+48|0;c[W>>2]=c[_+48>>2];c[W+4>>2]=c[_+48+4>>2];c[W+8>>2]=c[_+48+8>>2];c[W+12>>2]=c[_+48+12>>2];vh(X+(l*244|0)+64|0,_+64|0,180)|0;l=l+1|0}while((l|0)!=0)}c[n>>2]=0;if((e|0)>0){n=0;do{l=d+(n<<2)|0;m=Kc(b,c[l>>2]|0,+f[k+12>>2])|0;l=c[l>>2]|0;if((!((l|0)==0?1:(c[l+236>>2]&2|0)==0)?+f[l+344>>2]!=0.0:0)?(o=c[b+16>>2]|0,c[l+504>>2]&2|0):0){p=+f[k+76>>2];N=1.0/+f[l+396>>2];P=1.0/+f[l+400>>2];t=1.0/+f[l+404>>2];H=+f[l+4>>2];I=+f[l+8>>2];J=+f[l+12>>2];K=+f[l+20>>2];L=+f[l+24>>2];M=+f[l+28>>2];O=+f[l+36>>2];Q=+f[l+40>>2];v=+f[l+44>>2];x=+f[l+328>>2];y=+f[l+332>>2];u=+f[l+336>>2];A=(N*H*H+P*I*I+t*J*J)*x+(N*H*K+P*I*L+t*J*M)*y+(N*H*O+P*I*Q+t*J*v)*u;z=(N*K*H+P*L*I+t*M*J)*x+(N*K*K+P*L*L+t*M*M)*y+(N*K*O+P*L*Q+t*M*v)*u;v=(N*O*H+P*Q*I+t*v*J)*x+(N*O*K+P*Q*L+t*v*M)*y+(N*O*O+P*Q*Q+t*v*v)*u;t=(x*z-y*A)*(x*z-y*A)+((y*v-u*z)*(y*v-u*z)+(u*A-x*v)*(u*A-x*v));if(t>p*p){p=1.0/+s(+t)*p;w=(y*v-u*z)*p;t=(u*A-x*v)*p;p=(x*z-y*A)*p}else{w=y*v-u*z;t=u*A-x*v;p=x*z-y*A}O=+f[k+12>>2];P=(w*+f[l+268>>2]+t*+f[l+284>>2]+p*+f[l+300>>2])*O;Q=O*(w*+f[l+272>>2]+t*+f[l+288>>2]+p*+f[l+304>>2]);f[o+(m*244|0)+224>>2]=+f[o+(m*244|0)+224>>2]-(w*+f[l+264>>2]+t*+f[l+280>>2]+p*+f[l+296>>2])*O;f[o+(m*244|0)+228>>2]=+f[o+(m*244|0)+228>>2]-P;f[o+(m*244|0)+232>>2]=+f[o+(m*244|0)+232>>2]-Q}n=n+1|0}while((n|0)!=(e|0))}if((j|0)>0){l=0;do{X=c[i+(l<<2)>>2]|0;Ca[c[(c[X>>2]|0)+8>>2]&511](X);f[X+36>>2]=0.0;l=l+1|0}while((l|0)<(j|0))}l=c[b+168>>2]|0;if((l|0)<(j|0)?(c[b+172>>2]|0)<(j|0):0){if(!j)m=0;else{c[6747]=(c[6747]|0)+1;l=kb((j<<3|3)+16|0)|0;if(!l)m=0;else{c[(l+4+15&-16)+-4>>2]=l;m=l+4+15&-16}l=c[b+168>>2]|0}if((l|0)>0){n=0;do{V=(c[b+176>>2]|0)+(n<<3)|0;W=c[V+4>>2]|0;X=m+(n<<3)|0;c[X>>2]=c[V>>2];c[X+4>>2]=W;n=n+1|0}while((n|0)!=(l|0))}l=c[b+176>>2]|0;if(l|0){if(a[b+180>>0]|0){c[6748]=(c[6748]|0)+1;uc(c[l+-4>>2]|0)}c[b+176>>2]=0}a[b+180>>0]=1;c[b+176>>2]=m;c[b+172>>2]=j}c[b+168>>2]=j;if((j|0)>0){q=0;l=0;do{d=c[b+176>>2]|0;e=d+(q<<3)|0;o=i+(q<<2)|0;m=c[o>>2]|0;n=c[m+44>>2]|0;if(n){m=n+64|0;do{c[n>>2]=0;n=n+4|0}while((n|0)<(m|0));m=c[o>>2]|0}if(!(a[m+20>>0]|0)){c[e>>2]=0;c[d+(q<<3)+4>>2]=0;m=0}else{Ia[c[(c[m>>2]|0)+16>>2]&127](m,e);m=c[e>>2]|0}l=m+l|0;q=q+1|0}while((q|0)<(j|0));o=l}else o=0;l=c[b+48>>2]|0;if((l|0)<(o|0)?(c[b+52>>2]|0)<(o|0):0){if(!o)m=0;else{c[6747]=(c[6747]|0)+1;l=kb((o*152|3)+16|0)|0;if(!l)m=0;else{c[(l+4+15&-16)+-4>>2]=l;m=l+4+15&-16}l=c[b+48>>2]|0}if((l|0)>0){n=0;do{vh(m+(n*152|0)|0,(c[b+56>>2]|0)+(n*152|0)|0,152)|0;n=n+1|0}while((n|0)!=(l|0))}l=c[b+56>>2]|0;if(l|0){if(a[b+60>>0]|0){c[6748]=(c[6748]|0)+1;uc(c[l+-4>>2]|0)}c[b+56>>2]=0}a[b+60>>0]=1;c[b+56>>2]=m;c[b+52>>2]=o}c[b+48>>2]=o;if((j|0)>0){l=c[b+176>>2]|0;W=0;X=0;while(1){V=l+(X<<3)|0;if(!(c[V>>2]|0))m=0;else{l=c[b+56>>2]|0;R=l+(W*152|0)|0;S=i+(X<<2)|0;o=c[S>>2]|0;d=c[o+28>>2]|0;e=c[o+32>>2]|0;T=Kc(b,d,+f[k+12>>2])|0;U=Kc(b,e,+f[k+12>>2])|0;q=c[b+16>>2]|0;m=c[o+24>>2]|0;m=(m|0)>0?m:c[k+20>>2]|0;if((m|0)>(c[b+184>>2]|0))c[b+184>>2]=m;if((c[V>>2]|0)>0){n=0;do{hk(R+(n*152|0)|0,0,152)|0;f[R+(n*152|0)+120>>2]=-3402823466385288598117041.0e14;f[R+(n*152|0)+124>>2]=3402823466385288598117041.0e14;f[R+(n*152|0)+100>>2]=0.0;f[R+(n*152|0)+96>>2]=0.0;c[R+(n*152|0)+144>>2]=T;c[R+(n*152|0)+148>>2]=U;c[R+(n*152|0)+136>>2]=m;n=n+1|0}while((n|0)<(c[V>>2]|0))}c[q+(T*244|0)+64>>2]=0;c[q+(T*244|0)+64+4>>2]=0;c[q+(T*244|0)+64+8>>2]=0;c[q+(T*244|0)+64+12>>2]=0;c[q+(T*244|0)+64+16>>2]=0;c[q+(T*244|0)+64+20>>2]=0;c[q+(T*244|0)+64+24>>2]=0;c[q+(T*244|0)+64+28>>2]=0;c[q+(T*244|0)+144>>2]=0;c[q+(T*244|0)+144+4>>2]=0;c[q+(T*244|0)+144+8>>2]=0;c[q+(T*244|0)+144+12>>2]=0;c[q+(T*244|0)+144+16>>2]=0;c[q+(T*244|0)+144+20>>2]=0;c[q+(T*244|0)+144+24>>2]=0;c[q+(T*244|0)+144+28>>2]=0;c[q+(U*244|0)+64>>2]=0;c[q+(U*244|0)+64+4>>2]=0;c[q+(U*244|0)+64+8>>2]=0;c[q+(U*244|0)+64+12>>2]=0;c[q+(U*244|0)+64+16>>2]=0;c[q+(U*244|0)+64+20>>2]=0;c[q+(U*244|0)+64+24>>2]=0;c[q+(U*244|0)+64+28>>2]=0;c[q+(U*244|0)+144>>2]=0;c[q+(U*244|0)+144+4>>2]=0;c[q+(U*244|0)+144+8>>2]=0;c[q+(U*244|0)+144+12>>2]=0;c[q+(U*244|0)+144+16>>2]=0;c[q+(U*244|0)+144+20>>2]=0;c[q+(U*244|0)+144+24>>2]=0;c[q+(U*244|0)+144+28>>2]=0;f[_>>2]=1.0/+f[k+12>>2];c[_+4>>2]=c[k+32>>2];c[_+8>>2]=l+(W*152|0)+16;c[_+12>>2]=R;c[_+16>>2]=l+(W*152|0)+48;c[_+20>>2]=l+(W*152|0)+32;c[_+24>>2]=38;c[_+28>>2]=l+(W*152|0)+112;n=l+(W*152|0)+116|0;c[n>>2]=c[k+40>>2];c[_+52>>2]=c[k+4>>2];c[_+32>>2]=n;c[_+36>>2]=l+(W*152|0)+120;c[_+40>>2]=l+(W*152|0)+124;c[_+48>>2]=c[k+20>>2];n=c[S>>2]|0;Ia[c[(c[n>>2]|0)+20>>2]&127](n,_);if((c[V>>2]|0)>0){m=0;do{l=R+(m*152|0)+124|0;p=+f[(c[S>>2]|0)+16>>2];if(+f[l>>2]>=p)f[l>>2]=p;l=R+(m*152|0)+120|0;if(+f[l>>2]<=-p)f[l>>2]=-p;c[R+(m*152|0)+132>>2]=o;n=R+(m*152|0)|0;l=c[o+28>>2]|0;p=+f[n>>2];t=+f[n+4>>2];u=+f[n+8>>2];w=(p*+f[l+280>>2]+t*+f[l+284>>2]+u*+f[l+288>>2])*+f[l+548>>2];v=(p*+f[l+296>>2]+t*+f[l+300>>2]+u*+f[l+304>>2])*+f[l+552>>2];n=R+(m*152|0)+64|0;f[n>>2]=(+f[l+264>>2]*p+ +f[l+268>>2]*t+ +f[l+272>>2]*u)*+f[l+544>>2];f[n+4>>2]=w;f[n+8>>2]=v;f[n+12>>2]=0.0;n=R+(m*152|0)+32|0;l=c[o+32>>2]|0;v=+f[n>>2];w=+f[n+4>>2];x=+f[n+8>>2];y=(v*+f[l+280>>2]+w*+f[l+284>>2]+x*+f[l+288>>2])*+f[l+548>>2];P=(v*+f[l+296>>2]+w*+f[l+300>>2]+x*+f[l+304>>2])*+f[l+552>>2];n=R+(m*152|0)+80|0;f[n>>2]=(+f[l+264>>2]*v+ +f[l+268>>2]*w+ +f[l+272>>2]*x)*+f[l+544>>2];f[n+4>>2]=y;f[n+8>>2]=P;f[n+12>>2]=0.0;n=R+(m*152|0)+16|0;P=+f[d+344>>2];y=+f[n>>2];z=+f[n+4>>2];A=+f[n+8>>2];n=R+(m*152|0)+48|0;Q=+f[e+344>>2];B=+f[n>>2];C=+f[n+4>>2];D=+f[n+8>>2];Q=y*(P*y)+z*(P*z)+A*(P*A)+(p*(p*+f[d+264>>2]+t*+f[d+268>>2]+u*+f[d+272>>2])+t*(p*+f[d+280>>2]+t*+f[d+284>>2]+u*+f[d+288>>2])+u*(p*+f[d+296>>2]+t*+f[d+300>>2]+u*+f[d+304>>2]))+(B*(Q*B)+C*(Q*C)+D*(Q*D))+(v*(v*+f[e+264>>2]+w*+f[e+268>>2]+x*+f[e+272>>2])+w*(v*+f[e+280>>2]+w*+f[e+284>>2]+x*+f[e+288>>2])+x*(v*+f[e+296>>2]+w*+f[e+300>>2]+x*+f[e+304>>2]));n=+r(+Q)>1.1920928955078125e-07;Q=n?1.0/Q:0.0;f[R+(m*152|0)+108>>2]=Q;if(!(c[q+(T*244|0)+240>>2]|0)){E=0.0;F=0.0;G=0.0;H=0.0;I=0.0;J=0.0}else{E=+f[q+(T*244|0)+208>>2];F=+f[q+(T*244|0)+212>>2];G=+f[q+(T*244|0)+216>>2];H=+f[q+(T*244|0)+224>>2];I=+f[q+(T*244|0)+228>>2];J=+f[q+(T*244|0)+232>>2]}if(!(c[q+(U*244|0)+240>>2]|0)){K=0.0;L=0.0;M=0.0;N=0.0;O=0.0;P=0.0}else{K=+f[q+(U*244|0)+208>>2];L=+f[q+(U*244|0)+212>>2];M=+f[q+(U*244|0)+216>>2];N=+f[q+(U*244|0)+224>>2];O=+f[q+(U*244|0)+228>>2];P=+f[q+(U*244|0)+232>>2]}n=R+(m*152|0)+112|0;f[n>>2]=Q*+f[n>>2]+Q*(0.0-+f[_+52>>2]*(y*(E+ +f[d+312>>2])+z*(F+ +f[d+316>>2])+A*(G+ +f[d+320>>2])+(p*(H+ +f[d+328>>2])+t*(I+ +f[d+332>>2])+u*(J+ +f[d+336>>2]))+(B*(K+ +f[e+312>>2])+C*(L+ +f[e+316>>2])+D*(M+ +f[e+320>>2])+(v*(N+ +f[e+328>>2])+w*(O+ +f[e+332>>2])+x*(P+ +f[e+336>>2])))));f[R+(m*152|0)+100>>2]=0.0;m=m+1|0}while((m|0)<(c[V>>2]|0))}l=c[b+176>>2]|0;m=c[l+(X<<3)>>2]|0}X=X+1|0;if((X|0)>=(j|0))break;else W=m+W|0}}Pa[c[(c[b>>2]|0)+28>>2]&127](b,g,h,k);d=c[b+48>>2]|0;e=c[b+28>>2]|0;q=c[b+68>>2]|0;l=c[b+128>>2]|0;if((l|0)<(d|0)?(c[b+132>>2]|0)<(d|0):0){if(!d)m=0;else{c[6747]=(c[6747]|0)+1;l=kb((d<<2|3)+16|0)|0;if(!l)m=0;else{c[(l+4+15&-16)+-4>>2]=l;m=l+4+15&-16}l=c[b+128>>2]|0}o=c[b+136>>2]|0;if((l|0)<=0)if(!o)l=b+140|0;else Z=106;else{n=0;do{c[m+(n<<2)>>2]=c[o+(n<<2)>>2];n=n+1|0}while((n|0)!=(l|0));Z=106}if((Z|0)==106){if(a[b+140>>0]|0){c[6748]=(c[6748]|0)+1;uc(c[o+-4>>2]|0)}c[b+136>>2]=0;l=b+140|0}a[l>>0]=1;c[b+136>>2]=m;c[b+132>>2]=d}c[b+128>>2]=d;if(!(c[k+64>>2]&16)){l=c[b+108>>2]|0;if((l|0)<(e|0)?(c[b+112>>2]|0)<(e|0):0){if(!e)m=0;else{c[6747]=(c[6747]|0)+1;l=kb((e<<2|3)+16|0)|0;if(!l)m=0;else{c[(l+4+15&-16)+-4>>2]=l;m=l+4+15&-16}l=c[b+108>>2]|0}o=c[b+116>>2]|0;if((l|0)<=0)if(!o)l=b+120|0;else Z=138;else{n=0;do{c[m+(n<<2)>>2]=c[o+(n<<2)>>2];n=n+1|0}while((n|0)!=(l|0));Z=138}if((Z|0)==138){if(a[b+120>>0]|0){c[6748]=(c[6748]|0)+1;uc(c[o+-4>>2]|0)}c[b+116>>2]=0;l=b+120|0}a[l>>0]=1;c[b+116>>2]=m;c[b+112>>2]=e}c[b+108>>2]=e}else{l=c[b+108>>2]|0;if((l|0)<(e<<1|0)?(c[b+112>>2]|0)<(e<<1|0):0){if(!e)m=0;else{c[6747]=(c[6747]|0)+1;l=kb((e<<3|3)+16|0)|0;if(!l)m=0;else{c[(l+4+15&-16)+-4>>2]=l;m=l+4+15&-16}l=c[b+108>>2]|0}o=c[b+116>>2]|0;if((l|0)<=0)if(!o)l=b+120|0;else Z=122;else{n=0;do{c[m+(n<<2)>>2]=c[o+(n<<2)>>2];n=n+1|0}while((n|0)!=(l|0));Z=122}if((Z|0)==122){if(a[b+120>>0]|0){c[6748]=(c[6748]|0)+1;uc(c[o+-4>>2]|0)}c[b+116>>2]=0;l=b+120|0}a[l>>0]=1;c[b+116>>2]=m;c[b+112>>2]=e<<1}c[b+108>>2]=e<<1}l=c[b+148>>2]|0;if((l|0)<(q|0)?(c[b+152>>2]|0)<(q|0):0){if(!q)m=0;else{c[6747]=(c[6747]|0)+1;l=kb((q<<2|3)+16|0)|0;if(!l)m=0;else{c[(l+4+15&-16)+-4>>2]=l;m=l+4+15&-16}l=c[b+148>>2]|0}o=c[b+156>>2]|0;if((l|0)<=0)if(!o)l=b+160|0;else Z=154;else{n=0;do{c[m+(n<<2)>>2]=c[o+(n<<2)>>2];n=n+1|0}while((n|0)!=(l|0));Z=154}if((Z|0)==154){if(a[b+160>>0]|0){c[6748]=(c[6748]|0)+1;uc(c[o+-4>>2]|0)}c[b+156>>2]=0;l=b+160|0}a[l>>0]=1;c[b+156>>2]=m;c[b+152>>2]=q}c[b+148>>2]=q;if((d|0)>0){l=c[b+136>>2]|0;m=0;do{c[l+(m<<2)>>2]=m;m=m+1|0}while((m|0)!=(d|0))}if((e|0)>0){l=c[b+116>>2]|0;m=0;do{c[l+(m<<2)>>2]=m;m=m+1|0}while((m|0)!=(e|0))}if((q|0)>0){l=c[b+156>>2]|0;m=0;do{c[l+(m<<2)>>2]=m;m=m+1|0}while((m|0)!=(q|0))}l=c[2685]|0;b=(c[l+16>>2]|0)+-1|0;c[l+16>>2]=b;if(b|0){ea=_;return 0.0}do if(c[l+4>>2]|0){Y(_|0,0)|0;b=c[6746]|0;f[l+8>>2]=+f[l+8>>2]+ +(((c[_+4>>2]|0)-(c[b+4>>2]|0)+(((c[_>>2]|0)-(c[b>>2]|0)|0)*1e6|0)-(c[l+12>>2]|0)|0)>>>0)/1.0e3;if(!(c[l+16>>2]|0)){l=c[2685]|0;break}else{ea=_;return 0.0}}while(0);c[2685]=c[l+20>>2];ea=_;return 0.0}function pb(b,d,e,g,h){b=b|0;d=d|0;e=e|0;g=g|0;h=h|0;var i=0.0,j=0.0,k=0.0,l=0.0,m=0.0,n=0.0,o=0.0,p=0.0,q=0.0,t=0.0,x=0.0,z=0.0,A=0.0,B=0.0,C=0.0,D=0.0,E=0.0,F=0.0,G=0.0,H=0.0,I=0.0,J=0.0,K=0.0,L=0.0,M=0.0,N=0.0,O=0.0,P=0.0,Q=0,R=0.0,S=0.0,T=0.0,U=0.0,V=0.0,W=0.0,X=0.0,Y=0.0,Z=0.0,_=0.0,$=0.0,aa=0.0,ba=0.0,ca=0.0,da=0.0,fa=0.0,ga=0.0,ha=0.0,ia=0.0,ja=0.0,ka=0.0,la=0.0,ma=0,na=0.0,oa=0.0,pa=0.0,qa=0.0,ra=0.0,sa=0.0;ma=ea;ea=ea+80|0;f[b+504>>2]=0.0;f[b+500>>2]=0.0;a[b+525>>0]=0;a[b+526>>0]=0;if(a[b+552>>0]|0?(a[b+527>>0]|0)==0:0){sa=+f[b+556>>2];qa=+f[b+560>>2];la=+f[b+564>>2];pa=+f[b+568>>2];$=sa*(2.0/(sa*sa+qa*qa+la*la+pa*pa));ra=qa*(2.0/(sa*sa+qa*qa+la*la+pa*pa));oa=la*(2.0/(sa*sa+qa*qa+la*la+pa*pa));aa=+f[b+300>>2];S=+f[d>>2];ba=+f[b+316>>2];T=+f[d+4>>2];ca=+f[b+332>>2];U=+f[d+8>>2];fa=+f[b+304>>2];ha=+f[b+320>>2];ja=+f[b+336>>2];Y=+f[b+308>>2];Z=+f[b+324>>2];_=+f[b+340>>2];V=+f[d+16>>2];W=+f[d+20>>2];X=+f[d+24>>2];ga=+f[d+32>>2];ia=+f[d+36>>2];ka=+f[d+40>>2];q=+f[b+348>>2];p=+f[b+352>>2];o=+f[b+356>>2];A=+f[b+364>>2];na=+f[e>>2];B=+f[b+380>>2];l=+f[e+4>>2];C=+f[b+396>>2];k=+f[e+8>>2];D=+f[b+368>>2];E=+f[b+384>>2];F=+f[b+400>>2];t=+f[b+372>>2];x=+f[b+388>>2];z=+f[b+404>>2];m=+f[e+16>>2];n=+f[e+20>>2];j=+f[e+24>>2];G=+f[e+32>>2];I=+f[e+36>>2];K=+f[e+40>>2];H=+f[b+412>>2];J=+f[b+416>>2];i=+f[b+420>>2];M=(1.0-(qa*ra+la*oa))*(A*na+B*l+C*k)+(sa*ra+pa*oa)*(na*D+l*E+k*F)+(sa*oa-pa*ra)*(na*t+l*x+k*z);N=(sa*ra-pa*oa)*(A*na+B*l+C*k)+(1.0-(sa*$+la*oa))*(na*D+l*E+k*F)+(qa*oa+pa*$)*(na*t+l*x+k*z);L=(sa*oa+pa*ra)*(A*na+B*l+C*k)+(qa*oa-pa*$)*(na*D+l*E+k*F)+(1.0-(sa*$+qa*ra))*(na*t+l*x+k*z);P=(sa*oa-pa*ra)*(t*m+x*n+z*j)+((1.0-(qa*ra+la*oa))*(A*m+B*n+C*j)+(sa*ra+pa*oa)*(D*m+E*n+F*j));R=(qa*oa+pa*$)*(t*m+x*n+z*j)+((sa*ra-pa*oa)*(A*m+B*n+C*j)+(1.0-(sa*$+la*oa))*(D*m+E*n+F*j));O=(1.0-(sa*$+qa*ra))*(t*m+x*n+z*j)+((sa*oa+pa*ra)*(A*m+B*n+C*j)+(qa*oa-pa*$)*(D*m+E*n+F*j));da=(sa*oa-pa*ra)*(t*G+x*I+z*K)+((1.0-(qa*ra+la*oa))*(A*G+B*I+C*K)+(sa*ra+pa*oa)*(D*G+E*I+F*K));la=(qa*oa+pa*$)*(t*G+x*I+z*K)+((sa*ra-pa*oa)*(A*G+B*I+C*K)+(1.0-(sa*$+la*oa))*(D*G+E*I+F*K));$=(1.0-(sa*$+qa*ra))*(t*G+x*I+z*K)+((sa*oa+pa*ra)*(A*G+B*I+C*K)+(qa*oa-pa*$)*(D*G+E*I+F*K));pa=-(+f[d+48>>2]+(S*q+T*p+U*o));oa=-(V*q+W*p+X*o+ +f[d+52>>2]);o=-(ga*q+ia*p+ka*o+ +f[d+56>>2]);p=(aa*S+ba*T+ca*U)*pa+(aa*V+ba*W+ca*X)*oa+(aa*ga+ba*ia+ca*ka)*o;q=(S*fa+T*ha+U*ja)*pa+(fa*V+ha*W+ja*X)*oa+(fa*ga+ha*ia+ja*ka)*o;o=(S*Y+T*Z+U*_)*pa+(Y*V+Z*W+_*X)*oa+(Y*ga+Z*ia+_*ka)*o;k=o*L+(p*M+q*N)+((A*na+B*l+C*k)*0.0+(na*D+l*E+k*F)*0.0+(na*t+l*x+k*z)*0.0+(+f[e+48>>2]+(na*H+l*J+k*i)));j=o*O+(p*P+q*R)+((t*m+x*n+z*j)*0.0+((A*m+B*n+C*j)*0.0+(D*m+E*n+F*j)*0.0)+(m*H+n*J+j*i+ +f[e+52>>2]));i=o*$+(p*da+q*la)+((t*G+x*I+z*K)*0.0+((A*G+B*I+C*K)*0.0+(D*G+E*I+F*K)*0.0)+(G*H+I*J+K*i+ +f[e+56>>2]));f[ma+16>>2]=(S*Y+T*Z+U*_)*L+((aa*S+ba*T+ca*U)*M+(S*fa+T*ha+U*ja)*N);f[ma+16+4>>2]=(Y*V+Z*W+_*X)*L+((aa*V+ba*W+ca*X)*M+(fa*V+ha*W+ja*X)*N);f[ma+16+8>>2]=(Y*ga+Z*ia+_*ka)*L+((aa*ga+ba*ia+ca*ka)*M+(fa*ga+ha*ia+ja*ka)*N);f[ma+16+12>>2]=0.0;f[ma+16+16>>2]=(S*Y+T*Z+U*_)*O+((aa*S+ba*T+ca*U)*P+(S*fa+T*ha+U*ja)*R);f[ma+16+20>>2]=(Y*V+Z*W+_*X)*O+((aa*V+ba*W+ca*X)*P+(fa*V+ha*W+ja*X)*R);f[ma+16+24>>2]=(Y*ga+Z*ia+_*ka)*O+((aa*ga+ba*ia+ca*ka)*P+(fa*ga+ha*ia+ja*ka)*R);f[ma+16+28>>2]=0.0;f[ma+16+32>>2]=(S*Y+T*Z+U*_)*$+((aa*S+ba*T+ca*U)*da+(S*fa+T*ha+U*ja)*la);f[ma+16+36>>2]=(Y*V+Z*W+_*X)*$+((aa*V+ba*W+ca*X)*da+(fa*V+ha*W+ja*X)*la);f[ma+16+40>>2]=(Y*ga+Z*ia+_*ka)*$+((aa*ga+ba*ia+ca*ka)*da+(fa*ga+ha*ia+ja*ka)*la);f[ma+16+44>>2]=0.0;f[ma+16+48>>2]=k;f[ma+16+52>>2]=j;f[ma+16+56>>2]=i;f[ma+16+60>>2]=0.0;Gg(ma+16|0,ma);i=+f[ma>>2];j=+f[ma+4>>2];k=+f[ma+8>>2];if(!(+r(+(i*i+j*j+k*k))<1.1920928955078125e-07)?(f[b+472>>2]=0.0,sa=1.0/+s(+(i*i+j*j+k*k)),f[b+460>>2]=sa*i,f[b+464>>2]=sa*j,f[b+468>>2]=sa*k,sa=+f[ma+12>>2],sa=sa<-1.0?-1.0:sa,sa=+w(+(sa>1.0?1.0:sa))*2.0,f[b+504>>2]=sa,!(+r(+sa)<1.1920928955078125e-07)):0)a[b+526>>0]=1;ea=ma;return}Gg(d,ma+16|0);Gg(b+300|0,ma);U=+f[ma+16+12>>2];V=+f[ma>>2];W=+f[ma+16>>2];X=+f[ma+12>>2];Y=+f[ma+16+4>>2];Z=+f[ma+8>>2];_=+f[ma+16+8>>2];$=+f[ma+4>>2];Gg(e,ma+16|0);Gg(b+364|0,ma);aa=+f[ma+16+12>>2];ba=+f[ma>>2];ca=+f[ma+16>>2];da=+f[ma+12>>2];fa=+f[ma+16+4>>2];ga=+f[ma+8>>2];ha=+f[ma+16+8>>2];ia=+f[ma+4>>2];ja=-(aa*ba+ca*da+fa*ga-ha*ia);ka=-(ba*ha+(da*fa+aa*ia)-ca*ga);la=-(aa*ga+da*ha+ca*ia-ba*fa);p=(U*X-V*W-Y*$-Z*_)*ja+(U*V+W*X+Y*Z-_*$)*(aa*da-ba*ca-fa*ia-ga*ha)+(U*Z+X*_+W*$-V*Y)*ka-(V*_+(X*Y+U*$)-W*Z)*la;q=(U*V+W*X+Y*Z-_*$)*la+((V*_+(X*Y+U*$)-W*Z)*(aa*da-ba*ca-fa*ia-ga*ha)+(U*X-V*W-Y*$-Z*_)*ka)-(U*Z+X*_+W*$-V*Y)*ja;t=(V*_+(X*Y+U*$)-W*Z)*ja+((U*Z+X*_+W*$-V*Y)*(aa*da-ba*ca-fa*ia-ga*ha)+(U*X-V*W-Y*$-Z*_)*la)-(U*V+W*X+Y*Z-_*$)*ka;x=(U*X-V*W-Y*$-Z*_)*(aa*da-ba*ca-fa*ia-ga*ha)-(U*V+W*X+Y*Z-_*$)*ja-(V*_+(X*Y+U*$)-W*Z)*ka-(U*Z+X*_+W*$-V*Y)*la;l=-p-q*0.0-t*0.0;k=(t+x*0.0-p*0.0)*-t+(x*(x+q*0.0-t*0.0)+l*-p)-(x*0.0+p*0.0-q)*-q;i=(x*0.0+p*0.0-q)*-p+(x*(t+x*0.0-p*0.0)+l*-q)-(x+q*0.0-t*0.0)*-t;l=(x+q*0.0-t*0.0)*-q+(x*(x*0.0+p*0.0-q)+l*-t)-(t+x*0.0-p*0.0)*-p;j=1.0/+s(+(l*l+(k*k+i*i)));if(l*j*0.0+(i*j*0.0+k*j)<-.9999998807907104){m=-0.0;n=0.0;o=0.0;i=1.0}else{sa=+s(+((l*j*0.0+(i*j*0.0+k*j)+1.0)*2.0));m=(l*j*0.0-i*j*0.0)*(1.0/sa);n=(i*j-k*j*0.0)*(1.0/sa);o=sa*.5;i=(k*j*0.0-l*j)*(1.0/sa)}k=1.0/+s(+(m*m+i*i+n*n+o*o));z=m*k;A=i*k;m=n*k;k=o*k;T=1.0/+s(+((x*k-p*-z-q*-A-t*-m)*(x*k-p*-z-q*-A-t*-m)+((q*-z+(t*k+x*-m)-p*-A)*(q*-z+(t*k+x*-m)-p*-A)+((t*-A+(p*k+x*-z)-q*-m)*(t*-A+(p*k+x*-z)-q*-m)+(p*-m+(x*-A+q*k)-t*-z)*(p*-m+(x*-A+q*k)-t*-z)))));j=(t*-A+(p*k+x*-z)-q*-m)*T;l=(p*-m+(x*-A+q*k)-t*-z)*T;i=(q*-z+(t*k+x*-m)-p*-A)*T;T=(x*k-p*-z-q*-A-t*-m)*T;S=+f[b+444>>2];R=+f[b+456>>2];if(S>=R?(B=+f[b+448>>2],B>=R):0){t=k<-1.0?-1.0:k;t=+w(+(t>1.0?1.0:t))*2.0;if(t>1.1920928955078125e-07){k=1.0/+s(+(m*m+(z*z+A*A)));if(+r(+(A*k))>1.1920928955078125e-07){q=+s(+((m*k*(m*k)/(A*k*(A*k))+1.0)/(m*k*(m*k)/(A*k*(A*k))/(S*S)+1.0/(B*B))));n=z*k;m=m*k;k=A*k}else{q=S;n=z*k;m=m*k;k=A*k}}else{q=0.0;n=0.0;m=0.0;k=0.0}o=+f[b+428>>2];p=q*o;if(t>p){a[b+526>>0]=1;if(t>2]=o;f[b+504>>2]=t-p;if(+r(+k)>1.1920928955078125e-07){sa=+r(+(k*(B/S*(-m/k))));m=m<-0.0?sa:-sa;sa=1.0/+s(+(n*n+k*k+m*m));n=n*sa;m=-(m*sa);k=k*sa}ra=-n;qa=-k;oa=-m;na=(aa*da-ba*ca-fa*ia-ga*ha)*ra+(ba*ha+(da*fa+aa*ia)-ca*ga)*oa-(aa*ga+da*ha+ca*ia-ba*fa)*qa;sa=(aa*ga+da*ha+ca*ia-ba*fa)*ra+(aa*da-ba*ca-fa*ia-ga*ha)*qa-(aa*ba+ca*da+fa*ga-ha*ia)*oa;pa=(aa*ba+ca*da+fa*ga-ha*ia)*qa+(aa*da-ba*ca-fa*ia-ga*ha)*oa-(ba*ha+(da*fa+aa*ia)-ca*ga)*ra;oa=-((aa*ba+ca*da+fa*ga-ha*ia)*ra)-(ba*ha+(da*fa+aa*ia)-ca*ga)*qa-(aa*ga+da*ha+ca*ia-ba*fa)*oa;qa=sa*la+(oa*ja+(aa*da-ba*ca-fa*ia-ga*ha)*na)-pa*ka;ra=pa*ja+((aa*da-ba*ca-fa*ia-ga*ha)*sa+oa*ka)-na*la;sa=na*ka+(oa*la+(aa*da-ba*ca-fa*ia-ga*ha)*pa)-sa*ja;f[b+460>>2]=qa;f[b+464>>2]=ra;f[b+468>>2]=sa;f[b+472>>2]=0.0;c[b+536>>2]=0;c[b+536+4>>2]=0;c[b+536+8>>2]=0;c[b+536+12>>2]=0;f[b+492>>2]=1.0/(qa*(+f[g>>2]*qa+ +f[g+16>>2]*ra+ +f[g+32>>2]*sa)+ra*(qa*+f[g+4>>2]+ra*+f[g+20>>2]+sa*+f[g+36>>2])+sa*(qa*+f[g+8>>2]+ra*+f[g+24>>2]+sa*+f[g+40>>2])+(qa*(qa*+f[h>>2]+ra*+f[h+16>>2]+sa*+f[h+32>>2])+ra*(qa*+f[h+4>>2]+ra*+f[h+20>>2]+sa*+f[h+36>>2])+sa*(qa*+f[h+8>>2]+ra*+f[h+24>>2]+sa*+f[h+40>>2])))}}else Q=20;a:do if((Q|0)==20){F=+f[b+300>>2];G=+f[b+316>>2];H=+f[b+332>>2];I=+f[d>>2];J=+f[d+4>>2];K=+f[d+8>>2];L=+f[d+16>>2];M=+f[d+20>>2];N=+f[d+24>>2];O=+f[d+32>>2];P=+f[d+36>>2];q=+f[d+40>>2];t=+f[b+304>>2];x=+f[b+320>>2];z=+f[b+336>>2];A=+f[b+308>>2];B=+f[b+324>>2];C=+f[b+340>>2];m=+f[b+364>>2];n=+f[b+380>>2];p=+f[b+396>>2];E=m*+f[e>>2]+n*+f[e+4>>2]+p*+f[e+8>>2];D=m*+f[e+16>>2]+n*+f[e+20>>2]+p*+f[e+24>>2];p=m*+f[e+32>>2]+n*+f[e+36>>2]+p*+f[e+40>>2];n=(F*I+G*J+H*K)*E+(F*L+G*M+H*N)*D+(F*O+G*P+H*q)*p;m=(I*t+J*x+K*z)*E+(L*t+M*x+N*z)*D+(O*t+P*x+q*z)*p;k=(I*A+J*B+K*C)*E+(L*A+M*B+N*C)*D+(O*A+P*B+q*C)*p;do if(S>2];if(o>0]=1;f[b+460>>2]=-((F*O+G*P+H*q)*D-(F*L+G*M+H*N)*p);f[b+464>>2]=-((F*I+G*J+H*K)*p-(F*O+G*P+H*q)*E);f[b+468>>2]=-((F*L+G*M+H*N)*E-(F*I+G*J+H*K)*D);f[b+472>>2]=0.0;break a}if(!(+r(+n)<1.1920928955078125e-07&+r(+k)<1.1920928955078125e-07)?(a[b+526>>0]=1,o>=R):0){m=+y(+k,+n);if(m>o){n=+u(+o);m=0.0;k=+v(+o);break}if(m<-o){n=+u(+o);m=0.0;k=-+v(+o)}else m=0.0}}else if(!(+r(+n)<1.1920928955078125e-07&+r(+m)<1.1920928955078125e-07)?(a[b+526>>0]=1,S>=R):0){k=+y(+m,+n);if(k>S){n=+u(+S);m=+v(+S);k=0.0;break}if(k<-S){n=+u(+S);m=-+v(+S);k=0.0}else k=0.0}while(0);qa=(I*A+J*B+K*C)*k+((I*t+J*x+K*z)*m+(F*I+G*J+H*K)*n);pa=(L*A+M*B+N*C)*k+((L*t+M*x+N*z)*m+(F*L+G*M+H*N)*n);oa=(O*A+P*B+q*C)*k+((O*t+P*x+q*z)*m+(F*O+G*P+H*q)*n);ra=1.0/+s(+(oa*oa+(qa*qa+pa*pa)));f[b+472>>2]=0.0;sa=+s(+((D*(oa*ra)-p*(pa*ra))*(D*(oa*ra)-p*(pa*ra))+(p*(qa*ra)-E*(oa*ra))*(p*(qa*ra)-E*(oa*ra))+(E*(pa*ra)-D*(qa*ra))*(E*(pa*ra)-D*(qa*ra))));f[b+504>>2]=sa;f[b+460>>2]=-((D*(oa*ra)-p*(pa*ra))*(1.0/sa));f[b+464>>2]=-((p*(qa*ra)-E*(oa*ra))*(1.0/sa));f[b+468>>2]=-((E*(pa*ra)-D*(qa*ra))*(1.0/sa))}while(0);o=+f[b+452>>2];if(!(o>=0.0)){f[b+512>>2]=0.0;ea=ma;return}k=T<-1.0?-1.0:T;k=+w(+(k>1.0?1.0:k))*2.0;if(k>3.1415927410125732){n=-T<-1.0?-1.0:-T;j=-j;l=-l;i=-i;n=+w(+(n>1.0?1.0:n))*2.0}else n=k;f[b+512>>2]=n;if(n>1.1920928955078125e-07){sa=1.0/+s(+(j*j+l*l+i*i));j=j*sa;m=i*sa;l=l*sa}else m=i;i=+f[b+428>>2];if(n>o*i){a[b+525>>0]=1;k=n-o*i;if(n>2]=i;f[b+508>>2]=k;ra=-j;qa=-l;oa=-m;na=(aa*da-ba*ca-fa*ia-ga*ha)*ra+(ba*ha+(da*fa+aa*ia)-ca*ga)*oa-(aa*ga+da*ha+ca*ia-ba*fa)*qa;sa=(aa*ga+da*ha+ca*ia-ba*fa)*ra+(aa*da-ba*ca-fa*ia-ga*ha)*qa-(aa*ba+ca*da+fa*ga-ha*ia)*oa;pa=(aa*ba+ca*da+fa*ga-ha*ia)*qa+(aa*da-ba*ca-fa*ia-ga*ha)*oa-(ba*ha+(da*fa+aa*ia)-ca*ga)*ra;oa=-((aa*ba+ca*da+fa*ga-ha*ia)*ra)-(ba*ha+(da*fa+aa*ia)-ca*ga)*qa-(aa*ga+da*ha+ca*ia-ba*fa)*oa;qa=sa*la+(oa*ja+(aa*da-ba*ca-fa*ia-ga*ha)*na)-pa*ka;ra=pa*ja+((aa*da-ba*ca-fa*ia-ga*ha)*sa+oa*ka)-na*la;sa=na*ka+(oa*la+(aa*da-ba*ca-fa*ia-ga*ha)*pa)-sa*ja;f[b+476>>2]=qa;f[b+480>>2]=ra;f[b+484>>2]=sa;f[b+488>>2]=0.0;f[b+496>>2]=1.0/(qa*(+f[g>>2]*qa+ +f[g+16>>2]*ra+ +f[g+32>>2]*sa)+ra*(qa*+f[g+4>>2]+ra*+f[g+20>>2]+sa*+f[g+36>>2])+sa*(qa*+f[g+8>>2]+ra*+f[g+24>>2]+sa*+f[g+40>>2])+(qa*(qa*+f[h>>2]+ra*+f[h+16>>2]+sa*+f[h+32>>2])+ra*(qa*+f[h+4>>2]+ra*+f[h+20>>2]+sa*+f[h+36>>2])+sa*(qa*+f[h+8>>2]+ra*+f[h+24>>2]+sa*+f[h+40>>2])))}if(!(a[b+526>>0]|0)){ea=ma;return}na=-j;sa=-l;oa=-m;la=(U*X-V*W-Y*$-Z*_)*na+(V*_+(X*Y+U*$)-W*Z)*oa-(U*Z+X*_+W*$-V*Y)*sa;ra=(U*Z+X*_+W*$-V*Y)*na+(U*X-V*W-Y*$-Z*_)*sa-(U*V+W*X+Y*Z-_*$)*oa;qa=(U*V+W*X+Y*Z-_*$)*sa+(U*X-V*W-Y*$-Z*_)*oa-(V*_+(X*Y+U*$)-W*Z)*na;oa=-((U*V+W*X+Y*Z-_*$)*na)-(V*_+(X*Y+U*$)-W*Z)*sa-(U*Z+X*_+W*$-V*Y)*oa;sa=-(U*V+W*X+Y*Z-_*$);na=-(V*_+(X*Y+U*$)-W*Z);pa=-(U*Z+X*_+W*$-V*Y);f[b+536>>2]=ra*pa+(oa*sa+(U*X-V*W-Y*$-Z*_)*la)-qa*na;f[b+540>>2]=qa*sa+((U*X-V*W-Y*$-Z*_)*ra+oa*na)-la*pa;f[b+544>>2]=la*na+(oa*pa+(U*X-V*W-Y*$-Z*_)*qa)-ra*sa;f[b+548>>2]=0.0;ea=ma;return}function qb(b,d){b=b|0;d=d|0;var e=0.0,g=0.0,h=0,i=0.0,j=0,k=0.0,l=0.0,m=0,n=0.0,o=0,p=0.0,q=0,r=0,t=0.0,u=0.0,v=0.0,w=0.0,x=0.0,y=0.0,z=0.0,A=0.0,B=0.0,C=0.0,D=0.0,E=0.0,F=0.0,G=0.0,H=0.0,I=0.0,J=0.0,K=0.0,L=0.0,M=0.0,N=0.0,O=0.0,P=0.0,Q=0,R=0.0,S=0.0,T=0.0,U=0.0,V=0.0,W=0.0,X=0.0,Y=0.0,Z=0.0,_=0.0,$=0.0,aa=0.0,ba=0.0,ca=0.0,da=0.0,ea=0.0,fa=0.0,ga=0.0,ha=0.0,ia=0.0,ja=0.0,ka=0.0,la=0,ma=0,na=0;ma=c[b+28>>2]|0;na=c[b+32>>2]|0;la=c[d+24>>2]|0;if(!(a[b+739>>0]|0)){k=+f[b+552>>2];R=+f[ma+4>>2];l=+f[b+568>>2];S=+f[ma+8>>2];n=+f[b+584>>2];T=+f[ma+12>>2];p=+f[b+556>>2];t=+f[b+572>>2];u=+f[b+588>>2];U=+f[b+560>>2];V=+f[b+576>>2];W=+f[b+592>>2];X=+f[ma+20>>2];Y=+f[ma+24>>2];Z=+f[ma+28>>2];_=+f[ma+36>>2];$=+f[ma+40>>2];aa=+f[ma+44>>2];v=+f[b+600>>2];w=+f[b+604>>2];x=+f[b+608>>2];y=+f[ma+52>>2];z=+f[ma+56>>2];A=+f[ma+60>>2];B=+f[na+4>>2];C=+f[na+8>>2];D=+f[na+12>>2];E=+f[b+624>>2];F=+f[b+640>>2];G=+f[b+656>>2];H=+f[na+20>>2];I=+f[na+24>>2];J=+f[na+28>>2];K=+f[na+36>>2];L=+f[na+40>>2];M=+f[na+44>>2];ja=+f[b+664>>2];ka=+f[b+668>>2];O=+f[b+672>>2];N=+f[na+52>>2]+(B*ja+C*ka+D*O);P=H*ja+I*ka+J*O+ +f[na+56>>2];O=K*ja+L*ka+M*O+ +f[na+60>>2];j=(a[b+736>>0]|0)==0;if(j){h=c[d+8>>2]|0;f[h>>2]=1.0;f[h+(la+1<<2)>>2]=1.0;f[h+((la<<1)+2<<2)>>2]=1.0;h=c[d+16>>2]|0;f[h>>2]=-1.0;f[h+(la+1<<2)>>2]=-1.0;f[h+((la<<1)+2<<2)>>2]=-1.0;e=+f[ma+52>>2];g=+f[ma+56>>2];i=+f[ma+60>>2];h=la<<1}else{e=y;g=z;i=A;h=la<<1}e=y+(R*v+S*w+T*x)-e;ka=X*v+Y*w+Z*x+z-g;ja=_*v+$*w+aa*x+A-i;m=c[d+12>>2]|0;o=m+(h<<2)|0;c[m>>2]=0;f[m+4>>2]=ja;f[m+8>>2]=-ka;f[m+12>>2]=0.0;f[m+(la<<2)>>2]=-ja;c[m+(la<<2)+4>>2]=0;f[m+(la<<2)+8>>2]=e;f[m+(la<<2)+12>>2]=0.0;f[o>>2]=ka;f[o+4>>2]=-e;c[o+8>>2]=0;f[o+12>>2]=0.0;e=N-+f[na+52>>2];ka=P-+f[na+56>>2];ja=O-+f[na+60>>2];o=c[d+20>>2]|0;Q=o+(h<<2)|0;c[o>>2]=0;f[o+4>>2]=-ja;f[o+8>>2]=ka;f[o+12>>2]=0.0;f[o+(la<<2)>>2]=ja;c[o+(la<<2)+4>>2]=0;f[o+(la<<2)+8>>2]=-e;f[o+(la<<2)+12>>2]=0.0;f[Q>>2]=-ka;f[Q+4>>2]=e;c[Q+8>>2]=0;f[Q+12>>2]=0.0;e=+f[d>>2]*+f[d+4>>2];Q=c[d+28>>2]|0;if(j){f[Q>>2]=e*(N-(y+(R*v+S*w+T*x)));f[Q+(la<<2)>>2]=e*(P-(X*v+Y*w+Z*x+z));f[Q+(la<<1<<2)>>2]=e*(O-(_*v+$*w+aa*x+A))}f[m+(la*3<<2)>>2]=k*R+l*S+n*T;f[m+((la*3|0)+1<<2)>>2]=k*X+l*Y+n*Z;f[m+((la*3|0)+2<<2)>>2]=k*_+l*$+n*aa;f[m+(la<<2<<2)>>2]=R*p+S*t+T*u;f[m+((la<<2|1)<<2)>>2]=p*X+t*Y+u*Z;f[m+((la<<2|2)<<2)>>2]=p*_+t*$+u*aa;f[o+(la*3<<2)>>2]=-(k*R+l*S+n*T);f[o+((la*3|0)+1<<2)>>2]=-(k*X+l*Y+n*Z);f[o+((la*3|0)+2<<2)>>2]=-(k*_+l*$+n*aa);f[o+(la<<2<<2)>>2]=-(R*p+S*t+T*u);f[o+((la<<2|1)<<2)>>2]=-(p*X+t*Y+u*Z);f[o+((la<<2|2)<<2)>>2]=-(p*_+t*$+u*aa);ja=(U*X+V*Y+W*Z)*(E*K+F*L+G*M)-(U*_+V*$+W*aa)*(E*H+F*I+G*J);ka=(U*_+V*$+W*aa)*(B*E+C*F+D*G)-(R*U+S*V+T*W)*(E*K+F*L+G*M);ia=(R*U+S*V+T*W)*(E*H+F*I+G*J)-(U*X+V*Y+W*Z)*(B*E+C*F+D*G);f[Q+(la*3<<2)>>2]=((k*_+l*$+n*aa)*ia+((k*R+l*S+n*T)*ja+(k*X+l*Y+n*Z)*ka))*e;f[Q+(la<<2<<2)>>2]=((p*_+t*$+u*aa)*ia+((R*p+S*t+T*u)*ja+(p*X+t*Y+u*Z)*ka))*e;if(!(a[b+716>>0]|0)){r=0;p=0.0}else{p=+f[b+708>>2]*+f[b+732>>2];r=p>0.0?1:2}h=a[b+737>>0]|0;q=(r|0)!=0;if(!(r|h&255))return;f[m+(la*5<<2)>>2]=R*U+S*V+T*W;f[m+((la*5|0)+1<<2)>>2]=U*X+V*Y+W*Z;f[m+((la*5|0)+2<<2)>>2]=U*_+V*$+W*aa;f[o+(la*5<<2)>>2]=-(R*U+S*V+T*W);f[o+((la*5|0)+1<<2)>>2]=-(U*X+V*Y+W*Z);f[o+((la*5|0)+2<<2)>>2]=-(U*_+V*$+W*aa);e=+f[b+688>>2];g=+f[b+692>>2];if(!((e-g)%6.2831854820251465<-3.1415927410125732))if((e-g)%6.2831854820251465>3.1415927410125732)n=(e-g)%6.2831854820251465+-6.2831854820251465;else n=(e-g)%6.2831854820251465;else n=(e-g)%6.2831854820251465+6.2831854820251465;if(!((e+g)%6.2831854820251465<-3.1415927410125732))if((e+g)%6.2831854820251465>3.1415927410125732)l=(e+g)%6.2831854820251465+-6.2831854820251465;else l=(e+g)%6.2831854820251465;else l=(e+g)%6.2831854820251465+6.2831854820251465;m=n==l;o=Q+(la*5<<2)|0;f[o>>2]=0.0;j=c[b+748>>2]|0;k=+f[((j&2|0)==0?d+4|0:b+760|0)>>2];if(!(h<<24>>24==0|q&m)){if(j&4|0)c[(c[d+32>>2]|0)+(la*5<<2)>>2]=c[b+752>>2];g=+f[b+728>>2];i=+f[b+680>>2];e=n>l?1.0:0.0;do if(!(n>=l)){e=i/(k*+f[d>>2]);if(e<0.0)if(g>=n&n-e>g){e=(n-g)/e;break}else{e=g0.0)if(g<=l&l-el?0.0:1.0;break}else e=0.0}while(0);f[o>>2]=e*i*+f[b+732>>2]+ +f[o>>2];f[(c[d+36>>2]|0)+(la*5<<2)>>2]=-+f[b+684>>2];c[(c[d+40>>2]|0)+(la*5<<2)>>2]=c[b+684>>2]}if(!q)return;f[o>>2]=+f[o>>2]+p*(k*+f[d>>2]);if(j&1|0)c[(c[d+32>>2]|0)+(la*5<<2)>>2]=c[b+756>>2];do if(!m){h=(c[d+36>>2]|0)+(la*5<<2)|0;if((r|0)==1){f[h>>2]=0.0;e=3402823466385288598117041.0e14;break}else{f[h>>2]=-3402823466385288598117041.0e14;e=0.0;break}}else{f[(c[d+36>>2]|0)+(la*5<<2)>>2]=-3402823466385288598117041.0e14;e=3402823466385288598117041.0e14}while(0);f[(c[d+40>>2]|0)+(la*5<<2)>>2]=e;g=+f[b+704>>2];do if(g>0.0){e=(R*U+S*V+T*W)*+f[ma+328>>2]+(U*X+V*Y+W*Z)*+f[ma+332>>2]+(U*_+V*$+W*aa)*+f[ma+336>>2]-((R*U+S*V+T*W)*+f[na+328>>2]+(U*X+V*Y+W*Z)*+f[na+332>>2]+(U*_+V*$+W*aa)*+f[na+336>>2]);if((r|0)==1){if(!(e<0.0))break;if(!(+f[o>>2]<-(g*e)))break;f[o>>2]=-(g*e);break}else{if(!(e>0.0))break;if(!(+f[o>>2]>-(g*e)))break;f[o>>2]=-(g*e);break}}while(0);f[o>>2]=+f[b+700>>2]*+f[o>>2];return}ea=+f[ma+4>>2];fa=+f[ma+8>>2];ga=+f[ma+12>>2];n=+f[b+556>>2];p=+f[b+572>>2];t=+f[b+588>>2];K=+f[b+560>>2];L=+f[b+576>>2];M=+f[b+592>>2];N=+f[ma+20>>2];O=+f[ma+24>>2];P=+f[ma+28>>2];R=+f[ma+36>>2];S=+f[ma+40>>2];T=+f[ma+44>>2];B=+f[b+600>>2];D=+f[b+604>>2];C=+f[b+608>>2];g=+f[ma+52>>2];u=+f[ma+56>>2];k=+f[ma+60>>2];U=+f[na+4>>2];V=+f[na+8>>2];W=+f[na+12>>2];X=+f[b+624>>2];Y=+f[b+640>>2];Z=+f[b+656>>2];_=+f[na+20>>2];$=+f[na+24>>2];aa=+f[na+28>>2];ba=+f[na+36>>2];ca=+f[na+40>>2];da=+f[na+44>>2];A=+f[b+664>>2];z=+f[b+668>>2];e=+f[b+672>>2];i=+f[na+52>>2];v=+f[na+56>>2];l=+f[na+60>>2];F=i+(U*A+V*z+W*e)-(g+(ea*B+fa*D+ga*C));H=_*A+$*z+aa*e+v-(N*B+O*D+P*C+u);G=ba*A+ca*z+da*e+l-(R*B+S*D+T*C+k);w=+f[(c[b+28>>2]|0)+344>>2];x=+f[(c[b+32>>2]|0)+344>>2];E=w+x>0.0?x/(w+x):.5;ha=(ea*K+fa*L+ga*M)*E+(U*X+V*Y+W*Z)*(1.0-E);ja=(K*N+L*O+M*P)*E+(X*_+Y*$+Z*aa)*(1.0-E);ia=(K*R+L*S+M*T)*E+(X*ba+Y*ca+Z*da)*(1.0-E);ka=1.0/+s(+(ia*ia+(ha*ha+ja*ja)));y=(ba*A+ca*z+da*e+l-l)*(ia*ka)+((i+(U*A+V*z+W*e)-i)*(ha*ka)+(_*A+$*z+aa*e+v-v)*(ja*ka));i=i+(U*A+V*z+W*e)-i-ha*ka*y;v=_*A+$*z+aa*e+v-v-ja*ka*y;l=ba*A+ca*z+da*e+l-l-ia*ka*y;e=(R*B+S*D+T*C+k-k)*(ia*ka)+((g+(ea*B+fa*D+ga*C)-g)*(ha*ka)+(N*B+O*D+P*C+u-u)*(ja*ka));g=g+(ea*B+fa*D+ga*C)-g-ha*ka*e;u=N*B+O*D+P*C+u-u-ja*ka*e;k=R*B+S*D+T*C+k-k-ia*ka*e;C=g+E*(ha*ka*e-ha*ka*y);D=u+E*(ja*ka*e-ja*ka*y);B=k+E*(ia*ka*e-ia*ka*y);z=i-(1.0-E)*(ha*ka*e-ha*ka*y);A=v-(1.0-E)*(ja*ka*e-ja*ka*y);y=l-(1.0-E)*(ia*ka*e-ia*ka*y);e=(E*l+(1.0-E)*k)*(E*l+(1.0-E)*k)+((E*i+(1.0-E)*g)*(E*i+(1.0-E)*g)+(E*v+(1.0-E)*u)*(E*v+(1.0-E)*u));if(e>1.1920928955078125e-07){p=1.0/+s(+e);J=(E*i+(1.0-E)*g)*p;I=(E*l+(1.0-E)*k)*p;p=(E*v+(1.0-E)*u)*p}else{J=ea*n+fa*p+ga*t;I=n*R+p*S+t*T;p=n*N+p*O+t*P}t=ja*ka*I-ia*ka*p;u=ia*ka*J-ha*ka*I;v=ha*ka*p-ja*ka*J;Q=c[d+12>>2]|0;f[Q>>2]=D*I-B*p;f[Q+4>>2]=B*J-C*I;f[Q+8>>2]=C*p-D*J;Q=c[d+20>>2]|0;f[Q>>2]=-(A*I-y*p);f[Q+4>>2]=-(y*J-z*I);f[Q+8>>2]=-(z*p-A*J);if(w<1.1920928955078125e-07|x<1.1920928955078125e-07?(a[b+716>>0]|0)!=0:0){e=(1.0-E)*(A*v-y*u);g=(1.0-E)*(y*t-z*v);i=(1.0-E)*(z*u-A*t);k=E*(D*v-B*u);l=E*(B*t-C*v);n=E*(C*u-D*t)}else{e=A*v-y*u;g=y*t-z*v;i=z*u-A*t;k=D*v-B*u;l=B*t-C*v;n=C*u-D*t}Q=(c[d+12>>2]|0)+(la<<2)|0;f[Q>>2]=k;f[Q+4>>2]=l;f[Q+8>>2]=n;Q=c[d+20>>2]|0;f[Q+(la<<2)>>2]=-e;f[Q+(la+1<<2)>>2]=-g;f[Q+(la+2<<2)>>2]=-i;if(w<1.1920928955078125e-07|x<1.1920928955078125e-07){n=(1.0-E)*(A*(ia*ka)-y*(ja*ka));l=(1.0-E)*(y*(ha*ka)-z*(ia*ka));k=(1.0-E)*(z*(ja*ka)-A*(ha*ka));i=E*(D*(ia*ka)-B*(ja*ka));g=E*(B*(ha*ka)-C*(ia*ka));e=E*(C*(ja*ka)-D*(ha*ka))}else{n=A*(ia*ka)-y*(ja*ka);l=y*(ha*ka)-z*(ia*ka);k=z*(ja*ka)-A*(ha*ka);i=D*(ia*ka)-B*(ja*ka);g=B*(ha*ka)-C*(ia*ka);e=C*(ja*ka)-D*(ha*ka)}h=(c[d+12>>2]|0)+(la<<1<<2)|0;f[h>>2]=i;f[h+4>>2]=g;f[h+8>>2]=e;h=c[d+20>>2]|0;f[h+(la<<1<<2)>>2]=-n;f[h+((la<<1|1)<<2)>>2]=-l;f[h+((la<<1)+2<<2)>>2]=-k;e=+f[d>>2]*+f[d+4>>2];if(!(a[b+736>>0]|0)){o=c[d+8>>2]|0;f[o>>2]=J;f[o+4>>2]=p;f[o+8>>2]=I;o=(c[d+8>>2]|0)+(la<<2)|0;f[o>>2]=t;f[o+4>>2]=u;f[o+8>>2]=v;o=(c[d+8>>2]|0)+(la<<1<<2)|0;f[o>>2]=ha*ka;f[o+4>>2]=ja*ka;f[o+8>>2]=ia*ka;o=c[d+16>>2]|0;g=-J;f[o>>2]=g;f[o+4>>2]=-p;f[o+8>>2]=-I;f[o+(la<<2)>>2]=-t;f[o+(la+1<<2)>>2]=-u;f[o+(la+2<<2)>>2]=-v;f[o+(la<<1<<2)>>2]=-(ha*ka);f[o+((la<<1|1)<<2)>>2]=-(ja*ka);f[o+((la<<1)+2<<2)>>2]=-(ia*ka);o=c[d+28>>2]|0;f[o>>2]=e*(F*J+H*p+G*I);f[o+(la<<2)>>2]=e*(F*t+H*u+G*v);f[o+(la<<1<<2)>>2]=e*(F*(ha*ka)+H*(ja*ka)+G*(ia*ka));m=c[d+20>>2]|0;e=g;g=-t;i=-u;k=-v}else{m=h;o=c[d+28>>2]|0;e=-J;g=-t;i=-u;k=-v}j=c[d+12>>2]|0;f[j+(la*3<<2)>>2]=J;f[j+((la*3|0)+1<<2)>>2]=p;f[j+((la*3|0)+2<<2)>>2]=I;f[j+(la<<2<<2)>>2]=t;f[j+((la<<2|1)<<2)>>2]=u;f[j+((la<<2|2)<<2)>>2]=v;f[m+(la*3<<2)>>2]=e;f[m+((la*3|0)+1<<2)>>2]=-p;f[m+((la*3|0)+2<<2)>>2]=-I;f[m+(la<<2<<2)>>2]=g;f[m+((la<<2|1)<<2)>>2]=i;f[m+((la<<2|2)<<2)>>2]=k;G=+f[d>>2]*+f[d+4>>2];H=(K*N+L*O+M*P)*(X*ba+Y*ca+Z*da)-(K*R+L*S+M*T)*(X*_+Y*$+Z*aa);da=(K*R+L*S+M*T)*(U*X+V*Y+W*Z)-(ea*K+fa*L+ga*M)*(X*ba+Y*ca+Z*da);ga=(ea*K+fa*L+ga*M)*(X*_+Y*$+Z*aa)-(K*N+L*O+M*P)*(U*X+V*Y+W*Z);f[o+(la*3<<2)>>2]=G*(H*J+da*p+ga*I);f[o+(la<<2<<2)>>2]=G*(H*t+da*u+ga*v);if(!(a[b+716>>0]|0)){r=0;p=0.0}else{p=+f[b+708>>2]*+f[b+732>>2];r=p>0.0?1:2}h=a[b+737>>0]|0;q=(r|0)!=0;if(!(r|h&255))return;f[j+(la*5<<2)>>2]=ha*ka;f[j+((la*5|0)+1<<2)>>2]=ja*ka;f[j+((la*5|0)+2<<2)>>2]=ia*ka;f[m+(la*5<<2)>>2]=-(ha*ka);f[m+((la*5|0)+1<<2)>>2]=-(ja*ka);f[m+((la*5|0)+2<<2)>>2]=-(ia*ka);e=+f[b+688>>2];g=+f[b+692>>2];if(!((e-g)%6.2831854820251465<-3.1415927410125732))if((e-g)%6.2831854820251465>3.1415927410125732)n=(e-g)%6.2831854820251465+-6.2831854820251465;else n=(e-g)%6.2831854820251465;else n=(e-g)%6.2831854820251465+6.2831854820251465;if(!((e+g)%6.2831854820251465<-3.1415927410125732))if((e+g)%6.2831854820251465>3.1415927410125732)l=(e+g)%6.2831854820251465+-6.2831854820251465;else l=(e+g)%6.2831854820251465;else l=(e+g)%6.2831854820251465+6.2831854820251465;m=n==l;o=o+(la*5<<2)|0;f[o>>2]=0.0;j=c[b+748>>2]|0;k=+f[((j&2|0)==0?d+4|0:b+760|0)>>2];if(!(h<<24>>24==0|q&m)){if(j&4|0)c[(c[d+32>>2]|0)+(la*5<<2)>>2]=c[b+752>>2];g=+f[b+728>>2];i=+f[b+680>>2];e=n>l?1.0:0.0;do if(!(n>=l)){e=i/(k*+f[d>>2]);if(e<0.0)if(g>=n&n-e>g){e=(n-g)/e;break}else{e=g0.0)if(g<=l&l-el?0.0:1.0;break}else e=0.0}while(0);f[o>>2]=e*i*+f[b+732>>2]+ +f[o>>2];f[(c[d+36>>2]|0)+(la*5<<2)>>2]=-+f[b+684>>2];c[(c[d+40>>2]|0)+(la*5<<2)>>2]=c[b+684>>2]}if(!q)return;f[o>>2]=+f[o>>2]+p*(k*+f[d>>2]);if(j&1|0)c[(c[d+32>>2]|0)+(la*5<<2)>>2]=c[b+756>>2];do if(!m){h=(c[d+36>>2]|0)+(la*5<<2)|0;if((r|0)==1){f[h>>2]=0.0;e=3402823466385288598117041.0e14;break}else{f[h>>2]=-3402823466385288598117041.0e14;e=0.0;break}}else{f[(c[d+36>>2]|0)+(la*5<<2)>>2]=-3402823466385288598117041.0e14;e=3402823466385288598117041.0e14}while(0);f[(c[d+40>>2]|0)+(la*5<<2)>>2]=e;g=+f[b+704>>2];do if(g>0.0){e=+f[ma+328>>2]*(ha*ka)+ +f[ma+332>>2]*(ja*ka)+ +f[ma+336>>2]*(ia*ka)-(+f[na+328>>2]*(ha*ka)+ +f[na+332>>2]*(ja*ka)+ +f[na+336>>2]*(ia*ka));if((r|0)==1){if(!(e<0.0))break;if(!(+f[o>>2]<-(g*e)))break;f[o>>2]=-(g*e);break}else{if(!(e>0.0))break;if(!(+f[o>>2]>-(g*e)))break;f[o>>2]=-(g*e);break}}while(0);f[o>>2]=+f[b+700>>2]*+f[o>>2];return}function rb(d,e,g,h,i,j){d=d|0;e=e|0;g=g|0;h=h|0;i=i|0;j=+j;var k=0,l=0.0,m=0.0,n=0.0,o=0.0,p=0.0,q=0.0,r=0.0,t=0.0,u=0.0,v=0,w=0,x=0.0,y=0.0,z=0.0,A=0.0,B=0.0,C=0.0,D=0,E=0,F=0,G=0.0,H=0.0,I=0.0,J=0.0,K=0.0,L=0.0,M=0.0,N=0.0,O=0.0;F=ea;ea=ea+896|0;E=c[h+4>>2]|0;D=c[h+12>>2]|0;k=c[E+4>>2]|0;if((k|0)<20){c[F+712>>2]=4752;c[F+712+168>>2]=0;f[F+712+172>>2]=j;c[F+712+164>>2]=c[i+4>>2];f[F+352+308>>2]=9.999999747378752e-05;a[F+352+332>>0]=0;c[F+288>>2]=10432;c[F+64>>2]=10500;c[F+64+4>>2]=F+352;c[F+64+8>>2]=F+288;c[F+64+12>>2]=d;c[F+64+16>>2]=E;c[F+64+20>>2]=0;if((Rc(F+64|0,e,g,D,D,F+712|0)|0?(v=F+712+132|0,t=+f[v>>2],l=+f[F+712+136>>2],m=+f[F+712+140>>2],t*t+l*l+m*m>9.999999747378752e-05):0)?(n=+f[F+712+164>>2],n<+f[i+4>>2]):0){j=1.0/+s(+(t*t+l*l+m*m));f[v>>2]=t*j;f[F+712+136>>2]=l*j;f[F+712+140>>2]=m*j;c[F+16>>2]=c[h+8>>2];c[F+16+4>>2]=0;c[F+16+8>>2]=c[v>>2];c[F+16+8+4>>2]=c[v+4>>2];c[F+16+8+8>>2]=c[v+8>>2];c[F+16+8+12>>2]=c[v+12>>2];c[F+16+24>>2]=c[F+712+148>>2];c[F+16+24+4>>2]=c[F+712+148+4>>2];c[F+16+24+8>>2]=c[F+712+148+8>>2];c[F+16+24+12>>2]=c[F+712+148+12>>2];f[F+16+40>>2]=n;+ka[c[(c[i>>2]|0)+12>>2]&15](i,F+16|0,1)}ea=F;return}if((k+-21|0)>>>0>=9){if((k|0)!=31){ea=F;return}Fi(17838);if((c[E+16>>2]|0)>0){k=0;do{v=c[E+24>>2]|0;l=+f[v+(k*80|0)>>2];o=+f[v+(k*80|0)+4>>2];r=+f[v+(k*80|0)+8>>2];m=+f[v+(k*80|0)+16>>2];p=+f[v+(k*80|0)+20>>2];u=+f[v+(k*80|0)+24>>2];n=+f[v+(k*80|0)+32>>2];q=+f[v+(k*80|0)+36>>2];y=+f[v+(k*80|0)+40>>2];N=+f[v+(k*80|0)+48>>2];M=+f[v+(k*80|0)+52>>2];C=+f[v+(k*80|0)+56>>2];v=c[v+(k*80|0)+64>>2]|0;L=+f[D>>2];K=+f[D+4>>2];J=+f[D+8>>2];I=+f[D+16>>2];H=+f[D+20>>2];G=+f[D+24>>2];t=+f[D+32>>2];x=+f[D+36>>2];z=+f[D+40>>2];A=N*L+M*K+C*J+ +f[D+48>>2];B=N*I+M*H+C*G+ +f[D+52>>2];C=N*t+M*x+C*z+ +f[D+56>>2];f[F+712>>2]=l*L+m*K+n*J;f[F+712+4>>2]=o*L+p*K+q*J;f[F+712+8>>2]=r*L+u*K+y*J;f[F+712+12>>2]=0.0;f[F+712+16>>2]=l*I+m*H+n*G;f[F+712+20>>2]=o*I+p*H+q*G;f[F+712+24>>2]=r*I+u*H+y*G;f[F+712+28>>2]=0.0;f[F+712+32>>2]=l*t+m*x+n*z;f[F+712+36>>2]=o*t+p*x+q*z;f[F+712+40>>2]=r*t+u*x+y*z;f[F+712+44>>2]=0.0;f[F+712+48>>2]=A;f[F+712+52>>2]=B;f[F+712+56>>2]=C;f[F+712+60>>2]=0.0;b[F+352+8>>1]=1;b[F+352+10>>1]=-1;c[F+352>>2]=7024;c[F+352+12>>2]=i;c[F+352+16>>2]=k;c[F+352+4>>2]=c[i+4>>2];w=c[h+8>>2]|0;c[F+288>>2]=h;c[F+288+4>>2]=v;c[F+288+8>>2]=w;c[F+288+12>>2]=F+712;c[F+288+16>>2]=-1;c[F+288+20>>2]=k;rb(d,e,g,F+288|0,F+352|0,j);k=k+1|0}while((k|0)<(c[E+16>>2]|0))}k=c[2685]|0;E=(c[k+16>>2]|0)+-1|0;c[k+16>>2]=E;if(E|0){ea=F;return}do if(c[k+4>>2]|0){Y(F+712|0,0)|0;E=c[6746]|0;f[k+8>>2]=+f[k+8>>2]+ +(((c[F+712+4>>2]|0)-(c[E+4>>2]|0)+(((c[F+712>>2]|0)-(c[E>>2]|0)|0)*1e6|0)-(c[k+12>>2]|0)|0)>>>0)/1.0e3;if(!(c[k+16>>2]|0)){k=c[2685]|0;break}else{ea=F;return}}while(0);c[2685]=c[k+20>>2];ea=F;return}switch(k|0){case 21:{l=+f[D>>2];m=+f[D+16>>2];n=+f[D+32>>2];o=+f[D+4>>2];p=+f[D+20>>2];q=+f[D+36>>2];r=+f[D+8>>2];t=+f[D+24>>2];u=+f[D+40>>2];A=-+f[D+48>>2];B=-+f[D+52>>2];C=-+f[D+56>>2];z=+f[e+48>>2];y=+f[e+52>>2];x=+f[e+56>>2];f[F+352>>2]=l*A+m*B+n*C+(l*z+m*y+n*x);f[F+352+4>>2]=o*A+p*B+q*C+(o*z+p*y+q*x);f[F+352+8>>2]=r*A+t*B+u*C+(r*z+t*y+u*x);f[F+352+12>>2]=0.0;x=+f[g+48>>2];y=+f[g+52>>2];z=+f[g+56>>2];O=+f[g>>2];G=+f[g+16>>2];H=+f[g+32>>2];I=+f[g+4>>2];J=+f[g+20>>2];K=+f[g+36>>2];L=+f[g+8>>2];M=+f[g+24>>2];N=+f[g+40>>2];f[F+288>>2]=l*O+m*G+n*H;f[F+288+4>>2]=l*I+m*J+n*K;f[F+288+8>>2]=l*L+m*M+n*N;f[F+288+12>>2]=0.0;f[F+288+16>>2]=o*O+p*G+q*H;f[F+288+20>>2]=o*I+p*J+q*K;f[F+288+24>>2]=o*L+p*M+q*N;f[F+288+28>>2]=0.0;f[F+288+32>>2]=r*O+t*G+u*H;f[F+288+36>>2]=r*I+t*J+u*K;f[F+288+40>>2]=r*L+t*M+u*N;k=F+288+44|0;c[k>>2]=0;c[k+4>>2]=0;c[k+8>>2]=0;c[k+12>>2]=0;c[k+16>>2]=0;k=c[h+8>>2]|0;N=+ha[c[(c[E>>2]|0)+48>>2]&15](E);c[F+64>>2]=10360;c[F+64+4>>2]=d;c[F+64+8>>2]=c[e>>2];c[F+64+8+4>>2]=c[e+4>>2];c[F+64+8+8>>2]=c[e+8>>2];c[F+64+8+12>>2]=c[e+12>>2];c[F+64+24>>2]=c[e+16>>2];c[F+64+24+4>>2]=c[e+16+4>>2];c[F+64+24+8>>2]=c[e+16+8>>2];c[F+64+24+12>>2]=c[e+16+12>>2];c[F+64+40>>2]=c[e+32>>2];c[F+64+40+4>>2]=c[e+32+4>>2];c[F+64+40+8>>2]=c[e+32+8>>2];c[F+64+40+12>>2]=c[e+32+12>>2];c[F+64+56>>2]=c[e+48>>2];c[F+64+56+4>>2]=c[e+48+4>>2];c[F+64+56+8>>2]=c[e+48+8>>2];c[F+64+56+12>>2]=c[e+48+12>>2];c[F+64+72>>2]=c[g>>2];c[F+64+72+4>>2]=c[g+4>>2];c[F+64+72+8>>2]=c[g+8>>2];c[F+64+72+12>>2]=c[g+12>>2];c[F+64+88>>2]=c[g+16>>2];c[F+64+88+4>>2]=c[g+16+4>>2];c[F+64+88+8>>2]=c[g+16+8>>2];c[F+64+88+12>>2]=c[g+16+12>>2];c[F+64+104>>2]=c[g+32>>2];c[F+64+104+4>>2]=c[g+32+4>>2];c[F+64+104+8>>2]=c[g+32+8>>2];c[F+64+104+12>>2]=c[g+32+12>>2];c[F+64+120>>2]=c[g+48>>2];c[F+64+120+4>>2]=c[g+48+4>>2];c[F+64+120+8>>2]=c[g+48+8>>2];c[F+64+120+12>>2]=c[g+48+12>>2];c[F+64+136>>2]=c[D>>2];c[F+64+136+4>>2]=c[D+4>>2];c[F+64+136+8>>2]=c[D+8>>2];c[F+64+136+12>>2]=c[D+12>>2];c[F+64+152>>2]=c[D+16>>2];c[F+64+152+4>>2]=c[D+16+4>>2];c[F+64+152+8>>2]=c[D+16+8>>2];c[F+64+152+12>>2]=c[D+16+12>>2];c[F+64+168>>2]=c[D+32>>2];c[F+64+168+4>>2]=c[D+32+4>>2];c[F+64+168+8>>2]=c[D+32+8>>2];c[F+64+168+12>>2]=c[D+32+12>>2];c[F+64+184>>2]=c[D+48>>2];c[F+64+184+4>>2]=c[D+48+4>>2];c[F+64+184+8>>2]=c[D+48+8>>2];c[F+64+184+12>>2]=c[D+48+12>>2];f[F+64+204>>2]=N;c[F+64>>2]=6976;c[F+64+212>>2]=i;c[F+64+216>>2]=k;c[F+64+220>>2]=E;c[F+64+200>>2]=c[i+4>>2];f[F+64+208>>2]=j;Pa[c[(c[d>>2]|0)+8>>2]&127](d,F+288|0,F+16|0,F);k=c[E+48>>2]|0;c[F+712>>2]=8116;c[F+712+4>>2]=k;c[F+712+8>>2]=F+64;k=c[E+52>>2]|0;if(!(a[k+60>>0]|0))Ld(k,F+712|0,F+352|0,l*A+m*B+n*C+(l*x+m*y+n*z),o*A+p*B+q*C+(o*x+p*y+q*z),r*A+t*B+u*C+(r*x+t*y+u*z),F+16|0,F);else pd(k,F+712|0,F+352|0,l*A+m*B+n*C+(l*x+m*y+n*z),o*A+p*B+q*C+(o*x+p*y+q*z),r*A+t*B+u*C+(r*x+t*y+u*z),F+16|0,F,c[k+56>>2]|0);ea=F;return}case 28:{c[F+712>>2]=4752;c[F+712+168>>2]=0;f[F+712+172>>2]=j;c[F+712+164>>2]=c[i+4>>2];c[F+352>>2]=10500;c[F+352+4>>2]=0;c[F+352+8>>2]=0;c[F+352+12>>2]=d;c[F+352+16>>2]=0;c[F+352+20>>2]=E;if((Rc(F+352|0,e,g,D,D,F+712|0)|0?(w=F+712+132|0,o=+f[w>>2],p=+f[F+712+136>>2],q=+f[F+712+140>>2],o*o+p*p+q*q>9.999999747378752e-05):0)?(r=+f[F+712+164>>2],r<+f[i+4>>2]):0){O=1.0/+s(+(o*o+p*p+q*q));f[w>>2]=o*O;f[F+712+136>>2]=p*O;f[F+712+140>>2]=q*O;c[F+288>>2]=c[h+8>>2];c[F+288+4>>2]=0;c[F+288+8>>2]=c[w>>2];c[F+288+8+4>>2]=c[w+4>>2];c[F+288+8+8>>2]=c[w+8>>2];c[F+288+8+12>>2]=c[w+12>>2];c[F+288+24>>2]=c[F+712+148>>2];c[F+288+24+4>>2]=c[F+712+148+4>>2];c[F+288+24+8>>2]=c[F+712+148+8>>2];c[F+288+24+12>>2]=c[F+712+148+12>>2];f[F+288+40>>2]=r;+ka[c[(c[i>>2]|0)+12>>2]&15](i,F+288|0,1)}ea=F;return}default:{o=+f[D>>2];p=+f[D+16>>2];q=+f[D+32>>2];x=+f[D+4>>2];y=+f[D+20>>2];z=+f[D+36>>2];J=+f[D+8>>2];L=+f[D+24>>2];N=+f[D+40>>2];H=-+f[D+48>>2];G=-+f[D+52>>2];C=-+f[D+56>>2];A=+f[e+48>>2];B=+f[e+52>>2];u=+f[e+56>>2];r=o*H+p*G+q*C+(o*A+p*B+q*u);t=x*H+y*G+z*C+(x*A+y*B+z*u);u=J*H+L*G+N*C+(J*A+L*B+N*u);B=+f[g+48>>2];A=+f[g+52>>2];l=+f[g+56>>2];n=o*H+p*G+q*C+(o*B+p*A+q*l);m=x*H+y*G+z*C+(x*B+y*A+z*l);l=J*H+L*G+N*C+(J*B+L*A+N*l);A=+f[g>>2];B=+f[g+16>>2];C=+f[g+32>>2];G=+f[g+4>>2];H=+f[g+20>>2];I=+f[g+36>>2];K=+f[g+8>>2];M=+f[g+24>>2];O=+f[g+40>>2];f[F+712>>2]=o*A+p*B+q*C;f[F+712+4>>2]=o*G+p*H+q*I;f[F+712+8>>2]=o*K+p*M+q*O;f[F+712+12>>2]=0.0;f[F+712+16>>2]=x*A+y*B+z*C;f[F+712+20>>2]=x*G+y*H+z*I;f[F+712+24>>2]=x*K+y*M+z*O;f[F+712+28>>2]=0.0;f[F+712+32>>2]=J*A+L*B+N*C;f[F+712+36>>2]=J*G+L*H+N*I;f[F+712+40>>2]=J*K+L*M+N*O;w=F+712+44|0;c[w>>2]=0;c[w+4>>2]=0;c[w+8>>2]=0;c[w+12>>2]=0;c[w+16>>2]=0;h=c[h+8>>2]|0;O=+ha[c[(c[E>>2]|0)+48>>2]&15](E);c[F+352>>2]=10360;c[F+352+4>>2]=d;c[F+352+8>>2]=c[e>>2];c[F+352+8+4>>2]=c[e+4>>2];c[F+352+8+8>>2]=c[e+8>>2];c[F+352+8+12>>2]=c[e+12>>2];c[F+352+24>>2]=c[e+16>>2];c[F+352+24+4>>2]=c[e+16+4>>2];c[F+352+24+8>>2]=c[e+16+8>>2];c[F+352+24+12>>2]=c[e+16+12>>2];c[F+352+40>>2]=c[e+32>>2];c[F+352+40+4>>2]=c[e+32+4>>2];c[F+352+40+8>>2]=c[e+32+8>>2];c[F+352+40+12>>2]=c[e+32+12>>2];c[F+352+56>>2]=c[e+48>>2];c[F+352+56+4>>2]=c[e+48+4>>2];c[F+352+56+8>>2]=c[e+48+8>>2];c[F+352+56+12>>2]=c[e+48+12>>2];c[F+352+72>>2]=c[g>>2];c[F+352+72+4>>2]=c[g+4>>2];c[F+352+72+8>>2]=c[g+8>>2];c[F+352+72+12>>2]=c[g+12>>2];c[F+352+88>>2]=c[g+16>>2];c[F+352+88+4>>2]=c[g+16+4>>2];c[F+352+88+8>>2]=c[g+16+8>>2];c[F+352+88+12>>2]=c[g+16+12>>2];c[F+352+104>>2]=c[g+32>>2];c[F+352+104+4>>2]=c[g+32+4>>2];c[F+352+104+8>>2]=c[g+32+8>>2];c[F+352+104+12>>2]=c[g+32+12>>2];c[F+352+120>>2]=c[g+48>>2];c[F+352+120+4>>2]=c[g+48+4>>2];c[F+352+120+8>>2]=c[g+48+8>>2];c[F+352+120+12>>2]=c[g+48+12>>2];c[F+352+136>>2]=c[D>>2];c[F+352+136+4>>2]=c[D+4>>2];c[F+352+136+8>>2]=c[D+8>>2];c[F+352+136+12>>2]=c[D+12>>2];c[F+352+152>>2]=c[D+16>>2];c[F+352+152+4>>2]=c[D+16+4>>2];c[F+352+152+8>>2]=c[D+16+8>>2];c[F+352+152+12>>2]=c[D+16+12>>2];c[F+352+168>>2]=c[D+32>>2];c[F+352+168+4>>2]=c[D+32+4>>2];c[F+352+168+8>>2]=c[D+32+8>>2];c[F+352+168+12>>2]=c[D+32+12>>2];c[F+352+184>>2]=c[D+48>>2];c[F+352+184+4>>2]=c[D+48+4>>2];c[F+352+184+8>>2]=c[D+48+8>>2];c[F+352+184+12>>2]=c[D+48+12>>2];f[F+352+204>>2]=O;c[F+352>>2]=7e3;c[F+352+212>>2]=i;c[F+352+216>>2]=h;c[F+352+220>>2]=E;c[F+352+200>>2]=c[i+4>>2];f[F+352+208>>2]=j;Pa[c[(c[d>>2]|0)+8>>2]&127](d,F+712|0,F+288|0,F+64|0);f[F+16>>2]=r;f[F+16+4>>2]=t;f[F+16+8>>2]=u;f[F+16+12>>2]=0.0;if(n>2]=n;o=n}else o=r;if(m>2]=m;p=m}else p=t;if(l>2]=l;q=l}else q=u;f[F>>2]=r;f[F+4>>2]=t;f[F+8>>2]=u;f[F+12>>2]=0.0;if(r>2]=n;else n=r;if(t>2]=m;else m=t;if(u