(function(ya,za,Aa,Ba,S,Ca,X,U,fa,M,ba,w,Da,Z,Ea,da,H,C,va,oa,ta,Fa,Ga,Ha,qa,wa,xa,P,Ia,Ja,sa,Ka,La,Ma,Na,ua,Oa,Pa,Qa,Ra,Sa,Ta,Ua,Va,Wa,Xa,Ya,Za,$a,ab,bb,cb,db,eb,fb,d,q){X("J.adapter.smarter");fa(["JS.Symmetry","JU.P3","$.SB"],"J.adapter.smarter.XtalSymmetry","java.util.Hashtable JU.BS $.Lst $.M3 $.M4 $.P3i $.PT $.V3 J.adapter.smarter.Atom JS.SpaceGroup $.SymmetryOperation $.UnitCell JU.BSUtil $.Logger $.SimpleUnitCell".split(" "),function(){var b=ba(function(){this.acr=null;this.applySymmetryToBonds=
!1;this.baseSymmetry=this.asc=null;this.bondCount0=0;this.bondsFound=null;this.crystalReaderLatticeOpsOnly=this.checkNearAtoms=this.checkAll=this.centroidPacked=!1;this.disorderMap=null;this.disorderMapMax=0;this.doCentroidUnitCell=!1;this.doNormalize=!0;this.doPackUnitCell=!1;this.filterSymop=null;this.firstAtom=0;this.latticeCells=null;this.latticeOp=0;this.mTemp=this.maxXYZ0=this.minXYZ0=this.maxXYZ=this.minXYZ=this.mident=null;this.ndims=3;this.packingRange=this.nVib=this.noSymmetryCount=0;this.ptTemp=
this.ptOffset=null;this.rmaxz=this.rmaxy=this.rmaxx=this.rminz=this.rminy=this.rminx=0;this.symmetry=null;this.symmetryRange=0;this.unitCellTranslations=this.unitCellParams=this.trajectoryUnitCells=null;M(this,arguments)},J.adapter.smarter,"XtalSymmetry",null);oa(b,function(){this.bondsFound=new JU.SB;this.ptOffset=new JU.P3});Z(b,function(){});d(b,"addRotatedTensor",function(a,c,e,g,m){null==this.ptTemp&&(this.ptTemp=new JU.P3,this.mTemp=new JU.M3);return a.addTensor(this.acr.getInterface("JU.Tensor").setFromEigenVectors(m.rotateAxes(e,
c.eigenVectors,this.ptTemp,this.mTemp),c.eigenValues,c.isIsotropic?"iso":c.type,c.id,c),null,g)},"J.adapter.smarter.Atom,JU.Tensor,~N,~B,J.adapter.smarter.XtalSymmetry.FileSymmetry");d(b,"applySymmetryBio",function(a,c,e){var g=a.get("biomts"),m=g.size();null==this.mident&&(this.mident=new JU.M4,this.mident.setIdentity());this.acr.lstNCS=null;this.setLatticeCells();var b=null!=this.latticeCells&&0!=this.latticeCells[0]?H(3,0):null;if(null!=b)for(var h=0;3>h;h++)b[h]=this.latticeCells[h];this.latticeCells=
null;var b=this.acr.getFilterWithCase("BMCHAINS"),j=null==b?-1:2>b.length?0:JU.PT.parseInt(b.substring(1));-2147483648==j&&(j=-b.charAt(1).charCodeAt(0));var l=0<=e.indexOf("BYCHAIN")?1:0<=e.indexOf("BYSYMOP")?2:0;this.doNormalize=!1;var k=a.get("chains");(this.symmetry=new J.adapter.smarter.XtalSymmetry.FileSymmetry).setSpaceGroup(this.doNormalize);this.addSpaceGroupOperation("x,y,z",!1);b=a.get("name");this.setAtomSetSpaceGroupName(this.acr.sgName=b);this.applySymmetryToBonds=c;this.bondCount0=
this.asc.bondCount;this.firstAtom=this.asc.getLastAtomSetAtomIndex();var b=this.asc.ac,d=new java.util.Hashtable,p=0,r=this.asc.atoms;c=this.bondCount0>this.asc.bondIndex0&&c;switch(l){case 1:for(h=b;--h>=this.firstAtom;){var A=Integer.$valueOf(r[h].chainID),s=d.get(A);null==s&&(p++,d.put(A,s=new JU.BS));s.set(h)}this.asc.bsAtoms=new JU.BS;for(h=0;h<p;h++)this.asc.bsAtoms.set(b+h),c=new J.adapter.smarter.Atom,c.set(0,0,0),c.radius=16,this.asc.addAtom(c);for(var t=0,q,d=d.entrySet().iterator();d.hasNext()&&
((q=d.next())||1);){c=r[b+t++];s=q.getValue();for(h=s.nextSetBit(0);0<=h;h=s.nextSetBit(h+1))c.add(r[h]);c.scale(1/s.cardinality());c.atomName="Pt"+t;c.chainID=q.getKey().intValue()}this.firstAtom=b;b+=p;c=!1;break;case 2:this.asc.bsAtoms=new JU.BS;this.asc.bsAtoms.set(b);c=r[b]=new J.adapter.smarter.Atom;c.set(0,0,0);for(h=b;--h>=this.firstAtom;)c.add(r[h]);c.scale(1/(b-this.firstAtom));c.atomName="Pt";c.radius=16;this.asc.addAtom(c);this.firstAtom=b++;c=!1}p=a.get("asemblyIdAtoms");0<=e.indexOf("#<")&&
(m=Math.min(m,JU.PT.parseInt(e.substring(e.indexOf("#<")+2))-1),e=JU.PT.rep(e,"#<","_<"));h=0;for(d=this.firstAtom;d<b;d++)r[d].bsSymmetry=new JU.BS,a=r[d].chainID,a>h&&(h=a);a=this.asc.bsAtoms;s=c?H(this.asc.ac,0):null;for(t=null==k?1:0;t<m;t++){if(0<=e.indexOf("!#")){if(0<=e.indexOf("!#"+(t+1)+";"))continue}else if(0<=e.indexOf("#")&&0>e.indexOf("#"+(t+1)+";"))continue;var v=g.get(t),u=!v.equals(this.mident),Q=null==k?null:k.get(t);if(null!=Q&&null!=p){a=new JU.BS;for(d=p.entrySet().iterator();d.hasNext()&&
((q=d.next())||1);)0<=Q.indexOf(":"+q.getKey()+";")&&a.or(q.getValue());null!=this.asc.bsAtoms&&a.and(this.asc.bsAtoms);Q=null}for(var w=-1,y=!1,d=this.firstAtom;d<b;d++){if(null!=a)y=!a.get(d);else if(null!=Q&&(A=r[d].chainID)!=w)y=0>Q.indexOf(":"+this.acr.vwr.getChainIDStr(w=A)+";");if(!y)try{var z=r[d].atomSite,G;c&&(s[z]=this.asc.ac);G=this.asc.newCloneAtom(r[d]);G.bondingRadius=t;this.asc.atomSymbolicMap.put(""+G.atomSerial,G);null!=this.asc.bsAtoms&&this.asc.bsAtoms.set(G.index);G.atomSite=
z;u&&v.rotTrans(G);G.bsSymmetry=JU.BSUtil.newAndSetBit(t)}catch(L){if(da(L,Exception))this.asc.errorMessage="appendAtomCollection error: "+L;else throw L;}}u&&this.symmetry.addBioMoleculeOperation(v,!1);if(c)for(v=this.asc.bondIndex0;v<this.bondCount0;v++)d=this.asc.bonds[v],this.asc.addNewBondWithOrder(s[r[d.atomIndex1].atomSite],s[r[d.atomIndex2].atomSite],d.order)}if(null!=k){null==this.asc.bsAtoms&&(this.asc.bsAtoms=JU.BSUtil.newBitSet2(0,this.asc.ac));this.asc.bsAtoms.clearBits(this.firstAtom,
b);if(0==l){if(-1!=j){A=(g=0!=j)?new JU.BS:null;r=this.asc.atoms;z=0;g&&(z=0>j?Math.max(-j,h+1):Math.max(h+j,65),A.setBits(0,z-1),A.setBits(91,97),A.setBits(123,200));l=1==this.asc.structureCount?this.asc.structures[0].bsAll:null;k=new java.util.Hashtable;G=new java.util.Hashtable;d=null==l?null:new java.util.Hashtable;p=null;h=b;for(s=this.asc.ac;h<s;h++)t=r[h].chainID,u=r[h].bsSymmetry.nextSetBit(0),j=this.acr.vwr.getChainIDStr(t),v=0==u?j:j+u,e=k.get(v),null==e&&(g&&0!=u&&(u=200>z?A.nextClearBit(z):
200,200>u&&(A.set(u),e=Integer.$valueOf(this.acr.vwr.getChainID(""+String.fromCharCode(u),!0)),z=u)),null==e&&(e=Integer.$valueOf(this.acr.vwr.getChainID(v,!0))),v!==j&&(G.put(e,Integer.$valueOf(t)),null!=l&&(null!=p&&(p[1]=h),d.put(e,p=H(-1,[h,s])))),k.put(v,e)),r[h].chainID=e.intValue();if(0<this.asc.structureCount){r=this.asc.structures;g=this.asc.structureCount;for(d=G.entrySet().iterator();d.hasNext()&&((q=d.next())||1);){e=q.getKey();e=e.intValue();j=q.getValue().intValue();for(h=0;h<g;h++)A=
r[h],null==A.bsAll&&(A.startChainID==A.endChainID?A.startChainID==j&&(A=A.clone(),A.startChainID=A.endChainID=e,this.asc.addStructure(A)):System.err.println("XtalSymmetry not processing biomt chain structure "+this.acr.vwr.getChainIDStr(j)+" to "+this.acr.vwr.getChainIDStr(e)))}}}q=this.asc.getAtomSetAuxiliaryInfoValue(-1,"PDB_CONECT_bonds");if(!c&&null!=q)for(h=q.size();0<=--h;)if(d=q.get(h),c=this.asc.getAtomFromName(""+d[0]),r=this.asc.getAtomFromName(""+d[1]),null!=c&&null!=r&&c.bondingRadius!=
r.bondingRadius&&(null==a||a.get(c.index)&&a.get(r.index))&&25<c.distanceSquared(r))q.removeItemAt(h),System.out.println("long interchain bond removed for @"+c.atomSerial+"-@"+r.atomSerial)}h=b;for(s=this.asc.ac;h<s;h++)this.asc.atoms[h].bondingRadius=NaN}this.noSymmetryCount=b-this.firstAtom;this.finalizeSymmetry(this.symmetry);this.setCurrentModelInfo(m,null,null);this.reset()},"java.util.Map,~B,~S");d(b,"getBaseSymmetry",function(){return null==this.baseSymmetry?this.symmetry:this.baseSymmetry});
d(b,"getOverallSpan",function(){return null==this.maxXYZ0?JU.V3.new3(this.maxXYZ.x-this.minXYZ.x,this.maxXYZ.y-this.minXYZ.y,this.maxXYZ.z-this.minXYZ.z):JU.V3.newVsub(this.maxXYZ0,this.minXYZ0)});d(b,"getSymmetry",function(){return null==this.symmetry?this.symmetry=new J.adapter.smarter.XtalSymmetry.FileSymmetry:this.symmetry});d(b,"isWithinCell",function(a,c,e,g,m,b,h,j,d){return c.x>e-d&&c.x<g+d&&(2>a||c.y>m-d&&c.y<b+d)&&(3>a||c.z>h-d&&c.z<j+d)},"~N,JU.P3,~N,~N,~N,~N,~N,~N,~N");d(b,"scaleFractionalVibs",
function(){for(var a=this.acr.unitCellParams,a=JU.P3.new3(1/a[0],1/a[1],1/a[2]),c=this.asc.getAtomSetAtomIndex(this.asc.iSet),e=this.asc.ac;--e>=c;){var g=this.asc.atoms[e].vib;null!=g&&g.scaleT(a)}});d(b,"set",function(a){this.acr=a;this.asc=a.asc;this.getSymmetry();return this},"J.adapter.smarter.AtomSetCollectionReader");d(b,"setLatticeParameter",function(a){this.symmetry.setSpaceGroup(this.doNormalize);this.symmetry.setLattice(a)},"~N");d(b,"setSpinVectors",function(){if(0<this.nVib||0>this.asc.iSet||
!this.acr.vibsFractional)return this.nVib;for(var a=this.asc.getAtomSetAtomIndex(this.asc.iSet),c=this.getBaseSymmetry(),e=this.asc.ac;--e>=a;){var g=this.asc.atoms[e].vib;null!=g&&(0<g.modDim?g.setMoment():(g=g.clone(),c.toCartesian(g,!0),this.asc.atoms[e].vib=g),this.nVib++)}return this.nVib});d(b,"addSpaceGroupOperation",function(a,c){this.symmetry.setSpaceGroup(this.doNormalize);c&&1==this.symmetry.getSpaceGroupOperationCount()&&this.setLatticeCells();return this.symmetry.addSpaceGroupOperation(a,
0)},"~S,~B");d(b,"applySymmetryFromReader",function(a){this.asc.setCoordinatesAreFractional(this.acr.iHaveFractionalCoordinates);this.setAtomSetSpaceGroupName(this.acr.sgName);this.symmetryRange=this.acr.symmetryRange;this.asc.setInfo("symmetryRange",Float.$valueOf(this.symmetryRange));if(this.acr.doConvertToFractional||this.acr.fileCoordinatesAreFractional){this.setLatticeCells();var c=!0;if(this.acr.ignoreFileSpaceGroupName||!this.acr.iHaveSymmetryOperators){0==this.acr.unitCellParams[0]&&0==this.acr.unitCellParams[2]&&
JU.SimpleUnitCell.fillParams(null,null,null,this.acr.unitCellParams);if(!this.acr.merging||null==a)a=new J.adapter.smarter.XtalSymmetry.FileSymmetry;c=a.createSpaceGroup(this.acr.desiredSpaceGroupIndex,0<=this.acr.sgName.indexOf("!")?"P1":this.acr.sgName,this.acr.unitCellParams,this.acr.modDim)}else this.acr.doPreSymmetry(),a=null;this.packingRange=this.acr.getPackingRangeValue(0);c?(null!=a&&this.getSymmetry().setSpaceGroupTo(a.getSpaceGroup()),this.applySymmetryLattice(),null!=a&&null==this.filterSymop&&
this.setAtomSetSpaceGroupName(a.getSpaceGroupName())):this.setUnitCellSafely()}if(this.acr.iHaveFractionalCoordinates&&this.acr.merging&&null!=a){for(var c=this.asc.atoms,e=this.asc.getLastAtomSetAtomIndex(),g=this.asc.ac;e<g;e++)a.toCartesian(c[e],!0);this.asc.setCoordinatesAreFractional(!1);this.acr.addVibrations=!1}return this.symmetry},"J.adapter.smarter.XtalSymmetry.FileSymmetry");d(b,"setSymmetry",function(a){return this.symmetry=a},"J.adapter.smarter.XtalSymmetry.FileSymmetry");d(b,"setTensors",
function(){for(var a=this.asc.ac,c=this.asc.getLastAtomSetAtomIndex();c<a;c++){var e=this.asc.atoms[c];null!=e.anisoBorU&&(e.addTensor(this.symmetry.getTensor(this.acr.vwr,e.anisoBorU),null,!1),Float.isNaN(e.bfactor)&&(e.bfactor=100*e.anisoBorU[7]),e.anisoBorU=null)}});d(b,"adjustRangeMinMax",function(a){var c=new JU.P3,e=new JU.P3,g=new JU.P3;this.acr.forcePacked&&(c.setT(a[1]),e.setT(a[2]),g.setT(a[3]),c.scale(this.packingRange),e.scale(this.packingRange),g.scale(this.packingRange));a[0].scaleAdd2(this.minXYZ.x,
a[1],a[0]);a[0].scaleAdd2(this.minXYZ.y,a[2],a[0]);a[0].scaleAdd2(this.minXYZ.z,a[3],a[0]);a[0].sub(c);a[0].sub(e);a[0].sub(g);var m=JU.P3.newP(a[0]);this.symmetry.toFractional(m,!0);this.setSymmetryMinMax(m);a[1].scale(this.maxXYZ.x-this.minXYZ.x);a[2].scale(this.maxXYZ.y-this.minXYZ.y);a[3].scale(this.maxXYZ.z-this.minXYZ.z);a[1].scaleAdd2(2,c,a[1]);a[2].scaleAdd2(2,e,a[2]);a[3].scaleAdd2(2,g,a[3]);for(c=0;3>c;c++)for(e=c+1;4>e;e++)m.add2(a[c],a[e]),0!=c&&m.add(a[0]),this.symmetry.toFractional(m,
!1),this.setSymmetryMinMax(m);this.symmetry.toCartesian(m,!1);m.add(a[1]);this.symmetry.toFractional(m,!1);this.setSymmetryMinMax(m);this.minXYZ=JU.P3i.new3(S(Math.min(0,Math.floor(this.rminx+0.001))),S(Math.min(0,Math.floor(this.rminy+0.001))),S(Math.min(0,Math.floor(this.rminz+0.001))));this.maxXYZ=JU.P3i.new3(S(Math.max(1,Math.ceil(this.rmaxx-0.001))),S(Math.max(1,Math.ceil(this.rmaxy-0.001))),S(Math.max(1,Math.ceil(this.rmaxz-0.001))))},"~A");d(b,"applyAllSymmetry",function(a,c){if(!(0==this.asc.ac||
null!=c&&c.isEmpty())){var e=this.noSymmetryCount=0<this.asc.baseSymmetryAtomCount?this.asc.baseSymmetryAtomCount:null==c?this.asc.getLastAtomSetAtomCount():this.asc.ac-c.nextSetBit(this.asc.getLastAtomSetAtomIndex());this.asc.setTensors();this.applySymmetryToBonds=this.acr.applySymmetryToBonds;this.doPackUnitCell=this.acr.doPackUnitCell&&!this.applySymmetryToBonds;this.bondCount0=this.asc.bondCount;this.ndims=JU.SimpleUnitCell.getDimensionFromParams(this.acr.unitCellParams);this.finalizeSymmetry(this.symmetry);
var g=this.symmetry.getSpaceGroupOperationCount(),m=null==this.acr.thisBiomolecule?null:new JU.BS;this.checkNearAtoms=this.acr.checkNearAtoms||null!=m;JU.SimpleUnitCell.setMinMaxLatticeParameters(this.ndims,this.minXYZ,this.maxXYZ,0);this.latticeOp=this.symmetry.getLatticeOp();this.crystalReaderLatticeOpsOnly=this.asc.crystalReaderLatticeOpsOnly&&0<=this.latticeOp;this.doCentroidUnitCell&&this.asc.setInfo("centroidMinMax",H(-1,[this.minXYZ.x,this.minXYZ.y,this.minXYZ.z,this.maxXYZ.x,this.maxXYZ.y,
this.maxXYZ.z,this.centroidPacked?1:0]));if(this.doCentroidUnitCell||this.acr.doPackUnitCell||0!=this.symmetryRange&&1==this.maxXYZ.x-this.minXYZ.x&&1==this.maxXYZ.y-this.minXYZ.y&&1==this.maxXYZ.z-this.minXYZ.z)switch(this.minXYZ0=JU.P3.new3(this.minXYZ.x,this.minXYZ.y,this.minXYZ.z),this.maxXYZ0=JU.P3.new3(this.maxXYZ.x,this.maxXYZ.y,this.maxXYZ.z),null!=a&&(a.setMinMax0(this.minXYZ0,this.maxXYZ0),this.minXYZ.set(w(this.minXYZ0.x),w(this.minXYZ0.y),w(this.minXYZ0.z)),this.maxXYZ.set(w(this.maxXYZ0.x),
w(this.maxXYZ0.y),w(this.maxXYZ0.z))),this.ndims){case 3:this.minXYZ.z--,this.maxXYZ.z++;case 2:this.minXYZ.y--,this.maxXYZ.y++;case 1:this.minXYZ.x--,this.maxXYZ.x++}for(var b=(this.maxXYZ.x-this.minXYZ.x)*(this.maxXYZ.y-this.minXYZ.y)*(this.maxXYZ.z-this.minXYZ.z),h=e*(this.crystalReaderLatticeOpsOnly?4:g),h=this.checkNearAtoms||null!=this.acr.thisBiomolecule?h*b:0<this.symmetryRange?h:1,j=Array(h),d=this.asc.atoms,k=0;k<e;k++)d[this.firstAtom+k].bsSymmetry=JU.BS.newN(g*(b+1));var n=0;this.unitCellTranslations=
Array(b);var p=0,r=0,A=Math.abs(this.symmetryRange),s=0!=this.symmetryRange,t=0>this.symmetryRange,q=0<this.symmetryRange;s&&(this.rminx=this.rminy=this.rminz=3.4028235E38,this.rmaxx=this.rmaxy=this.rmaxz=-3.4028235E38);var v=this.symmetry,u=v;this.checkAll=this.crystalReaderLatticeOpsOnly||1==this.asc.atomSetCount&&this.checkNearAtoms&&0<=this.latticeOp;var Q=this.acr.lstNCS;if(null!=Q&&0==Q.get(0).m33){for(var ra=v.getSpaceGroupOperationCount(),y=Q.size(),k=y;0<=--k;){var z=Q.get(k);z.m33=1;v.toFractionalM(z)}for(k=
1;k<ra;k++)for(var G=v.getSpaceGroupOperation(k),L=0;L<y;L++)z=JU.M4.newM4(Q.get(L)),z.mul2(G,z),this.doNormalize&&0<this.noSymmetryCount&&JS.SymmetryOperation.normalizeOperationToCentroid(3,z,d,this.firstAtom,this.noSymmetryCount),Q.addLast(z)}k=null;Q=v.getSpaceGroupOperation(0);this.doPackUnitCell&&(k=new JU.P3,this.ptOffset.set(0,0,0));ra=this.bondCount0>this.asc.bondIndex0&&this.applySymmetryToBonds?H(e,0):null;b=H(b,0);for(y=this.minXYZ.x;y<this.maxXYZ.x;y++)for(z=this.minXYZ.y;z<this.maxXYZ.y;z++)for(G=
this.minXYZ.z;G<this.maxXYZ.z;G++)if(this.unitCellTranslations[p]=JU.V3.new3(y,z,G),b[p++]=555+100*y+10*z+G,!(0!=y||0!=z||0!=G||0==j.length)){for(n=0;n<e;n++){r=d[this.firstAtom+n];null!=a&&(v=a.getAtomSymmetry(r,this.symmetry),v!==u&&(0==v.getSpaceGroupOperationCount()&&this.finalizeSymmetry(u=v),Q=v.getSpaceGroupOperation(0)));L=JU.P3.newP(r);Q.rotTrans(L);v.toCartesian(L,!1);if(this.doPackUnitCell)if(v.toUnitCellRnd(L,this.ptOffset),k.setT(L),v.toFractional(k,!1),this.acr.fixFloatPt(k,1E5),null==
c)r.setT(k);else if(1E-4>r.distance(k))c.set(r.index);else{c.clear(r.index);continue}null!=c&&r.bsSymmetry.clearAll();r.bsSymmetry.set(p*g);r.bsSymmetry.set(0);s&&this.setSymmetryMinMax(L);n<h&&(j[n]=L)}t&&(this.rminx-=A,this.rminy-=A,this.rminz-=A,this.rmaxx+=A,this.rmaxy+=A,this.rmaxz+=A);r=n=this.symmetryAddAtoms(0,0,0,0,n,p*g,j,a,m,ra)}q&&(this.rminx-=A,this.rminy-=A,this.rminz-=A,this.rmaxx+=A,this.rmaxy+=A,this.rmaxz+=A);p=0;for(y=this.minXYZ.x;y<this.maxXYZ.x;y++)for(z=this.minXYZ.y;z<this.maxXYZ.y;z++)for(G=
this.minXYZ.z;G<this.maxXYZ.z;G++)if(p++,0!=y||0!=z||0!=G)n=this.symmetryAddAtoms(y,z,G,r,n,p*g,j,a,m,ra);p*e==this.asc.ac-this.firstAtom&&this.duplicateAtomProperties(p);this.setCurrentModelInfo(e,v,b);this.unitCellParams=null;this.reset()}},"J.adapter.smarter.MSInterface,JU.BS");d(b,"applyRangeSymmetry",function(a){var c=this.acr.fillRange;a=this.updateBSAtoms();this.acr.forcePacked=!0;this.doPackUnitCell=!1;for(var e=JU.P3i.new3(this.minXYZ.x,this.minXYZ.y,this.minXYZ.z),g=JU.P3i.new3(this.maxXYZ.x,
this.maxXYZ.y,this.maxXYZ.z),b=Array(4),f=0;4>f;f++)b[f]=JU.P3.newP(c[f]);this.setUnitCellSafely();this.adjustRangeMinMax(b);c=new J.adapter.smarter.XtalSymmetry.FileSymmetry;c.getUnitCell(this.acr.fillRange,!1,null);this.applyAllSymmetry(this.acr.ms,a);for(var b=new JU.P3,h=this.asc.atoms,f=this.asc.ac;--f>=this.firstAtom;)b.setT(h[f]),this.symmetry.toCartesian(b,!1),c.toFractional(b,!1),(this.acr.noPack?!this.removePacking(this.ndims,b,e.x,g.x,e.y,g.y,e.z,g.z,this.packingRange):!this.isWithinCell(this.ndims,
b,e.x,g.x,e.y,g.y,e.z,g.z,this.packingRange))&&a.clear(f)},"JU.BS");d(b,"applySuperSymmetry",function(a,c,e,g,b,f,h){this.asc.setGlobalBoolean(7);var j=this.doPackUnitCell;this.doPackUnitCell=j;this.applyAllSymmetry(this.acr.ms,null);this.doPackUnitCell=j;for(var j=this.asc.atoms,d=this.asc.ac,k=e;k<d;k++)this.symmetry.toCartesian(j[k],!0),c.set(k);this.asc.setCurrentModelInfo("unitcell_conventional",this.symmetry.getV0abc("a,b,c",null));c=f[0];k=f[1];f=f[2];this.symmetry=new J.adapter.smarter.XtalSymmetry.FileSymmetry;
this.setUnitCell(C(-1,[0,0,0,0,0,0,c.x,c.y,c.z,k.x,k.y,k.z,f.x,f.y,f.z,0,0,0,0,0,0,NaN,NaN,NaN,NaN,NaN,h]),null,null);a=null==g||null==a?"P1":"cell="+a;this.setAtomSetSpaceGroupName(a);this.symmetry.setSpaceGroupName(a);this.symmetry.setSpaceGroup(this.doNormalize);this.symmetry.addSpaceGroupOperation("x,y,z",0);null!=b&&0==b.length()&&(b=null);null!=b&&this.symmetry.toFractional(b,!0);for(k=e;k<d;k++)this.symmetry.toFractional(j[k],!0),null!=b&&j[k].sub(b);this.asc.haveAnisou=!1;this.asc.setCurrentModelInfo("matUnitCellOrientation",
null)},"~S,JU.BS,~N,~A,JU.P3,~A,~N");d(b,"applySymmetryLattice",function(){if(this.asc.coordinatesAreFractional&&null!=this.symmetry.getSpaceGroup()){var a=this.latticeCells[0],c=this.latticeCells[1],e=Math.abs(this.latticeCells[2]),g=this.latticeCells[3];this.firstAtom=this.asc.getLastAtomSetAtomIndex();var b=this.asc.bsAtoms;null!=b&&(this.updateBSAtoms(),this.firstAtom=b.nextSetBit(this.firstAtom));this.rminx=this.rminy=this.rminz=3.4028235E38;this.rmaxx=this.rmaxy=this.rmaxz=-3.4028235E38;null==
this.acr.latticeType&&(this.acr.latticeType=""+this.symmetry.getLatticeType());this.acr.isPrimitive&&(this.asc.setCurrentModelInfo("isprimitive",Boolean.TRUE),(!"P".equals(this.acr.latticeType)||null!=this.acr.primitiveToCrystal)&&this.asc.setCurrentModelInfo("unitcell_conventional",this.symmetry.getConventionalUnitCell(this.acr.latticeType,this.acr.primitiveToCrystal)));this.setUnitCellSafely();this.asc.setCurrentModelInfo("f2c",this.symmetry.getUnitCellF2C());var f=this.symmetry.getSpaceGroupTitle();
0>f.indexOf("--")&&this.asc.setCurrentModelInfo("f2cTitle",f);this.asc.setCurrentModelInfo("f2cParams",this.symmetry.getUnitCellParams());null!=this.acr.latticeType&&(this.asc.setCurrentModelInfo("latticeType",this.acr.latticeType),"string"==typeof this.acr.fillRange&&(f=this.setLatticeRange(this.acr.latticeType,this.acr.fillRange),null==f?(this.acr.appendLoadNote(this.acr.fillRange+" symmetry could not be implemented"),this.acr.fillRange=null):this.acr.fillRange=f));this.baseSymmetry=this.symmetry;
if(null!=this.acr.fillRange)this.setMinMax(this.ndims,g,a,c,e),this.applyRangeSymmetry(b);else{var f=null,h=1E-6;this.nVib=0;var j=this.acr.strSupercell,d=null!=j&&0<=j.indexOf(","),k=null,n=null,p=Array(3);d&&(k=new JU.M4,null==this.mident&&(this.mident=new JU.M4),this.setUnitCellSafely(),f=this.symmetry.getV0abc(j,k),k.transpose33(),null!=f&&!k.equals(this.mident)&&(this.setMinMax(this.ndims,g,a,c,e),n=JU.P3.newP(f[0]),p[0]=JU.V3.newV(f[1]),p[1]=JU.V3.newV(f[2]),p[2]=JU.V3.newV(f[3]),this.adjustRangeMinMax(f)));
d=this.asc.getLastAtomSetAtomIndex();null!=b&&(d=b.nextSetBit(d));3.4028235E38==this.rminx?f=null:(b=this.updateBSAtoms(),h=this.symmetry.getPrecision(),this.applySuperSymmetry(j,b,d,f,n,p,h));this.setMinMax(this.ndims,g,a,c,e);if(null==f){this.applyAllSymmetry(this.acr.ms,b);if(!this.acr.noPack&&(!this.applySymmetryToBonds||!this.acr.doPackUnitCell))return;this.setMinMax(this.ndims,g,a,c,e)}(this.acr.forcePacked||this.acr.doPackUnitCell||this.acr.noPack)&&this.trimToUnitCell(d);this.updateSupercellAtomSites(k,
b,h)}}});d(b,"duplicateAtomProperties",function(a){var c=this.asc.getAtomSetAuxiliaryInfoValue(-1,"atomProperties");if(null!=c)for(var e,g=c.entrySet().iterator();g.hasNext()&&((e=g.next())||1);){var b=e.getKey(),f=e.getValue();if("string"==typeof f){for(var h=f,j=new JU.SB,f=a;0<=--f;)j.append(h);c.put(b,j.toString())}else{b=f;h=C(b.length*a,0);for(f=a;0<=--f;)System.arraycopy(b,0,h,f*b.length,b.length)}}},"~N");d(b,"finalizeSymmetry",function(a){var c=this.asc.getAtomSetAuxiliaryInfoValue(-1,"spaceGroup");
a.setFinalOperations(this.ndims,c,this.asc.atoms,this.firstAtom,this.noSymmetryCount,this.doNormalize,this.filterSymop);(null!=this.filterSymop||null==c||c.equals("unspecified!"))&&this.setAtomSetSpaceGroupName(a.getSpaceGroupName());null!=this.unitCellParams||Float.isNaN(this.acr.unitCellParams[0])||(a.fixUnitCell(this.acr.unitCellParams)&&this.acr.appendLoadNote("Unit cell parameters were adjusted to match space group!"),this.setUnitCellSafely())},"J.adapter.smarter.XtalSymmetry.FileSymmetry");
d(b,"removePacking",function(a,c,e,g,b,f,h,j,d){return c.x>e-d&&c.x<g-d&&(2>a||c.y>b-d&&c.y<f-d)&&(3>a||c.z>h-d&&c.z<j-d)},"~N,JU.P3,~N,~N,~N,~N,~N,~N,~N");d(b,"reset",function(){this.asc.coordinatesAreFractional=!1;this.asc.setCurrentModelInfo("hasSymmetry",Boolean.TRUE);this.asc.setGlobalBoolean(1)});d(b,"setAtomSetSpaceGroupName",function(a){this.symmetry.setSpaceGroupName(a);this.asc.setCurrentModelInfo("spaceGroup",a+"")},"~S");d(b,"setCurrentModelInfo",function(a,c,e){null==c?(this.asc.setCurrentModelInfo("presymmetryAtomCount",
Integer.$valueOf(this.noSymmetryCount)),this.asc.setCurrentModelInfo("biosymmetryCount",Integer.$valueOf(a)),this.asc.setCurrentModelInfo("biosymmetry",this.symmetry)):(this.asc.setCurrentModelInfo("presymmetryAtomCount",Integer.$valueOf(a)),this.asc.setCurrentModelInfo("latticeDesignation",c.getLatticeDesignation()),this.asc.setCurrentModelInfo("ML_unitCellRange",e),this.acr.isSUPERCELL&&this.asc.setCurrentModelInfo("supercell",this.acr.strSupercell));this.asc.setCurrentModelInfo("presymmetryAtomIndex",
Integer.$valueOf(this.firstAtom));a=this.symmetry.getSpaceGroupOperationCount();if(0<a){c=Array(a);for(e=0;e<a;e++)c[e]=""+this.symmetry.getSpaceGroupXyz(e,this.doNormalize);this.asc.setCurrentModelInfo("symmetryOperations",c);this.asc.setCurrentModelInfo("symmetryOps",this.symmetry.getSymmetryOperations())}this.asc.setCurrentModelInfo("symmetryCount",Integer.$valueOf(a));this.asc.setCurrentModelInfo("latticeType",null==this.acr.latticeType?"P":this.acr.latticeType);this.asc.setCurrentModelInfo("intlTableNo",
this.symmetry.getIntTableNumber());this.asc.setCurrentModelInfo("intlTableIndex",this.symmetry.getSpaceGroupInfoObj("itaIndex",null,!1,!1));this.asc.setCurrentModelInfo("intlTableTransform",this.symmetry.getSpaceGroupInfoObj("itaTransform",null,!1,!1));this.asc.setCurrentModelInfo("intlTableJmolID",this.symmetry.getIntTableNumberFull());this.asc.setCurrentModelInfo("spaceGroupIndex",Integer.$valueOf(this.symmetry.getSpaceGroupIndex()));this.asc.setCurrentModelInfo("spaceGroupTitle",this.symmetry.getSpaceGroupTitle());
if(null==this.acr.sgName||0<=this.acr.sgName.indexOf("?")||0<=this.acr.sgName.indexOf("!"))this.setAtomSetSpaceGroupName(this.acr.sgName=this.symmetry.getSpaceGroupName())},"~N,J.adapter.smarter.XtalSymmetry.FileSymmetry,~A");d(b,"setCurrentModelUCInfo",function(a,c,e){null!=a&&this.asc.setCurrentModelInfo("unitCellParams",a);null!=c&&this.asc.setCurrentModelInfo("unitCellOffset",c);null!=e&&this.asc.setCurrentModelInfo("matUnitCellOrientation",e)},"~A,JU.P3,JU.M3");d(b,"setLatticeCells",function(){this.latticeCells=
this.acr.latticeCells;var a=555>=this.latticeCells[0]&&555<=this.latticeCells[1]&&(0==this.latticeCells[2]||1==this.latticeCells[2]||-1==this.latticeCells[2]);this.doNormalize=0!=this.latticeCells[0]&&(!a||1==this.latticeCells[2]);this.applySymmetryToBonds=this.acr.applySymmetryToBonds;this.doPackUnitCell=this.acr.doPackUnitCell&&!this.applySymmetryToBonds;this.doCentroidUnitCell=this.acr.doCentroidUnitCell;this.centroidPacked=this.acr.centroidPacked;this.filterSymop=this.acr.filterSymop});d(b,"setLatticeRange",
function(a,c){var e=null,g="R".equals(a);c.equals("conventional")?e=this.symmetry.getConventionalUnitCell(a,this.acr.primitiveToCrystal):c.equals("primitive")?(e=this.symmetry.getUnitCellVectors(),this.symmetry.toFromPrimitive(!0,a.charAt(0),e,this.acr.primitiveToCrystal)):g&&c.equals("rhombohedral")?c=1==this.symmetry.getUnitCellInfoType(7)?"2/3a+1/3b+1/3c,-1/3a+1/3b+1/3c,-1/3a-2/3b+1/3c":null:g&&c.equals("trigonal")?c=1==this.symmetry.getUnitCellInfoType(8)?"a-b,b-c,a+b+c":null:(0>c.indexOf(",")||
0>c.indexOf("a")||0>c.indexOf("b")||c.indexOf("c"),c=null);if(null!=c&&null==e&&null==(e=this.symmetry.getV0abc(c,null)))c=null;if(null==c)return null;this.acr.addJmolScript("unitcell "+JU.PT.esc(c));return e},"~S,~S");d(b,"setMinMax",function(a,c,e,g,b){this.minXYZ=new JU.P3i;this.maxXYZ=JU.P3i.new3(e,g,b);JU.SimpleUnitCell.setMinMaxLatticeParameters(a,this.minXYZ,this.maxXYZ,c)},"~N,~N,~N,~N,~N");d(b,"setSymmetryMinMax",function(a){this.rminx>a.x&&(this.rminx=a.x);this.rminy>a.y&&(this.rminy=a.y);
this.rminz>a.z&&(this.rminz=a.z);this.rmaxx<a.x&&(this.rmaxx=a.x);this.rmaxy<a.y&&(this.rmaxy=a.y);this.rmaxz<a.z&&(this.rmaxz=a.z)},"JU.P3");d(b,"setUnitCell",function(a,c,e){this.unitCellParams=C(a.length,0);for(var g=0;g<a.length;g++)this.unitCellParams[g]=a[g];this.asc.haveUnitCell=!0;this.asc.isTrajectory&&(null==this.trajectoryUnitCells&&(this.trajectoryUnitCells=new JU.Lst,this.asc.setInfo("unitCells",this.trajectoryUnitCells)),this.trajectoryUnitCells.addLast(this.unitCellParams));this.asc.setGlobalBoolean(2);
this.getSymmetry().setUnitCellFromParams(this.unitCellParams,!1,this.unitCellParams[26]);null!=e&&this.symmetry.setOffsetPt(e);null!=c&&this.symmetry.initializeOrientation(c);this.setCurrentModelUCInfo(this.unitCellParams,e,c)},"~A,JU.M3,JU.P3");d(b,"setUnitCellSafely",function(){null==this.unitCellParams&&this.setUnitCell(this.acr.unitCellParams,this.acr.matUnitCellOrientation,this.acr.unitCellOffset)});d(b,"symmetryAddAtoms",function(a,c,e,g,b,f,h,d,l,k){var n=0==g,p=null!=k;this.doPackUnitCell&&
this.ptOffset.set(a,c,e);var r=this.symmetryRange*this.symmetryRange,A=0>this.symmetryRange,s=0<this.symmetryRange,t=n&&s,s=(new Boolean(s&!n)).valueOf(),q=this.symmetry.getSpaceGroupOperationCount(),v=this.acr.lstNCS,u=null==v?0:v.size(),Q=q+u,u=S(u/q),w=this.checkNearAtoms&&(1<Q||this.doPackUnitCell),y=A||s,z=w||y,G=null!=l,L=w||t,x=this.acr.isMolecular?null:this.asc.bsAtoms,B=this.symmetry;A&&(g=this.noSymmetryCount);var A=this.firstAtom+this.noSymmetryCount,D=0>this.asc.firstAtomToBond?A:this.asc.firstAtomToBond,
E=new JU.P3,O=null,C=G?0.01:1E-4,U="\x00",H=null==x?this.firstAtom:x.nextSetBit(this.firstAtom),N=0;a:for(;N<Q;N++)if(!(n&&0==N||this.crystalReaderLatticeOpsOnly&&0<N&&0!=N%this.latticeOp||null!=l&&l.get(N))){for(var V=this.firstAtom+(w?b:s?g:0),$=N>=q?0:0==this.asc.vibScale?B.getSpinOp(N):this.asc.vibScale,ca=Math.max(this.firstAtom,null==x?0:x.nextSetBit(0)),P=z,ga=N>=q?S((N-q)/u):N,ha=ga+f;ca<A;ca++){var R=this.asc.atoms[ca];if(null==x||x.get(ca)){null==d?B.newSpaceGroupPoint(R,N,N>=q?v.get(N-
q):null,a,c,e,E):(B=d.getAtomSymmetry(R,this.symmetry),B.newSpaceGroupPoint(R,N,null,a,c,e,E),O=B.getSpaceGroupOperationCode(N),null!=O&&(U=O.charAt(0),B=d.getSymmetryFromCode(O),0==B.getSpaceGroupOperationCount()&&this.finalizeSymmetry(B)));this.acr.fixFloatPt(E,1E5);var aa=JU.P3.newP(E);B.toCartesian(aa,!1);if(this.doPackUnitCell&&(B.toUnitCellRnd(aa,this.ptOffset),E.setT(aa),B.toFractional(E,!1),this.acr.fixFloatPt(E,1E5),!this.isWithinCell(this.ndims,E,this.minXYZ0.x,this.maxXYZ0.x,this.minXYZ0.y,
this.maxXYZ0.y,this.minXYZ0.z,this.maxXYZ0.z,this.packingRange)))continue;t&&this.setSymmetryMinMax(aa);var I=null;if(P){if(y&&(aa.x<this.rminx||aa.y<this.rminy||aa.z<this.rminz||aa.x>this.rmaxx||aa.y>this.rmaxy||aa.z>this.rmaxz))continue;for(var K=3.4028235E38,ka=this.checkAll?this.asc.ac:V,T=R.atomName,M=null==O?R.altLoc:U,W=H;W<ka;W++)if(null==x||x.get(W)){var ea=h[W-this.firstAtom];if(null!=ea){ea=aa.distanceSquared(ea);if(w&&ea<C){if(G){l.set(N);continue a}I=this.asc.atoms[W];if((null==I.atomName||
I.atomName.equals(T))&&I.altLoc==M)break;I=null}s&&(W<g&&ea<K)&&(K=ea)}}if(s&&K>r)continue}G&&(P=!1);W=R.atomSite;if(null!=I)p&&(k[W]=I.index),I.bsSymmetry.set(ha),I.bsSymmetry.set(ga);else{p&&(k[W]=this.asc.ac);I=R.copyTo(E,this.asc);null!=this.asc.bsAtoms&&this.asc.bsAtoms.set(I.index);0!=$&&null!=I.vib&&(B.getSpaceGroupOperation(N).rotate(I.vib),I.vib.scale($));if(I.isNegDisorder){null==this.disorderMap&&(this.disorderMap=new java.util.Hashtable);var Y=Integer.$valueOf(1E3*N+I.altLoc.charCodeAt(0)),
K=this.disorderMap.get(Y);if(null==K){if(0==this.disorderMapMax||90==this.disorderMapMax)this.disorderMapMax=64;this.disorderMap.put(Y,K=new Character(String.fromCharCode(++this.disorderMapMax)))}I.altLoc=K.charValue()}I.atomSite=W;null!=O&&(I.altLoc=U);I.bsSymmetry=JU.BSUtil.newAndSetBit(ha);I.bsSymmetry.set(ga);L&&(h[b++]=aa);R=R.tensors;if(null!=R){I.tensors=null;for(W=R.size();0<=--W;)aa=R.get(W),null!=aa&&(1==q?I.addTensor(aa.copyTensor(),null,!1):this.addRotatedTensor(I,aa,N,!1,B))}}}}if(p){V=
this.asc.bonds;$=this.asc.atoms;for(P=this.asc.bondIndex0;P<this.bondCount0;P++)if(ga=V[P],I=$[ga.atomIndex1],ca=$[ga.atomIndex2],!(null==I||null==ca||ca.atomSetIndex<I.atomSetIndex))if(ha=k[I.atomSite],R=k[ca.atomSite],ha>R&&(ca=ha,ha=R,R=ca),ha!=R&&(ha>=D||R>=D)&&0>this.bondsFound.indexOf(Y="-"+ha+","+R))this.bondsFound.append(Y),this.asc.addNewBondWithOrder(ha,R,ga.order)}}return b},"~N,~N,~N,~N,~N,~N,~A,J.adapter.smarter.MSInterface,JU.BS,~A");d(b,"trimToUnitCell",function(a){var c=this.asc.atoms,
e=this.updateBSAtoms();if(this.acr.noPack)for(a=e.nextSetBit(a);0<=a;a=e.nextSetBit(a+1))this.removePacking(this.ndims,c[a],this.minXYZ.x,this.maxXYZ.x,this.minXYZ.y,this.maxXYZ.y,this.minXYZ.z,this.maxXYZ.z,this.packingRange)||e.clear(a);else for(a=e.nextSetBit(a);0<=a;a=e.nextSetBit(a+1))this.isWithinCell(this.ndims,c[a],this.minXYZ.x,this.maxXYZ.x,this.minXYZ.y,this.maxXYZ.y,this.minXYZ.z,this.maxXYZ.z,this.packingRange)||e.clear(a)},"~N");d(b,"updateBSAtoms",function(){var a=this.asc.bsAtoms;
null==a&&(a=this.asc.bsAtoms=JU.BSUtil.newBitSet2(0,this.asc.ac));0>a.nextSetBit(this.firstAtom)&&a.setBits(this.firstAtom,this.asc.ac);return a});d(b,"updateSupercellAtomSites",function(a,c,e){for(var g=c.cardinality(),g=Array(g),b=0,f=e*e,h=c.nextSetBit(0);0<=h;h=c.nextSetBit(h+1)){var d=this.asc.atoms[h],l=new J.adapter.smarter.Atom;l.setT(d);null!=a&&(a.rotTrans(l),JU.SimpleUnitCell.unitizeDimRnd(3,l,e));l.atomSerial=d.atomSite;l.atomSite=d.atomSite;this.symmetry.unitize(l);for(var k=!1,n=0;n<
b;n++){var p=g[n];if(l.atomSerial==p.atomSerial&&l.distanceSquared(p)<f){k=!0;d.atomSite=p.atomSite;break}}k||(d.atomSite=l.atomSite=b,g[b++]=l)}},"JU.M4,JU.BS,~N");d(b,"newFileSymmetry",function(){return new J.adapter.smarter.XtalSymmetry.FileSymmetry});b=va(J.adapter.smarter.XtalSymmetry,"FileSymmetry",JS.Symmetry);Z(b,function(){ta(this,J.adapter.smarter.XtalSymmetry.FileSymmetry,[])});d(b,"addLatticeVectors",function(a){return this.spaceGroup.addLatticeVectors(a)},"JU.Lst");d(b,"addSubSystemOp",
function(a,c,e,g){this.spaceGroup.isSSG=!0;c=JS.SymmetryOperation.getXYZFromRsVs(c,e,!1);e=this.spaceGroup.addSymmetry(c,-1,!0);this.spaceGroup.operations[e].setSigma(a,g);return c},"~S,JU.Matrix,JU.Matrix,JU.Matrix");d(b,"checkDistance",function(a,c,e,g,b,f,h,d){return this.unitCell.checkDistance(a,c,e,g,b,f,h,d)},"JU.P3,JU.P3,~N,~N,~N,~N,~N,JU.P3");d(b,"createSpaceGroup",function(a,c,e,g){this.spaceGroup=JS.SpaceGroup.createSpaceGroup(a,c,e,g);null!=this.spaceGroup&&JU.Logger.debugging&&JU.Logger.debug("using generated space group "+
this.spaceGroup.dumpInfo());return null!=this.spaceGroup},"~N,~S,~O,~N");d(b,"fcoord",function(a){return JS.SymmetryOperation.fcoord(a," ")},"JU.T3");d(b,"getMatrixFromString",function(a,c){JS.SymmetryOperation.getMatrixFromString(null,a,c,!1,!0,!1)},"~S,~A");d(b,"getSpaceGroupOperationCode",function(a){return this.spaceGroup.operations[a].subsystemCode},"~N");d(b,"getTensor",function(a,c){if(null==c)return null;null==this.unitCell&&(this.unitCell=JS.UnitCell.fromParams(C(-1,[1,1,1,90,90,90]),!0,
1E-4));return this.unitCell.getTensor(a,c)},"JV.Viewer,~A");d(b,"getSpaceGroupTitle",function(){var a=this.getSpaceGroupName();return a.startsWith("cell=")?a:null!=this.spaceGroup?this.spaceGroup.asString():null!=this.unitCell&&0<this.unitCell.name.length?"cell="+this.unitCell.name:""});d(b,"setPrecision",function(a){this.unitCell.setPrecision(a)},"~N");d(b,"toFractionalM",function(a){this.$isBio||this.unitCell.toFractionalM(a)},"JU.M4");d(b,"toUnitCellRnd",function(a,c){this.unitCell.toUnitCellRnd(a,
c)},"JU.T3,JU.T3");d(b,"twelfthify",function(a){this.unitCell.twelfthify(a)},"JU.P3");d(b,"getConventionalUnitCell",function(a,c){return null==this.unitCell||null==a?null:this.unitCell.getConventionalUnitCell(a,c)},"~S,JU.M3");d(b,"getSpaceGroupIndex",function(){return this.spaceGroup.getIndex()});d(b,"getUnitCellF2C",function(){return this.unitCell.getF2C()});d(b,"addInversion",function(){var a=this.spaceGroup.operations,c=new JU.M4;c.m00=c.m11=c.m22=-1;c.m33=1;for(var e=this.getSpaceGroupOperationCount(),
g=new JU.M4,b=0;b<e;b++){g.mul2(c,a[b]);var f=JS.SymmetryOperation.getXYZFromMatrix(g,!0,!0,!1);this.addSpaceGroupOperation(f,0)}})});X("JS");fa(["J.api.SymmetryInterface"],"JS.Symmetry","java.util.Hashtable JU.BS $.JSJSONParser $.Lst $.M4 $.P3 $.PT $.Rdr $.SB J.api.Interface J.bspt.Bspt JS.PointGroup $.SpaceGroup $.SymmetryInfo $.SymmetryOperation $.UnitCell JU.Escape $.Logger $.SimpleUnitCell JV.FileManager".split(" "),function(){var b=ba(function(){this.unitCell=this.spaceGroup=null;this.$isBio=
!1;this.transformMatrix=this.desc=this.symmetryInfo=this.cip=this.pointGroup=null;M(this,arguments)},JS,"Symmetry",null,J.api.SymmetryInterface);q(b,"isBio",function(){return this.$isBio});q(b,"setPointGroup",function(a,c,e,g,b,f,h,d,l,k){this.pointGroup=JS.PointGroup.getPointGroup(null==c?null:c.pointGroup,e,g,b,f,h,d,l,k,a.getBoolean(603979956),a.getScalePixelsPerAngstrom(!1));return this},"JV.Viewer,J.api.SymmetryInterface,JU.T3,~A,JU.BS,~B,~N,~N,~N,~B");q(b,"getPointGroupName",function(){return this.pointGroup.getName()});
q(b,"getPointGroupInfo",function(a,c,e,g,b,f){return null==c&&!e&&null!=this.pointGroup.textInfo?this.pointGroup.textInfo:null==c&&this.pointGroup.isDrawType(g,b,f)?this.pointGroup.drawInfo:e&&null!=this.pointGroup.info?this.pointGroup.info:this.pointGroup.getInfo(a,c,e,g,b,f)},"~N,~S,~B,~S,~N,~N");q(b,"setSpaceGroup",function(a){this.symmetryInfo=null;null==this.spaceGroup&&(this.spaceGroup=JS.SpaceGroup.getNull(!0,a,!1))},"~B");q(b,"addSpaceGroupOperation",function(a,c){return this.spaceGroup.addSymmetry(a,
c,!1)},"~S,~N");q(b,"addBioMoleculeOperation",function(a,c){this.$isBio=this.spaceGroup.isBio=!0;return this.spaceGroup.addSymmetry((c?"!":"")+"[[bio"+a,0,!1)},"JU.M4,~B");q(b,"setLattice",function(a){this.spaceGroup.setLatticeParam(a)},"~N");q(b,"getSpaceGroup",function(){return this.spaceGroup});q(b,"getSpaceGroupInfoObj",function(a,c,e,g){var b=!1;switch(a){case "list":return this.getSpaceGroupList(c);case "opsCtr":return this.spaceGroup.getOpsCtr(c);case "nameToXYZList":b=!0;case "itaIndex":case "itaTransform":case "itaNumber":e=
null;null!=c?(e=JS.SpaceGroup.determineSpaceGroupN(c),null==e&&b&&(e=JS.SpaceGroup.createSpaceGroupN(c))):null!=this.spaceGroup?e=this.spaceGroup:null!=this.symmetryInfo&&(e=this.symmetryInfo.getDerivedSpaceGroup());switch(null==e?"":a){case "nameToXYZList":a=new JU.Lst;e.setFinalOperations();c=0;for(b=e.getOperationCount();c<b;c++)a.addLast(e.getOperation(c).xyz);return a;case "itaIndex":return e.getItaIndex();case "itaTransform":return e.itaTransform;case "itaNumber":return e.itaNumber}return null;
default:return JS.SpaceGroup.getInfo(this.spaceGroup,a,c,e,g)}},"~S,~O,~B,~B");d(b,"getSpaceGroupList",function(a){var c=new JU.SB;a=this.getSpaceGroupJSON(a,"ITA","ALL",0);for(var e=0,g=a.size();e<g;e++){var b=a.get(e);c.appendO(b.get("sg")).appendC(".").appendO(b.get("set")).appendC("\t").appendO(b.get("hm")).appendC("\t").appendO(b.get("sg")).appendC(":").appendO(b.get("trm")).appendC("\n")}return c.toString()},"JV.Viewer");q(b,"getLatticeDesignation",function(){return this.spaceGroup.getLatticeDesignation()});
q(b,"setFinalOperations",function(a,c,e,g,b,f,h){null!=c&&(c.startsWith("bio")||0<=c.indexOf(" *("))&&this.spaceGroup.setName(c);if(null!=h){var d=new JU.Lst;d.addLast(this.spaceGroup.operations[0]);for(var l=1;l<this.spaceGroup.operationCount;l++)h.contains(" "+(l+1)+" ")&&d.addLast(this.spaceGroup.operations[l]);this.spaceGroup=JS.SpaceGroup.createSpaceGroup(-1,c+" *("+h.trim()+")",d,-1)}this.spaceGroup.setFinalOperationsForAtoms(a,e,g,b,f)},"~N,~S,~A,~N,~N,~B,~S");q(b,"getSpaceGroupOperation",
function(a){return null==this.spaceGroup||null==this.spaceGroup.operations||a>=this.spaceGroup.operations.length?null:null==this.spaceGroup.finalOperations?this.spaceGroup.operations[a]:this.spaceGroup.finalOperations[a]},"~N");q(b,"getSpaceGroupXyz",function(a,c){return this.spaceGroup.getXyz(a,c)},"~N,~B");q(b,"newSpaceGroupPoint",function(a,c,e,g,b,f,h){null==e&&null==this.spaceGroup.finalOperations&&(e=this.spaceGroup.operations[c],e.isFinalized||e.doFinalize());JS.SymmetryOperation.rotateAndTranslatePoint(null==
e?this.spaceGroup.finalOperations[c]:e,a,g,b,f,h)},"JU.P3,~N,JU.M4,~N,~N,~N,JU.P3");q(b,"rotateAxes",function(a,c,e,g){return 0==a?c:this.spaceGroup.finalOperations[a].rotateAxes(c,this.unitCell,e,g)},"~N,~A,JU.P3,JU.M3");q(b,"getSpinOp",function(a){return this.spaceGroup.operations[a].getMagneticOp()},"~N");q(b,"getLatticeOp",function(){return this.spaceGroup.latticeOp});q(b,"getLatticeCentering",function(){return JS.SymmetryOperation.getLatticeCentering(this.getSymmetryOperations())});q(b,"getOperationRsVs",
function(a){return(null==this.spaceGroup.finalOperations?this.spaceGroup.operations:this.spaceGroup.finalOperations)[a].rsvs},"~N");q(b,"getSiteMultiplicity",function(a){return this.spaceGroup.getSiteMultiplicity(a,this.unitCell)},"JU.P3");q(b,"getSpaceGroupName",function(){return null!=this.spaceGroup?this.spaceGroup.getName():null!=this.symmetryInfo?this.symmetryInfo.sgName:null!=this.unitCell&&0<this.unitCell.name.length?"cell="+this.unitCell.name:""});q(b,"getSpaceGroupNameType",function(a){return null==
this.spaceGroup?null:this.spaceGroup.getNameType(a,this)},"~S");q(b,"getLatticeType",function(){return null!=this.symmetryInfo?this.symmetryInfo.latticeType:null==this.spaceGroup?"P":this.spaceGroup.latticeType});q(b,"getIntTableNumber",function(){return null!=this.symmetryInfo?this.symmetryInfo.intlTableNo:null==this.spaceGroup?null:this.spaceGroup.itaNumber});q(b,"getIntTableIndex",function(){return null!=this.symmetryInfo?this.symmetryInfo.intlTableIndex:null==this.spaceGroup?null:this.spaceGroup.getItaIndex()});
q(b,"getIntTableTransform",function(){return null!=this.symmetryInfo?this.symmetryInfo.intlTableTransform:null==this.spaceGroup?null:this.spaceGroup.itaTransform});q(b,"getIntTableNumberFull",function(){return null!=this.symmetryInfo?this.symmetryInfo.intlTableJmolID:null==this.spaceGroup?null:null!=this.spaceGroup.jmolId?this.spaceGroup.jmolId:this.spaceGroup.itaNumber});q(b,"getCoordinatesAreFractional",function(){return null==this.symmetryInfo||this.symmetryInfo.coordinatesAreFractional});q(b,
"getCellRange",function(){return null==this.symmetryInfo?null:this.symmetryInfo.cellRange});q(b,"getSymmetryInfoStr",function(){if(null!=this.symmetryInfo)return this.symmetryInfo.infoStr;if(null==this.spaceGroup)return"";(this.symmetryInfo=new JS.SymmetryInfo).setSymmetryInfoFromModelkit(this.spaceGroup);return this.symmetryInfo.infoStr});q(b,"getSpaceGroupOperationCount",function(){return null!=this.symmetryInfo&&null!=this.symmetryInfo.symmetryOperations?this.symmetryInfo.symmetryOperations.length:
null!=this.spaceGroup?null!=this.spaceGroup.finalOperations?this.spaceGroup.finalOperations.length:this.spaceGroup.operationCount:0});q(b,"getSymmetryOperations",function(){if(null!=this.symmetryInfo)return this.symmetryInfo.symmetryOperations;null==this.spaceGroup&&(this.spaceGroup=JS.SpaceGroup.getNull(!0,!1,!0));this.spaceGroup.setFinalOperations();return this.spaceGroup.finalOperations});q(b,"getAdditionalOperationsCount",function(){return null!=this.symmetryInfo&&null!=this.symmetryInfo.symmetryOperations&&
null!=this.symmetryInfo.getAdditionalOperations()?this.symmetryInfo.additionalOperations.length:null!=this.spaceGroup&&null!=this.spaceGroup.finalOperations?this.spaceGroup.getAdditionalOperationsCount():0});q(b,"getAdditionalOperations",function(){if(null!=this.symmetryInfo)return this.symmetryInfo.getAdditionalOperations();this.getSymmetryOperations();return this.spaceGroup.getAdditionalOperations()});q(b,"isSimple",function(){return null==this.spaceGroup&&(null==this.symmetryInfo||null==this.symmetryInfo.symmetryOperations)});
q(b,"haveUnitCell",function(){return null!=this.unitCell});q(b,"setUnitCellFromParams",function(a,c,e){null==a&&(a=C(-1,[1,1,1,90,90,90]));this.unitCell=JS.UnitCell.fromParams(a,c,e);return this},"~A,~B,~N");q(b,"unitCellEquals",function(a){return a.unitCell.isSameAs(this.unitCell.getF2C())},"J.api.SymmetryInterface");q(b,"isSymmetryCell",function(a){a=a.unitCell;var c=!a.isStandard()?null:null!=this.symmetryInfo?this.symmetryInfo.spaceGroupF2C:this.unitCell.getF2C();a=a.isSameAs(c);null!=this.symmetryInfo&&
this.symmetryInfo.setIsCurrentCell(a)&&this.setUnitCellFromParams(this.symmetryInfo.spaceGroupF2CParams,!1,NaN);return a},"J.api.SymmetryInterface");q(b,"getUnitCellState",function(){return null==this.unitCell?"":this.unitCell.getState()});q(b,"getMoreInfo",function(){return this.unitCell.moreInfo});q(b,"initializeOrientation",function(a){this.unitCell.initOrientation(a)},"JU.M3");q(b,"unitize",function(a){this.unitCell.unitize(a)},"JU.T3");q(b,"toUnitCell",function(a,c){this.unitCell.toUnitCell(a,
c)},"JU.T3,JU.T3");q(b,"toSupercell",function(a){return this.unitCell.toSupercell(a)},"JU.P3");q(b,"toFractional",function(a,c){this.$isBio||this.unitCell.toFractional(a,c)},"JU.T3,~B");q(b,"toCartesian",function(a,c){this.$isBio||this.unitCell.toCartesian(a,c)},"JU.T3,~B");q(b,"getUnitCellParams",function(){return this.unitCell.getUnitCellParams()});q(b,"getUnitCellAsArray",function(a){return this.unitCell.getUnitCellAsArray(a)},"~B");q(b,"getUnitCellVerticesNoOffset",function(){return this.unitCell.getVertices()});
q(b,"getCartesianOffset",function(){return this.unitCell.getCartesianOffset()});q(b,"getFractionalOffset",function(){return this.unitCell.getFractionalOffset()});q(b,"setOffsetPt",function(a){this.unitCell.setOffset(a)},"JU.T3");q(b,"setOffset",function(a){var c=new JU.P3;JU.SimpleUnitCell.ijkToPoint3f(a,c,0,0);this.unitCell.setOffset(c)},"~N");q(b,"getUnitCellMultiplier",function(){return this.unitCell.getUnitCellMultiplier()});q(b,"getUnitCellMultiplied",function(){var a=this.unitCell.getUnitCellMultiplied();
if(a===this.unitCell)return this;var c=new JS.Symmetry;c.unitCell=a;return c});q(b,"getCanonicalCopy",function(a,c){return this.unitCell.getCanonicalCopy(a,c)},"~N,~B");q(b,"getUnitCellInfoType",function(a){return this.unitCell.getInfo(a)},"~N");q(b,"getUnitCellInfo",function(a){return null==this.unitCell?null:this.unitCell.dumpInfo(!1,a)},"~B");q(b,"isSlab",function(){return this.unitCell.isSlab()});q(b,"isPolymer",function(){return this.unitCell.isPolymer()});d(b,"getUnitCellVectors",function(){return this.unitCell.getUnitCellVectors()});
q(b,"getUnitCell",function(a,c,e){if(null==a)return null;this.unitCell=JS.UnitCell.fromOABC(a,c);null!=e&&(this.unitCell.name=e);return this},"~A,~B,~S");q(b,"isSupercell",function(){return this.unitCell.isSupercell()});q(b,"notInCentroid",function(a,c,e){try{var g=new JU.BS,b=c.nextSetBit(0),f=a.getMolecules(),h=f.length,d=a.at,l=f[h-1].firstAtomIndex==a.am[d[b].mi].firstAtomIndex,k=new JU.P3,n=1==e[6];a=h;a:for(;0<=--a&&c.get(f[a].firstAtomIndex);){var p=f[a].atomList;k.set(0,0,0);for(var b=0,r=
p.nextSetBit(0);0<=r;r=p.nextSetBit(r+1))if(l||n)if(k.setT(d[r]),this.isNotCentroid(k,1,e,n))l&&g.set(r);else{if(!l)continue a}else k.add(d[r]),b++;(n||0<b&&this.isNotCentroid(k,b,e,!1))&&g.or(p)}return g}catch(A){if(da(A,Exception))return null;throw A;}},"JM.ModelSet,JU.BS,~A");d(b,"isNotCentroid",function(a,c,e,g){a.scale(1/c);this.toFractional(a,!1);return g?a.x+5E-6<=e[0]||a.x-5E-6>e[3]||a.y+5E-6<=e[1]||a.y-5E-6>e[4]||a.z+5E-6<=e[2]||a.z-5E-6>e[5]:a.x+5E-6<=e[0]||a.x+5E-5>e[3]||a.y+5E-6<=e[1]||
a.y+5E-5>e[4]||a.z+5E-6<=e[2]||a.z+5E-5>e[5]},"JU.P3,~N,~A,~B");d(b,"getDesc",function(a){return null==a?null==JS.Symmetry.nullDesc?JS.Symmetry.nullDesc=J.api.Interface.getInterface("JS.SymmetryDesc",null,"modelkit"):JS.Symmetry.nullDesc:(null==this.desc?this.desc=J.api.Interface.getInterface("JS.SymmetryDesc",a.vwr,"eval"):this.desc).set(a)},"JM.ModelSet");q(b,"getSymmetryInfoAtom",function(a,c,e,g,b,f,h,d,l,k,n,p,r){return this.getDesc(a).getSymopInfo(c,e,g,b,f,h,d,l,k,n,p,r)},"JM.ModelSet,~N,~S,~N,JU.P3,JU.P3,JU.P3,~S,~N,~N,~N,~N,~A");
q(b,"getSpaceGroupInfo",function(a,c,e,g,b){var f=null==c;if(null==c){var h=a.getModelAuxiliaryInfo(a.vwr.am.cmi);null!=h&&(c=h.get("spaceGroup"))}h=null;null!=b&&(h=(new JS.Symmetry).setUnitCellFromParams(b,!1,NaN));return this.getDesc(a).getSpaceGroupInfo(this,e,c,0,null,null,null,0,-1,g,f,0,h,null)},"JM.ModelSet,~S,~N,~B,~A");q(b,"getV0abc",function(a,c){var e=null,e=a&&a[0]?a[0]:null;return(null!=e?U(e,"JU.T3"):U(a,Array))?a:JS.UnitCell.getMatrixAndUnitCell(this.unitCell,a,c)},"~O,JU.M4");q(b,
"getQuaternionRotation",function(a){return null==this.unitCell?null:this.unitCell.getQuaternionRotation(a)},"~S");q(b,"getFractionalOrigin",function(){return this.unitCell.getFractionalOrigin()});q(b,"getState",function(a,c,e){var g=null!=a.getInfo(c,"spaceGroupAssigned"),b=this.getFractionalOffset(),f=!1;if(null!=b&&(0!=b.x||0!=b.y||0!=b.z))e.append("; set unitcell ").append(JU.Escape.eP(b)),f=!0;b=this.getUnitCellMultiplier();null!=b&&(e.append("; set unitcell ").append(JU.SimpleUnitCell.escapeMultiplier(b)),
f=!0);b=a.getInfo(c,"spaceGroup");g&&null!=b&&(a="\n UNITCELL "+JU.Escape.e(a.getUnitCell(c).getUnitCellVectors()),e.append(a),e.append("\n MODELKIT SPACEGROUP "+JU.PT.esc(b)),e.append(a),f=!0);return f},"JM.ModelSet,~N,JU.SB");q(b,"getIterator",function(a,c,e,g){return J.api.Interface.getInterface("JS.UnitCellIterator",a,"script").set(this,c,a.ms.at,e,g)},"JV.Viewer,JM.Atom,JU.BS,~N");q(b,"toFromPrimitive",function(a,c,e,g){null==this.unitCell&&(this.unitCell=JS.UnitCell.fromOABC(e,!1));return this.unitCell.toFromPrimitive(a,
c,e,g)},"~B,~S,~A,JU.M3");q(b,"generateCrystalClass",function(a){if(null==this.symmetryInfo||!this.symmetryInfo.isCurrentCell)return null;var c=this.getSymmetryOperations(),e=new JU.Lst,g=null==a,b=0,f=0,h=0;g?(b=2.718281828459045,f=3.141592653589793,h=Math.log10(2E3),a=JU.P3.new3(b+1,f+2,h+3)):a=JU.P3.newP(a);if(null==c||null==this.unitCell)e.addLast(a);else{this.unitCell.toFractional(a,!0);var d=null,l=null;g&&(d=JU.P3.new3(f+4,h+5,b+6),this.unitCell.toFractional(d,!0),l=JU.P3.new3(h+7,b+8,f+9),
this.unitCell.toFractional(l,!0));var f=new J.bspt.Bspt(3,0),h=f.allocateCubeIterator(),b=new JU.P3,k=c.length;a:for(;0<=--k;){c[k].rotate2(a,b);h.initialize(b,0.001,!1);if(h.hasMoreElements())continue a;var n=JU.P3.newP(b);e.addLast(n);f.addTuple(n);g&&(null!=l&&(c[k].rotate2(l,b),e.addLast(JU.P3.newP(b))),null!=d&&(c[k].rotate2(d,b),e.addLast(JU.P3.newP(b))))}for(c=e.size();0<=--c;)b=e.get(c),g&&b.scale(0.5),this.unitCell.toCartesian(b,!0)}return e},"JU.P3");q(b,"calculateCIPChiralityForAtoms",
function(a,c){a.setCursor(3);var e=this.getCIPChirality(a),g=a.getBoolean(603979960)?"CIPData":"CIPDataTracker",g=J.api.Interface.getInterface("JS."+g,a,"script").set(a,c);g.setRule6Full(a.getBoolean(603979823));e.getChiralityForAtoms(g);a.setCursor(0)},"JV.Viewer,JU.BS");q(b,"calculateCIPChiralityForSmiles",function(a,c){a.setCursor(3);var e=this.getCIPChirality(a),g=J.api.Interface.getInterface("JS.CIPDataSmiles",a,"script").setAtomsForSmiles(a,c);e.getChiralityForAtoms(g);a.setCursor(0);return g.getSmilesChiralityArray()},
"JV.Viewer,~S");d(b,"getCIPChirality",function(a){return null==this.cip?this.cip=J.api.Interface.getInterface("JS.CIPChirality",a,"script"):this.cip},"JV.Viewer");q(b,"getUnitCellInfoMap",function(){return null==this.unitCell?null:this.unitCell.getInfo()});q(b,"setUnitCell",function(a){this.unitCell=JS.UnitCell.cloneUnitCell(a.unitCell)},"J.api.SymmetryInterface");q(b,"findSpaceGroup",function(a,c,e,g,b,f,h){return J.api.Interface.getInterface("JS.SpaceGroupFinder",a,"eval").findSpaceGroup(a,c,e,
g,b,f,this,h)},"JV.Viewer,JU.BS,~S,~A,JU.T3,~A,~N");q(b,"setSpaceGroupName",function(a){this.symmetryInfo=null;null!=this.spaceGroup&&this.spaceGroup.setName(a)},"~S");q(b,"setSpaceGroupTo",function(a){this.symmetryInfo=null;this.spaceGroup=U(a,"JS.SpaceGroup")?a:JS.SpaceGroup.getSpaceGroupFromJmolClegOrITA(a.toString())},"~O");q(b,"removeDuplicates",function(a,c,e){var g=this.unitCell,b=a.at;a=a.occupancies;for(var f=null!=a,h=Array(c.length()),d=c.nextSetBit(0);0<=d;d=c.nextSetBit(d+1)){var l=h[d]=
JU.P3.newP(b[d]);g.toFractional(l,!1);e?g.unitizeRnd(l):g.unitize(l)}for(d=c.nextSetBit(0);0<=d;d=c.nextSetBit(d+1)){e=b[d];l=h[d];e=e.getAtomicAndIsotopeNumber();for(var g=f?a[d]:0,k=c.nextSetBit(d+1);0<=k;k=c.nextSetBit(k+1))e!=b[k].getAtomicAndIsotopeNumber()||f&&g!=a[k]||1.96E-6>l.distanceSquared(h[k])&&c.clear(k)}return c},"JM.ModelSet,JU.BS,~B");q(b,"getEquivPoints",function(a,c,e){var g=this.getSymmetryOperations();return null==g||null==this.unitCell?null:this.unitCell.getEquivPoints(c,e,g,
null==a?new JU.Lst:a,0,0,0)},"JU.Lst,JU.P3,~S");q(b,"getEquivPointList",function(a,c,e,g){var b=null==g?this.getSymmetryOperations():g,f=0<=e.indexOf("newpt"),d=0<=e.indexOf("zapped"),j=a.size(),l=0<=e.indexOf("tofractional");if(0>e.indexOf("fromfractional"))for(var k=0;k<a.size();k++)this.toFractional(a.get(k),!1);e+=",fromfractional,tofractional";var n=0<c?0:j,p=c==j,r=0<c?c:j;p&&(c--,r--);d&&(r=0);var A=0<c?a.get(c):null;g=null==g?r:n;if(null!=b||null!=this.unitCell)for(k=c;k<j;k++)this.unitCell.getEquivPoints(a.get(k),
e,b,a,n,r,g);!d&&(a.size()==c||a.get(c)!==A||p||f)&&j--;for(k=j-c;0<=--k;)a.removeItemAt(c);if(!l)for(k=a.size();--k>=c;)this.toCartesian(a.get(k),!1)},"JU.Lst,~N,~S,~A");q(b,"getInvariantSymops",function(a,c){var e=this.getSymmetryOperations();if(null==e)return H(0,0);for(var g=new JU.BS,b=new JU.P3,f=new JU.P3,d=e.length,j=1;j<d;j++)b.setT(a),this.unitCell.toFractional(b,!1),this.unitCell.unitize(b),f.setT(b),e[j].rotTrans(b),this.unitCell.unitize(b),1.96E-6>f.distanceSquared(b)&&g.set(j);e=H(g.cardinality(),
0);if(null!=c&&e.length!=c.length)return null;b=0;for(j=1;j<d;j++)if(g.get(j)){if(null!=c&&c[b]!=j+1)return null;e[b++]=j+1}return e},"JU.P3,~A");q(b,"getWyckoffPosition",function(a,c,e){if(null==this.unitCell)return"";var g=this.spaceGroup;null==g&&null!=this.symmetryInfo&&(g=JS.SpaceGroup.determineSpaceGroupN(this.symmetryInfo.sgName),null==g&&(g=JS.SpaceGroup.getSpaceGroupFromJmolClegOrITA(this.symmetryInfo.intlTableJmolID)));if(null==g||null==g.itaNumber)return"?";null==c?c=JU.P3.new3(0.53,0.2,
0.16):(c=JU.P3.newP(c),this.unitCell.toFractional(c,!1),this.unitCell.unitize(c));null==JS.Symmetry.wyckoffFinder&&(JS.Symmetry.wyckoffFinder=J.api.Interface.getInterface("JS.WyckoffFinder",null,"symmetry"));try{var b=JS.Symmetry.wyckoffFinder.getWyckoffFinder(a,g),f=null!=e&&"M"==e.charAt(0);f&&(e=1==e.length?null:e.substring(1));var d=null==e?-1:e.equalsIgnoreCase("coord")?-2:e.equalsIgnoreCase("coords")?-3:e.endsWith("*")?e.charAt(0).charCodeAt(0):0;if(0!=d)return null==b?"?":b.getInfo(this.unitCell,
c,d,f);if(null==b.findPositionFor(c,e))return null;this.unitCell.toCartesian(c,!1);return c}catch(j){if(da(j,Exception))return j.printStackTrace(),null==e?"?":null;throw j;}},"JV.Viewer,JU.P3,~S");q(b,"getTransform",function(a,c,e){return this.getDesc(null).getTransform(this.unitCell,this.getSymmetryOperations(),a,c,e)},"JU.P3,JU.P3,~B");q(b,"isWithinUnitCell",function(a,c,e,g){return this.unitCell.isWithinUnitCell(c,e,g,a)},"JU.P3,~N,~N,~N");q(b,"checkPeriodic",function(a){return this.unitCell.checkPeriodic(a)},
"JU.P3");q(b,"staticConvertOperation",function(a,c){return null==c?JS.SymmetryOperation.stringToMatrix(a):JS.SymmetryOperation.getXYZFromMatrixFrac(c,!1,!1,!1,!0)},"~S,JU.M4");q(b,"getSubgroupJSON",function(a,c,e,g,b){var f=0>e,d=0==e&&0==g,j=0==e&&0>g,l=0==e&&0<g&&0>b,k=0==e&&0<g&&0<b,n=0<e&&0>g,p=0<e&&0<g&&0>b,r=0<e&&0<g&&0<b;try{var A=this.getSpaceGroupJSON(a,"subgroups","map",c);a=0;if(null!=A){if(f)return A;if(d||j){for(var s=A.get("subgroups"),t=s.size(),q=d?H(t,0):null,v=j?new JU.BS:null,u=
t;0<=--u;){var A=s.get(u),w=A.get("subgroup").intValue();if(j)v.set(w);else{var C=A.get("subgroupIndex").intValue(),y="k".equals(A.get("trType"))?2:1,z=1==y?A.get("trSubtype"):"",G=A.get("det").doubleValue(),L=S(1>G?-1/G:G);z.equals("ct")?y=3:z.equals("eu")&&(y=4);var x=A.get("trm").size();q[u]=H(-1,[w,x,C,L,y])}}if(j){var B=H(v.cardinality(),0);c=0;for(u=v.nextSetBit(0);0<=u;u=v.nextSetBit(u+1))B[c++]=u;return B}return q}s=A.get("subgroups");v=0;t=s.size();if(l||k){if(g>t)throw new ArrayIndexOutOfBoundsException("no map.subgroups["+
g+"]!");v=g-1;if(l)return s.get(v);t=g}for(var D=n?new JU.Lst:null,u=v;u<t;u++)if(A=s.get(u),w=A.get("subgroup").intValue(),k||w==e){if(++a==g){if(p)return A}else if(r)continue;if(n)D.addLast(A);else{var E=A.get("trms"),t=E.size();return 1>b||b>t?null:E.get(b-1).get("trm")}}if(n&&!D.isEmpty())return D}if(0==g)return null;if(r&&0<a)throw new ArrayIndexOutOfBoundsException("only "+a+" maximal subgroup information for "+c+">>"+e+"!");throw new ArrayIndexOutOfBoundsException("no maximal subgroup information for "+
c+">>"+e+"!");}catch(O){if(da(O,Exception))return O.getMessage();throw O;}},"JV.Viewer,~N,~N,~N,~N");q(b,"getSpaceGroupJSON",function(a,c,e,g){var b=c.equals("settings"),f=!b&&c.equals("subgroups"),d=(b||f)&&-2147483648==g,j=!b&&!f?c:d?this.getSpaceGroupName():""+g;try{var l,k=null,n,p,r;if(b||f)if(p=!0,r=b?e:null,d){if(l=JU.PT.parseInt(this.getIntTableNumber()),b)if(null==this.spaceGroup){var A=this.symmetryInfo.getDerivedSpaceGroup();if(null==A)return new java.util.Hashtable;r=A.jmolId}else r=this.getIntTableNumberFull()}else l=
g;else{r=e;var s=r.indexOf("(");0>s&&(s=r.indexOf(":"));if(n=0<=s&&r.indexOf(",")>s)k=r.substring(s+1,r.length-(r.endsWith(")")?1:0)),r=r.substring(0,s),d=!0;l=r.equalsIgnoreCase("ALL")?0:JU.PT.parseInt(r);p=-2147483648!=l;s=r.indexOf(".");!n&&(p&&0==g&&0<s)&&(g=JU.PT.parseInt(r.substring(s+1)),r=r.substring(0,s))}if(p&&(230<l||(b?1>l:0>l)))throw new ArrayIndexOutOfBoundsException(l);if(f){null==JS.Symmetry.itaSubData&&(JS.Symmetry.itaSubData=Array(230));var t=JS.Symmetry.itaSubData[l-1];null==t&&
(JS.Symmetry.itaSubData[l-1]=t=this.getResource(a,"sg/json/sub_"+l+".json"));if(null!=t)return t}else if(b||c.equalsIgnoreCase("ITA")){if(0==l)return null==JS.Symmetry.allDataITA&&(JS.Symmetry.allDataITA=this.getResource(a,"sg/json/ita_all.json")),JS.Symmetry.allDataITA;null==JS.Symmetry.itaData&&(JS.Symmetry.itaData=Array(230));t=JS.Symmetry.itaData[l-1];null==t&&(JS.Symmetry.itaData[l-1]=t=this.getResource(a,"sg/json/ita_"+l+".json"));if(null!=t){if(0==g&&null==k)return t;var q=t.get("its");if(null!=
q){if(b&&!d)return q;var v=q.size(),u=p&&!d?g:v;if(u>v)return null;for(v=null;0<=--u;){v=q.get(u);if(u==g-1||(null==k?r.equals(v.get("jmolId")):k.equals(v.get("trm")))){System.out.println(k);System.out.println(v);if(!v.containsKey("more"))return v;break}v=null}if(null!=v)return JS.SpaceGroup.fillMoreData(v,v.get("clegId"),l,q.get(0))}}}else if(c.equalsIgnoreCase("AFLOW")&&null==k){null==JS.Symmetry.aflowStructures&&(JS.Symmetry.aflowStructures=this.getResource(a,"sg/json/aflow_structures.json"));
if(0==l)return JS.Symmetry.aflowStructures;if(-2147483648==l){g=null;r.endsWith("*")&&(g=new JU.Lst,r=r.substring(0,r.length-1));for(d=1;230>=d;d++)for(var w=JS.Symmetry.aflowStructures.get(""+d),u=0,v=w.size();u<v;u++){var C=w.get(u);if(null!=g&&C.startsWith(r))g.addLast("=aflowlib/"+d+"."+(u+1)+"\t"+C);else if(C.equalsIgnoreCase(r))return d+"."+(u+1)}return null!=g&&0<g.size()?g:null}var y=JS.Symmetry.aflowStructures.get(""+r);if(g<=y.size())return 0==g?y:y.get(g-1)}if(d)return new java.util.Hashtable;
throw new IllegalArgumentException(j);}catch(z){if(da(z,Exception))return z.getMessage();throw z;}},"JV.Viewer,~S,~O,~N");d(b,"getResource",function(a,c){try{var e=JV.FileManager.getBufferedReaderForResource(a,this,"JS/",c),g=Array(1);if(JU.Rdr.readAllAsString(e,2147483647,!1,g,0))return(new JU.JSJSONParser).parse(g[0],!0)}catch(b){System.err.println(b.getMessage())}return null},"JV.Viewer,~S");q(b,"getCellWeight",function(a){return this.unitCell.getCellWeight(a)},"JU.P3");q(b,"getPrecision",function(){return null==
this.unitCell?NaN:this.unitCell.getPrecision()});q(b,"fixUnitCell",function(a){return JS.UnitCell.createCompatibleUnitCell(this.spaceGroup,a,null,!0)},"~A");q(b,"staticGetTransformABC",function(a,c){return JS.SymmetryOperation.getTransformABC(a,c)},"~O,~B");d(b,"setCartesianOffset",function(a){this.unitCell.setCartesianOffset(a)},"JU.T3");d(b,"setSymmetryInfoFromFile",function(a,c,e){var g=a.getModelAuxiliaryInfo(c);this.symmetryInfo=new JS.SymmetryInfo;e=this.symmetryInfo.setSymmetryInfoFromFile(g,
e);null!=e&&(this.setUnitCellFromParams(e,g.containsKey("jmolData"),NaN),this.unitCell.moreInfo=g.get("moreUnitCellInfo"),g.put("infoUnitCell",this.getUnitCellAsArray(!1)),this.setOffsetPt(g.get("unitCellOffset")),g=g.get("matUnitCellOrientation"),null!=g&&this.initializeOrientation(g),null!=this.symmetryInfo.strSUPERCELL&&(g=this.unitCell.getUnitCellVectors(),g[0]=new JU.P3,a.setModelCagePts(c,g,"conventional")),JU.Logger.debugging&&JU.Logger.debug("symmetryInfos["+c+"]:\n"+this.unitCell.dumpInfo(!0,
!0)))},"JM.ModelSet,~N,~A");d(b,"transformUnitCell",function(a){null==a&&(a=JS.UnitCell.toTrm(this.spaceGroup.itaTransform,null));var c=JU.M4.newM4(a);c.invert();for(var e=this.getUnitCellVectors(),g=1;3>=g;g++)this.toFractional(e[g],!0),c.rotate(e[g]),this.toCartesian(e[g],!0);c=new JU.P3;a.getTranslation(c);this.toCartesian(c,!0);e[0].add(c);this.unitCell=JS.UnitCell.fromOABC(e,!1)},"JU.M4");q(b,"getITASettingValue",function(a,c,e){a=this.getSpaceGroupJSON(a,"ITA",c,0);return U(a,"java.util.Map")?
a.get(e):a},"JV.Viewer,~S,~S");q(b,"staticCleanTransform",function(a){return JS.SymmetryOperation.getTransformABC(JS.UnitCell.toTrm(a,null),!0)},"~S");q(b,"replaceTransformMatrix",function(a){var c=this.transformMatrix;this.transformMatrix=a;return c},"JU.M4");q(b,"getUnitCellDisplayName",function(){var a=null!=this.symmetryInfo?this.symmetryInfo.getDisplayName(this):null!=this.spaceGroup?this.spaceGroup.getDisplayName():null;return 0<a.length?a:null});q(b,"staticToRationalXYZ",function(a,c){var e=
JS.SymmetryOperation.fcoord(a,c);return",".equals(c)?e:"("+e+")"},"JU.P3,~S");q(b,"getClegId",function(){return null!=this.symmetryInfo?this.symmetryInfo.getDerivedSpaceGroup().clegId:this.spaceGroup.clegId});q(b,"getFinalOperationCount",function(){this.setFinalOperations(3,null,null,-1,-1,!1,null);return this.spaceGroup.getOperationCount()});q(b,"convertTransform",function(a,c){if(null==a)return this.staticGetTransformABC(c,!1);if(a.equals("xyz"))return null==c?null:JS.SymmetryOperation.getXYZFromMatrix(c,
!1,!1,!1);null==c&&(c=new JU.M4);JS.UnitCell.getMatrixAndUnitCell(null,a,c);return c},"~S,JU.M4");b.nullDesc=null;b.aflowStructures=null;b.itaData=null;b.itaSubData=null;b.allDataITA=null;b.wyckoffFinder=null});X("JS");fa(["JU.M3","$.V3"],"JS.PointGroup","java.util.Hashtable JU.Lst $.P3 $.PT $.Quat $.SB J.bspt.Bspt JU.BSUtil $.Escape $.Logger $.Point3fi".split(" "),function(){var b=ba(function(){this.isAtoms=!1;this.iter=this.textInfo=this.info=this.drawInfo=null;this.drawType="";this.drawIndex=0;
this.scale=NaN;this.axes=this.nAxes=null;this.radius=this.nAtoms=0;this.distanceTolerance=0.25;this.distanceTolerance2=0;this.linearTolerance=8;this.cosTolerance=0.99;this.name="C_1?";this.principalPlane=this.principalAxis=null;this.convention=0;this.vTemp=null;this.centerAtomIndex=-1;this.haveInversionCenter=!1;this.bsAtoms=this.atomMap=this.elements=this.points=this.center=null;this.$isLinear=this.localEnvOnly=this.haveVibration=!1;this.sppa=0;this.maxAtoms=250;this.maxElement=0;this.eCounts=null;
this.nOps=0;wa("JS.PointGroup.Operation")||JS.PointGroup.$PointGroup$Operation$();M(this,arguments)},JS,"PointGroup",null);oa(b,function(){this.nAxes=H(JS.PointGroup.maxAxis,0);this.axes=Array(JS.PointGroup.maxAxis);this.vTemp=new JU.V3});Z(b,function(a){this.convention=a?1:0},"~B");d(b,"getName",function(){return this.getConventionalName(this.name)});d(b,"getHermannMauguinName",function(){return JS.PointGroup.getHMfromSFName(this.name)});d(b,"getConventionalName",function(a){return 1==this.convention?
JS.PointGroup.getHMfromSFName(a):a},"~S");b.getPointGroup=d(b,"getPointGroup",function(a,c,e,g,b,f,d,j,l,k,n){k=new JS.PointGroup(k);0>=f&&(f=0.01);0>=d&&(d=0.5);0>=j&&(j=250);k.distanceTolerance=f;k.distanceTolerance2=f*f;k.linearTolerance=d;k.maxAtoms=j;k.isAtoms=null!=g;k.bsAtoms=k.isAtoms?g:JU.BSUtil.newBitSet2(0,e.length);k.haveVibration=b;k.center=c;k.localEnvOnly=l;k.sppa=n;JU.Logger.debugging&&(a=null);return k.set(a,e)?k:a},"JS.PointGroup,JU.T3,~A,JU.BS,~B,~N,~N,~N,~B,~B,~N");d(b,"isEqual",
function(a){if(null==a||(this.convention!=a.convention||this.linearTolerance!=a.linearTolerance||this.distanceTolerance!=a.distanceTolerance||this.nAtoms!=a.nAtoms||this.localEnvOnly!=a.localEnvOnly||this.haveVibration!=a.haveVibration||null==this.bsAtoms?null!=a.bsAtoms:!this.bsAtoms.equals(a.bsAtoms)))return!1;for(var c=0;c<this.nAtoms;c++)if(this.elements[c]!=a.elements[c]||!this.points[c].equals(a.points[c]))return!1;return!0},"JS.PointGroup");d(b,"set",function(a,c){this.cosTolerance=Math.cos(3.141592653589793*
(this.linearTolerance/180));if(!this.getPointsAndElements(c))return JU.Logger.error("Too many atoms for point group calculation"),this.name="point group not determined -- ac > "+this.maxAtoms+" -- select fewer atoms and try again.",!0;this.getElementCounts();if(this.haveVibration){for(var e=Array(this.points.length),g=this.points.length;0<=--g;){e[g]=JU.P3.newP(this.points[g]);var b=this.points[g].getVibrationVector();null!=b&&e[g].add(b)}this.points=e}if(this.isEqual(a))return!1;try{this.findInversionCenter();
if(this.$isLinear=this.isLinear(this.points))return this.name=this.haveInversionCenter?"D(infinity)h":"C(infinity)v",this.vTemp.sub2(this.points[1],this.points[0]),this.addAxis(16,this.vTemp),this.principalAxis=this.axes[16][0],this.haveInversionCenter&&(this.axes[0]=Array(1),this.principalPlane=this.axes[0][this.nAxes[0]++]=qa(JS.PointGroup.Operation,this,null,this.vTemp)),!0;this.axes[0]=Array(15);e=0;this.findCAxes();e=this.findPlanes();this.findAdditionalAxes(e);var f=this.getHighestOrder();if(1<
this.nAxes[17])this.name=1<this.nAxes[19]?this.haveInversionCenter?"Ih":"I":1<this.nAxes[18]?this.haveInversionCenter?"Oh":"O":0<e?this.haveInversionCenter?"Th":"Td":"T";else if(2>f){if(1==e)return this.name="Cs",!0;if(this.haveInversionCenter)return this.name="Ci",!0;this.name="C1"}else 1==f%2&&0<this.nAxes[16]||0==f%2&&1<this.nAxes[16]?(this.principalAxis=this.setPrincipalAxis(f,e),0==e?this.name=14>f?"S"+f:"D"+(f-14):(f=14>f?S(f/2):f-14,this.name=e==f?"D"+f+"d":"D"+f+"h")):0==e?(this.principalAxis=
this.axes[f][0],this.name=14>f?"S"+f:"C"+(f-14)):e==f-14?(this.principalAxis=this.axes[f][0],this.name="C"+e+"v"):(this.principalAxis=this.axes[14>f?f+14:f][0],this.principalPlane=this.axes[0][0],this.name="C"+(14>f?f/2:f-14)+"h")}catch(d){if(da(d,Exception))this.name="??";else throw d;}finally{JU.Logger.info("Point group found: "+this.name)}return!0},"JS.PointGroup,~A");d(b,"setPrincipalAxis",function(a,c){var e=this.setPrincipalPlane(a,c);if(0==c&&14>a||1==this.nAxes[a])return this.axes[a][0];if(null==
e)return null;for(var g=0;g<this.nAxes[16];g++)if(this.isParallel(e.normalOrAxis,this.axes[16][g].normalOrAxis))return 0!=g&&(e=this.axes[16][0],this.axes[16][0]=this.axes[16][g],this.axes[16][g]=e),this.axes[16][0];return null},"~N,~N");d(b,"setPrincipalPlane",function(a,c){if(1==c)return this.principalPlane=this.axes[0][0];if(0==c||c==a-14)return null;for(var e=0;e<c;e++)for(var g=0,b=0;g<c;g++)if(this.isPerpendicular(this.axes[0][e].normalOrAxis,this.axes[0][g].normalOrAxis)&&2<++b)return 0!=e&&
(g=this.axes[0][0],this.axes[0][0]=this.axes[0][e],this.axes[0][e]=g),this.principalPlane=this.axes[0][0];return null},"~N,~N");d(b,"getPointsAndElements",function(a){var c=this.bsAtoms.cardinality();if(this.isAtoms&&c>this.maxAtoms)return!1;this.points=Array(c);this.elements=H(c,0);if(0==c)return!0;for(var e=0,c=this.bsAtoms.nextSetBit(0);0<=c;c=this.bsAtoms.nextSetBit(c+1)){var g=a[c];U(g,"JU.Node")&&(e=Math.max(e,g.i))}this.atomMap=H(e+1,0);this.nAtoms=0;if(e=null==this.center)this.center=new JU.P3;
for(var b=new J.bspt.Bspt(3,0),c=this.bsAtoms.nextSetBit(0);0<=c;c=this.bsAtoms.nextSetBit(c+1),this.nAtoms++){g=a[c];if(U(g,"JU.Node")){var f=this.localEnvOnly?1:1+Math.max(3,g.getCovalentBondCount());this.elements[this.nAtoms]=g.getElementNumber()*f;this.atomMap[g.i]=this.nAtoms+1}else f=new JU.Point3fi,f.setT(g),f.i=-1-this.nAtoms,U(g,"JU.Point3fi")&&(this.elements[this.nAtoms]=Math.max(0,g.sD)),g=f;b.addTuple(g);e&&this.center.add(g);this.points[this.nAtoms]=g}this.iter=b.allocateCubeIterator();
e&&this.center.scale(1/this.nAtoms);for(c=this.nAtoms;0<=--c;)a=this.center.distanceSquared(this.points[c]),this.isAtoms&&a<this.distanceTolerance2&&(this.centerAtomIndex=c),this.radius=Math.max(this.radius,a);this.radius=Math.sqrt(this.radius);1.5>this.radius&&0.15<this.distanceTolerance&&(this.distanceTolerance=this.radius/10,this.distanceTolerance2=this.distanceTolerance*this.distanceTolerance,System.out.println("PointGroup calculation adjusting distanceTolerance to "+this.distanceTolerance));
return!0},"~A");d(b,"findInversionCenter",function(){if(this.haveInversionCenter=this.checkOperation(null,this.center,-1))this.axes[1]=Array(1),this.axes[1][0]=qa(JS.PointGroup.Operation,this,null)});d(b,"checkOperation",function(a,c,e){var g=new JU.P3,b=0;e=14>e;var f=this.points.length,d=f;a:for(;0<=--d&&b<f;)if(d!=this.centerAtomIndex){var j=this.points[d],l=this.elements[d];null!=a?(g.sub2(j,c),a.transform2(g,g).add(c)):g.setT(j);e&&(this.vTemp.sub2(c,g),g.scaleAdd2(2,this.vTemp,g));if((null!=
a||e)&&g.distanceSquared(j)<this.distanceTolerance2)b++;else{for(this.iter.initialize(g,this.distanceTolerance,!1);this.iter.hasMoreElements();){var k=this.iter.nextElement();if(k!==j){var n=this.getPointIndex(k.i);if(!(0<=this.centerAtomIndex&&n==this.centerAtomIndex||n>=this.elements.length||this.elements[n]!=l)&&g.distanceSquared(k)<this.distanceTolerance2){b++;continue a}}}return!1}}return!0},"JU.Quat,JU.T3,~N");d(b,"getPointIndex",function(a){return(0>a?-a:this.atomMap[a])-1},"~N");d(b,"isLinear",
function(a){var c=null;if(2>a.length)return!1;for(var e=a.length;0<=--e;)if(e!=this.centerAtomIndex)if(null==c)c=new JU.V3,c.sub2(a[e],this.center),c.normalize(),this.vTemp.setT(c);else if(this.vTemp.sub2(a[e],this.center),this.vTemp.normalize(),!this.isParallel(c,this.vTemp))return!1;return!0},"~A");d(b,"isParallel",function(a,c){return Math.abs(a.dot(c))>=this.cosTolerance},"JU.V3,JU.V3");d(b,"isPerpendicular",function(a,c){return Math.abs(a.dot(c))<=1-this.cosTolerance},"JU.V3,JU.V3");d(b,"getElementCounts",
function(){for(var a=this.points.length;0<=--a;){var c=this.elements[a];c>this.maxElement&&(this.maxElement=c)}this.eCounts=H(++this.maxElement,0);for(a=this.points.length;0<=--a;)this.eCounts[this.elements[a]]++});d(b,"findCAxes",function(){for(var a=new JU.V3,c=new JU.V3,e=new JU.V3,g=this.points.length;0<=--g;)if(g!=this.centerAtomIndex)for(var b=this.points[g],f=this.elements[g],d=this.points.length;--d>g;){var j=this.points[d];if(this.elements[d]==f)if(a.sub2(b,this.center),c.sub2(j,this.center),
a.normalize(),c.normalize(),this.isParallel(a,c))this.getAllAxes(a);else{this.nAxes[16]<JS.PointGroup.axesMaxN[16]&&(e.ave(b,j),e.sub(this.center),this.getAllAxes(e));var j=6.283185307179586/a.angle(c),l=S(Math.floor(j+0.01));if(0.02>=j-l&&!((l+=14)>=JS.PointGroup.maxAxis)&&this.nAxes[l]<JS.PointGroup.axesMaxN[l])e.cross(a,c),this.checkAxisOrder(l,e,this.center)}}b=Array(2*this.nAxes[16]);for(g=0;g<b.length;g++)b[g]=new JU.V3;for(g=d=0;g<this.nAxes[16];g++)b[d++].setT(this.axes[16][g].normalOrAxis),
b[d].setT(this.axes[16][g].normalOrAxis),b[d++].scale(-1);for(g=b.length;2<=--g;)for(d=g;1<=--d;)for(f=d;0<=--f;)e.add2(b[g],b[d]),e.add(b[f]),1>e.length()||this.checkAxisOrder(17,e,this.center);d=2147483647;b=-1;for(g=0;g<this.maxElement;g++)this.eCounts[g]<d&&2<this.eCounts[g]&&(d=this.eCounts[g],b=g);g=0;a:for(;g<this.points.length-2;g++)if(this.elements[g]==b)for(d=g+1;d<this.points.length-1;d++)if(this.elements[d]==b)for(f=d+1;f<this.points.length;f++)if(this.elements[f]==b&&(a.sub2(this.points[g],
this.points[d]),c.sub2(this.points[g],this.points[f]),a.normalize(),c.normalize(),e.cross(a,c),this.getAllAxes(e),a.add2(this.points[g],this.points[d]),a.add(this.points[f]),a.normalize(),this.isParallel(a,e)||this.getAllAxes(a),this.nAxes[19]==JS.PointGroup.axesMaxN[19]))break a;b=Array(this.maxElement);for(g=this.points.length;0<=--g;){f=this.elements[g];if(null==b[f])b[f]=new JU.V3;else if(this.haveInversionCenter)continue;b[f].add(this.points[g])}if(!this.haveInversionCenter)for(g=0;g<this.maxElement;g++)null!=
b[g]&&b[g].scale(1/this.eCounts[g]);for(g=0;g<this.maxElement;g++)if(null!=b[g])for(d=0;d<this.maxElement;d++)g==d||null==b[d]||(this.haveInversionCenter?a.cross(b[g],b[d]):a.sub2(b[g],b[d]),this.checkAxisOrder(16,a,this.center));return this.getHighestOrder()});d(b,"getAllAxes",function(a){for(var c=16;c<JS.PointGroup.maxAxis;c++)this.nAxes[c]<JS.PointGroup.axesMaxN[c]&&this.checkAxisOrder(c,a,this.center)},"JU.V3");d(b,"getHighestOrder",function(){for(var a=0,a=14;1<--a&&0==this.nAxes[a];);if(1<
a)return a+14<JS.PointGroup.maxAxis&&0<this.nAxes[a+14]?a+14:a;for(a=JS.PointGroup.maxAxis;1<--a&&0==this.nAxes[a];);return a});d(b,"checkAxisOrder",function(a,c,e){switch(a){case 22:if(0<this.nAxes[17])return!1;case 20:case 18:if(0<this.nAxes[19])return!1;break;case 17:if(0<this.nAxes[22])return!1;break;case 19:if(0<this.nAxes[18]||0<this.nAxes[20]||0<this.nAxes[22])return!1}c.normalize();if(this.haveAxis(a,c))return!1;var g=JS.PointGroup.getQuaternion(c,a);if(!this.checkOperation(g,e,a))return!1;
this.addAxis(a,c);switch(a){case 16:this.checkAxisOrder(4,c,e);break;case 17:this.checkAxisOrder(3,c,e);this.haveInversionCenter&&this.addAxis(6,c);break;case 18:this.addAxis(16,c);this.checkAxisOrder(4,c,e);this.checkAxisOrder(8,c,e);break;case 19:this.checkAxisOrder(5,c,e);this.haveInversionCenter&&this.addAxis(10,c);break;case 20:this.addAxis(16,c);this.addAxis(17,c);this.checkAxisOrder(3,c,e);this.checkAxisOrder(6,c,e);this.checkAxisOrder(12,c,e);break;case 22:this.addAxis(16,c),this.addAxis(18,
c)}return!0},"~N,JU.V3,JU.T3");d(b,"addAxis",function(a,c){this.haveAxis(a,c)||(null==this.axes[a]&&(this.axes[a]=Array(JS.PointGroup.axesMaxN[a])),this.axes[a][this.nAxes[a]++]=qa(JS.PointGroup.Operation,this,null,c,a))},"~N,JU.V3");d(b,"haveAxis",function(a,c){if(this.nAxes[a]==JS.PointGroup.axesMaxN[a])return!0;if(0<this.nAxes[a])for(var e=this.nAxes[a];0<=--e;)if(this.isParallel(c,this.axes[a][e].normalOrAxis))return!0;return!1},"~N,JU.V3");d(b,"findPlanes",function(){for(var a=new JU.P3,c=new JU.V3,
e=new JU.V3,g=new JU.V3,b=0,f=1<this.getHighestOrder(),d=this.points.length;0<=--d;)if(d!=this.centerAtomIndex)for(var j=this.points[d],l=this.elements[d],k=this.points.length;--k>d;)if(!(f&&this.elements[k]!=l)&&(b=this.points[k],a.add2(j,b),a.scale(0.5),c.sub2(j,this.center),e.sub2(b,this.center),c.normalize(),e.normalize(),this.isParallel(c,e)||(g.cross(c,e),g.normalize(),this.getPlane(g)),g.sub2(b,j),g.normalize(),b=this.getPlane(g),b==JS.PointGroup.axesMaxN[0]))return b;if(f)for(d=16;d<JS.PointGroup.maxAxis;d++)for(k=
0;k<this.nAxes[d];k++)b=this.getPlane(this.axes[d][k].normalOrAxis);return b});d(b,"getPlane",function(a){!this.haveAxis(0,a)&&this.checkOperation(JU.Quat.newVA(a,180),this.center,-1)&&(this.axes[0][this.nAxes[0]++]=qa(JS.PointGroup.Operation,this,null,a));return this.nAxes[0]},"JU.V3");d(b,"findAdditionalAxes",function(a){var c=this.axes[0],e=0;if(1<a&&(e=a+14)<JS.PointGroup.maxAxis&&0==this.nAxes[e])this.vTemp.cross(c[0].normalOrAxis,c[1].normalOrAxis),!this.checkAxisOrder(e,this.vTemp,this.center)&&
2<a&&(this.vTemp.cross(c[1].normalOrAxis,c[2].normalOrAxis),this.checkAxisOrder(e-1,this.vTemp,this.center));if(0==this.nAxes[16]&&2<a)for(e=0;e<a-1;e++)for(var b=e+1;b<a;b++)this.vTemp.add2(c[1].normalOrAxis,c[2].normalOrAxis),this.checkAxisOrder(16,this.vTemp,this.center)},"~N");b.getQuaternion=d(b,"getQuaternion",function(a,c){return JU.Quat.newVA(a,(14>c?180:0)+(0==c?0:S(360/(c%14))))},"JU.V3,~N");d(b,"getInfo",function(a,c,e,b,d,f){var h=null!=c;this.info=e?new java.util.Hashtable:null;var j=
new JU.V3,l;0==f&&(f=1);this.scale=f;for(var k=H(4,2,0),n=1;n<JS.PointGroup.maxAxis;n++)for(var p=this.nAxes[n];0<=--p;)k[this.axes[n][p].type][0]++;var r=(new JU.SB).append("# ").appendI(this.nAtoms).append(" atoms\n"),q=this.getConventionalName(this.name);if(h){c="draw "+c;this.drawType=b=(e=null!=b&&0<b.length)?b:"";this.drawIndex=d;var s=b.equalsIgnoreCase(this.getConventionalName("Cn")),t=b.equalsIgnoreCase(this.getConventionalName("Sn"));r.append("set perspectivedepth off;\n");var w="_"+a+"_";
e||r.append(c+"pg0").append(w).append("* delete;draw pgva").append(w).append("* delete;draw pgvp").append(w).append("* delete;");if(!e||b.equalsIgnoreCase("Ci"))r.append(c+"pg0").append(w).append(this.haveInversionCenter?"inv ":" ").append(JU.Escape.eP(this.center)).append(this.haveInversionCenter?'"i";\n':";\n");for(var v=0.1,n=2;n<JS.PointGroup.maxAxis;n++)if(14==n&&(v=0.1),0!=this.nAxes[n]){a=!this.$isLinear?this.axes[n][0].getLabel(!1):"C_infinity";var h=!this.$isLinear?this.axes[n][0].getLabel(!0):
"C_infinity",v=v+0.25,u=1.05*f*this.radius+80*v/this.sppa,p=14<=n;if(!e||b.equalsIgnoreCase(h)||s&&p||t&&!p)for(p=0;p<this.nAxes[n];p++)if(!(0<d&&p+1!=d)){l=this.axes[n][p];j.add2(l.normalOrAxis,this.center);r.append(c+"pgva").append(w).append(a).append("_").appendI(p+1).append(" width 0.05 scale ").appendF(2==l.type?-u:u).append(" ").append(JU.Escape.eP(j));j.scaleAdd2(-2,l.normalOrAxis,j);var Q=!this.$isLinear&&null!=this.principalAxis&&l.index==this.principalAxis.index;r.append(JU.Escape.eP(j)).append('"').append(h).append("").append('" color ').append(Q?
"red":2==l.type?"blue":"orange").append(";\n")}}if(!e||b.equalsIgnoreCase(this.getConventionalName("Cs")))for(p=0;p<this.nAxes[0];p++)0<d&&p+1!=d||(l=this.axes[0][p],r.append(c+"pgvp").append(w).appendI(p+1).append("disk scale ").appendF(2*f*this.radius).append(" CIRCLE PLANE ").append(JU.Escape.eP(this.center)),j.add2(l.normalOrAxis,this.center),r.append(JU.Escape.eP(j)).append(" color translucent yellow;\n"),j.add2(l.normalOrAxis,this.center),r.append(c+"pgvp").append(w).appendI(p+1).append("ring width 0.05 scale ").appendF(2*
f*this.radius).append(" arc ").append(JU.Escape.eP(j)),j.scaleAdd2(-2,l.normalOrAxis,j),r.append(JU.Escape.eP(j)),j.add3(0.011,0.012,0.013),r.append(JU.Escape.eP(j)).append("{0 360 0.5} color ").append(null!=this.principalPlane&&l.index==this.principalPlane.index?"red":"blue").append(";\n"));r.append("# name=").append(q);r.append(", n"+this.getConventionalName("Ci")+"=").appendI(this.haveInversionCenter?1:0);r.append(", n"+this.getConventionalName("Cs")+"=").appendI(this.nAxes[0]);r.append(", n"+
this.getConventionalName("Cn")+"=").appendI(k[1][0]);r.append(", n"+this.getConventionalName("Sn")+"=").appendI(k[2][0]);r.append(": ");for(n=JS.PointGroup.maxAxis;2<=--n;)0<this.nAxes[n]&&(k=this.getConventionalName((14>n?"S":"C")+n%14),r.append(" n").append(k),r.append("=").appendI(this.nAxes[n]));r.append(";\n");r.append("print '"+q+"';\n");this.drawInfo=r.toString();JU.Logger.debugging&&JU.Logger.info(this.drawInfo);return this.drawInfo}p=0;c=1;b=0;n=this.haveInversionCenter?this.getConventionalName("Ci"):
"center";this.haveInversionCenter&&(c++,b++);e?null!=this.center&&(this.info.put(n,this.center),this.haveInversionCenter&&this.info.put("center",this.center),this.info.put(n,this.center)):r.append("\n\n").append(q).append("\t").append(n).append("\t").append(JU.Escape.eP(this.center));for(n=JS.PointGroup.maxAxis;0<=--n;)if(0<this.nAxes[n]){p=JS.PointGroup.nUnique[n];h=this.axes[n][0].getLabel(!0);a=this.axes[n][0].getLabel(!1);e?this.info.put("n"+a,Integer.$valueOf(this.nAxes[n])):r.append("\n\n").append(q).append("\tn").append(h).append("\t").appendI(this.nAxes[n]).append("\t").appendI(p);
p*=this.nAxes[n];c+=p;b+=this.nAxes[n];k[this.axes[n][0].type][1]+=p;h=e?new JU.Lst:null;d=e?new JU.Lst:null;for(p=0;p<this.nAxes[n];p++)f=this.axes[n][p],e?(h.addLast(f.normalOrAxis),d.addLast(f.getM3())):r.append("\n").append(q).append("\t").append(a).append("_").appendI(p+1).append("\t").appendO(f.normalOrAxis);e&&(this.info.put(a,h),this.info.put(a+"_m",d))}if(!e)return r.append("\n"),r.append("\n").append(q).append("\ttype\tnElements\tnUnique"),r.append("\n").append(q).append("\t"+this.getConventionalName("E")+
"\t  1\t  1"),p=this.haveInversionCenter?1:0,r.append("\n").append(q).append("\t"+this.getConventionalName("Ci")+"\t  ").appendI(p).append("\t  ").appendI(p),r.append("\n").append(q).append("\t"+this.getConventionalName("Cs")+"\t"),JU.PT.rightJustify(r,"    ",this.nAxes[0]+"\t"),JU.PT.rightJustify(r,"    ",this.nAxes[0]+"\n"),r.append(q).append("\t"+this.getConventionalName("Cn")+"\t"),JU.PT.rightJustify(r,"    ",k[1][0]+"\t"),JU.PT.rightJustify(r,"    ",k[1][1]+"\n"),r.append(q).append("\t"+this.getConventionalName("Sn")+
"\t"),JU.PT.rightJustify(r,"    ",k[2][0]+"\t"),JU.PT.rightJustify(r,"    ",k[2][1]+"\n"),r.append(q).append("\t\tTOTAL\t"),JU.PT.rightJustify(r,"    ",c+"\n"),this.textInfo=r.toString();this.info.put("name",this.name);this.info.put("hmName",this.getHermannMauguinName());this.info.put("nAtoms",Integer.$valueOf(this.nAtoms));this.info.put("nTotal",Integer.$valueOf(c));this.info.put("nElements",Integer.$valueOf(b));this.info.put("nCi",Integer.$valueOf(this.haveInversionCenter?1:0));this.haveInversionCenter&&
this.info.put("Ci_m",JU.M3.newM3(JS.PointGroup.mInv));this.info.put("nCs",Integer.$valueOf(this.nAxes[0]));this.info.put("nCn",Integer.$valueOf(k[1][0]));this.info.put("nSn",Integer.$valueOf(k[2][0]));this.info.put("distanceTolerance",Float.$valueOf(this.distanceTolerance));this.info.put("linearTolerance",Float.$valueOf(this.linearTolerance));this.info.put("points",this.points);this.info.put("detail",r.toString().$replace("\n",";"));null!=this.principalAxis&&0<this.principalAxis.index&&this.info.put("principalAxis",
this.principalAxis.normalOrAxis);null!=this.principalPlane&&0<this.principalPlane.index&&this.info.put("principalPlane",this.principalPlane.normalOrAxis);return this.info},"~N,~S,~B,~S,~N,~N");d(b,"isDrawType",function(a,c,e){return null!=this.drawInfo&&this.drawType.equals(null==a?"":a)&&this.drawIndex==c&&this.scale==e},"~S,~N,~N");b.getHMfromSFName=d(b,"getHMfromSFName",function(a){if(null==JS.PointGroup.htSFToHM){JS.PointGroup.htSFToHM=new java.util.Hashtable;var c=JS.PointGroup.SF2HM;JS.PointGroup.addNames("E",
"1");JS.PointGroup.addNames("Ci","-1");JS.PointGroup.addNames("Cn","n");JS.PointGroup.addNames("Sn","-n");for(var e=0;e<c.length;e++){var b=c[e].$plit(","),d=b[0];if(2==b.length)JS.PointGroup.addNames(d,b[1]);else{for(var f=d.substring(0,1),d=d.substring(2,d.length),h=1;13>h;h++){var j=b[h];0<j.length&&(JS.PointGroup.addNames(f+h+d,j),System.out.println(f+h+d+"\t"+j))}14==b.length&&JS.PointGroup.addNames(f+"\u221e"+d,b[13])}}}c=JS.PointGroup.htSFToHM.get(a);return null==c?a:c},"~S");b.addNames=d(b,
"addNames",function(a,c){JS.PointGroup.htSFToHM.put(a,c);JS.PointGroup.htSFToHM.put(c,a)},"~S,~S");b.$PointGroup$Operation$=function(){var a=ba(function(){xa(this,arguments);this.index=this.order=this.type=0;this.normalOrAxis=null;this.typeOrder=0;this.mat=null;M(this,arguments)},JS.PointGroup,"Operation",null);Z(a,function(){this.index=++this.b$["JS.PointGroup"].nOps;this.type=3;this.typeOrder=this.order=1;JU.Logger.debugging&&JU.Logger.debug("new operation -- "+JS.PointGroup.typeNames[this.type])});
Z(a,function(a,e){this.index=++this.b$["JS.PointGroup"].nOps;this.type=14>e?2:1;this.typeOrder=e;this.order=e%14;this.normalOrAxis=JU.Quat.newVA(a,180).getNormal();JU.Logger.debugging&&JU.Logger.debug("new operation -- "+(this.order==e?"S":"C")+this.order+" "+this.normalOrAxis)},"JU.V3,~N");Z(a,function(a){null!=a&&(this.index=++this.b$["JS.PointGroup"].nOps,this.type=0,this.normalOrAxis=JU.Quat.newVA(a,180).getNormal(),JU.Logger.debugging&&JU.Logger.debug("new operation -- plane "+this.normalOrAxis))},
"JU.V3");d(a,"getLabel",function(a){var e;switch(this.type){case 0:e="Cs";break;case 2:e="S"+this.order;break;default:e="C"+this.order}return a?this.b$["JS.PointGroup"].getConventionalName(e):e},"~B");d(a,"getM3",function(){if(null!=this.mat)return this.mat;var a=JU.M3.newM3(JS.PointGroup.getQuaternion(this.normalOrAxis,this.typeOrder).getMatrix());(0==this.type||2==this.type)&&a.mul(JS.PointGroup.mInv);this.cleanMatrix(a);return this.mat=a});d(a,"cleanMatrix",function(a){for(var e=0;3>e;e++)for(var b=
0;3>b;b++)a.setElement(e,b,this.approx0(a.getElement(e,b)))},"JU.M3");d(a,"approx0",function(a){return 1E-15<a||-1E-15>a?a:0},"~N");q(a,"toString",function(){return this.getLabel(!1)+" "+this.normalOrAxis})};b.axesMaxN=H(-1,[15,0,0,1,3,1,10,0,1,0,6,0,1,0,0,0,15,10,6,6,10,0,1]);b.nUnique=H(-1,[1,0,0,2,2,4,2,0,4,0,4,0,4,0,0,0,1,2,2,4,2,0,4]);b.maxAxis=JS.PointGroup.axesMaxN.length;b.typeNames=P(-1,["plane","proper axis","improper axis","center of inversion"]);b.mInv=JU.M3.newA9(C(-1,[-1,0,0,0,-1,0,
0,0,-1]));b.SF2HM="Cn,1,2,3,4,5,6,7,8,9,10,11,12|Cnv,m,2m,3m,4mm,5m,6mm,7m,8mm,9m,10mm,11m,12mm,\u221em|Sn,,-1,-6,-4,(-10),-3,(-14),-8,(-18),-5,(-22),(-12)|Cnh,m,2/m,-6,4/m,-10,6/m,-14,8/m,-18,10/m,-22,12/m|Dn,,222,32,422,52,622,72,822,92,(10)22,(11)2,(12)22|Dnd,,-42m,-3m,-82m,-5m,(-12)2m,-7m,(-16)2m,-9m,(-20)2m,(-11)m,(-24)2m|Dnh,,mmm,-6m2,4/mmm,(-10)m2,6/mmm,(-14)m2,8/mmm,(-18)m2,10/mmm,(-22)m2,12/mmm,\u221e/mm|Ci,-1|Cs,m|T,23|Th,m-3|Td,-43m|O,432|Oh,m-3m".$plit("\\|");b.htSFToHM=null});X("JS");
fa(["java.util.Hashtable"],"JS.SpaceGroup","java.util.Arrays JU.AU $.Lst $.M4 $.P3 $.PT $.SB JS.HallInfo $.HallTranslation $.SymmetryOperation $.UnitCell JU.Logger".split(" "),function(){var b=ba(function(){this.xyzList=this.allOperations=this.finalOperations=this.operations=null;this.axisChoice=this.uniqueAxis="\x00";this.clegId=this.jmolId=this.itaNumber=null;this.operationCount=0;this.latticeOp=-1;this.isBio=!1;this.latticeType="P";this.itaIndex=this.itaTransform=null;this.index=0;this.derivedIndex=
-1;this.isSSG=!1;this.name="unknown!";this.hallInfo=this.jmolIdExt=this.hmSymbol=this.crystalClass=this.hallSymbolAlt=this.hallSymbol=null;this.modDim=this.latticeParameter=0;this.doNormalize=!0;this.hmSymbolAbbrShort=this.hmSymbolAlternative=this.hmSymbolAbbr=this.hmSymbolExt=this.hmSymbolFull=this.nHallOperators=this.info=null;this.ambiguityType="\x00";this.displayName=this.strName=null;M(this,arguments)},JS,"SpaceGroup",null,Cloneable);Z(b,function(a,c,e){++JS.SpaceGroup.sgIndex;0>a&&(a=JS.SpaceGroup.sgIndex);
this.index=a;this.init(e&&null==c);e&&null!=c&&this.buildSelf(c)},"~N,~S,~B");d(b,"setFrom",function(a,c){c?(this.setName(a.itaNumber.equals("0")?this.clegId:"HM:"+a.hmSymbolFull+" #"+a.clegId),this.derivedIndex=-2):(this.setName(a.getName()),this.derivedIndex=a.index);this.clegId=a.clegId;this.itaIndex=a.itaIndex;this.crystalClass=a.crystalClass;this.hallSymbol=a.hallSymbol;this.hmSymbol=a.hmSymbol;this.hmSymbolAbbr=a.hmSymbolAbbr;this.hmSymbolAbbrShort=a.hmSymbolAbbrShort;this.hmSymbolAlternative=
a.hmSymbolAlternative;this.hmSymbolExt=a.hmSymbolExt;this.hmSymbolFull=a.hmSymbolFull;this.itaNumber=a.itaNumber;this.itaTransform=a.itaTransform;this.jmolIdExt=this.jmolId=null;this.latticeType=a.latticeType;this.strName=this.displayName=null;return this},"JS.SpaceGroup,~B");b.getNull=d(b,"getNull",function(a,c,e){a=new JS.SpaceGroup(-1,null,a);a.doNormalize=c;e&&a.setFinalOperations();return a},"~B,~B,~B");d(b,"init",function(a){this.xyzList=new java.util.Hashtable;this.operationCount=0;a&&this.addSymmetry("x,y,z",
0,!1)},"~B");b.createSpaceGroup=d(b,"createSpaceGroup",function(a,c,e,b){var d=null;0<=a?d=JS.SpaceGroup.SG[a]:(d=U(e,"JU.Lst")?JS.SpaceGroup.createSGFromList(c,e):JS.SpaceGroup.determineSpaceGroupNA(c,e),null==d&&(d=JS.SpaceGroup.createSpaceGroupN(0>=b?c:"x1,x2,x3,x4,x5,x6,x7,x8,x9".substring(0,3*b+8))));null!=d&&d.generateAllOperators(null);return d},"~N,~S,~O,~N");d(b,"cloneInfoTo",function(a){try{var c=this.clone();c.operations=a.operations;c.finalOperations=a.finalOperations;c.xyzList=a.xyzList;
return c}catch(e){if(da(e,"CloneNotSupportedException"))return null;throw e;}},"JS.SpaceGroup");d(b,"getItaIndex",function(){return null!=this.itaIndex&&!"--".equals(this.itaIndex)?this.itaIndex:!"0".equals(this.itaNumber)?this.itaNumber:!"--".equals(this.hallSymbol)?"["+this.hallSymbol+"]":"?"});d(b,"getIndex",function(){return 0<=this.derivedIndex?this.derivedIndex:this.index});b.createSGFromList=d(b,"createSGFromList",function(a,c){var e=new JS.SpaceGroup(-1,"0;--;--;0;--;--;--",!0);e.doNormalize=
!1;e.setName(a);for(var b=c.size(),d=0;d<b;d++){var f=c.get(d);if(U(f,"JS.SymmetryOperation")){var h=e.addOp(f,f.xyz,!1);e.operations[h].setTimeReversal(f.timeReversal)}else e.addSymmetrySM("xyz matrix:"+f,f)}b=e.getDerivedSpaceGroup();null!=b&&(e=b);return e},"~S,JU.Lst");d(b,"addSymmetry",function(a,c,e){a=a.toLowerCase();return 0>a.indexOf("[[")&&0>a.indexOf("x4")&&0>a.indexOf(";")&&(0>a.indexOf("x")||0>a.indexOf("y")||0>a.indexOf("z"))?-1:this.addOperation(a,c,e)},"~S,~N,~B");d(b,"setFinalOperations",
function(){this.setFinalOperationsForAtoms(3,null,0,0,!1)});d(b,"setFinalOperationsForAtoms",function(a,c,e,b,d){if(null==this.hallInfo&&0!=this.latticeParameter){var f=new JS.HallInfo(JS.HallTranslation.getHallLatticeEquivalent(this.latticeParameter));this.generateAllOperators(f)}this.finalOperations=null;this.isBio=0<=this.name.indexOf("bio");!this.isBio&&(this.index>=JS.SpaceGroup.SG.length&&0>this.name.indexOf("SSG:")&&0>this.name.indexOf("[subsystem"))&&(f=this.getDerivedSpaceGroup(),null!=f&&
f!==this&&this.setFrom(f,!1));0==this.operationCount&&this.addOperation("x,y,z",1,!1);this.finalOperations=Array(this.operationCount);var f=null,h=d&&0<b&&null!=c;if(h){f=this.finalOperations[0]=new JS.SymmetryOperation(this.operations[0],0,!0);null==f.sigma&&JS.SymmetryOperation.normalizeOperationToCentroid(a,f,c,e,b);var j=c[e],l=JU.P3.newP(j);f.rotTrans(l);if(1E-4<l.distance(j))for(var k=0;k<b;k++)j=c[e+k],l.setT(j),f.rotTrans(l),j.setT(l);d||(f=null)}for(k=0;k<this.operationCount;k++){if(0<k||
null==f)f=this.finalOperations[k]=new JS.SymmetryOperation(this.operations[k],0,d);h&&null==f.sigma&&JS.SymmetryOperation.normalizeOperationToCentroid(a,f,c,e,b);f.getCentering()}},"~N,~A,~N,~N,~B");d(b,"getOperationCount",function(){null==this.finalOperations&&this.setFinalOperations();return this.finalOperations.length});d(b,"getOperation",function(a){return this.finalOperations[a]},"~N");d(b,"getAdditionalOperationsCount",function(){null==this.finalOperations&&this.setFinalOperations();null==this.allOperations&&
(this.allOperations=JS.SymmetryOperation.getAdditionalOperations(this.finalOperations));return this.allOperations.length-this.getOperationCount()});d(b,"getAdditionalOperations",function(){this.getAdditionalOperationsCount();return this.allOperations});d(b,"getAllOperation",function(a){return this.allOperations[a]},"~N");d(b,"getXyz",function(a,c){return null==this.finalOperations?this.operations[a].getXyz(c):this.finalOperations[a].getXyz(c)},"~N,~B");b.findSpaceGroupFromXYZ=d(b,"findSpaceGroupFromXYZ",
function(a){var c=new JS.SpaceGroup(-1,"0;--;--;0;--;--;--",!0);c.doNormalize=!1;a=a.$plit(";");for(var e=0,b=a.length;e<b;e++){var d=new JS.SymmetryOperation(null,e,!1);d.setMatrixFromXYZ(a[e],0,!1);c.addOp(d,a[e],!1)}return JS.SpaceGroup.findSpaceGroup(c.operationCount,c.getCanonicalSeitzList())},"~S");b.getInfo=d(b,"getInfo",function(a,c,e,b,d){try{if(null!=a&&a.index>=JS.SpaceGroup.SG.length){var f=JS.SpaceGroup.findSpaceGroup(a.operationCount,a.getCanonicalSeitzList());null!=f&&(a=f)}if(null!=
e){if(null==a){0<=c.indexOf("[")&&(c=c.substring(0,c.indexOf("[")).trim());if(c.equals("unspecified!"))return"no space group identified in file";a=JS.SpaceGroup.determineSpaceGroupNA(c,e)}}else{if(c.equalsIgnoreCase("ALL"))return JS.SpaceGroup.dumpAll(b);if(c.equalsIgnoreCase("MAP"))return JS.SpaceGroup.dumpAll(!0);if(c.equalsIgnoreCase("ALLSEITZ"))return JS.SpaceGroup.dumpAllSeitz();a=JS.SpaceGroup.determineSpaceGroupN(c)}if(null==a){var h=JS.SpaceGroup.createSpaceGroupN(c);null!=h&&(h=JS.SpaceGroup.findSpaceGroup(h.operationCount,
h.getCanonicalSeitzList()));null!=h&&(a=h)}if(null!=a){if(b)return a.dumpInfoObj();for(var j=new JU.SB;null!=a;){j.append(a.dumpInfo());if(a.index>=JS.SpaceGroup.SG.length||!d)break;a=JS.SpaceGroup.determineSpaceGroupNS(c,a)}return j.toString()}return b?null:"?"}catch(l){if(da(l,Exception))return"?";throw l;}},"JS.SpaceGroup,~S,~A,~B,~B");d(b,"dumpInfo",function(){var a=this.dumpCanonicalSeitzList();if(U(a,"JS.SpaceGroup"))return a.dumpInfo();a=(new JU.SB).append("\nHermann-Mauguin symbol: ");null==
this.hmSymbol||null==this.hmSymbolExt?a.append("?"):a.append(this.hmSymbol).append(0<this.hmSymbolExt.length?":"+this.hmSymbolExt:"");null!=this.itaNumber&&a.append("\ninternational table number: ").append(this.itaNumber).append(null!=this.itaTransform?":"+this.itaTransform:"").append("\ncrystal class: "+this.crystalClass);null!=this.jmolId&&a.append("\nJmol_ID: ").append(this.jmolId).append(" ("+this.itaIndex+")");a.append("\n\n").append(null==this.hallInfo?"Hall symbol unknown":JU.Logger.debugging?
this.hallInfo.dumpInfo():"");a.append("\n\n").appendI(this.operationCount).append(" operators").append(null!=this.hallInfo&&!this.hallInfo.hallSymbol.equals("--")?" from Hall symbol "+this.hallInfo.hallSymbol+"  #"+this.jmolId:"").append(": ");for(var c=0;c<this.operationCount;c++)a.append("\n").append(this.operations[c].xyz);return a.toString()});d(b,"dumpInfoObj",function(){var a=this.dumpCanonicalSeitzList();if(U(a,"JS.SpaceGroup"))return a.dumpInfoObj();a=new java.util.Hashtable;null!=this.itaNumber&&
!this.itaNumber.equals("0")&&(a.put("HermannMauguinSymbol",null==this.hmSymbol||null==this.hmSymbolExt?"?":this.hmSymbol+(0<this.hmSymbolExt.length?":"+this.hmSymbolExt:"")),a.put("ita",Integer.$valueOf(JU.PT.parseInt(this.itaNumber))),a.put("itaIndex",null==this.itaIndex?"n/a":this.itaIndex),a.put("clegId",null==this.itaIndex?"n/a":this.clegId),null!=this.jmolId&&a.put("jmolId",this.jmolId),a.put("crystalClass",this.crystalClass),a.put("operationCount",Integer.$valueOf(this.operationCount)));for(var c=
new JU.Lst,e=0;e<this.operationCount;e++)c.addLast(this.operations[e].xyz);a.put("operationsXYZ",c);null!=this.hallInfo&&null!=this.hallInfo.hallSymbol&&a.put("HallSymbol",this.hallInfo.hallSymbol);null!=this.hallSymbolAlt&&a.put("HallSymbolAlt",this.hallSymbolAlt);return a});d(b,"getName",function(){return this.name});d(b,"getLatticeDesignation",function(){return JS.HallTranslation.getLatticeDesignation(this.latticeParameter)});d(b,"setLatticeParam",function(a){this.latticeParameter=a;10<a&&(this.latticeParameter=
-JS.HallTranslation.getLatticeIndex(JS.HallTranslation.getLatticeCode(a)))},"~N");d(b,"dumpCanonicalSeitzList",function(){null!=this.nHallOperators&&(this.hallInfo=new JS.HallInfo(this.hallSymbol),this.generateAllOperators(null));var a=this.getCanonicalSeitzList();if(this.index>=JS.SpaceGroup.SG.length){var c=JS.SpaceGroup.findSpaceGroup(this.operationCount,a);if(null!=c)return c.getCanonicalSeitzList()}return(0<=this.index&&this.index<JS.SpaceGroup.SG.length?this.hallSymbol+" = ":"")+a});d(b,"getDerivedSpaceGroup",
function(){if(-2==this.derivedIndex||0<=this.index&&this.index<JS.SpaceGroup.SG.length||0<this.modDim||null==this.operations||0==this.operations.length||0!=this.operations[0].timeReversal)return this;null!=this.finalOperations&&this.setFinalOperations();var a=this.getCanonicalSeitzList();return null==a?null:JS.SpaceGroup.findSpaceGroup(this.operationCount,a)});d(b,"getCanonicalSeitzList",function(){return JS.SpaceGroup.getCanonicalSeitzForOperations(this.operations,this.operationCount)});b.getCanonicalSeitzForOperations=
d(b,"getCanonicalSeitzForOperations",function(a,c){for(var e=Array(c),b=0;b<c;b++)e[b]=JS.SymmetryOperation.dumpSeitz(a[b],!0);java.util.Arrays.sort(e,0,c);for(var d=(new JU.SB).append("\n["),b=0;b<c;b++)d.append(e[b].$replace("\t"," ").$replace("\n"," ")).append("; ");d.append("]");return d.toString()},"~A,~N");b.findSpaceGroup=d(b,"findSpaceGroup",function(a,c){var e=JS.SpaceGroup.htByOpCount.get(Integer.$valueOf(a));if(null!=e)for(var b=0,d=e.size();b<d;b++){var f=e.get(b);if(0<=JS.SpaceGroup.getCanonicalSeitz(f.index).indexOf(c))return JS.SpaceGroup.SG[f.index]}return null},
"~N,~S");b.dumpAll=d(b,"dumpAll",function(a){if(a){var c=new JU.Lst;for(a=0;a<JS.SpaceGroup.SG.length;a++)c.addLast(JS.SpaceGroup.SG[a].dumpInfoObj());return c}c=new JU.SB;for(a=0;a<JS.SpaceGroup.SG.length;a++)c.append("\n----------------------\n"+JS.SpaceGroup.SG[a].dumpInfo());return c.toString()},"~B");b.dumpAllSeitz=d(b,"dumpAllSeitz",function(){for(var a=new JU.SB,c=0;c<JS.SpaceGroup.SG.length;c++)a.append("\n").appendO(JS.SpaceGroup.getCanonicalSeitz(c));return a.toString()});b.getCanonicalSeitz=
d(b,"getCanonicalSeitz",function(a){null==JS.SpaceGroup.canonicalSeitzList&&(JS.SpaceGroup.canonicalSeitzList=Array(JS.SpaceGroup.SG.length));var c=JS.SpaceGroup.canonicalSeitzList[a];return null==c?JS.SpaceGroup.canonicalSeitzList[a]=JS.SpaceGroup.SG[a].dumpCanonicalSeitzList().toString():c},"~N");d(b,"setLattice",function(a,c){this.latticeParameter=JS.HallTranslation.getLatticeIndex(a);c||(this.latticeParameter=-this.latticeParameter)},"~S,~B");b.createSpaceGroupN=d(b,"createSpaceGroupN",function(a){a=
a.trim();var c=JS.SpaceGroup.determineSpaceGroupN(a),e;null==c&&(e=new JS.HallInfo(a),0<e.nRotations?(c=new JS.SpaceGroup(-1,"0;--;--;0;--;--;"+a,!0),c.hallInfo=e,c.hallSymbol=e.hallSymbol,c.setName("["+c.hallSymbol+"]"),c.jmolId=null):0<=a.indexOf(",")&&(c=new JS.SpaceGroup(-1,"0;--;--;0;--;--;--",!0),c.doNormalize=!1,c.generateOperatorsFromXyzInfo(a)));null!=c&&c.generateAllOperators(null);return c},"~S");d(b,"addOperation",function(a,c,e){if(null==a||3>a.length)return this.init(!1),-1;a=JU.PT.rep(a,
" ","");var b="="==a.charAt(0);b&&(a=a.substring(1));var d=this.checkXYZlist(a);if(0<=d)return d;if(a.startsWith("x1,x2,x3,x4")&&0==this.modDim)this.xyzList.clear(),this.operationCount=0,this.modDim=JU.PT.parseInt(a.substring(a.lastIndexOf("x")+1))-3;else if(0<=a.indexOf("m")&&(a=JU.PT.rep(a,"+m","m"),a.equals("x,y,z,m")||a.equals("x,y,z(mx,my,mz)")))this.xyzList.clear(),this.operationCount=0;c=new JS.SymmetryOperation(null,c,this.doNormalize);if(!c.setMatrixFromXYZ(a,this.modDim,e))return JU.Logger.error("couldn't interpret symmetry operation: "+
a),-1;"!"==a.charAt(0)&&(a=a.substring(a.lastIndexOf("!")+1));return this.addOp(c,a,b)},"~S,~N,~B");d(b,"checkXYZlist",function(a){return this.xyzList.containsKey(a)?this.xyzList.get(a).intValue():-1},"~S");d(b,"addOp",function(a,c,e){var b=a.xyz;if(!e){e=this.checkXYZlist(b);if(0<=e)return e;0>this.latticeOp&&(e=JU.PT.replaceAllCharacters(0<this.modDim?JS.SymmetryOperation.replaceXn(b,this.modDim+3):b,"+123/",""),this.xyzList.containsKey(e+"!")?this.latticeOp=this.operationCount:this.xyzList.put(e+
"!",Integer.$valueOf(this.operationCount)));this.xyzList.put(b,Integer.$valueOf(this.operationCount))}b.equals(c)||this.xyzList.put(c,Integer.$valueOf(this.operationCount));null==this.operations&&(this.operations=Array(4));this.operationCount==this.operations.length&&(this.operations=JU.AU.arrayCopyObject(this.operations,2*this.operationCount));this.operations[this.operationCount++]=a;a.number=this.operationCount;0!=a.timeReversal&&(this.operations[0].timeReversal=1);JU.Logger.debugging&&JU.Logger.debug("\naddOperation "+
this.operationCount+a.dumpInfo());return this.operationCount-1},"JS.SymmetryOperation,~S,~B");d(b,"generateOperatorsFromXyzInfo",function(a){this.init(!0);a=JU.PT.split(a.toLowerCase(),";");for(var c=0;c<a.length;c++)this.addSymmetry(a[c],0,!1)},"~S");d(b,"generateAllOperators",function(a){if(null==a){if(0<this.operationCount)return;if(this.hallSymbol.endsWith("?")){this.checkHallOperators();return}a=this.hallInfo;this.operations=Array(4);if(null==this.hallInfo||0==this.hallInfo.nRotations)a=this.hallInfo=
new JS.HallInfo(this.hallSymbol);this.setLattice(this.hallInfo.latticeCode,this.hallInfo.isCentrosymmetric);this.init(!0)}switch(a.latticeCode.charCodeAt(0)){case 0:case 83:case 84:case 80:this.latticeType="P";break;default:this.latticeType=a.latticeCode}for(var c=new JU.M4,e=new JU.M4,b=Array(7),d=0;7>d;d++)b[d]=new JU.M4;for(d=0;d<a.nRotations;d++){var f=a.rotationTerms[d];c.setM4(f.seitzMatrix12ths);f=f.order;b[0].setIdentity();for(var h=this.operationCount,j=1;j<=f;j++){var l=b[j];l.mul2(c,b[0]);
b[0].setM4(l);for(var k=0;k<h;k++){e.mul2(l,this.operations[k]);e.m03=(w(e.m03)+12)%12;e.m13=(w(e.m13)+12)%12;e.m23=(w(e.m23)+12)%12;var n=JS.SymmetryOperation.getXYZFromMatrix(e,!0,!0,!1);0<=this.checkXYZlist(n)||this.addSymmetrySM("!nohalf!"+n,e)}}}null==this.hmSymbol&&(this.hmSymbol="--");this.hmSymbol.equals("--")&&(this.hallSymbol=a.hallSymbol,this.nHallOperators=Integer.$valueOf(this.operationCount));null!=this.nHallOperators&&this.operationCount!=this.nHallOperators.intValue()&&JU.Logger.error("Operator mismatch "+
this.operationCount+" for "+this)},"JS.HallInfo");d(b,"addSymmetrySM",function(a,c){var e=this.addOperation(a,0,!1);0<=e&&this.operations[e].setM4(c);return e},"~S,JU.M4");b.determineSpaceGroupN=d(b,"determineSpaceGroupN",function(a){return JS.SpaceGroup.determineSpaceGroup(a,0,0,0,0,0,0,-1)},"~S");b.determineSpaceGroupNS=d(b,"determineSpaceGroupNS",function(a,c){return JS.SpaceGroup.determineSpaceGroup(a,0,0,0,0,0,0,c.index)},"~S,JS.SpaceGroup");b.determineSpaceGroupNA=d(b,"determineSpaceGroupNA",
function(a,c){return null==c?JS.SpaceGroup.determineSpaceGroup(a,0,0,0,0,0,0,-1):JS.SpaceGroup.determineSpaceGroup(a,c[0],c[1],c[2],c[3],c[4],c[5],-1)},"~S,~A");b.determineSpaceGroup=d(b,"determineSpaceGroup",function(a,c,e,b,d,f,h,j){a=JS.SpaceGroup.determineSpaceGroupIndex(a,c,e,b,d,f,h,j);return 0<=a?JS.SpaceGroup.SG[a]:null},"~S,~N,~N,~N,~N,~N,~N,~N");b.isXYZList=d(b,"isXYZList",function(a){return null!=a&&0<=a.indexOf(",")&&0>a.indexOf("(")&&0>a.indexOf(":")},"~S");b.determineSpaceGroupIndex=
d(b,"determineSpaceGroupIndex",function(a,c,e,b,d,f,h,j){if(JS.SpaceGroup.isXYZList(a))return-1;0>j&&(j=JS.SpaceGroup.SG.length);a=a.trim().toLowerCase();a.startsWith("bilbao:")&&(a=a.substring(7));var l=a.indexOf("hall:");0<l&&(a=a.substring(l));var k=a.startsWith("ita/")?4:a.startsWith("hall:")?5:a.startsWith("hm:")?3:0;switch(k){case 3:case 5:case 4:a=a.substring(k);break;case 0:a.contains("[")?(k=5,a=a.substring(0,a.indexOf("[")).trim()):0<a.indexOf(".")&&(k=4)}var l=a,n,p=!1;4!=k&&(a=a.$replace("_",
" "),2<=a.length&&(n=0==a.indexOf("-")?2:1,n<a.length&&" "!=a.charAt(n)&&(a=a.substring(0,n)+" "+a.substring(n)),a=JS.SpaceGroup.toCap(a,2)));var r="";if(0<(n=a.indexOf(":")))r=a.substring(n+1),a=a.substring(0,n).trim(),p=0<r.length;4!=k&&(5!=k&&!p&&JU.PT.isOneOf(a,JS.SpaceGroup.ambiguousHMNames))&&(r="?",p=!0);var q=JU.PT.replaceAllCharacters(a," ()",""),s;switch(k){case 4:if(p)for(n=0;n<j;n++){if(l.equalsIgnoreCase(JS.SpaceGroup.SG[n].itaIndex))return n}else for(n=0;n<j;n++)if(a.equalsIgnoreCase(JS.SpaceGroup.SG[n].itaIndex))return n;
break;case 5:for(n=0;n<j;n++)if(JS.SpaceGroup.SG[n].hallSymbol.equalsIgnoreCase(a))return n;break;default:case 3:if(3!=k)for(n=0;n<j;n++)if(JS.SpaceGroup.SG[n].jmolId.equalsIgnoreCase(l))return n;for(n=0;n<j;n++)if(JS.SpaceGroup.SG[n].hmSymbolFull.equalsIgnoreCase(l))return n;for(n=0;n<j;n++)if(null!=(s=JS.SpaceGroup.SG[n]).hmSymbolAlternative&&s.hmSymbolAlternative.equalsIgnoreCase(l))return n;if(p){for(n=0;n<j;n++)if((s=JS.SpaceGroup.SG[n]).hmSymbolAbbr.equalsIgnoreCase(q)&&s.jmolIdExt.equalsIgnoreCase(r))return n;
for(n=0;n<j;n++)if((s=JS.SpaceGroup.SG[n]).hmSymbolAbbrShort.equalsIgnoreCase(q)&&s.jmolIdExt.equalsIgnoreCase(r))return n}a=JS.SpaceGroup.determineUniqueAxis(c,e,b,d,f,h);if(!p||"?"==r.charAt(0))for(n=0;n<j;n++)if((s=JS.SpaceGroup.SG[n]).hmSymbolAbbr.equalsIgnoreCase(q)||s.hmSymbolAbbrShort.equalsIgnoreCase(q)||s.itaNumber.equals(q))switch(s.ambiguityType.charCodeAt(0)){case 0:return n;case 97:if(s.uniqueAxis==a||"\x00"==a)return n;break;case 111:if(0==r.length){if(s.hmSymbolExt.equals("2"))return n}else if(s.hmSymbolExt.equalsIgnoreCase(r))return n;
break;case 116:if(0==r.length){if("h"==s.axisChoice)return n}else if((s.axisChoice+"").equalsIgnoreCase(r))return n}}if(0==r.length)for(n=0;n<j;n++)if(JS.SpaceGroup.SG[n].itaNumber.equals(l))return n;return-1},"~S,~N,~N,~N,~N,~N,~N,~N");d(b,"setJmolCode",function(a){this.jmolId=a;a=JU.PT.split(a,":");this.itaNumber=a[0];this.jmolIdExt=1==a.length?"":a[1];this.ambiguityType="\x00";0<this.jmolIdExt.length&&(a=this.jmolIdExt.charAt(0),this.jmolIdExt.equals("h")||this.jmolIdExt.equals("r")?(this.ambiguityType=
"t",this.axisChoice=this.jmolIdExt.charAt(0)):"1"==a||"2"==a?this.ambiguityType="o":2>=this.jmolIdExt.length||3==this.jmolIdExt.length&&"-"==a?(this.ambiguityType="a",this.uniqueAxis=this.jmolIdExt.charAt("-"==a?1:0)):this.jmolIdExt.contains("-")&&(this.ambiguityType="-"))},"~S");b.determineUniqueAxis=d(b,"determineUniqueAxis",function(a,c,e,b,d,f){return a==c?c==e?"\x00":"c":c==e?"a":e==a?"b":b==d?d==f?"\x00":"c":d==f?"a":f==b?"b":"\x00"},"~N,~N,~N,~N,~N,~N");d(b,"buildSelf",function(a){a=JU.PT.split(a.toLowerCase(),
";");this.jmolId=a[0].trim();this.setJmolCode(this.jmolId);var c=this.jmolId.endsWith("*");c&&(this.jmolId=this.jmolId.substring(0,this.jmolId.length-1));this.itaIndex=a[1].$replace("|",";");var e=a[2];this.itaTransform=0==e.length||e.equals("--")?"a,b,c":JU.PT.rep(e,"ab","a-b,a+b,c").$replace("|",";");this.clegId=this.itaNumber+":"+this.itaTransform;0<a[3].length&&(this.nHallOperators=Integer.$valueOf(a[3]),e=JS.SpaceGroup.htByOpCount.get(this.nHallOperators),null==e&&JS.SpaceGroup.htByOpCount.put(this.nHallOperators,
e=new JU.Lst),e.addLast(this));this.crystalClass=JS.SpaceGroup.toCap(JU.PT.split(a[4],"^")[0],1);e=a[5];e.endsWith("*")&&(e=e.substring(0,e.length-1));this.setHMSymbol(e);"xyz".equals(a[6])?(a=this.hmSymbol,this.hallSymbol=""+this.latticeType+"?"):(this.hallSymbol=a[6],1<this.hallSymbol.length&&(this.hallSymbol=JS.SpaceGroup.toCap(this.hallSymbol,2)),c&&(this.hallSymbolAlt=this.hallSymbol,this.hallSymbol=JS.SpaceGroup.lastHallSymbol),a=this.itaNumber+this.hallSymbol,"0"!=this.itaNumber.charAt(0)&&
a.equals(JS.SpaceGroup.lastInfo)&&(JS.SpaceGroup.ambiguousHMNames+=this.hmSymbol+";"));JS.SpaceGroup.lastHallSymbol=this.hallSymbol;JS.SpaceGroup.lastInfo=a;this.name="HM:"+this.hmSymbolFull+" "+(null==this.hallSymbol||"?"===this.hallSymbol?"["+this.hallSymbol+"]":"")+" #"+this.itaIndex},"~S");d(b,"setHMSymbol",function(a){var c=a.indexOf("#");0<=c&&(a=a.substring(0,c).trim());this.hmSymbolFull=JS.SpaceGroup.toCap(a,1);this.latticeType=this.hmSymbolFull.charAt(0);a=JU.PT.split(this.hmSymbolFull,":");
this.hmSymbol=a[0];this.hmSymbolExt=1==a.length?"":a[1];c=this.hmSymbol.indexOf(" -3");1<=c&&0<="admn".indexOf(this.hmSymbol.charAt(c-1))&&(this.hmSymbolAlternative=(this.hmSymbol.substring(0,c)+" 3"+this.hmSymbol.substring(c+3)).toLowerCase());this.hmSymbolAbbr=JU.PT.rep(this.hmSymbol," ","");this.hmSymbolAbbrShort=3<this.hmSymbol.length?JU.PT.rep(this.hmSymbol," 1",""):this.hmSymbolAbbr;this.hmSymbolAbbrShort=JU.PT.rep(this.hmSymbolAbbrShort," ","")},"~S");b.toCap=d(b,"toCap",function(a,c){return a.substring(0,
c).toUpperCase()+a.substring(c)},"~S,~N");d(b,"toString",function(){return this.asString()});d(b,"asString",function(){return null==this.strName?this.strName=null==this.jmolId||this.jmolId.equals("0")?this.name:this.jmolId+" HM:"+this.hmSymbolFull+" #"+this.clegId:this.strName});d(b,"getDisplayName",function(){if(null==this.displayName){var a=null;null==this.jmolId||"--".equals(this.hallSymbol)?(a="",null!=this.hmSymbolFull&&!"--".equals(this.hmSymbol)&&(a=this.hmSymbolFull+" #")):this.jmolId.equals("0")||
(a=this.hmSymbolFull+" #");a=null==a?"["+this.hallSymbol+"]":a+this.clegId;a.endsWith("2/3a+1/3b+1/3c,-1/3a+1/3b+1/3c,-1/3a-2/3b+1/3c")&&(a=JU.PT.rep(a,"2/3a+1/3b+1/3c,-1/3a+1/3b+1/3c,-1/3a-2/3b+1/3c","r"));0<=a.indexOf("-- [--]")&&(a="");a.endsWith(":a,b,c")&&(a=a.substring(0,a.length-6));this.displayName=a}return this.displayName});b.getSpaceGroups=d(b,"getSpaceGroups",function(){if(null==JS.SpaceGroup.SG){var a=JS.SpaceGroup.STR_SG.length;JS.SpaceGroup.nameToGroup=new java.util.Hashtable;for(var c=
Array(a),e=0;e<a;e++)c[e]=new JS.SpaceGroup(e,JS.SpaceGroup.STR_SG[e],!0),JS.SpaceGroup.nameToGroup.put(c[e].jmolId,c[e]);System.out.println("SpaceGroup - "+JS.SpaceGroup.nSG+" settings generated");JS.SpaceGroup.STR_SG=null;JS.SpaceGroup.SG=c}return JS.SpaceGroup.SG});d(b,"addLatticeVectors",function(a){if(0<=this.latticeOp||0==a.size())return!1;for(var c=this.latticeOp=this.operationCount,e=a.get(0).length==this.modDim+4,b=-2,d=0;d<a.size();d++){var f=a.get(d);e&&(b=w(f[this.modDim+3]),f=JU.AU.arrayCopyF(f,
this.modDim+3));if(f.length>this.modDim+3)return!1;for(var h=0;h<c;h++){var j=new JS.SymmetryOperation(null,0,!0);j.modDim=this.modDim;var l=this.operations[h];j.divisor=l.divisor;j.linearRotTrans=JU.AU.arrayCopyF(l.linearRotTrans,-1);j.setFromMatrix(f,!1);-2!=b&&j.setTimeReversal(l.timeReversal*b);j.xyzOriginal=j.xyz;this.addOp(j,j.xyz,!0)}}return!0},"JU.Lst");d(b,"getSiteMultiplicity",function(a,c){for(var e=this.finalOperations.length,b=new JU.Lst,d=e;0<=--d;){var f=JU.P3.newP(a);this.finalOperations[d].rotTrans(f);
c.unitize(f);for(var h=b.size();0<=--h;){var j=b.get(h);if(1.96E-6>f.distanceSquared(j)){f=null;break}}null!=f&&b.addLast(f)}return S(e/b.size())},"JU.P3,JS.UnitCell");d(b,"setName",function(a){this.name=a;null!=a&&a.startsWith("HM:")&&this.setHMSymbol(a.substring(3));this.strName=this.displayName=null},"~S");d(b,"getNameType",function(a,c){var e=null,e=a.equals("HM")?this.hmSymbol:a.equals("ITA")?this.itaNumber:a.equals("Hall")?this.hallSymbol:"?";if(null!=e)return e;null==this.info&&(this.info=
JS.SpaceGroup.getInfo(this,this.hmSymbol,c.getUnitCellParams(),!0,!1));if("string"==typeof this.info)return null;e=this.info.get(a.equals("Hall")?"HallSymbol":a.equals("ITA")?"ita":"HermannMauguinSymbol");return null==e?null:e.toString()},"~S,J.api.SymmetryInterface");b.getSpaceGroupFromJmolClegOrITA=d(b,"getSpaceGroupFromJmolClegOrITA",function(a){var c=JS.SpaceGroup.SG.length;if(0<=a.indexOf(":"))if(0<=a.indexOf(","))for(var e=0;e<c;e++){if(a.equals(JS.SpaceGroup.SG[e].clegId))return JS.SpaceGroup.SG[e]}else for(e=
0;e<c;e++){if(a.equals(JS.SpaceGroup.SG[e].jmolId))return JS.SpaceGroup.SG[e]}else if(0<=a.indexOf("."))for(e=0;e<c;e++){if(a.equals(JS.SpaceGroup.SG[e].itaIndex))return JS.SpaceGroup.SG[e]}else for(e=0;e<c;e++)if(a.equals(JS.SpaceGroup.SG[e].itaNumber))return JS.SpaceGroup.SG[e];return null},"~S");d(b,"checkHallOperators",function(){null!=this.nHallOperators&&this.nHallOperators.intValue()!=this.operationCount&&(null==this.hallInfo||0<this.hallInfo.nRotations?this.generateAllOperators(this.hallInfo):
(this.init(!1),this.doNormalize=!1,JS.SpaceGroup.transformSpaceGroup(this,JS.SpaceGroup.getSpaceGroupFromJmolClegOrITA(this.itaNumber),null,this.itaTransform,null),this.hallInfo=null))});d(b,"getOpsCtr",function(a){var c=JS.SpaceGroup.getNull(!0,!0,!1);JS.SpaceGroup.transformSpaceGroup(c,this,null,"!"+a,null);c.setFinalOperations();var e=JS.SpaceGroup.getNull(!0,!1,!1);JS.SpaceGroup.transformSpaceGroup(e,c,null,a,null);e.setFinalOperations();return e.finalOperations},"~S");b.getSpaceGroupFromIndex=
d(b,"getSpaceGroupFromIndex",function(a){return null!=JS.SpaceGroup.SG&&0<=a&&a<JS.SpaceGroup.SG.length?JS.SpaceGroup.SG[a]:null},"~N");d(b,"setITATableNames",function(a,c,e,b){this.itaNumber=c;this.itaIndex=null!=b?c+":"+b:0<=e.indexOf(".")?e:c+"."+e;this.itaTransform=b;this.clegId=c+":"+b;this.strName=null;this.jmolId=a;null==a?(this.name=this.clegId,this.info=this.dumpInfoObj()):this.setJmolCode(a)},"~S,~S,~S,~S");b.transformCoords=d(b,"transformCoords",function(a,c,e,b,d,f){null==f&&(f=new JU.Lst);
for(var h=0,j=a.size();h<j;h++){var l=JS.SymmetryOperation.transformStr(a.get(h),null,c,b,d,null,e,!0,!0);f.contains(l)||f.addLast(l)}return f},"JU.Lst,JU.M4,JU.P3,JU.M4,~A,JU.Lst");b.getTransformRange=d(b,"getTransformRange",function(a){for(var c=C(2,3,0),e=C(4,0),b=0;3>b;b++){a.getRow(b,e);for(var d=0;3>d;d++){var f=e[d];0>f?c[0][b]+=-e[d]:0<f&&(c[1][b]+=e[d])}}a=!0;for(e=b=0;2>b;b++,e++)for(d=0;3>d;d++)f=S(Math.ceil(c[b][d])),f>e&&(a=!1),c[b][d]=0==b?-f:f;return a?null:c},"JU.M4");b.getTransformedCentering=
d(b,"getTransformedCentering",function(a,c){var e=JU.M4.newM4(a);e.invert();var b=c.size(),d=new JU.P3,f=JS.SpaceGroup.getTransformRange(a);if(null!=f){for(var h=w(f[0][0]);h<f[1][0];h++)for(var j=w(f[0][1]);j<=f[1][1];j++)for(var l=w(f[0][2]);l<=f[1][2];l++)if(d.set(h,j,l),e.rotTrans(d),0!=d.length()%1){d.x%=1;d.y%=1;d.z%=1;var k=JS.SymmetryOperation.norm3(d);!k.equals("0,0,0")&&!c.contains(k)&&c.addLast(k)}f=c.size();if(0<f){j=Array(f);c.toArray(j);java.util.Arrays.sort(j);c.clear();for(h=0;h<f;h++)c.addLast(j[h])}}for(h=
b;0<=--h;)JS.SymmetryOperation.toPoint(c.get(h),d),e.rotTrans(d),0==d.x%1&&(0==d.y%1&&0==d.z%1)&&c.remove(h);return e},"JU.M4,JU.Lst");b.fillMoreData=d(b,"fillMoreData",function(a,c,e,b){var d=c.indexOf(":"),d=0>d?"a,b,c":c.substring(d+1),f=JS.UnitCell.toTrm(d,null),h=b.get("gp"),j=b.get("wpos"),l=j.get("cent");b=new JU.Lst;null!=l&&b.addAll(l);for(var k=b.size(),n=JS.SpaceGroup.getTransformedCentering(f,b),l=b.size(),p=j.get("pos"),j=new JU.Lst,r=new JU.M4,q=C(16,0),s=(l+1)/(k+1),k=0,t=p.size();k<
t;k++){var pa=p.get(k),v=new java.util.Hashtable;v.putAll(pa);var u=pa.get("coord");null!=u&&(u=JS.SpaceGroup.transformCoords(u,n,null,r,q,null),v.put("coord",u));pa=pa.get("mult").intValue();v.put("mult",Integer.$valueOf(w(pa*s)));j.addLast(v)}p=new JU.Lst;JS.SpaceGroup.transformCoords(h,n,null,r,q,p);if(0<l)for(k=0;k<l;k++)v=new JU.P3,JS.SpaceGroup.transformCoords(h,n,JS.SymmetryOperation.toPoint(b.get(k),v),r,q,p);null==a?(a=new java.util.Hashtable,a.put("sg",Integer.$valueOf(e)),a.put("trm",d),
a.put("clegId",e+":"+d),a.put("det",Float.$valueOf(f.determinant3()))):a.remove("more");e=new java.util.Hashtable;0<l&&e.put("cent",b);e.put("pos",j);a.put("wpos",e);e.put("gp",p);p=new JU.Lst;c=JS.SpaceGroup.getSpaceGroupFromJmolClegOrITA(c);c=JS.SpaceGroup.transformSpaceGroup(null,c,h,d,new JU.M4);k=0;for(t=c.getOperationCount();k<t;k++)p.addLast(c.getOperation(k).xyz);a.put("gp",p);return a},"java.util.Map,~S,~N,java.util.Map");b.transformSpaceGroup=d(b,"transformSpaceGroup",function(a,c,e,b,d){if(null==
e){c.setFinalOperations();e=new JU.Lst;for(var f=0,h=c.getOperationCount();f<h;f++)e.addLast(c.getXyz(f,!1))}e=JS.SpaceGroup.addTransformXYZList(a,e,b,d,null==a||a.doNormalize);if(null==a)return JS.SpaceGroup.createITASpaceGroup(e,c);null==b?a.setFrom(c,!0):a.setITATableNames(a.jmolId,a.itaNumber,"1",b);return a},"JS.SpaceGroup,JS.SpaceGroup,JU.Lst,~S,JU.M4");b.createITASpaceGroup=d(b,"createITASpaceGroup",function(a,c){var e=new JS.SpaceGroup(-1,"0;--;--;0;--;--;--",!0);e.doNormalize=!1;for(var b=
0,d=a.size();b<d;b++){var f=new JS.SymmetryOperation(null,b,!1),h=a.get(b);f.setMatrixFromXYZ(h,0,!1);e.addOp(f,h,!1)}null!=c&&e.setFrom(c,!0);return e},"JU.Lst,JS.SpaceGroup");b.addTransformXYZList=d(b,"addTransformXYZList",function(a,c,e,b,d){var f=null,h=null,j=null,l=null,k=c.size();null!=e&&(e.equals("r")&&(e="2/3a+1/3b+1/3c,-1/3a+1/3b+1/3c,-1/3a-2/3b+1/3c"),b=JS.UnitCell.toTrm(e,b),f=JU.M4.newM4(b),f.invert(),h=Math.round(b.determinant3()),1<h&&(l=JS.SpaceGroup.getTransformRange(b),k*=h),j=
C(16,0),h=new JU.M4);e=JS.SpaceGroup.addTransformedOperations(a,c,b,f,h,j,null==a?new JU.Lst:null,null,d);if(null!=l)for(var n=new JU.P3,p=w(l[0][2]);p<=l[1][2];p++)for(var r=w(l[0][1]);r<=l[1][1];r++)for(var q=w(l[0][0]);q<l[1][0];q++)if(!(0==q&&0==r&&0==p)&&(n.set(q,r,p),null!=JS.SpaceGroup.addTransformedOperations(a,c,b,f,h,j,e,n,d)&&e.size()==k))return e;return null==a?e:null},"JS.SpaceGroup,JU.Lst,~S,JU.M4,~B");b.addTransformedOperations=d(b,"addTransformedOperations",function(a,c,e,b,d,f,h,
j,l){null!=a&&(a.latticeOp=0);for(var k=0,n=c.size();k<n;k++){var p=c.get(k);if(null!=e&&(0<k||null!=j))p=JS.SymmetryOperation.transformStr(p,e,b,d,f,j,null,l,!1);null!=a?a.addOperation(p,0,!1):h.contains(p)||h.addLast(p)}return h},"JS.SpaceGroup,JU.Lst,JU.M4,JU.M4,JU.M4,~A,JU.Lst,JU.P3,~B");b.canonicalSeitzList=null;b.sgIndex=-1;b.lastInfo=null;b.ambiguousHMNames="";b.lastHallSymbol="";b.SG=null;b.htByOpCount=new java.util.Hashtable;b.nameToGroup=null;b.nSG=0;b.STR_SG=P(-1,'1;1.1;;1;c1^1;p 1;p 1{2;2.1;;2;ci^1;p -1;-p 1{3:b;3.1;;2;c2^1;p 1 2 1;p 2y{3:b;3.1;;2;c2^1;p 2;p 2y{3:c;3.2;c,a,b;2;c2^1;p 1 1 2;p 2{3:a;3.3;b,c,a;2;c2^1;p 2 1 1;p 2x{4:b;4.1;;2;c2^2;p 1 21 1;p 2yb{4:b;4.1;;2;c2^2;p 21;p 2yb{4:b*;4.1;;2;c2^2;p 1 21 1*;p 2y1{4:c;4.2;c,a,b;2;c2^2;p 1 1 21;p 2c{4:c*;4.2;c,a,b;2;c2^2;p 1 1 21*;p 21{4:a;4.3;b,c,a;2;c2^2;p 21 1 1;p 2xa{4:a*;4.3;b,c,a;2;c2^2;p 21 1 1*;p 2x1{5:b1;5.1;;4;c2^3;c 1 2 1;c 2y{5:b1;5.1;;4;c2^3;c 2;c 2y{5:b2;5.2;-a-c,b,a;4;c2^3;a 1 2 1;a 2y{5:b3;5.3;c,b,-a-c;4;c2^3;i 1 2 1;i 2y{5:c1;5.4;c,a,b;4;c2^3;a 1 1 2;a 2{5:c2;5.5;a,-a-c,b;4;c2^3;b 1 1 2;b 2{5:c3;5.6;-a-c,c,b;4;c2^3;i 1 1 2;i 2{5:a1;5.7;b,c,a;4;c2^3;b 2 1 1;b 2x{5:a2;5.8;b,a,-a-c;4;c2^3;c 2 1 1;c 2x{5:a3;5.9;b,-a-c,c;4;c2^3;i 2 1 1;i 2x{6:b;6.1;;2;cs^1;p 1 m 1;p -2y{6:b;6.1;;2;cs^1;p m;p -2y{6:c;6.2;c,a,b;2;cs^1;p 1 1 m;p -2{6:a;6.3;b,c,a;2;cs^1;p m 1 1;p -2x{7:b1;7.1;;2;cs^2;p 1 c 1;p -2yc{7:b1;7.1;;2;cs^2;p c;p -2yc{7:b2;7.2;-a-c,b,a;2;cs^2;p 1 n 1;p -2yac{7:b2;7.2;-a-c,b,a;2;cs^2;p n;p -2yac{7:b3;7.3;c,b,-a-c;2;cs^2;p 1 a 1;p -2ya{7:b3;7.3;c,b,-a-c;2;cs^2;p a;p -2ya{7:c1;7.4;c,a,b;2;cs^2;p 1 1 a;p -2a{7:c2;7.5;a,-a-c,b;2;cs^2;p 1 1 n;p -2ab{7:c3;7.6;-a-c,c,b;2;cs^2;p 1 1 b;p -2b{7:a1;7.7;b,c,a;2;cs^2;p b 1 1;p -2xb{7:a2;7.8;b,a,-a-c;2;cs^2;p n 1 1;p -2xbc{7:a3;7.9;b,-a-c,c;2;cs^2;p c 1 1;p -2xc{8:b1;8.1;;4;cs^3;c 1 m 1;c -2y{8:b1;8.1;;4;cs^3;c m;c -2y{8:b2;8.2;-a-c,b,a;4;cs^3;a 1 m 1;a -2y{8:b3;8.3;c,b,-a-c;4;cs^3;i 1 m 1;i -2y{8:b3;8.3;c,b,-a-c;4;cs^3;i m;i -2y{8:c1;8.4;c,a,b;4;cs^3;a 1 1 m;a -2{8:c2;8.5;a,-a-c,b;4;cs^3;b 1 1 m;b -2{8:c3;8.6;-a-c,c,b;4;cs^3;i 1 1 m;i -2{8:a1;8.7;b,c,a;4;cs^3;b m 1 1;b -2x{8:a2;8.8;b,a,-a-c;4;cs^3;c m 1 1;c -2x{8:a3;8.9;b,-a-c,c;4;cs^3;i m 1 1;i -2x{9:b1;9.1;;4;cs^4;c 1 c 1;c -2yc{9:b1;9.1;;4;cs^4;c c;c -2yc{9:b2;9.2;-a-c,b,a;4;cs^4;a 1 n 1;a -2yab{9:b3;9.3;c,b,-a-c;4;cs^4;i 1 a 1;i -2ya{9:-b1;9.4;c,-b,a;4;cs^4;a 1 a 1;a -2ya{9:-b2;9.5;a,-b,-a-c;4;cs^4;c 1 n 1;c -2yac{9:-b3;9.6;-a-c,-b,c;4;cs^4;i 1 c 1;i -2yc{9:c1;9.7;c,a,b;4;cs^4;a 1 1 a;a -2a{9:c2;9.8;a,-a-c,b;4;cs^4;b 1 1 n;b -2ab{9:c3;9.9;-a-c,c,b;4;cs^4;i 1 1 b;i -2b{9:-c1;9.10;a,c,-b;4;cs^4;b 1 1 b;b -2b{9:-c2;9.11;-a-c,a,-b;4;cs^4;a 1 1 n;a -2ab{9:-c3;9.12;c,-a-c,-b;4;cs^4;i 1 1 a;i -2a{9:a1;9.13;b,c,a;4;cs^4;b b 1 1;b -2xb{9:a2;9.14;b,a,-a-c;4;cs^4;c n 1 1;c -2xac{9:a3;9.15;b,-a-c,c;4;cs^4;i c 1 1;i -2xc{9:-a1;9.16;-b,a,c;4;cs^4;c c 1 1;c -2xc{9:-a2;9.17;-b,-a-c,a;4;cs^4;b n 1 1;b -2xab{9:-a3;9.18;-b,c,-a-c;4;cs^4;i b 1 1;i -2xb{10:b;10.1;;4;c2h^1;p 1 2/m 1;-p 2y{10:b;10.1;;4;c2h^1;p 2/m;-p 2y{10:c;10.2;c,a,b;4;c2h^1;p 1 1 2/m;-p 2{10:a;10.3;b,c,a;4;c2h^1;p 2/m 1 1;-p 2x{11:b;11.1;;4;c2h^2;p 1 21/m 1;-p 2yb{11:b;11.1;;4;c2h^2;p 21/m;-p 2yb{11:b*;11.1;;4;c2h^2;p 1 21/m 1*;-p 2y1{11:c;11.2;c,a,b;4;c2h^2;p 1 1 21/m;-p 2c{11:c*;11.2;c,a,b;4;c2h^2;p 1 1 21/m*;-p 21{11:a;11.3;b,c,a;4;c2h^2;p 21/m 1 1;-p 2xa{11:a*;11.3;b,c,a;4;c2h^2;p 21/m 1 1*;-p 2x1{12:b1;12.1;;8;c2h^3;c 1 2/m 1;-c 2y{12:b1;12.1;;8;c2h^3;c 2/m;-c 2y{12:b2;12.2;-a-c,b,a;8;c2h^3;a 1 2/m 1;-a 2y{12:b3;12.3;c,b,-a-c;8;c2h^3;i 1 2/m 1;-i 2y{12:b3;12.3;c,b,-a-c;8;c2h^3;i 2/m;-i 2y{12:c1;12.4;c,a,b;8;c2h^3;a 1 1 2/m;-a 2{12:c2;12.5;a,-a-c,b;8;c2h^3;b 1 1 2/m;-b 2{12:c3;12.6;-a-c,c,b;8;c2h^3;i 1 1 2/m;-i 2{12:a1;12.7;b,c,a;8;c2h^3;b 2/m 1 1;-b 2x{12:a2;12.8;b,a,-a-c;8;c2h^3;c 2/m 1 1;-c 2x{12:a3;12.9;b,-a-c,c;8;c2h^3;i 2/m 1 1;-i 2x{13:b1;13.1;;4;c2h^4;p 1 2/c 1;-p 2yc{13:b1;13.1;;4;c2h^4;p 2/c;-p 2yc{13:b2;13.2;-a-c,b,a;4;c2h^4;p 1 2/n 1;-p 2yac{13:b2;13.2;-a-c,b,a;4;c2h^4;p 2/n;-p 2yac{13:b3;13.3;c,b,-a-c;4;c2h^4;p 1 2/a 1;-p 2ya{13:b3;13.3;c,b,-a-c;4;c2h^4;p 2/a;-p 2ya{13:c1;13.4;c,a,b;4;c2h^4;p 1 1 2/a;-p 2a{13:c2;13.5;a,-a-c,b;4;c2h^4;p 1 1 2/n;-p 2ab{13:c3;13.6;-a-c,c,b;4;c2h^4;p 1 1 2/b;-p 2b{13:a1;13.7;b,c,a;4;c2h^4;p 2/b 1 1;-p 2xb{13:a2;13.8;b,a,-a-c;4;c2h^4;p 2/n 1 1;-p 2xbc{13:a3;13.9;b,-a-c,c;4;c2h^4;p 2/c 1 1;-p 2xc{14:b1;14.1;;4;c2h^5;p 1 21/c 1;-p 2ybc{14:b1;14.1;;4;c2h^5;p 21/c;-p 2ybc{14:b2;14.2;-a-c,b,a;4;c2h^5;p 1 21/n 1;-p 2yn{14:b2;14.2;-a-c,b,a;4;c2h^5;p 21/n;-p 2yn{14:b3;14.3;c,b,-a-c;4;c2h^5;p 1 21/a 1;-p 2yab{14:b3;14.3;c,b,-a-c;4;c2h^5;p 21/a;-p 2yab{14:c1;14.4;c,a,b;4;c2h^5;p 1 1 21/a;-p 2ac{14:c2;14.5;a,-a-c,b;4;c2h^5;p 1 1 21/n;-p 2n{14:c3;14.6;-a-c,c,b;4;c2h^5;p 1 1 21/b;-p 2bc{14:a1;14.7;b,c,a;4;c2h^5;p 21/b 1 1;-p 2xab{14:a2;14.8;b,a,-a-c;4;c2h^5;p 21/n 1 1;-p 2xn{14:a3;14.9;b,-a-c,c;4;c2h^5;p 21/c 1 1;-p 2xac{15:b1;15.1;;8;c2h^6;c 1 2/c 1;-c 2yc{15:b1;15.1;;8;c2h^6;c 2/c;-c 2yc{15:b2;15.2;-a-c,b,a;8;c2h^6;a 1 2/n 1;-a 2yab{15:b3;15.3;c,b,-a-c;8;c2h^6;i 1 2/a 1;-i 2ya{15:b3;15.3;c,b,-a-c;8;c2h^6;i 2/a;-i 2ya{15:-b1;15.4;c,-b,a;8;c2h^6;a 1 2/a 1;-a 2ya{15:-b2;15.5;a,-b,-a-c;8;c2h^6;c 1 2/n 1;-c 2yac{15:-b2;15.5;a,-b,-a-c;8;c2h^6;c 2/n;-c 2yac{15:-b3;15.6;-a-c,-b,c;8;c2h^6;i 1 2/c 1;-i 2yc{15:-b3;15.6;-a-c,-b,c;8;c2h^6;i 2/c;-i 2yc{15:c1;15.7;c,a,b;8;c2h^6;a 1 1 2/a;-a 2a{15:c2;15.8;a,-a-c,b;8;c2h^6;b 1 1 2/n;-b 2ab{15:c3;15.9;-a-c,c,b;8;c2h^6;i 1 1 2/b;-i 2b{15:-c1;15.10;a,c,-b;8;c2h^6;b 1 1 2/b;-b 2b{15:-c2;15.11;-a-c,a,-b;8;c2h^6;a 1 1 2/n;-a 2ab{15:-c3;15.12;c,-a-c,-b;8;c2h^6;i 1 1 2/a;-i 2a{15:a1;15.13;b,c,a;8;c2h^6;b 2/b 1 1;-b 2xb{15:a2;15.14;b,a,-a-c;8;c2h^6;c 2/n 1 1;-c 2xac{15:a3;15.15;b,-a-c,c;8;c2h^6;i 2/c 1 1;-i 2xc{15:-a1;15.16;-b,a,c;8;c2h^6;c 2/c 1 1;-c 2xc{15:-a2;15.17;-b,-a-c,a;8;c2h^6;b 2/n 1 1;-b 2xab{15:-a3;15.18;-b,c,-a-c;8;c2h^6;i 2/b 1 1;-i 2xb{16;16.1;;4;d2^1;p 2 2 2;p 2 2{17;17.1;;4;d2^2;p 2 2 21;p 2c 2{17*;17.1;;4;d2^2;p 2 2 21*;p 21 2{17:cab;17.2;c,a,b;4;d2^2;p 21 2 2;p 2a 2a{17:bca;17.3;b,c,a;4;d2^2;p 2 21 2;p 2 2b{18;18.1;;4;d2^3;p 21 21 2;p 2 2ab{18:cab;18.2;c,a,b;4;d2^3;p 2 21 21;p 2bc 2{18:bca;18.3;b,c,a;4;d2^3;p 21 2 21;p 2ac 2ac{19;19.1;;4;d2^4;p 21 21 21;p 2ac 2ab{20;20.1;;8;d2^5;c 2 2 21;c 2c 2{20*;20.1;;8;d2^5;c 2 2 21*;c 21 2{20:cab;20.2;c,a,b;8;d2^5;a 21 2 2;a 2a 2a{20:cab*;20.2;c,a,b;8;d2^5;a 21 2 2*;a 2a 21{20:bca;20.3;b,c,a;8;d2^5;b 2 21 2;b 2 2b{21;21.1;;8;d2^6;c 2 2 2;c 2 2{21:cab;21.2;c,a,b;8;d2^6;a 2 2 2;a 2 2{21:bca;21.3;b,c,a;8;d2^6;b 2 2 2;b 2 2{22;22.1;;16;d2^7;f 2 2 2;f 2 2{23;23.1;;8;d2^8;i 2 2 2;i 2 2{24;24.1;;8;d2^9;i 21 21 21;i 2b 2c{25;25.1;;4;c2v^1;p m m 2;p 2 -2{25:cab;25.2;c,a,b;4;c2v^1;p 2 m m;p -2 2{25:bca;25.3;b,c,a;4;c2v^1;p m 2 m;p -2 -2{26;26.1;;4;c2v^2;p m c 21;p 2c -2{26*;26.1;;4;c2v^2;p m c 21*;p 21 -2{26:ba-c;26.2;b,a,-c;4;c2v^2;p c m 21;p 2c -2c{26:ba-c*;26.2;b,a,-c;4;c2v^2;p c m 21*;p 21 -2c{26:cab;26.3;c,a,b;4;c2v^2;p 21 m a;p -2a 2a{26:-cba;26.4;-c,b,a;4;c2v^2;p 21 a m;p -2 2a{26:bca;26.5;b,c,a;4;c2v^2;p b 21 m;p -2 -2b{26:a-cb;26.6;a,-c,b;4;c2v^2;p m 21 b;p -2b -2{27;27.1;;4;c2v^3;p c c 2;p 2 -2c{27:cab;27.2;c,a,b;4;c2v^3;p 2 a a;p -2a 2{27:bca;27.3;b,c,a;4;c2v^3;p b 2 b;p -2b -2b{28;28.1;;4;c2v^4;p m a 2;p 2 -2a{28*;28.1;;4;c2v^4;p m a 2*;p 2 -21{28:ba-c;28.2;b,a,-c;4;c2v^4;p b m 2;p 2 -2b{28:cab;28.3;c,a,b;4;c2v^4;p 2 m b;p -2b 2{28:-cba;28.4;-c,b,a;4;c2v^4;p 2 c m;p -2c 2{28:-cba*;28.4;-c,b,a;4;c2v^4;p 2 c m*;p -21 2{28:bca;28.5;b,c,a;4;c2v^4;p c 2 m;p -2c -2c{28:a-cb;28.6;a,-c,b;4;c2v^4;p m 2 a;p -2a -2a{29;29.1;;4;c2v^5;p c a 21;p 2c -2ac{29:ba-c;29.2;b,a,-c;4;c2v^5;p b c 21;p 2c -2b{29:cab;29.3;c,a,b;4;c2v^5;p 21 a b;p -2b 2a{29:-cba;29.4;-c,b,a;4;c2v^5;p 21 c a;p -2ac 2a{29:bca;29.5;b,c,a;4;c2v^5;p c 21 b;p -2bc -2c{29:a-cb;29.6;a,-c,b;4;c2v^5;p b 21 a;p -2a -2ab{30;30.1;;4;c2v^6;p n c 2;p 2 -2bc{30:ba-c;30.2;b,a,-c;4;c2v^6;p c n 2;p 2 -2ac{30:cab;30.3;c,a,b;4;c2v^6;p 2 n a;p -2ac 2{30:-cba;30.4;-c,b,a;4;c2v^6;p 2 a n;p -2ab 2{30:bca;30.5;b,c,a;4;c2v^6;p b 2 n;p -2ab -2ab{30:a-cb;30.6;a,-c,b;4;c2v^6;p n 2 b;p -2bc -2bc{31;31.1;;4;c2v^7;p m n 21;p 2ac -2{31:ba-c;31.2;b,a,-c;4;c2v^7;p n m 21;p 2bc -2bc{31:cab;31.3;c,a,b;4;c2v^7;p 21 m n;p -2ab 2ab{31:-cba;31.4;-c,b,a;4;c2v^7;p 21 n m;p -2 2ac{31:bca;31.5;b,c,a;4;c2v^7;p n 21 m;p -2 -2bc{31:a-cb;31.6;a,-c,b;4;c2v^7;p m 21 n;p -2ab -2{32;32.1;;4;c2v^8;p b a 2;p 2 -2ab{32:cab;32.2;c,a,b;4;c2v^8;p 2 c b;p -2bc 2{32:bca;32.3;b,c,a;4;c2v^8;p c 2 a;p -2ac -2ac{33;33.1;;4;c2v^9;p n a 21;p 2c -2n{33*;33.1;;4;c2v^9;p n a 21*;p 21 -2n{33:ba-c;33.2;b,a,-c;4;c2v^9;p b n 21;p 2c -2ab{33:ba-c*;33.2;b,a,-c;4;c2v^9;p b n 21*;p 21 -2ab{33:cab;33.3;c,a,b;4;c2v^9;p 21 n b;p -2bc 2a{33:cab*;33.3;c,a,b;4;c2v^9;p 21 n b*;p -2bc 21{33:-cba;33.4;-c,b,a;4;c2v^9;p 21 c n;p -2n 2a{33:-cba*;33.4;-c,b,a;4;c2v^9;p 21 c n*;p -2n 21{33:bca;33.5;b,c,a;4;c2v^9;p c 21 n;p -2n -2ac{33:a-cb;33.6;a,-c,b;4;c2v^9;p n 21 a;p -2ac -2n{34;34.1;;4;c2v^10;p n n 2;p 2 -2n{34:cab;34.2;c,a,b;4;c2v^10;p 2 n n;p -2n 2{34:bca;34.3;b,c,a;4;c2v^10;p n 2 n;p -2n -2n{35;35.1;;8;c2v^11;c m m 2;c 2 -2{35:cab;35.2;c,a,b;8;c2v^11;a 2 m m;a -2 2{35:bca;35.3;b,c,a;8;c2v^11;b m 2 m;b -2 -2{36;36.1;;8;c2v^12;c m c 21;c 2c -2{36*;36.1;;8;c2v^12;c m c 21*;c 21 -2{36:ba-c;36.2;b,a,-c;8;c2v^12;c c m 21;c 2c -2c{36:ba-c*;36.2;b,a,-c;8;c2v^12;c c m 21*;c 21 -2c{36:cab;36.3;c,a,b;8;c2v^12;a 21 m a;a -2a 2a{36:cab*;36.3;c,a,b;8;c2v^12;a 21 m a*;a -2a 21{36:-cba;36.4;-c,b,a;8;c2v^12;a 21 a m;a -2 2a{36:-cba*;36.4;-c,b,a;8;c2v^12;a 21 a m*;a -2 21{36:bca;36.5;b,c,a;8;c2v^12;b b 21 m;b -2 -2b{36:a-cb;36.6;a,-c,b;8;c2v^12;b m 21 b;b -2b -2{37;37.1;;8;c2v^13;c c c 2;c 2 -2c{37:cab;37.2;c,a,b;8;c2v^13;a 2 a a;a -2a 2{37:bca;37.3;b,c,a;8;c2v^13;b b 2 b;b -2b -2b{38;38.1;;8;c2v^14;a m m 2;a 2 -2{38:ba-c;38.2;b,a,-c;8;c2v^14;b m m 2;b 2 -2{38:cab;38.3;c,a,b;8;c2v^14;b 2 m m;b -2 2{38:-cba;38.4;-c,b,a;8;c2v^14;c 2 m m;c -2 2{38:bca;38.5;b,c,a;8;c2v^14;c m 2 m;c -2 -2{38:a-cb;38.6;a,-c,b;8;c2v^14;a m 2 m;a -2 -2{39;39.1;;8;c2v^15;a e m 2;a 2 -2b{39;39.1;;8;c2v^15;a b m 2;a 2 -2b{39:ba-c;39.2;b,a,-c;8;c2v^15;b m e 2;b 2 -2a{39:ba-c;39.2;b,a,-c;8;c2v^15;b m a 2;b 2 -2a{39:cab;39.3;c,a,b;8;c2v^15;b 2 e m;b -2a 2{39:cab;39.3;c,a,b;8;c2v^15;b 2 c m;b -2a 2{39:-cba;39.4;-c,b,a;8;c2v^15;c 2 m e;c -2a 2{39:-cba;39.4;-c,b,a;8;c2v^15;c 2 m b;c -2a 2{39:bca;39.5;b,c,a;8;c2v^15;c m 2 e;c -2a -2a{39:bca;39.5;b,c,a;8;c2v^15;c m 2 a;c -2a -2a{39:a-cb;39.6;a,-c,b;8;c2v^15;a e 2 m;a -2b -2b{39:a-cb;39.6;a,-c,b;8;c2v^15;a c 2 m;a -2b -2b{40;40.1;;8;c2v^16;a m a 2;a 2 -2a{40:ba-c;40.2;b,a,-c;8;c2v^16;b b m 2;b 2 -2b{40:cab;40.3;c,a,b;8;c2v^16;b 2 m b;b -2b 2{40:-cba;40.4;-c,b,a;8;c2v^16;c 2 c m;c -2c 2{40:bca;40.5;b,c,a;8;c2v^16;c c 2 m;c -2c -2c{40:a-cb;40.6;a,-c,b;8;c2v^16;a m 2 a;a -2a -2a{41;41.1;;8;c2v^17;a e a 2;a 2 -2ab{41;41.1;;8;c2v^17;a b a 2;a 2 -2ab{41:ba-c;41.2;b,a,-c;8;c2v^17;b b e 2;b 2 -2ab{41:ba-c;41.2;b,a,-c;8;c2v^17;b b a 2;b 2 -2ab{41:cab;41.3;c,a,b;8;c2v^17;b 2 e b;b -2ab 2{41:cab;41.3;c,a,b;8;c2v^17;b 2 c b;b -2ab 2{41:-cba;41.4;-c,b,a;8;c2v^17;c 2 c e;c -2ac 2{41:-cba;41.4;-c,b,a;8;c2v^17;c 2 c b;c -2ac 2{41:bca;41.5;b,c,a;8;c2v^17;c c 2 e;c -2ac -2ac{41:bca;41.5;b,c,a;8;c2v^17;c c 2 a;c -2ac -2ac{41:a-cb;41.6;a,-c,b;8;c2v^17;a e 2 a;a -2ab -2ab{41:a-cb;41.6;a,-c,b;8;c2v^17;a c 2 a;a -2ab -2ab{42;42.1;;16;c2v^18;f m m 2;f 2 -2{42:cab;42.2;c,a,b;16;c2v^18;f 2 m m;f -2 2{42:bca;42.3;b,c,a;16;c2v^18;f m 2 m;f -2 -2{43;43.1;;16;c2v^19;f d d 2;f 2 -2d{43:cab;43.2;c,a,b;16;c2v^19;f 2 d d;f -2d 2{43:bca;43.3;b,c,a;16;c2v^19;f d 2 d;f -2d -2d{44;44.1;;8;c2v^20;i m m 2;i 2 -2{44:cab;44.2;c,a,b;8;c2v^20;i 2 m m;i -2 2{44:bca;44.3;b,c,a;8;c2v^20;i m 2 m;i -2 -2{45;45.1;;8;c2v^21;i b a 2;i 2 -2c{45:cab;45.2;c,a,b;8;c2v^21;i 2 c b;i -2a 2{45:bca;45.3;b,c,a;8;c2v^21;i c 2 a;i -2b -2b{46;46.1;;8;c2v^22;i m a 2;i 2 -2a{46:ba-c;46.2;b,a,-c;8;c2v^22;i b m 2;i 2 -2b{46:cab;46.3;c,a,b;8;c2v^22;i 2 m b;i -2b 2{46:-cba;46.4;-c,b,a;8;c2v^22;i 2 c m;i -2c 2{46:bca;46.5;b,c,a;8;c2v^22;i c 2 m;i -2c -2c{46:a-cb;46.6;a,-c,b;8;c2v^22;i m 2 a;i -2a -2a{47;47.1;;8;d2h^1;p m m m;-p 2 2{48:2;48.1;;8;d2h^2;p n n n :2;-p 2ab 2bc{48:1;48.2;a,b,c|1/4,1/4,1/4;8;d2h^2;p n n n :1;p 2 2 -1n{49;49.1;;8;d2h^3;p c c m;-p 2 2c{49:cab;49.2;c,a,b;8;d2h^3;p m a a;-p 2a 2{49:bca;49.3;b,c,a;8;d2h^3;p b m b;-p 2b 2b{50:2;50.1;;8;d2h^4;p b a n :2;-p 2ab 2b{50:2cab;50.2;c,a,b;8;d2h^4;p n c b :2;-p 2b 2bc{50:2bca;50.3;b,c,a;8;d2h^4;p c n a :2;-p 2a 2c{50:1;50.4;a,b,c|1/4,1/4,0;8;d2h^4;p b a n :1;p 2 2 -1ab{50:1cab;50.5;c,a,b|1/4,1/4,0;8;d2h^4;p n c b :1;p 2 2 -1bc{50:1bca;50.6;b,c,a|1/4,1/4,0;8;d2h^4;p c n a :1;p 2 2 -1ac{51;51.1;;8;d2h^5;p m m a;-p 2a 2a{51:ba-c;51.2;b,a,-c;8;d2h^5;p m m b;-p 2b 2{51:cab;51.3;c,a,b;8;d2h^5;p b m m;-p 2 2b{51:-cba;51.4;-c,b,a;8;d2h^5;p c m m;-p 2c 2c{51:bca;51.5;b,c,a;8;d2h^5;p m c m;-p 2c 2{51:a-cb;51.6;a,-c,b;8;d2h^5;p m a m;-p 2 2a{52;52.1;;8;d2h^6;p n n a;-p 2a 2bc{52:ba-c;52.2;b,a,-c;8;d2h^6;p n n b;-p 2b 2n{52:cab;52.3;c,a,b;8;d2h^6;p b n n;-p 2n 2b{52:-cba;52.4;-c,b,a;8;d2h^6;p c n n;-p 2ab 2c{52:bca;52.5;b,c,a;8;d2h^6;p n c n;-p 2ab 2n{52:a-cb;52.6;a,-c,b;8;d2h^6;p n a n;-p 2n 2bc{53;53.1;;8;d2h^7;p m n a;-p 2ac 2{53:ba-c;53.2;b,a,-c;8;d2h^7;p n m b;-p 2bc 2bc{53:cab;53.3;c,a,b;8;d2h^7;p b m n;-p 2ab 2ab{53:-cba;53.4;-c,b,a;8;d2h^7;p c n m;-p 2 2ac{53:bca;53.5;b,c,a;8;d2h^7;p n c m;-p 2 2bc{53:a-cb;53.6;a,-c,b;8;d2h^7;p m a n;-p 2ab 2{54;54.1;;8;d2h^8;p c c a;-p 2a 2ac{54:ba-c;54.2;b,a,-c;8;d2h^8;p c c b;-p 2b 2c{54:cab;54.3;c,a,b;8;d2h^8;p b a a;-p 2a 2b{54:-cba;54.4;-c,b,a;8;d2h^8;p c a a;-p 2ac 2c{54:bca;54.5;b,c,a;8;d2h^8;p b c b;-p 2bc 2b{54:a-cb;54.6;a,-c,b;8;d2h^8;p b a b;-p 2b 2ab{55;55.1;;8;d2h^9;p b a m;-p 2 2ab{55:cab;55.2;c,a,b;8;d2h^9;p m c b;-p 2bc 2{55:bca;55.3;b,c,a;8;d2h^9;p c m a;-p 2ac 2ac{56;56.1;;8;d2h^10;p c c n;-p 2ab 2ac{56:cab;56.2;c,a,b;8;d2h^10;p n a a;-p 2ac 2bc{56:bca;56.3;b,c,a;8;d2h^10;p b n b;-p 2bc 2ab{57;57.1;;8;d2h^11;p b c m;-p 2c 2b{57:ba-c;57.2;b,a,-c;8;d2h^11;p c a m;-p 2c 2ac{57:cab;57.3;c,a,b;8;d2h^11;p m c a;-p 2ac 2a{57:-cba;57.4;-c,b,a;8;d2h^11;p m a b;-p 2b 2a{57:bca;57.5;b,c,a;8;d2h^11;p b m a;-p 2a 2ab{57:a-cb;57.6;a,-c,b;8;d2h^11;p c m b;-p 2bc 2c{58;58.1;;8;d2h^12;p n n m;-p 2 2n{58:cab;58.2;c,a,b;8;d2h^12;p m n n;-p 2n 2{58:bca;58.3;b,c,a;8;d2h^12;p n m n;-p 2n 2n{59:2;59.1;;8;d2h^13;p m m n :2;-p 2ab 2a{59:2cab;59.2;c,a,b;8;d2h^13;p n m m :2;-p 2c 2bc{59:2bca;59.3;b,c,a;8;d2h^13;p m n m :2;-p 2c 2a{59:1;59.4;a,b,c|1/4,1/4,0;8;d2h^13;p m m n :1;p 2 2ab -1ab{59:1cab;59.5;c,a,b|1/4,1/4,0;8;d2h^13;p n m m :1;p 2bc 2 -1bc{59:1bca;59.6;b,c,a|1/4,1/4,0;8;d2h^13;p m n m :1;p 2ac 2ac -1ac{60;60.1;;8;d2h^14;p b c n;-p 2n 2ab{60:ba-c;60.2;b,a,-c;8;d2h^14;p c a n;-p 2n 2c{60:cab;60.3;c,a,b;8;d2h^14;p n c a;-p 2a 2n{60:-cba;60.4;-c,b,a;8;d2h^14;p n a b;-p 2bc 2n{60:bca;60.5;b,c,a;8;d2h^14;p b n a;-p 2ac 2b{60:a-cb;60.6;a,-c,b;8;d2h^14;p c n b;-p 2b 2ac{61;61.1;;8;d2h^15;p b c a;-p 2ac 2ab{61:ba-c;61.2;b,a,-c;8;d2h^15;p c a b;-p 2bc 2ac{62;62.1;;8;d2h^16;p n m a;-p 2ac 2n{62:ba-c;62.2;b,a,-c;8;d2h^16;p m n b;-p 2bc 2a{62:cab;62.3;c,a,b;8;d2h^16;p b n m;-p 2c 2ab{62:-cba;62.4;-c,b,a;8;d2h^16;p c m n;-p 2n 2ac{62:bca;62.5;b,c,a;8;d2h^16;p m c n;-p 2n 2a{62:a-cb;62.6;a,-c,b;8;d2h^16;p n a m;-p 2c 2n{63;63.1;;16;d2h^17;c m c m;-c 2c 2{63:ba-c;63.2;b,a,-c;16;d2h^17;c c m m;-c 2c 2c{63:cab;63.3;c,a,b;16;d2h^17;a m m a;-a 2a 2a{63:-cba;63.4;-c,b,a;16;d2h^17;a m a m;-a 2 2a{63:bca;63.5;b,c,a;16;d2h^17;b b m m;-b 2 2b{63:a-cb;63.6;a,-c,b;16;d2h^17;b m m b;-b 2b 2{64;64.1;;16;d2h^18;c m c e;-c 2ac 2{64;64.1;;16;d2h^18;c m c a;-c 2ac 2{64:ba-c;64.2;b,a,-c;16;d2h^18;c c m e;-c 2ac 2ac{64:ba-c;64.2;b,a,-c;16;d2h^18;c c m b;-c 2ac 2ac{64:cab;64.3;c,a,b;16;d2h^18;a e m a;-a 2ab 2ab{64:cab;64.3;c,a,b;16;d2h^18;a b m a;-a 2ab 2ab{64:-cba;64.4;-c,b,a;16;d2h^18;a e a m;-a 2 2ab{64:-cba;64.4;-c,b,a;16;d2h^18;a c a m;-a 2 2ab{64:bca;64.5;b,c,a;16;d2h^18;b b e m;-b 2 2ab{64:bca;64.5;b,c,a;16;d2h^18;b b c m;-b 2 2ab{64:a-cb;64.6;a,-c,b;16;d2h^18;b m e b;-b 2ab 2{64:a-cb;64.6;a,-c,b;16;d2h^18;b m a b;-b 2ab 2{65;65.1;;16;d2h^19;c m m m;-c 2 2{65:cab;65.2;c,a,b;16;d2h^19;a m m m;-a 2 2{65:bca;65.3;b,c,a;16;d2h^19;b m m m;-b 2 2{66;66.1;;16;d2h^20;c c c m;-c 2 2c{66:cab;66.2;c,a,b;16;d2h^20;a m a a;-a 2a 2{66:bca;66.3;b,c,a;16;d2h^20;b b m b;-b 2b 2b{67;67.1;;16;d2h^21;c m m e;-c 2a 2{67;67.1;;16;d2h^21;c m m a;-c 2a 2{67:ba-c;67.2;b,a,-c;16;d2h^21;c m m b;-c 2a 2a{67:cab;67.3;c,a,b;16;d2h^21;a b m m;-a 2b 2b{67:-cba;67.4;-c,b,a;16;d2h^21;a c m m;-a 2 2b{67:bca;67.5;b,c,a;16;d2h^21;b m c m;-b 2 2a{67:a-cb;67.6;a,-c,b;16;d2h^21;b m a m;-b 2a 2{68:2;68.1;;16;d2h^22;c c c e :2;-c 2a 2ac{68:2;68.1;;16;d2h^22;c c c a :2;-c 2a 2ac{68:2ba-c;68.2;b,a,-c;16;d2h^22;c c c b :2;-c 2a 2c{68:2cab;68.3;c,a,b;16;d2h^22;a b a a :2;-a 2a 2b{68:2-cba;68.4;-c,b,a;16;d2h^22;a c a a :2;-a 2ab 2b{68:2bca;68.5;b,c,a;16;d2h^22;b b c b :2;-b 2ab 2b{68:2a-cb;68.6;a,-c,b;16;d2h^22;b b a b :2;-b 2b 2ab{68:1;68.7;a,b,c|0,1/4,1/4;16;d2h^22;c c c e :1;c 2 2 -1ac{68:1;68.7;a,b,c|0,1/4,1/4;16;d2h^22;c c c a :1;c 2 2 -1ac{68:1ba-c;68.8;b,a,-c|0,1/4,1/4;16;d2h^22;c c c b :1;c 2 2 -1ac{68:1cab;68.9;c,a,b|0,1/4,1/4;16;d2h^22;a b a a :1;a 2 2 -1ab{68:1-cba;68.10;-c,b,a|0,1/4,1/4;16;d2h^22;a c a a :1;a 2 2 -1ab{68:1bca;68.11;b,c,a|0,1/4,1/4;16;d2h^22;b b c b :1;b 2 2 -1ab{68:1a-cb;68.12;a,-c,b|0,1/4,1/4;16;d2h^22;b b a b :1;b 2 2 -1ab{69;69.1;;32;d2h^23;f m m m;-f 2 2{70:2;70.1;;32;d2h^24;f d d d :2;-f 2uv 2vw{70:1;70.2;a,b,c|-1/8,-1/8,-1/8;32;d2h^24;f d d d :1;f 2 2 -1d{71;71.1;;16;d2h^25;i m m m;-i 2 2{72;72.1;;16;d2h^26;i b a m;-i 2 2c{72:cab;72.2;c,a,b;16;d2h^26;i m c b;-i 2a 2{72:bca;72.3;b,c,a;16;d2h^26;i c m a;-i 2b 2b{73;73.1;;16;d2h^27;i b c a;-i 2b 2c{73:ba-c;73.2;b,a,-c;16;d2h^27;i c a b;-i 2a 2b{74;74.1;;16;d2h^28;i m m a;-i 2b 2{74:ba-c;74.2;b,a,-c;16;d2h^28;i m m b;-i 2a 2a{74:cab;74.3;c,a,b;16;d2h^28;i b m m;-i 2c 2c{74:-cba;74.4;-c,b,a;16;d2h^28;i c m m;-i 2 2b{74:bca;74.5;b,c,a;16;d2h^28;i m c m;-i 2 2a{74:a-cb;74.6;a,-c,b;16;d2h^28;i m a m;-i 2c 2{75;75.1;;4;c4^1;p 4;p 4{75:c;75.2;ab;8;c4^1;c 4;c 4{76;76.1;;4;c4^2;p 41;p 4w{76*;76.1;;4;c4^2;p 41*;p 41{76:c;76.2;ab;8;c4^2;c 41;c 4w{77;77.1;;4;c4^3;p 42;p 4c{77*;77.1;;4;c4^3;p 42*;p 42{77:c;77.2;ab;8;c4^3;c 42;c 4c{78;78.1;;4;c4^4;p 43;p 4cw{78*;78.1;;4;c4^4;p 43*;p 43{78:c;78.2;ab;8;c4^4;c 43;c 4cw{79;79.1;;8;c4^5;i 4;i 4{79:f;79.2;ab;16;c4^5;f 4;f 4{80;80.1;;8;c4^6;i 41;i 4bw{80:f;80.2;ab;16;c4^6;f 41;xyz{81;81.1;;4;s4^1;p -4;p -4{81:c;81.2;ab;8;s4^1;c -4;c -4{82;82.1;;8;s4^2;i -4;i -4{82:f;82.2;ab;16;s4^2;f -4;f -4{83;83.1;;8;c4h^1;p 4/m;-p 4{83:f;83.2;ab;16;c4h^1;c 4/m;-c 4{84;84.1;;8;c4h^2;p 42/m;-p 4c{84*;84.1;;8;c4h^2;p 42/m*;-p 42{84:c;84.2;ab;16;c4h^2;c 42/m;-c 4c{85:2;85.1;;8;c4h^3;p 4/n :2;-p 4a{85:c2;85.2;ab;16;c4h^3;c 4/e :2;xyz{85:1;85.3;a,b,c|-1/4,1/4,0;8;c4h^3;p 4/n :1;p 4ab -1ab{85:c1;85.4;ab|-1/4,1/4,0;16;c4h^3;c 4/e :1;xyz{86:2;86.1;;8;c4h^4;p 42/n :2;-p 4bc{86:1;86.3;a,b,c|-1/4,-1/4,-1/4;8;c4h^4;p 42/n :1;p 4n -1n{86:c1;86.4;ab|-1/4,-1/4,-1/4;16;c4h^4;c 42/e :1;xyz{86:c2;86.2;ab;16;c4h^4;c 42/e :2;xyz{87;87.1;;16;c4h^5;i 4/m;-i 4{87:f;87.2;ab;32;c4h^5;f 4/m;xyz{88:2;88.1;;16;c4h^6;i 41/a :2;-i 4ad{88:f2;88.2;ab;32;c4h^6;f 41/d :2;xyz{88:1;88.3;a,b,c|0,-1/4,-1/8;16;c4h^6;i 41/a :1;i 4bw -1bw{88:f1;88.4;ab|0,-1/4,-1/8;32;c4h^6;f 41/d :1;xyz{89;89.1;;8;d4^1;p 4 2 2;p 4 2{89:c;89.2;ab;16;d4^1;c 4 2 2;xyz{90;90.1;;8;d4^2;p 4 21 2;p 4ab 2ab{90:c;90.2;ab;16;d4^2;c 4 2 21;xyz{91;91.1;;8;d4^3;p 41 2 2;p 4w 2c{91*;91.1;;8;d4^3;p 41 2 2*;p 41 2c{91:c;91.2;ab;16;d4^3;c 41 2 2;xyz{92;92.1;;8;d4^4;p 41 21 2;p 4abw 2nw{92:c;92.2;ab;16;d4^4;c 41 2 21;xyz{93;93.1;;8;d4^5;p 42 2 2;p 4c 2{93*;93.1;;8;d4^5;p 42 2 2*;p 42 2{93:c;93.2;ab;16;d4^5;c 42 2 2;xyz{94;94.1;;8;d4^6;p 42 21 2;p 4n 2n{94:c;94.2;ab;16;d4^6;c 42 2 21;xyz{95;95.1;;8;d4^7;p 43 2 2;p 4cw 2c{95*;95.1;;8;d4^7;p 43 2 2*;p 43 2c{95:c;95.2;ab;16;d4^7;c 43 2 2;xyz{96;96.1;;8;d4^8;p 43 21 2;p 4nw 2abw{96:c;96.2;ab;16;d4^8;c 43 2 21;xyz{97;97.1;;16;d4^9;i 4 2 2;i 4 2{97:f;97.2;ab;32;d4^9;f 4 2 2;f 4 2{98;98.1;;16;d4^10;i 41 2 2;i 4bw 2bw{98:f;98.2;ab;32;d4^10;f 41 2 2;xyz{99;99.1;;8;c4v^1;p 4 m m;p 4 -2{99:c;99.2;ab;16;c4v^1;c 4 m m;c 4 -2{100;100.1;;8;c4v^2;p 4 b m;p 4 -2ab{100:c;100.2;ab;16;c4v^2;c 4 m g1;xyz{101;101.1;;8;c4v^3;p 42 c m;p 4c -2c{101*;101.1;;8;c4v^3;p 42 c m*;p 42 -2c{101:c;101.2;ab;16;c4v^3;c 42 m c;xyz{102;102.1;;8;c4v^4;p 42 n m;p 4n -2n{102:c;102.2;ab;16;c4v^4;c 42 m g2;xyz{103;103.1;;8;c4v^5;p 4 c c;p 4 -2c{103:c;103.2;ab;16;c4v^5;c 4 c c;c 4 -2c{104;104.1;;8;c4v^6;p 4 n c;p 4 -2n{104:c;104.2;ab;16;c4v^6;c 4 c g2;xyz{105;105.1;;8;c4v^7;p 42 m c;p 4c -2{105*;105.1;;8;c4v^7;p 42 m c*;p 42 -2{105:c;105.2;ab;16;c4v^7;c 42 c m;xyz{106;106.1;;8;c4v^8;p 42 b c;p 4c -2ab{106*;106.1;;8;c4v^8;p 42 b c*;p 42 -2ab{106:c;106.2;ab;16;c4v^8;c 42 c g1;xyz{107;107.1;;16;c4v^9;i 4 m m;i 4 -2{107:f;107.2;ab;32;c4v^9;f 4 m m;f 4 -2{108;108.1;;16;c4v^10;i 4 c m;i 4 -2c{108:f;108.2;ab;32;c4v^10;f 4 m c;xyz{109;109.1;;16;c4v^11;i 41 m d;i 4bw -2{109:f;109.2;ab;32;c4v^11;f 41 d m;xyz{110;110.1;;16;c4v^12;i 41 c d;i 4bw -2c{110:f;110.2;ab;32;c4v^12;f 41 d c;xyz{111;111.1;;8;d2d^1;p -4 2 m;p -4 2{111:c;111.2;ab;16;d2d^1;c -4 m 2;xyz{112;112.1;;8;d2d^2;p -4 2 c;p -4 2c{112:c;112.2;ab;16;d2d^2;c -4 c 2;xyz{113;113.1;;8;d2d^3;p -4 21 m;p -4 2ab{113:c;113.2;ab;16;d2d^3;c -4 m 21;xyz{114;114.1;;8;d2d^4;p -4 21 c;p -4 2n{114:c;114.2;ab;16;d2d^4;c -4 c 21;xyz{115;115.1;;8;d2d^5;p -4 m 2;p -4 -2{115:c;115.2;ab;16;d2d^5;c -4 2 m;xyz{116;116.1;;8;d2d^6;p -4 c 2;p -4 -2c{116:c;116.2;ab;16;d2d^6;c -4 2 c;xyz{117;117.1;;8;d2d^7;p -4 b 2;p -4 -2ab{117:c;117.2;ab;16;d2d^7;c -4 2 g1;xyz{118;118.1;;8;d2d^8;p -4 n 2;p -4 -2n{118:c;118.2;ab;16;d2d^8;c -4 2 g2;xyz{119;119.1;;16;d2d^9;i -4 m 2;i -4 -2{119:f;119.2;ab;32;d2d^9;f -4 2 m;xyz{120;120.1;;16;d2d^10;i -4 c 2;i -4 -2c{120:f;120.2;ab;32;d2d^10;f -4 2 c;xyz{121;121.1;;16;d2d^11;i -4 2 m;i -4 2{121:f;121.2;ab;32;d2d^11;f -4 m 2;xyz{122;122.1;;16;d2d^12;i -4 2 d;i -4 2bw{122:f;122.2;ab;32;d2d^12;f -4 d 2;xyz{123;123.1;;16;d4h^1;p 4/m m m;-p 4 2{123:c;123.2;ab;32;d4h^1;c 4/m m m;xyz{124;124.1;;16;d4h^2;p 4/m c c;-p 4 2c{124:c;124.2;ab;32;d4h^2;c 4/m c c;xyz{125:2;125.1;;16;d4h^3;p 4/n b m :2;-p 4a 2b{125:c2;125.2;ab;32;d4h^3;c 4/e m g1 :2;xyz{125:1;125.3;a,b,c|-1/4,-1/4,0;16;d4h^3;p 4/n b m :1;p 4 2 -1ab{125:c1;125.4;ab|-1/4,-1/4,0;32;d4h^3;c 4/e m g1 :1;xyz{126:2;126.1;;16;d4h^4;p 4/n n c :2;-p 4a 2bc{126:c1;126.2;ab;32;d4h^4;c 4/e c g2 :2;xyz{126:1;126.3;a,b,c|-1/4,-1/4,-1/4;16;d4h^4;p 4/n n c :1;p 4 2 -1n{126:c4;126.4;ab|-1/4,-1/4,-1/4;32;d4h^4;c 4/e c g2 :1;xyz{127;127.1;;16;d4h^5;p 4/m b m;-p 4 2ab{127:c;127.2;ab;32;d4h^5;c 4/m m g1;xyz{128;128.1;;16;d4h^6;p 4/m n c;-p 4 2n{128:c;128.2;a+b,-a+b,c;32;d4h^6;c 4/m c g2;xyz{129:2;129.1;;16;d4h^7;p 4/n m m :2;-p 4a 2a{129:c2;129.2;ab;32;d4h^7;c 4/e m m :2;xyz{129:1;129.3;a,b,c|-1/4,1/4,0;16;d4h^7;p 4/n m m :1;p 4ab 2ab -1ab{129:c1;129.4;ab|-1/4,1/4,0;32;d4h^7;c 4/e m m :1;xyz{130:2;130.1;;16;d4h^8;p 4/n c c :2;-p 4a 2ac{130:c2;130.2;ab;32;d4h^8;c 4/e c c :2;xyz{130:1;130.3;a,b,c|-1/4,1/4,0;16;d4h^8;p 4/n c c :1;p 4ab 2n -1ab{130:c1;130.4;ab|-1/4,1/4,0;32;d4h^8;c 4/e c c :1;xyz{131;131.1;;16;d4h^9;p 42/m m c;-p 4c 2{131:c;131.2;ab;32;d4h^9;c 42/m c m;xyz{132;132.1;;16;d4h^10;p 42/m c m;-p 4c 2c{132:c;132.2;ab;32;d4h^10;c 42/m m c;xyz{133:2;133.1;;16;d4h^11;p 42/n b c :2;-p 4ac 2b{133:c1;133.2;ab;32;d4h^11;c 42/e c g1 :2;xyz{133:1;133.3;a,b,c|-1/4,1/4,-1/4;16;d4h^11;p 42/n b c :1;p 4n 2c -1n{133:c2;133.4;ab|-1/4,1/4,-1/4;32;d4h^11;c 42/e c g1 :1;xyz{134:2;134.1;;16;d4h^12;p 42/n n m :2;-p 4ac 2bc{134:c2;134.2;ab;32;d4h^12;c 42/e m g2 :2;xyz{134:1;134.3;a,b,c|-1/4,1/4,-1/4;16;d4h^12;p 42/n n m :1;p 4n 2 -1n{134:c1;134.4;ab|-1/4,1/4,-1/4;32;d4h^12;c 42/e m g2 :1;xyz{135;135.1;;16;d4h^13;p 42/m b c;-p 4c 2ab{135*;135.1;;16;d4h^13;p 42/m b c*;-p 42 2ab{135:c;135.2;ab;32;d4h^13;c 42/m c g1;xyz{136;136.1;;16;d4h^14;p 42/m n m;-p 4n 2n{136:c;136.2;ab;32;d4h^14;c 42/m m g2;xyz{137:2;137.1;;16;d4h^15;p 42/n m c :2;-p 4ac 2a{137:c1;137.2;ab;32;d4h^15;c 42/e c m :2;xyz{137:1;137.3;a,b,c|-1/4,1/4,-1/4;16;d4h^15;p 42/n m c :1;p 4n 2n -1n{137:c2;137.4;ab|-1/4,1/4,-1/4;32;d4h^15;c 42/e c m :1;xyz{138:2;138.1;;16;d4h^16;p 42/n c m :2;-p 4ac 2ac{138:c2;138.2;ab;32;d4h^16;c 42/e m c :2;xyz{138:1;138.3;a,b,c|-1/4,1/4,-1/4;16;d4h^16;p 42/n c m :1;p 4n 2ab -1n{138:c1;138.4;ab|-1/4,1/4,-1/4;32;d4h^16;c 42/e m c :1;xyz{139;139.1;;32;d4h^17;i 4/m m m;-i 4 2{139:f;139.2;ab;64;d4h^17;f 4/m m m;xyz{140;140.1;;32;d4h^18;i 4/m c m;-i 4 2c{140:f;140.2;ab;64;d4h^18;f 4/m m c;xyz{141:2;141.1;;32;d4h^19;i 41/a m d :2;-i 4bd 2{141:f2;141.2;ab;64;d4h^19;f 41/d d m :2;xyz{141:1;141.3;a,b,c|0,1/4,-1/8;32;d4h^19;i 41/a m d :1;i 4bw 2bw -1bw{141:f1;141.4;ab|0,1/4,-1/8;64;d4h^19;f 41/d d m :1;xyz{142:2;142.1;;32;d4h^20;i 41/a c d :2;-i 4bd 2c{142:f2;142.2;ab;64;d4h^20;f 41/d d c :2;xyz{142:1;142.3;a,b,c|0,1/4,-1/8;32;d4h^20;i 41/a c d :1;i 4bw 2aw -1bw{142:f1;142.4;ab|0,1/4,-1/8;64;d4h^20;f 41/d d c :1;xyz{143;143.1;;3;c3^1;p 3;p 3{144;144.1;;3;c3^2;p 31;p 31{145;145.1;;3;c3^3;p 32;p 32{146:h;146.1;;9;c3^4;r 3 :h;r 3{146:r;146.2;r;3;c3^4;r 3 :r;p 3*{147;147.1;;6;c3i^1;p -3;-p 3{148:h;148.1;;18;c3i^2;r -3 :h;-r 3{148:r;148.2;r;6;c3i^2;r -3 :r;-p 3*{149;149.1;;6;d3^1;p 3 1 2;p 3 2{150;150.1;;6;d3^2;p 3 2 1;p 3 2"{151;151.1;;6;d3^3;p 31 1 2;p 31 2 (0 0 4){152;152.1;;6;d3^4;p 31 2 1;p 31 2"{152:_2;152:a,b,c|0,0,-1/3;a,b,c|0,0,-1/3;6;d3^4;p 31 2 1;p 31 2" (0 0 -4){153;153.1;;6;d3^5;p 32 1 2;p 32 2 (0 0 2){154;154.1;;6;d3^6;p 32 2 1;p 32 2"{154:_2;154:a,b,c|0,0,-1/3;a,b,c|0,0,-1/3;6;d3^6;p 32 2 1;p 32 2" (0 0 4){155:h;155.1;;18;d3^7;r 3 2 :h;r 3 2"{155:r;155.2;r;6;d3^7;r 3 2 :r;p 3* 2{156;156.1;;6;c3v^1;p 3 m 1;p 3 -2"{157;157.1;;6;c3v^2;p 3 1 m;p 3 -2{158;158.1;;6;c3v^3;p 3 c 1;p 3 -2"c{159;159.1;;6;c3v^4;p 3 1 c;p 3 -2c{160:h;160.1;;18;c3v^5;r 3 m :h;r 3 -2"{160:r;160.2;r;6;c3v^5;r 3 m :r;p 3* -2{161:h;161.1;;18;c3v^6;r 3 c :h;r 3 -2"c{161:r;161.2;r;6;c3v^6;r 3 c :r;p 3* -2n{162;162.1;;12;d3d^1;p -3 1 m;-p 3 2{163;163.1;;12;d3d^2;p -3 1 c;-p 3 2c{164;164.1;;12;d3d^3;p -3 m 1;-p 3 2"{165;165.1;;12;d3d^4;p -3 c 1;-p 3 2"c{166:h;166.1;;36;d3d^5;r -3 m :h;-r 3 2"{166:r;166.2;r;12;d3d^5;r -3 m :r;-p 3* 2{167:h;167.1;;36;d3d^6;r -3 c :h;-r 3 2"c{167:r;167.2;r;12;d3d^6;r -3 c :r;-p 3* 2n{168;168.1;;6;c6^1;p 6;p 6{169;169.1;;6;c6^2;p 61;p 61{170;170.1;;6;c6^3;p 65;p 65{171;171.1;;6;c6^4;p 62;p 62{172;172.1;;6;c6^5;p 64;p 64{173;173.1;;6;c6^6;p 63;p 6c{173*;173.1;;6;c6^6;p 63*;p 63 {174;174.1;;6;c3h^1;p -6;p -6{175;175.1;;12;c6h^1;p 6/m;-p 6{176;176.1;;12;c6h^2;p 63/m;-p 6c{176*;176.1;;12;c6h^2;p 63/m*;-p 63{177;177.1;;12;d6^1;p 6 2 2;p 6 2{178;178.1;;12;d6^2;p 61 2 2;p 61 2 (0 0 5){179;179.1;;12;d6^3;p 65 2 2;p 65 2 (0 0 1){180;180.1;;12;d6^4;p 62 2 2;p 62 2 (0 0 4){181;181.1;;12;d6^5;p 64 2 2;p 64 2 (0 0 2){182;182.1;;12;d6^6;p 63 2 2;p 6c 2c{182*;182.1;;12;d6^6;p 63 2 2*;p 63 2c{183;183.1;;12;c6v^1;p 6 m m;p 6 -2{184;184.1;;12;c6v^2;p 6 c c;p 6 -2c{185;185.1;;12;c6v^3;p 63 c m;p 6c -2{185*;185.1;;12;c6v^3;p 63 c m*;p 63 -2{186;186.1;;12;c6v^4;p 63 m c;p 6c -2c{186*;186.1;;12;c6v^4;p 63 m c*;p 63 -2c{187;187.1;;12;d3h^1;p -6 m 2;p -6 2{188;188.1;;12;d3h^2;p -6 c 2;p -6c 2{189;189.1;;12;d3h^3;p -6 2 m;p -6 -2{190;190.1;;12;d3h^4;p -6 2 c;p -6c -2c{191;191.1;;24;d6h^1;p 6/m m m;-p 6 2{192;192.1;;24;d6h^2;p 6/m c c;-p 6 2c{193;193.1;;24;d6h^3;p 63/m c m;-p 6c 2{193*;193.1;;24;d6h^3;p 63/m c m*;-p 63 2{194;194.1;;24;d6h^4;p 63/m m c;-p 6c 2c{194*;194.1;;24;d6h^4;p 63/m m c*;-p 63 2c{195;195.1;;12;t^1;p 2 3;p 2 2 3{196;196.1;;48;t^2;f 2 3;f 2 2 3{197;197.1;;24;t^3;i 2 3;i 2 2 3{198;198.1;;12;t^4;p 21 3;p 2ac 2ab 3{199;199.1;;24;t^5;i 21 3;i 2b 2c 3{200;200.1;;24;th^1;p m -3;-p 2 2 3{201:2;201.1;;24;th^2;p n -3 :2;-p 2ab 2bc 3{201:1;201.2;a,b,c|-1/4,-1/4,-1/4;24;th^2;p n -3 :1;p 2 2 3 -1n{202;202.1;;96;th^3;f m -3;-f 2 2 3{203:2;203.1;;96;th^4;f d -3 :2;-f 2uv 2vw 3{203:1;203.2;a,b,c|-1/8,-1/8,-1/8;96;th^4;f d -3 :1;f 2 2 3 -1d{204;204.1;;48;th^5;i m -3;-i 2 2 3{205;205.1;;24;th^6;p a -3;-p 2ac 2ab 3{206;206.1;;48;th^7;i a -3;-i 2b 2c 3{207;207.1;;24;o^1;p 4 3 2;p 4 2 3{208;208.1;;24;o^2;p 42 3 2;p 4n 2 3{209;209.1;;96;o^3;f 4 3 2;f 4 2 3{210;210.1;;96;o^4;f 41 3 2;f 4d 2 3{211;211.1;;48;o^5;i 4 3 2;i 4 2 3{212;212.1;;24;o^6;p 43 3 2;p 4acd 2ab 3{213;213.1;;24;o^7;p 41 3 2;p 4bd 2ab 3{214;214.1;;48;o^8;i 41 3 2;i 4bd 2c 3{215;215.1;;24;td^1;p -4 3 m;p -4 2 3{216;216.1;;96;td^2;f -4 3 m;f -4 2 3{217;217.1;;48;td^3;i -4 3 m;i -4 2 3{218;218.1;;24;td^4;p -4 3 n;p -4n 2 3{219;219.1;;96;td^5;f -4 3 c;f -4a 2 3{220;220.1;;48;td^6;i -4 3 d;i -4bd 2c 3{221;221.1;;48;oh^1;p m -3 m;-p 4 2 3{222:2;222.1;;48;oh^2;p n -3 n :2;-p 4a 2bc 3{222:1;222.2;a,b,c|-1/4,-1/4,-1/4;48;oh^2;p n -3 n :1;p 4 2 3 -1n{223;223.1;;48;oh^3;p m -3 n;-p 4n 2 3{224:2;224.1;;48;oh^4;p n -3 m :2;-p 4bc 2bc 3{224:1;224.2;a,b,c|-1/4,-1/4,-1/4;48;oh^4;p n -3 m :1;p 4n 2 3 -1n{225;225.1;;192;oh^5;f m -3 m;-f 4 2 3{226;226.1;;192;oh^6;f m -3 c;-f 4a 2 3{227:2;227.1;;192;oh^7;f d -3 m :2;-f 4vw 2vw 3{227:1;227.2;a,b,c|-1/8,-1/8,-1/8;192;oh^7;f d -3 m :1;f 4d 2 3 -1d{228:2;228.1;;192;oh^8;f d -3 c :2;-f 4ud 2vw 3{228:1;228.2;a,b,c|-3/8,-3/8,-3/8;192;oh^8;f d -3 c :1;f 4d 2 3 -1ad{229;229.1;;96;oh^9;i m -3 m;-i 4 2 3{230;230.1;;96;oh^10;i a -3 d;-i 4bd 2c 3'.split("{"));
JS.SpaceGroup.getSpaceGroups()});X("JS");fa(null,"JS.HallInfo",["JU.P3i","$.SB","JS.HallRotationTerm","$.HallTranslation","JU.Logger"],function(){var b=ba(function(){this.primitiveHallSymbol=this.hallSymbol=null;this.latticeCode="\x00";this.latticeExtension=null;this.isCentrosymmetric=!1;this.nRotations=0;this.vectorCode=this.vector12ths=this.rotationTerms=null;M(this,arguments)},JS,"HallInfo",null);oa(b,function(){this.rotationTerms=Array(16)});Z(b,function(a){try{a.startsWith("Hall:")&&(a=a.substring(5).trim());
var c=this.hallSymbol=a.trim(),c=this.extractLatticeInfo(c);if(0!=JS.HallTranslation.getLatticeIndex(this.latticeCode)){this.latticeExtension=JS.HallTranslation.getLatticeExtension(this.latticeCode,this.isCentrosymmetric);c=this.extractVectorInfo(c)+this.latticeExtension;JU.Logger.debugging&&JU.Logger.debug("Hallinfo: "+a+" "+c);a=0;var e="\x00";for(this.primitiveHallSymbol="P";0<c.length&&16>this.nRotations;){var c=this.extractRotationInfo(c,a,e),b=this.rotationTerms[this.nRotations-1];a=b.order;
e=b.axisType;this.primitiveHallSymbol+=" "+b.primitiveCode}this.primitiveHallSymbol+=this.vectorCode}}catch(d){if(da(d,Exception))JU.Logger.error("Invalid Hall symbol "+d),this.nRotations=0;else throw d;}},"~S");d(b,"dumpInfo",function(){var a=new JU.SB;a.append("\nHall symbol: ").append(this.hallSymbol).append("\nprimitive Hall symbol: ").append(this.primitiveHallSymbol).append("\nlattice type: ").append(this.getLatticeDesignation());for(var c=0;c<this.nRotations;c++)a.append("\n\nrotation term ").appendI(c+
1).append(this.rotationTerms[c].dumpInfo(this.vectorCode));return a.toString()});d(b,"getLatticeDesignation",function(){return JS.HallTranslation.getLatticeDesignation2(this.latticeCode,this.isCentrosymmetric)});d(b,"extractLatticeInfo",function(a){var c=a.indexOf(" ");if(0>c)return"";var e=a.substring(0,c).toUpperCase();this.latticeCode=e.charAt(0);"-"==this.latticeCode&&(this.isCentrosymmetric=!0,this.latticeCode=e.charAt(1));return a.substring(c+1).trim()},"~S");d(b,"extractVectorInfo",function(a){this.vector12ths=
new JU.P3i;this.vectorCode="";var c=a.indexOf("("),e=a.indexOf(")",c);0<c&&e>c&&(e=a.substring(c+1,e),this.vectorCode=" ("+e+")",a=a.substring(0,c).trim(),c=e.indexOf(" "),0<=c&&(this.vector12ths.x=Integer.parseInt(e.substring(0,c)),e=e.substring(c+1).trim(),c=e.indexOf(" "),0<=c&&(this.vector12ths.y=Integer.parseInt(e.substring(0,c)),e=e.substring(c+1).trim())),this.vector12ths.z=Integer.parseInt(e));return a},"~S");d(b,"extractRotationInfo",function(a,c,e){var b=a.indexOf(" "),d;0<=b?(d=a.substring(0,
b),a=a.substring(b+1).trim()):(d=a,a="");this.rotationTerms[this.nRotations]=new JS.HallRotationTerm(this,d,c,e);this.nRotations++;return a},"~S,~N,~S");q(b,"toString",function(){return this.hallSymbol})});X("JS");fa(["JU.M4"],"JS.HallRotationTerm",["JU.SB","JS.HallRotation","$.HallTranslation","$.SymmetryOperation","JU.Logger"],function(){var b=ba(function(){this.seitzMatrix12ths=this.translation=this.rotation=this.translationString=this.lookupCode=this.primitiveCode=this.inputCode=null;this.isImproper=
!1;this.order=0;this.diagonalReferenceAxis=this.axisType="\x00";this.allPositive=!0;M(this,arguments)},JS,"HallRotationTerm",null);oa(b,function(){this.seitzMatrix12ths=new JU.M4});Z(b,function(a,c,e,b){this.inputCode=c;c+="   ";"-"==c.charAt(0)&&(this.isImproper=!0,c=c.substring(1));this.primitiveCode="";this.order=c.charAt(0).charCodeAt(0)-48;this.axisType=this.diagonalReferenceAxis="\x00";var d=2,f;switch((f=c.charAt(1)).charCodeAt(0)){case 120:case 121:case 122:switch(c.charAt(2).charCodeAt(0)){case 39:case 34:this.diagonalReferenceAxis=
f,f=c.charAt(2),d++}case 42:this.axisType=f;break;case 39:case 34:this.axisType=f;switch(c.charAt(2).charCodeAt(0)){case 120:case 121:case 122:this.diagonalReferenceAxis=c.charAt(2);d++;break;default:this.diagonalReferenceAxis=b}break;default:this.axisType=1==this.order?"_":0==a.nRotations?"z":2==a.nRotations?"*":2==e||4==e?"x":"'",c=c.substring(0,1)+this.axisType+c.substring(1)}this.primitiveCode+="_"==this.axisType?"1":c.substring(0,2);"\x00"!=this.diagonalReferenceAxis&&(c=c.substring(0,1)+this.diagonalReferenceAxis+
this.axisType+c.substring(d),this.primitiveCode+=this.diagonalReferenceAxis,d=3);this.lookupCode=c.substring(0,d);this.rotation=JS.HallRotation.lookup(this.lookupCode);if(null==this.rotation)JU.Logger.error("Rotation lookup could not find "+this.inputCode+" ? "+this.lookupCode);else{this.translation=new JS.HallTranslation("\x00",null);this.translationString="";for(e=c.length;d<e;d++)b=c.charAt(d),b=JS.HallTranslation.getHallTranslation(b,this.order),null!=b&&(this.translationString+=""+b.translationCode,
this.translation.rotationShift12ths+=b.rotationShift12ths,this.translation.vectorShift12ths.add(b.vectorShift12ths));this.primitiveCode=(this.isImproper?"-":"")+this.primitiveCode+this.translationString;this.seitzMatrix12ths.setM4(this.isImproper?this.rotation.seitzMatrixInv:this.rotation.seitzMatrix);this.seitzMatrix12ths.m03=this.translation.vectorShift12ths.x;this.seitzMatrix12ths.m13=this.translation.vectorShift12ths.y;this.seitzMatrix12ths.m23=this.translation.vectorShift12ths.z;switch(this.axisType.charCodeAt(0)){case 120:this.seitzMatrix12ths.m03+=
this.translation.rotationShift12ths;break;case 121:this.seitzMatrix12ths.m13+=this.translation.rotationShift12ths;break;case 122:this.seitzMatrix12ths.m23+=this.translation.rotationShift12ths}0<a.vectorCode.length&&(d=JU.M4.newM4(null),e=JU.M4.newM4(null),a=a.vector12ths,d.m03=a.x,d.m13=a.y,d.m23=a.z,e.m03=-a.x,e.m13=-a.y,e.m23=-a.z,this.seitzMatrix12ths.mul2(d,this.seitzMatrix12ths),this.seitzMatrix12ths.mul(e));JU.Logger.debugging&&JU.Logger.debug("code = "+c+"; primitive code ="+this.primitiveCode+
"\n Seitz Matrix(12ths):"+this.seitzMatrix12ths)}},"JS.HallInfo,~S,~N,~S");d(b,"dumpInfo",function(a){var c=new JU.SB;c.append("\ninput code: ").append(this.inputCode).append("; primitive code: ").append(this.primitiveCode).append("\norder: ").appendI(this.order).append(this.isImproper?" (improper axis)":"");"_"!=this.axisType&&(c.append("; axisType: ").appendC(this.axisType),"\x00"!=this.diagonalReferenceAxis&&c.appendC(this.diagonalReferenceAxis));0<this.translationString.length&&c.append("; translation: ").append(this.translationString);
0<a.length&&c.append("; vector offset: ").append(a);null!=this.rotation&&c.append("\noperator: ").append(this.getXYZ(this.allPositive)).append("\nSeitz matrix:\n").append(JS.SymmetryOperation.dumpSeitz(this.seitzMatrix12ths,!1));return c.toString()},"~S");d(b,"getXYZ",function(a){return JS.SymmetryOperation.getXYZFromMatrix(this.seitzMatrix12ths,!0,a,!0)},"~B")});X("JS");fa(["JU.M4"],"JS.HallRotation",null,function(){var b=ba(function(){this.seitzMatrixInv=this.seitzMatrix=this.rotCode=null;M(this,
arguments)},JS,"HallRotation",null);oa(b,function(){this.seitzMatrix=new JU.M4;this.seitzMatrixInv=new JU.M4});Z(b,function(a,c){this.rotCode=a;var e=C(16,0),b=C(16,0);e[15]=b[15]=1;for(var d=0,f=0;11>f;d++){var h=0;switch(c.charAt(d).charCodeAt(0)){case 32:f++;continue;case 43:case 49:h=1;break;case 45:h=-1}e[f]=h;b[f]=-h;f++}this.seitzMatrix.setA(e);this.seitzMatrixInv.setA(b)},"~S,~S");b.lookup=d(b,"lookup",function(a){for(var c=JS.HallRotation.getHallTerms().length;0<=--c;)if(JS.HallRotation.hallRotationTerms[c].rotCode.equals(a))return JS.HallRotation.hallRotationTerms[c];
return null},"~S");b.getHallTerms=d(b,"getHallTerms",function(){return null==JS.HallRotation.hallRotationTerms?JS.HallRotation.hallRotationTerms=P(-1,[new JS.HallRotation("1_","+00 0+0 00+"),new JS.HallRotation("2x","+00 0-0 00-"),new JS.HallRotation("2y","-00 0+0 00-"),new JS.HallRotation("2z","-00 0-0 00+"),new JS.HallRotation("2'","0-0 -00 00-"),new JS.HallRotation('2"',"0+0 +00 00-"),new JS.HallRotation("2x'","-00 00- 0-0"),new JS.HallRotation('2x"',"-00 00+ 0+0"),new JS.HallRotation("2y'","00- 0-0 -00"),
new JS.HallRotation('2y"',"00+ 0-0 +00"),new JS.HallRotation("2z'","0-0 -00 00-"),new JS.HallRotation('2z"',"0+0 +00 00-"),new JS.HallRotation("3x","+00 00- 0+-"),new JS.HallRotation("3y","-0+ 0+0 -00"),new JS.HallRotation("3z","0-0 +-0 00+"),new JS.HallRotation("3*","00+ +00 0+0"),new JS.HallRotation("4x","+00 00- 0+0"),new JS.HallRotation("4y","00+ 0+0 -00"),new JS.HallRotation("4z","0-0 +00 00+"),new JS.HallRotation("6x","+00 0+- 0+0"),new JS.HallRotation("6y","00+ 0+0 -0+"),new JS.HallRotation("6z",
"+-0 +00 00+")]):JS.HallRotation.hallRotationTerms});b.hallRotationTerms=null});X("JS");fa(null,"JS.HallTranslation",["JU.P3i"],function(){var b=ba(function(){this.translationCode="\x00";this.rotationShift12ths=this.rotationOrder=0;this.vectorShift12ths=null;M(this,arguments)},JS,"HallTranslation",null);Z(b,function(a,c){this.translationCode=a;if(null!=c){if(0<=c.z){this.vectorShift12ths=c;return}this.rotationOrder=c.x;this.rotationShift12ths=c.y}this.vectorShift12ths=new JU.P3i},"~S,JU.P3i");b.getHallLatticeEquivalent=
d(b,"getHallLatticeEquivalent",function(a){var c=JS.HallTranslation.getLatticeCode(a);return(0<a?"-":"")+c+" 1"},"~N");b.getLatticeIndex=d(b,"getLatticeIndex",function(a){for(var c=1,e=3;c<=JS.HallTranslation.nLatticeTypes;c++,e+=3)if(JS.HallTranslation.latticeTranslationData[e].charAt(0)==a)return c;return 0},"~S");b.getLatticeCode=d(b,"getLatticeCode",function(a){0>a&&(a=-a);return 0==a?"\x00":a>JS.HallTranslation.nLatticeTypes?JS.HallTranslation.getLatticeCode(JS.HallTranslation.getLatticeIndex(String.fromCharCode(a))):
JS.HallTranslation.latticeTranslationData[3*a].charAt(0)},"~N");b.getLatticeDesignation=d(b,"getLatticeDesignation",function(a){var c=0<a;0>a&&(a=-a);return 0==a||a>JS.HallTranslation.nLatticeTypes?"":(c?"-":"")+JS.HallTranslation.getLatticeCode(a)+": "+(c?"centrosymmetric ":"")+JS.HallTranslation.latticeTranslationData[3*a+1]},"~N");b.getLatticeDesignation2=d(b,"getLatticeDesignation2",function(a,c){var e=JS.HallTranslation.getLatticeIndex(a);c||(e=-e);return JS.HallTranslation.getLatticeDesignation(e)},
"~S,~B");b.getLatticeExtension=d(b,"getLatticeExtension",function(a,c){for(var e=1,b=3;e<=JS.HallTranslation.nLatticeTypes;e++,b+=3)if(JS.HallTranslation.latticeTranslationData[b].charAt(0)==a)return JS.HallTranslation.latticeTranslationData[b+2]+(c?" -1":"");return""},"~S,~B");b.getHallTerms=d(b,"getHallTerms",function(){return null==JS.HallTranslation.hallTranslationTerms?JS.HallTranslation.hallTranslationTerms=P(-1,[new JS.HallTranslation("a",JU.P3i.new3(6,0,0)),new JS.HallTranslation("b",JU.P3i.new3(0,
6,0)),new JS.HallTranslation("c",JU.P3i.new3(0,0,6)),new JS.HallTranslation("n",JU.P3i.new3(6,6,6)),new JS.HallTranslation("u",JU.P3i.new3(3,0,0)),new JS.HallTranslation("v",JU.P3i.new3(0,3,0)),new JS.HallTranslation("w",JU.P3i.new3(0,0,3)),new JS.HallTranslation("d",JU.P3i.new3(3,3,3)),new JS.HallTranslation("1",JU.P3i.new3(2,6,-1)),new JS.HallTranslation("1",JU.P3i.new3(3,4,-1)),new JS.HallTranslation("2",JU.P3i.new3(3,8,-1)),new JS.HallTranslation("1",JU.P3i.new3(4,3,-1)),new JS.HallTranslation("3",
JU.P3i.new3(4,9,-1)),new JS.HallTranslation("1",JU.P3i.new3(6,2,-1)),new JS.HallTranslation("2",JU.P3i.new3(6,4,-1)),new JS.HallTranslation("4",JU.P3i.new3(6,8,-1)),new JS.HallTranslation("5",JU.P3i.new3(6,10,-1)),new JS.HallTranslation("r",JU.P3i.new3(4,8,8)),new JS.HallTranslation("s",JU.P3i.new3(8,8,4)),new JS.HallTranslation("t",JU.P3i.new3(8,4,8))]):JS.HallTranslation.hallTranslationTerms});b.getHallTranslation=d(b,"getHallTranslation",function(a,c){for(var e=null,b=JS.HallTranslation.getHallTerms().length;0<=
--b;){var d=JS.HallTranslation.hallTranslationTerms[b];if(d.translationCode==a&&(0==d.rotationOrder||d.rotationOrder==c)){e=new JS.HallTranslation(a,null);e.translationCode=a;e.rotationShift12ths=d.rotationShift12ths;e.vectorShift12ths=d.vectorShift12ths;break}}return e},"~S,~N");b.latticeTranslationData=P(-1,"\x00;unknown;;P;primitive;;I;body-centered; 1n;R;rhombohedral; 1r 1r;F;face-centered; 1ab 1bc 1ac;A;A-centered; 1bc;B;B-centered; 1ac;C;C-centered; 1ab;S;rhombohedral(S); 1s 1s;T;rhombohedral(T); 1t 1t".split(";"));
b.nLatticeTypes=S(JS.HallTranslation.latticeTranslationData.length/3)-1;b.hallTranslationTerms=null});X("JS");fa(["JU.M4","$.P3"],"JS.SymmetryOperation","java.util.Hashtable JU.Lst $.Matrix $.Measure $.P4 $.PT $.SB $.V3 JS.UnitCell JU.BoxInfo $.Logger $.Parser".split(" "),function(){var b=ba(function(){this.xyz=this.xyzCanonical=this.xyzOriginal=null;this.doNormalize=!0;this.isFinalized=!1;this.opId=0;this.info=this.centering=null;this.opType=-1;this.opOrder=0;this.opIsCCW=this.opPlane=this.opAxis=
this.opPoint2=this.opPoint=this.opGlide=this.opTrans=null;this.isIrrelevant=!1;this.iCoincident=0;this.myLabels=null;this.modDim=0;this.rsvs=this.linearRotTrans=null;this.isBio=!1;this.sigma=null;this.number=0;this.subsystemCode=null;this.timeReversal=0;this.isCenteringOp=this.unCentered=!1;this.magOp=2147483647;this.divisor=12;this.opAxisCode=this.opX=null;this.opIsLong=!1;M(this,arguments)},JS,"SymmetryOperation",JU.M4);Z(b,function(a,c,e){ta(this,JS.SymmetryOperation,[]);this.doNormalize=e;null==
a?this.opId=c:(this.xyzOriginal=a.xyzOriginal,this.xyz=a.xyz,this.divisor=a.divisor,this.opId=a.opId,this.modDim=a.modDim,this.myLabels=a.myLabels,this.number=a.number,this.linearRotTrans=a.linearRotTrans,this.sigma=a.sigma,this.subsystemCode=a.subsystemCode,this.timeReversal=a.timeReversal,this.setMatrix(!1),a.isFinalized||this.doFinalize())},"JS.SymmetryOperation,~N,~B");d(b,"getOpName",function(a){-1==this.opType&&this.setOpTypeAndOrder();switch(this.opType){case 0:return"I";case 1:return"Trans"+
JS.SymmetryOperation.op48(this.opTrans);case 2:return"Rot"+this.opOrder+JS.SymmetryOperation.op48(this.opPoint)+JS.SymmetryOperation.op48(this.opAxis)+this.opIsCCW;case 4:return"Inv"+JS.SymmetryOperation.op48(this.opPoint);case 8:return(0==a?"":"Plane")+this.opPlane;case 3:return 0==a?"S"+JS.SymmetryOperation.op48(this.opPoint)+JS.SymmetryOperation.op48(this.opAxis):"Screw"+this.opOrder+JS.SymmetryOperation.op48(this.opPoint)+JS.SymmetryOperation.op48(this.opAxis)+JS.SymmetryOperation.op48(this.opTrans)+
this.opIsCCW;case 6:return"Nbar"+this.opOrder+JS.SymmetryOperation.op48(this.opPoint)+JS.SymmetryOperation.op48(this.opAxis)+this.opIsCCW;case 9:return(0==a?"":"Glide")+this.opPlane+(2==a?JS.SymmetryOperation.op48(this.opTrans):"")}System.out.println("SymmetryOperation REJECTED TYPE FOR "+this);return""},"~N");d(b,"getOpTitle",function(){-1==this.opType&&this.setOpTypeAndOrder();switch(this.opType){case 0:return"identity ";case 1:return"translation "+JS.SymmetryOperation.opFrac(this.opTrans);case 2:return"rotation "+
this.opOrder;case 4:return"inversion center "+JS.SymmetryOperation.opFrac(this.opPoint);case 8:return"reflection ";case 3:return"screw rotation "+this.opOrder+(null==this.opIsCCW?"":this.opIsCCW===Boolean.TRUE?"(+) ":"(-) ")+JS.SymmetryOperation.opFrac(this.opTrans);case 6:return this.opOrder+"-bar "+(null==this.opIsCCW?"":this.opIsCCW===Boolean.TRUE?"(+) ":"(-) ")+JS.SymmetryOperation.opFrac(this.opPoint);case 9:return"glide reflection "+JS.SymmetryOperation.opFrac(this.opTrans)}return""});b.opFrac=
d(b,"opFrac",function(a){return"{"+JS.SymmetryOperation.opF(a.x)+" "+JS.SymmetryOperation.opF(a.y)+" "+JS.SymmetryOperation.opF(a.z)+"}"},"JU.T3");b.opF=d(b,"opF",function(a){if(0==a)return"0";var c=0>a;c&&(a=-a);var e=0;1<=a&&(e=w(a),a-=e);var b=Math.round(48*a);if(0!=JU.PT.approx(b/48-a,1E3))return""+JU.PT.approx(a,1E3);a=0==b%48?1:0==b%24?2:0==b%16?3:0==b%12?4:0==b%8?6:0==b%6?8:0==b%4?12:0==b%3?16:0==b%2?24:48;return(c?"-":"")+(e*a+S(b*a/48))+(1==a?"":"/"+a)},"~N");b.op48=d(b,"op48",function(a){return null==
a?(System.err.println("SymmetryOperation.op48 null"),"(null)"):"{"+Math.round(48*a.x)+" "+Math.round(48*a.y)+" "+Math.round(48*a.z)+"}"},"JU.T3");d(b,"setSigma",function(a,c){this.subsystemCode=a;this.sigma=c},"~S,JU.Matrix");d(b,"setGamma",function(a){for(var c=3+this.modDim,e=(this.rsvs=new JU.Matrix(null,c+1,c+1)).getArray(),b=ua(c,0),d=0,f=0;f<c;f++){for(var h=0;h<c;h++)e[f][h]=this.linearRotTrans[d++];b[f]=(a?-1:1)*this.linearRotTrans[d++]}e[c][c]=1;a&&(this.rsvs=this.rsvs.inverse());for(f=0;f<
c;f++)e[f][c]=b[f];e=this.rsvs.getSubmatrix(0,0,3,3).getArray();for(f=0;3>f;f++)for(h=0;4>h;h++)this.setElement(f,h,3>h?e[f][h]:b[f]);this.setElement(3,3,1)},"~B");d(b,"doFinalize",function(){JS.SymmetryOperation.div12(this,this.divisor);if(0<this.modDim)for(var a=this.rsvs.getArray(),c=a.length-1;0<=--c;)a[c][3+this.modDim]=JS.SymmetryOperation.finalizeD(a[c][3+this.modDim],this.divisor);this.isFinalized=!0});b.div12=d(b,"div12",function(a,c){a.m03=JS.SymmetryOperation.finalizeF(a.m03,c);a.m13=JS.SymmetryOperation.finalizeF(a.m13,
c);a.m23=JS.SymmetryOperation.finalizeF(a.m23,c);return a},"JU.M4,~N");b.finalizeF=d(b,"finalizeF",function(a,c){if(0==c){if(0==a)return 0;var b=w(a);return 1*(b>>8)/(b&255)}return a/c},"~N,~N");b.finalizeD=d(b,"finalizeD",function(a,c){if(0==c){if(0==a)return 0;var b=S(a);return 1*(b>>8)/(b&255)}return a/c},"~N,~N");d(b,"getXyz",function(a){return a&&0==this.modDim||null==this.xyzOriginal?this.xyz:this.xyzOriginal},"~B");d(b,"getxyzTrans",function(a){var c=JU.M4.newM4(this);c.add(a);return JS.SymmetryOperation.getXYZFromMatrix(c,
!1,!1,!1)},"JU.T3");d(b,"dumpInfo",function(){return"\n"+this.xyz+"\ninternal matrix representation:\n"+this.toString()});b.dumpSeitz=d(b,"dumpSeitz",function(a,c){for(var b=new JU.SB,g=C(4,0),d=0;3>d;d++){a.getRow(d,g);b.append("[\t");for(var f=0;3>f;f++)b.appendI(w(g[f])).append("\t");f=g[3];f*=f==w(f)?4:48;b.append(JS.SymmetryOperation.twelfthsOf(c?JS.SymmetryOperation.normalizeTwelfths(f/48,48,!0):w(f))).append("\t]\n")}return b.toString()},"JU.M4,~B");d(b,"setMatrixFromXYZ",function(a,c,b){if(null==
a)return!1;this.xyzOriginal=a;this.divisor=JS.SymmetryOperation.setDivisor(a);a=a.toLowerCase();this.setModDim(c);var g=!1,d=!0;a.startsWith("!")&&(a.startsWith("!nohalf!")?(d=!1,this.xyzOriginal=a=a.substring(8)):(g=!1,a=a.substring(1)));if(0==a.indexOf("xyz matrix:"))return this.xyz=a,JU.Parser.parseStringInfestedFloatArray(a,null,this.linearRotTrans),this.setFromMatrix(null,g);if(0==a.indexOf("[[")){a=a.$replace("["," ").$replace("]"," ").$replace(","," ");JU.Parser.parseStringInfestedFloatArray(a,
null,this.linearRotTrans);for(c=this.linearRotTrans.length;0<=--c;)if(Float.isNaN(this.linearRotTrans[c]))return!1;this.setMatrix(g);this.isFinalized=!0;this.xyz=(this.isBio=0<=a.indexOf("bio"))?this.xyzOriginal=sa(this,JS.SymmetryOperation,"toString",[]):JS.SymmetryOperation.getXYZFromMatrix(this,!1,!1,!1);return!0}if(0==c&&0<=a.indexOf("x4"))for(c=14;4<=--c;)if(0<=a.indexOf("x"+c)){this.setModDim(c-3);break}c=null;a.endsWith("m")?(this.timeReversal=0<=a.indexOf("-m")?-1:1,b=!0):0<=a.indexOf("mz)")&&
(b=a.indexOf("("),c=a.substring(b+1,a.length-1),a=a.substring(0,b),b=!1);d=JS.SymmetryOperation.getMatrixFromString(this,a,this.linearRotTrans,b,d,!0);if(null==d)return!1;this.xyzCanonical=d;null!=c&&(b=1==JU.M4.newA16(this.linearRotTrans).determinant3(),this.timeReversal=0>a.indexOf("-x")==0>c.indexOf("-mx")==b?1:-1);this.setMatrix(g);this.xyz=g?JS.SymmetryOperation.getXYZFromMatrix(this,!0,!1,!1):this.doNormalize?d:a;0!=this.timeReversal&&(this.xyz+=1==this.timeReversal?",m":",-m");JU.Logger.debugging&&
JU.Logger.debug(""+this);return!0},"~S,~N,~B");b.setDivisor=d(b,"setDivisor",function(a){for(var c=a.indexOf("/"),b=a.length;0<c&&c<b-1;){var g=a.charAt(c+1);if(0>"2346".indexOf(g)||c<b-2&&Character.isDigit(a.charAt(c+2)))return 0;c=a.indexOf("/",c+1)}return 12},"~S");d(b,"setModDim",function(a){this.modDim=a;0<a&&(this.myLabels=JS.SymmetryOperation.labelsXn);this.linearRotTrans=C((a+4)*(a+4),0)},"~N");d(b,"setMatrix",function(a){16<this.linearRotTrans.length?this.setGamma(a):(this.setA(this.linearRotTrans),
a&&(a=JU.P3.new3(this.m03,this.m13,this.m23),this.invert(),this.rotate(a),a.scale(-1),this.setTranslation(a)))},"~B");d(b,"setFromMatrix",function(a,c){var b=0,g=0;this.myLabels=0==this.modDim?JS.SymmetryOperation.labelsXYZ:JS.SymmetryOperation.labelsXn;for(var d=0,f=3+this.modDim,h=0;d<f;h++){if(Float.isNaN(this.linearRotTrans[h]))return!1;b=this.linearRotTrans[h];1E-5>Math.abs(b)&&(b=0);if(0==(h+1)%(f+1)){var j=0==this.divisor?w(b)&255:this.divisor;0==j&&(j=12);b=JS.SymmetryOperation.finalizeF(b,
this.divisor);null!=a&&g<a.length&&(b+=a[g++]);b=JS.SymmetryOperation.normalizeTwelfths((0>b?-1:1)*Math.abs(b*j)/j,j,this.doNormalize);0==this.divisor&&(b=JS.SymmetryOperation.toDivisor(b,j));d++}this.linearRotTrans[h]=b}this.linearRotTrans[this.linearRotTrans.length-1]=this.divisor;this.setMatrix(c);this.isFinalized=null==a;this.xyz=JS.SymmetryOperation.getXYZFromMatrix(this,!0,!1,!1);return!0},"~A,~B");b.getMatrixFromXYZ=d(b,"getMatrixFromXYZ",function(a,c,b){null==c&&(c=C(16,0));a=JS.SymmetryOperation.getMatrixFromString(null,
a,c,!1,b,!0);if(null==a)return null;b=new JU.M4;b.setA(c);return JS.SymmetryOperation.div12(b,JS.SymmetryOperation.setDivisor(a))},"~S,~A,~B");b.getJmolCanonicalXYZ=d(b,"getJmolCanonicalXYZ",function(a){try{return JS.SymmetryOperation.getMatrixFromString(null,a,null,!1,!0,!0)}catch(c){if(da(c,Exception))return null;throw c;}},"~S");b.getMatrixFromString=d(b,"getMatrixFromString",function(a,c,b,d,m,f){var h=!1,j=!1,l=!1;c=JU.PT.rep(c,"[bio[","");var k=null==a?0:a.modDim,n=4+k,p=null==a?JS.SymmetryOperation.setDivisor(c):
a.divisor,r=m&&(null==a?!c.startsWith("!"):a.doNormalize),q=0<k?3:0;if(null!=b){for(var s=b.length-1,t=s;0<=--t;)b[t]=0;b[s]=1}s=c.indexOf(";")+1;0!=s&&(d=!0,s==c.length&&(c+="0,0,0"));var pa=-1;a=null==a||0==k?null:a.myLabels;null==a&&(a=JS.SymmetryOperation.labelsXYZ);c=c.toLowerCase()+",";c=c.$replace("(",",");0<k&&(c=JS.SymmetryOperation.replaceXn(c,k+3));for(var v=0,u=0,Q=0,C,y=0,z=0,G=0,L=1,x="",B=f?"":null,D=H(1,0),E=c.length,t=0;t<E;t++){switch((C=c.charAt(t)).charCodeAt(0)){case 59:break;
case 39:case 32:case 123:case 125:case 33:continue;case 45:l=!0;continue;case 43:l=!1;continue;case 47:z=0;h=!0;continue;case 120:case 121:case 122:case 97:case 98:case 99:case 100:case 101:case 102:case 103:case 104:u=Q*n;h="x"<=C?C.charCodeAt(0)-120:C.charCodeAt(0)-97+q;v=u+h;l=l?-1:1;d&&0!=y?(null!=b&&(b[v]=y),l=w(y),y=0):null!=b&&(b[v]=l);null!=B&&(x+=JS.SymmetryOperation.plusMinus(x,l,a[h],!1));break;case 44:if(0!=s){if(0<s){pa=t;t=s-1;s=-t;z=y=0;continue}s=t+1;t=pa}y=JS.SymmetryOperation.normalizeTwelfths(y,
0==z?12:0==p?z:p,r);null!=b&&(b[u+n-1]=0==p&&0<z?y=JS.SymmetryOperation.toDivisor(G,z):y);null!=B&&(x+=JS.SymmetryOperation.xyzFraction12(y,0==p?z:p,!1,m),B+=(""===B?"":",")+x);if(Q==n-2)return f?B:"ok";z=G=y=0;x="";u+=4;if(2<Q++&&0==k)return JU.Logger.warn("Symmetry Operation? "+c),null;break;case 46:j=!0;L=1;continue;case 48:if(!j&&12==p&&(h||!d))continue;default:var O=C.charCodeAt(0)-48;if(0<=O&&9>=O){if(j){L/=10;0>y&&(l=!0);y+=L*O*(l?-1:1);continue}if(h){D[0]=t;z=JU.PT.parseIntNext(c,D);if(0>
z)return null;t=D[0]-1;0==y?null!=b&&(b[v]/=z):(G=w(y),y/=z)}else y=10*y+(l?-1:1)*O}else JU.Logger.warn("symmetry character?"+C)}j=h=l=!1}return null},"JS.SymmetryOperation,~S,~A,~B,~B,~B");b.replaceXn=d(b,"replaceXn",function(a,c){for(var b=c;0<=--b;)a=JU.PT.rep(a,JS.SymmetryOperation.labelsXn[b],JS.SymmetryOperation.labelsXnSub[b]);return a},"~S,~N");b.toDivisor=d(b,"toDivisor",function(a,c){var b=w(a);b!=a&&(b=a-b,c=w(Math.abs(c/b)),b=w(Math.abs(a)/b));return(b<<8)+c},"~N,~N");b.xyzFraction12=
d(b,"xyzFraction12",function(a,c,b,d){if(0==a)return"";12!=c&&(a=w(a),c=a&255,a>>=8);var m=S(c/2);if(b)for(;0>a;)a+=c;else if(d){for(;a>m;)a-=c;for(;a<-m;)a+=c}c=12==c?JS.SymmetryOperation.twelfthsOf(a):0==a?"0":a+"/"+c;return"0"==c.charAt(0)?"":0<a?"+"+c:c},"~N,~N,~B,~B");b.twelfthsOf=d(b,"twelfthsOf",function(a){var c="";0>a&&(a=-a,c="-");var b=12,d=Math.round(a);if(0.01<Math.abs(d-a)){a/=12;for(b=3;20>b;b++){var m=a*b,d=Math.round(m);if(0.01>Math.abs(d-m))break}if(20==b)return c+a}else{if(12==
d)return c+"1";if(12>d)return c+JS.SymmetryOperation.twelfths[d%12];switch(d%12){case 0:return c+S(d/12);case 2:case 10:b=6;break;case 3:case 9:b=4;break;case 4:case 8:b=3;break;case 6:b=2}d=S(d*b/12)}return c+d+"/"+b},"~N");b.plusMinus=d(b,"plusMinus",function(a,c,b,d){var m;return(0==c?"":(0>c?"-":0==a.length?"":"+")+(1==c||-1==c?"":1>(m=Math.abs(c))&&d?JS.SymmetryOperation.twelfthsOf(12*m):""+w(m)))+b},"~S,~N,~S,~B");b.normalizeTwelfths=d(b,"normalizeTwelfths",function(a,c,b){a*=c;var d=S(c/2);
if(b){for(;a>d;)a-=c;for(;a<=-d;)a+=c}return a},"~N,~N,~B");b.getXYZFromMatrix=d(b,"getXYZFromMatrix",function(a,c,b,d){return JS.SymmetryOperation.getXYZFromMatrixFrac(a,c,b,d,!1)},"JU.M4,~B,~B,~B");b.getXYZFromMatrixFrac=d(b,"getXYZFromMatrixFrac",function(a,c,b,d,m){var f="",h=U(a,"JS.SymmetryOperation")?a:null;if(null!=h&&0<h.modDim)return JS.SymmetryOperation.getXYZFromRsVs(h.rsvs.getRotation(),h.rsvs.getTranslation(),c);var h=C(4,0),j=w(a.getElement(3,3));1==j?j=12:a.setElement(3,3,1);for(var l=
0;3>l;l++){var k=3>l?0:3;a.getRow(l,h);for(var n="",p=0;3>p;p++){var r=h[p];0!=JS.SymmetryOperation.approx(r)&&(n+=JS.SymmetryOperation.plusMinus(n,r,JS.SymmetryOperation.labelsXYZ[p+k],m))}if(0!=(c?h[3]:JS.SymmetryOperation.approx(h[3])))k=JS.SymmetryOperation.xyzFraction12(c?h[3]:h[3]*j,j,b,d),""===n&&(k="+"==k.charAt(0)?k.substring(1):k),n+=k;f+=","+(""===n?"0":n)}return f.substring(1)},"JU.M4,~B,~B,~B,~B");d(b,"rotateAxes",function(a,c,b,d){var m=Array(3);this.getRotationScale(d);for(var f=a.length;0<=
--f;)b.setT(a[f]),c.toFractional(b,!0),d.rotate(b),c.toCartesian(b,!0),m[f]=JU.V3.newV(b);return m},"~A,JS.UnitCell,JU.P3,JU.M3");b.fcoord=d(b,"fcoord",function(a,c){return JS.SymmetryOperation.opF(a.x)+c+JS.SymmetryOperation.opF(a.y)+c+JS.SymmetryOperation.opF(a.z)},"JU.T3,~S");b.approx=d(b,"approx",function(a){return JU.PT.approx(a,100)},"~N");b.approx6=d(b,"approx6",function(a){return JU.PT.approx(a,1E6)},"~N");b.getXYZFromRsVs=d(b,"getXYZFromRsVs",function(a,c,b){a=a.getArray();c=c.getArray();
for(var d=a.length,m="",f=0;f<d;f++){for(var m=m+",",h=0;h<d;h++){var j=a[f][h];0!=j&&(m+=(0>j?"-":m.endsWith(",")?"":"+")+(1==Math.abs(j)?"":""+Math.abs(j))+"x"+(h+1))}m+=JS.SymmetryOperation.xyzFraction12(S(c[f][0]*(b?1:12)),12,!1,!0)}return JU.PT.rep(m.substring(1),",+",",")},"JU.Matrix,JU.Matrix,~B");d(b,"toString",function(){return null==this.rsvs?sa(this,JS.SymmetryOperation,"toString",[]):sa(this,JS.SymmetryOperation,"toString",[])+" "+this.rsvs.toString()});d(b,"getMagneticOp",function(){return 2147483647==
this.magOp?this.magOp=w(this.determinant3()*this.timeReversal):this.magOp});d(b,"setTimeReversal",function(a){this.timeReversal=a;0<=this.xyz.indexOf("m")&&(this.xyz=this.xyz.substring(0,this.xyz.indexOf("m")));0!=a&&(this.xyz+=1==a?",m":",-m")},"~N");d(b,"getCentering",function(){this.isFinalized||this.doFinalize();null==this.centering&&!this.unCentered&&(0==this.modDim&&1==this.m00&&1==this.m11&&1==this.m22&&0==this.m01&&0==this.m02&&0==this.m10&&0==this.m12&&0==this.m20&&0==this.m21&&(0!=this.m03||
0!=this.m13||0!=this.m23)?(this.isCenteringOp=!0,this.centering=JU.V3.new3(this.m03,this.m13,this.m23)):(this.unCentered=!0,this.centering=null));return this.centering});d(b,"fixMagneticXYZ",function(a,c,b){if(0==this.timeReversal)return c;var d=c.indexOf("m"),d=d-S((3-this.timeReversal)/2);c=0>d?c:c.substring(0,d);if(!b)return c+(0<this.timeReversal?" +1":" -1");a=JU.M4.newM4(a);a.m03=a.m13=a.m23=0;0>this.getMagneticOp()&&a.scale(-1);return c+="("+JU.PT.rep(JU.PT.rep(JU.PT.rep(JS.SymmetryOperation.getXYZFromMatrix(a,
!1,!1,!1),"x","mx"),"y","my"),"z","mz")+")"},"JU.M4,~S,~B");d(b,"getInfo",function(){null==this.info&&(this.info=new java.util.Hashtable,this.info.put("xyz",this.xyz),null!=this.centering&&this.info.put("centering",this.centering),this.info.put("index",Integer.$valueOf(this.number-1)),this.info.put("isCenteringOp",Boolean.$valueOf(this.isCenteringOp)),null!=this.linearRotTrans&&this.info.put("linearRotTrans",this.linearRotTrans),this.info.put("modulationDimension",Integer.$valueOf(this.modDim)),this.info.put("matrix",
JU.M4.newM4(this)),3.4028235E38!=this.magOp&&this.info.put("magOp",Float.$valueOf(this.magOp)),this.info.put("id",Integer.$valueOf(this.opId)),this.info.put("timeReversal",Integer.$valueOf(this.timeReversal)),null!=this.xyzOriginal&&this.info.put("xyzOriginal",this.xyzOriginal));return this.info});b.normalizeOperationToCentroid=d(b,"normalizeOperationToCentroid",function(a,c,b,d,m){if(!(0>=m)){var f=0,h=0,j=0;null==JS.SymmetryOperation.atomTest&&(JS.SymmetryOperation.atomTest=new JU.P3);for(var l=
d+m;d<l;d++)c.rotTrans2(b[d],JS.SymmetryOperation.atomTest),f+=JS.SymmetryOperation.atomTest.x,h+=JS.SymmetryOperation.atomTest.y,j+=JS.SymmetryOperation.atomTest.z;f/=m;h/=m;for(j/=m;-0.001>f||1.001<=f;)c.m03+=0>f?1:-1,f+=0>f?1:-1;if(1<a)for(;-0.001>h||1.001<=h;)c.m13+=0>h?1:-1,h+=0>h?1:-1;if(2<a)for(;-0.001>j||1.001<=j;)c.m23+=0>j?1:-1,j+=0>j?1:-1}},"~N,JU.M4,~A,~N,~N");b.getLatticeCentering=d(b,"getLatticeCentering",function(a){for(var c=new JU.Lst,b=0;b<a.length;b++){var d=null==a[b]?null:a[b].getCentering();
null!=d&&c.addLast(JU.P3.newP(d))}return c},"~A");d(b,"getOpIsCCW",function(){-1==this.opType&&this.setOpTypeAndOrder();return this.opIsCCW});d(b,"getOpType",function(){-1==this.opType&&this.setOpTypeAndOrder();return this.opType});d(b,"getOpOrder",function(){-1==this.opType&&this.setOpTypeAndOrder();return this.opOrder});d(b,"getOpPoint",function(){-1==this.opType&&this.setOpTypeAndOrder();return this.opPoint});d(b,"getOpAxis",function(){-1==this.opType&&this.setOpTypeAndOrder();return this.opAxis});
d(b,"getOpPoint2",function(){return this.opPoint2});d(b,"getOpTrans",function(){-1==this.opType&&this.setOpTypeAndOrder();return null==this.opTrans?this.opTrans=new JU.V3:this.opTrans});b.opGet3code=d(b,"opGet3code",function(a){for(var c=0,b=C(4,0),d=0;3>d;d++){a.getRow(d,b);for(var m=0;3>m;m++)switch(w(b[m])){case 1:c|=m+1<<(2-d<<3);break;case -1:c|=16+m+1<<(2-d<<3)}}return c},"JU.M4");b.opGet3x=d(b,"opGet3x",function(a){if(0!=a.m22)return JS.SymmetryOperation.x;a=JS.SymmetryOperation.opGet3code(a);
for(var c=0;8>c;c++)if(a==JS.SymmetryOperation.C3codes[c])return null==JS.SymmetryOperation.xneg&&(JS.SymmetryOperation.xneg=JU.V3.newV(JS.SymmetryOperation.x),JS.SymmetryOperation.xneg.scale(-1)),JS.SymmetryOperation.xneg;return JS.SymmetryOperation.x},"JU.M4");d(b,"setOpTypeAndOrder",function(){this.clearOp();var a=Math.round(this.determinant3()),c=Math.round(this.m00+this.m11+this.m22),b=0,d=0,m=JS.SymmetryOperation.x;switch(c){case 3:JS.SymmetryOperation.hasTrans(this)?(this.opType=1,this.opTrans=
new JU.V3,this.getTranslation(this.opTrans),this.opOrder=2):(this.opType=0,this.opOrder=1);return;case -3:this.opType=4;b=2;break;default:b=c*a+3,5==b&&(b=6),0<a?(this.opType=2,d=S(180*Math.acos((c-1)/2)/3.141592653589793),120==d&&(null==this.opX&&(this.opX=JS.SymmetryOperation.opGet3x(this)),m=this.opX)):2==b?this.opType=8:(this.opType=6,3==b&&(b=6),d=S(180*Math.acos((-c-1)/2)/3.141592653589793),120==d&&(null==this.opX&&(this.opX=JS.SymmetryOperation.opGet3x(this)),m=this.opX))}this.opOrder=b;var f=
new JU.M4,a=new JU.P3,c=JU.P3.newP(m);f.setM4(this);for(var h=new JU.P3,j=JU.P3.newP(c),l=new JU.P3,k=JU.P3.newP(c),n=new JU.P3,p=1;p<b;p++)f.mul(this),this.rotTrans(a),this.rotTrans(c),1==p&&n.setT(c),h.add(a),j.add(c),6==this.opType&&(0==p%2?k.add(c):l.add(c));this.opTrans=new JU.V3;f.getTranslation(this.opTrans);this.opTrans.scale(1/b);p=JS.SymmetryOperation.approx6(this.opTrans.length());this.opPoint=new JU.P3;var r=null,f=!0;switch(this.opType){case 4:j.add2(c,m);j.scale(0.5);this.opPoint=JU.P3.newP(JS.SymmetryOperation.opClean6(j));
f=JS.SymmetryOperation.checkOpPoint(this.opPoint);break;case 6:l.scale(2/b);k.scale(2/b);r=JU.V3.newVsub(l,k);r.normalize();this.opAxis=JS.SymmetryOperation.opClean6(r);h.add2(l,k);j.scale(1/b);this.opPoint.setT(JS.SymmetryOperation.opClean6(j));f=JS.SymmetryOperation.checkOpPoint(this.opPoint);180!=d&&(c.cross(m,c),this.opIsCCW=Boolean.$valueOf(0>c.dot(r)));break;case 2:r=JU.V3.newVsub(j,h);r.normalize();this.opAxis=JS.SymmetryOperation.opClean6(r);h.scale(1/b);a.setT(h);0<p&&h.sub(this.opTrans);
this.opPoint.setT(h);JS.SymmetryOperation.opClean6(this.opPoint);180!=d&&(c.cross(m,c),this.opIsCCW=Boolean.$valueOf(0>c.dot(r)));if(f=(new Boolean(f&JS.SymmetryOperation.checkOpAxis(a,0==p?this.opAxis:this.opTrans,h,new JU.V3,new JU.V3,null))).valueOf())this.opPoint.setT(h),JS.SymmetryOperation.checkOpAxis(this.opPoint,this.opAxis,c,new JU.V3,new JU.V3,this.opPoint)&&(this.opPoint2=JU.P3.newP(c)),0<p&&(h.scaleAdd2(0.5,this.opTrans,this.opPoint),f=JS.SymmetryOperation.checkOpPoint(h),null!=this.opPoint2&&
(h.scaleAdd2(0.5,this.opTrans,this.opPoint2),JS.SymmetryOperation.checkOpPoint(h)||(this.opPoint2=null)),0>r.dot(a)&&(f=!1));break;case 8:a.sub(this.opTrans),a.scale(0.5),this.opPoint.setT(a),n.sub(this.opTrans),this.opAxis=JU.V3.newVsub(n,m),c.scaleAdd2(0.5,this.opAxis,m),this.opAxis.normalize(),this.opPlane=new JU.P4,a.set(m.x+1.1,m.y+1.7,m.z+2.1),a.scale(0.5),this.rotTrans(a),a.sub(this.opTrans),a.scaleAdd2(0.5,m,a),a.scale(0.5),r=new JU.V3,f=JS.SymmetryOperation.checkOpPlane(this.opPoint,a,c,
this.opPlane,r,new JU.V3),JS.SymmetryOperation.opClean6(this.opPlane),0==JS.SymmetryOperation.approx6(this.opPlane.w)&&(this.opPlane.w=0),JS.SymmetryOperation.approx6Pt(this.opAxis),JS.SymmetryOperation.normalizePlane(this.opPlane)}if(0<p){JS.SymmetryOperation.opClean6(this.opTrans);b=1;if(8==this.opType){if(0==this.opTrans.z&&1.25==this.opTrans.lengthSquared()||0.5==this.opTrans.z&&1.5==this.opTrans.lengthSquared()?(b=1.25,this.opIsLong=!0):b=0.78,this.opGlide=JU.V3.newV(this.opTrans),this.fixNegTrans(this.opGlide),
0==this.opGlide.length()&&(this.opGlide=null),(1==this.opTrans.x||1==this.opTrans.y||1==this.opTrans.z)&&-1==this.m22)f=!1}else 0==this.opTrans.z&&1.25==this.opTrans.lengthSquared()&&(b=1.25,this.opIsLong=!0);this.opType|=1;if(Math.abs(JS.SymmetryOperation.approx(this.opTrans.x))>=b||Math.abs(JS.SymmetryOperation.approx(this.opTrans.y))>=b||Math.abs(JS.SymmetryOperation.approx(this.opTrans.z))>=b)f=!1}else this.opTrans=null;f||(this.isIrrelevant=!0)});d(b,"fixNegTrans",function(a){a.x=JS.SymmetryOperation.normHalf(a.x);
a.y=JS.SymmetryOperation.normHalf(a.y);a.z=JS.SymmetryOperation.normHalf(a.z)},"JU.V3");b.normalizePlane=d(b,"normalizePlane",function(a){JS.SymmetryOperation.approx6Pt(a);a.w=JS.SymmetryOperation.approx6(a.w);(0<a.w||0==a.w&&(0>a.x||0==a.x&&0>a.y||0==a.y&&0>a.z))&&a.scale4(-1);JS.SymmetryOperation.opClean6(a);a.w=JS.SymmetryOperation.approx6(a.w)},"JU.P4");b.isCoaxial=d(b,"isCoaxial",function(a){return 1==Math.abs(JS.SymmetryOperation.approx(a.x))||1==Math.abs(JS.SymmetryOperation.approx(a.y))||
1==Math.abs(JS.SymmetryOperation.approx(a.z))},"JU.T3");d(b,"clearOp",function(){this.isFinalized||this.doFinalize();this.isIrrelevant=!1;this.opIsCCW=this.opPlane=this.opPoint=this.opPoint2=this.opTrans=null;this.opIsLong=!1});b.hasTrans=d(b,"hasTrans",function(a){return 0!=JS.SymmetryOperation.approx6(a.m03)||0!=JS.SymmetryOperation.approx6(a.m13)||0!=JS.SymmetryOperation.approx6(a.m23)},"JU.M4");b.checkOpAxis=d(b,"checkOpAxis",function(a,c,b,d,m,f){null==JS.SymmetryOperation.opPlanes&&(JS.SymmetryOperation.opPlanes=
JU.BoxInfo.getBoxFacesFromOABC(null));for(var h=JU.BoxInfo.faceOrder,j=null==f?1:-1,l=0;6>l;l++){var k=JU.Measure.getIntersection(a,c,JS.SymmetryOperation.opPlanes[h[l]],b,d,m);if(null!=k&&JS.SymmetryOperation.checkOpPoint(k)&&0>c.dot(d)*j&&(null==f||0<=JS.SymmetryOperation.approx(f.distance(k)-0.5)))return!0}return!1},"JU.P3,JU.V3,JU.P3,JU.V3,JU.V3,JU.P3");b.opClean6=d(b,"opClean6",function(a){0==JS.SymmetryOperation.approx6(a.x)&&(a.x=0);0==JS.SymmetryOperation.approx6(a.y)&&(a.y=0);0==JS.SymmetryOperation.approx6(a.z)&&
(a.z=0);return a},"JU.T3");b.checkOpPoint=d(b,"checkOpPoint",function(a){return JS.SymmetryOperation.checkOK(a.x,0)&&JS.SymmetryOperation.checkOK(a.y,0)&&JS.SymmetryOperation.checkOK(a.z,0)},"JU.T3");b.checkOK=d(b,"checkOK",function(a,c){return 0!=c||0<=JS.SymmetryOperation.approx(a)&&1>=JS.SymmetryOperation.approx(a)},"~N,~N");b.checkOpPlane=d(b,"checkOpPlane",function(a,c,b,d,m,f){JU.Measure.getPlaneThroughPoints(a,c,b,m,f,d);c=JU.BoxInfo.unitCubePoints;f=b=0;for(var h=8;0<=--h;){var j=JU.Measure.getPlaneProjection(c[h],
d,a,m);switch(w(Math.signum(JS.SymmetryOperation.approx6(j)))){case 1:if(0<f)return!0;b++;break;case -1:if(0<b)return!0;f++}}return!(8==f||8==b)},"JU.P3,JU.P3,JU.P3,JU.P4,JU.V3,JU.V3");b.getAdditionalOperations=d(b,"getAdditionalOperations",function(a){for(var c=a.length,b=new JU.Lst,d=new JU.SB,m=new java.util.Hashtable,f=new JU.V3,h=0;h<c;h++){var j=a[h];b.addLast(j);var l=j.getOpName(1);d.append(l).appendC(";");0!=(j.getOpType()&8)?JS.SymmetryOperation.addCoincidentMap(m,j,8,f):3==j.getOpType()&&
JS.SymmetryOperation.addCoincidentMap(m,j,3,null)}for(h=1;h<c;h++)a[h].addOps(d,b,m,c,h,f);return b.toArray(Array(b.size()))},"~A");d(b,"addOps",function(a,c,b,d,m,f){var h=new JU.V3;this.getTranslation(h);for(var j=8==(this.getOpType()&8),l=3==this.getOpType(),k=new JU.V3,n=null,p=3;-3<=--p;)for(var r=3;-3<=--r;)for(var q=3;-3<=--q;)null==n&&(n=new JS.SymmetryOperation(null,0,!1)),k.set(p,r,q),!this.checkOpSimilar(k,f)&&n.opCheckAdd(this,h,d,k,a,c,m+1)&&(j?JS.SymmetryOperation.addCoincidentMap(b,
n,8,f):l&&JS.SymmetryOperation.addCoincidentMap(b,n,3,null),n=null)},"JU.SB,JU.Lst,java.util.Map,~N,~N,JU.V3");b.addCoincidentMap=d(b,"addCoincidentMap",function(a,c,b,d){if(!c.isIrrelevant){var m=c.getOpName(0),f=a.get(m);c.iCoincident=0;b=3==b;if(null==f)a.put(m,f=new JU.Lst);else if(b){if(6==c.opOrder)for(a=f.size();0<=--a;)if(d=f.get(a),!d.isIrrelevant)switch(d.opOrder){case 3:d.isIrrelevant=!0}c.iCoincident=1}else{m=null;for(a=f.size();0<=--a;)if(m=f.get(a),null!=c.opGlide&&null!=m.opGlide){d.sub2(c.opGlide,
m.opGlide);if(1E-6>d.lengthSquared()){c.isIrrelevant=!0;return}d.add2(c.opGlide,m.opGlide);if(1E-6>d.lengthSquared()){c.isIrrelevant=!0;return}d.add2(c.opAxis,m.opAxis);if(1E-6>d.lengthSquared()){c.isIrrelevant=!0;return}}else if(null==c.opGlide&&null==m.opGlide){d.add2(c.opAxis,m.opAxis);if(1E-6>d.lengthSquared()){c.isIrrelevant=!0;return}d.sub2(c.opAxis,m.opAxis);if(1E-6>d.lengthSquared()){c.isIrrelevant=!0;return}}0==m.iCoincident?(c.iCoincident=1,m.iCoincident=-1):c.iCoincident=-m.iCoincident}f.addLast(c)}},
"java.util.Map,JS.SymmetryOperation,~N,JU.V3");d(b,"checkOpSimilar",function(a,c){switch(this.getOpType()&-2){default:return!1;case 0:return!0;case 2:return 0==JS.SymmetryOperation.approx6(a.dot(this.opAxis)-a.length());case 8:return c.cross(a,this.opAxis),0==JS.SymmetryOperation.approx6(c.length())?!1:0==JS.SymmetryOperation.approx6(a.dot(this.opAxis))}},"JU.V3,JU.V3");d(b,"opCheckAdd",function(a,c,b,d,m,f){this.setM4(a);a=JU.V3.newV(d);a.add(c);this.setTranslation(a);this.isFinalized=!0;this.setOpTypeAndOrder();
if(this.isIrrelevant||0==this.opType||1==this.opType)return!1;c=this.getOpName(1)+";";if(0==(this.opType&8)&&0<=m.indexOf(c))return!1;m.append(c);f.addLast(this);this.isFinalized=!0;this.xyz=JS.SymmetryOperation.getXYZFromMatrix(this,!1,!1,!1);return!0},"JS.SymmetryOperation,JU.V3,~N,JU.V3,JU.SB,JU.Lst,~N");b.approx6Pt=d(b,"approx6Pt",function(a){null!=a&&(a.x=JS.SymmetryOperation.approx6(a.x),a.y=JS.SymmetryOperation.approx6(a.y),a.z=JS.SymmetryOperation.approx6(a.z))},"JU.T3");b.normalize12ths=
d(b,"normalize12ths",function(a){a.x=JU.PT.approx(a.x,12);a.y=JU.PT.approx(a.y,12);a.z=JU.PT.approx(a.z,12)},"JU.V3");d(b,"getCode",function(){if(null!=this.opAxisCode)return this.opAxisCode;var a=this.getOpName(2).charAt(0),c=this.opOrder,b=null==this.opIsCCW?0:this.opIsCCW===Boolean.TRUE?1:2;switch(a.charCodeAt(0)){case 71:a=JS.SymmetryOperation.getGlideFromTrans(this.opTrans,this.opPlane);case 80:JS.SymmetryOperation.isCoaxial(this.opAxis)||(a="P"==a?"p":String.fromCharCode(a.charCodeAt(0)-32));
break;case 83:var d=this.opTrans.length();if(null!=this.opIsCCW&&d<(1<d?6:0.5)==(this.opIsCCW===Boolean.TRUE))a="w";break;case 82:JS.SymmetryOperation.isCoaxial(this.opAxis)||(a="o"),0==this.opPoint.length()&&(a="o"==a?"q":"Q")}return this.opAxisCode=""+a+"."+String.fromCharCode(48+c)+"."+b+"."});b.getGlideFromTrans=d(b,"getGlideFromTrans",function(a,c){var b=Math.abs(JS.SymmetryOperation.approx(12*a.x)),d=Math.abs(JS.SymmetryOperation.approx(12*a.y)),m=Math.abs(JS.SymmetryOperation.approx(12*a.z));
9==b&&(b=3);9==d&&(d=3);9==m&&(m=3);var f=3;0==b&&f--;0==d&&f--;0==m&&f--;m=w(b+d+m);switch(f){default:case 1:return 0!=b?"a":0!=d?"b":"c";case 2:switch(m){case 6:return"d";case 12:if(b=JU.P3.newP(c),b.normalize(),1==JS.SymmetryOperation.approx(b.x+b.y+b.z))return"n"}break;case 3:switch(m){case 9:return"d";case 18:return"n"}}return"g"},"JU.T3,JU.T3");b.rotateAndTranslatePoint=d(b,"rotateAndTranslatePoint",function(a,c,b,d,m,f){a.rotTrans2(c,f);f.add3(b,d,m)},"JU.M4,JU.P3,~N,~N,~N,JU.P3");b.transformStr=
d(b,"transformStr",function(a,c,b,d,m,f,h,j,l){null==b&&(b=JU.M4.newM4(c),b.invert());null==d&&(d=new JU.M4);null==m&&(m=C(16,0));a=JS.SymmetryOperation.getMatrixFromXYZ(a,m,!0);null!=f&&a.add(f);d.setM4(b);d.mul(a);null!=c&&d.mul(c);null!=h&&a.add(h);if(j){d.getColumn(3,m);for(c=0;3>c;c++)m[c]%=1;d.setColumnA(3,m)}return JS.SymmetryOperation.getXYZFromMatrixFrac(d,!1,!0,!1,l)},"~S,JU.M4,JU.M4,JU.M4,~A,JU.T3,JU.T3,~B,~B");b.transformXyzT=d(b,"transformXyzT",function(a,c){return JS.SymmetryOperation.transformStr(a,
JS.UnitCell.toTrm(c,null),null,null,null,null,null,!0,!1)},"~S,~S");b.stringToMatrix=d(b,"stringToMatrix",function(a){var c=JS.SymmetryOperation.setDivisor(a),b=C(16,0);JS.SymmetryOperation.getMatrixFromString(null,a,b,!0,!1,!1);return JS.SymmetryOperation.div12(JU.M4.newA16(b),c)},"~S");b.getTransformABC=d(b,"getTransformABC",function(a,c){if(null==a)return"a,b,c";var b=JU.M4.newM4(a),d=new JU.V3;b.getTranslation(d);d.scale(-1);b.add(d);b.transpose();b=JS.SymmetryOperation.getXYZFromMatrixFrac(b,
!1,!0,!1,!0).$replace("x","a").$replace("y","b").$replace("z","c");if(1E-12>d.lengthSquared())return b;d.scale(-1);return b+";"+(c?JS.SymmetryOperation.norm3(d):JS.SymmetryOperation.opF(d.x)+","+JS.SymmetryOperation.opF(d.y)+","+JS.SymmetryOperation.opF(d.z))},"~O,~B");b.norm3=d(b,"norm3",function(a){return JS.SymmetryOperation.norm(a.x)+","+JS.SymmetryOperation.norm(a.y)+","+JS.SymmetryOperation.norm(a.z)},"JU.T3");b.norm=d(b,"norm",function(a){return JS.SymmetryOperation.opF(JS.SymmetryOperation.normHalf(a))},
"~N");b.normHalf=d(b,"normHalf",function(a){for(;-0.5>=a;)a+=1;for(;0.5<a;)a-=1;return a},"~N");b.toPoint=d(b,"toPoint",function(a,c){null==c&&(c=new JU.P3);var b=JU.PT.split(a,",");c.set(JU.PT.parseFloatFraction(b[0]),JU.PT.parseFloatFraction(b[1]),JU.PT.parseFloatFraction(b[2]));return c},"~S,JU.P3");b.atomTest=null;b.twelfths=P(-1,"0 1/12 1/6 1/4 1/3 5/12 1/2 7/12 2/3 3/4 5/6 11/12".split(" "));b.labelsXYZ=P(-1,["x","y","z"]);b.labelsXn=P(-1,"x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11 x12 x13".split(" "));
b.labelsXnSub=P(-1,"xyzabcdefghij".split(""));b.x=JU.P3.new3(3.141592653589793,2.718281828459045,8.539734222673566);b.C3codes=H(-1,[200978,1184513,1245458,135953,1245442,131857,200962,1180417]);b.xneg=null;b.opPlanes=null});X("JS");fa(null,"JS.SymmetryInfo",["JU.PT","JS.SpaceGroup","$.SymmetryOperation","JU.SimpleUnitCell"],function(){var b=ba(function(){this.isCurrentCell=!0;this.displayName=null;this.isMultiCell=this.coordinatesAreFractional=!1;this.cellRange=this.infoStr=this.additionalOperations=
this.symmetryOperations=this.sgTitle=this.sgName=null;this.latticeType="P";this.intlTableJmolID=this.intlTableNo=null;this.spaceGroupIndex=0;this.sgDerived=this.intlTableTransform=this.intlTableIndex=this.strSUPERCELL=this.spaceGroupF2CParams=this.spaceGroupF2C=this.spaceGroupF2CTitle=null;M(this,arguments)},JS,"SymmetryInfo",null);d(b,"setSymmetryInfoFromModelkit",function(a){this.cellRange=null;this.sgName=a.getName();this.intlTableJmolID=a.jmolId;this.intlTableNo=a.itaNumber;this.latticeType=a.latticeType;
this.symmetryOperations=a.finalOperations;this.coordinatesAreFractional=!0;this.setInfo(a.getOperationCount())},"JS.SpaceGroup");d(b,"setSymmetryInfoFromFile",function(a,c){this.spaceGroupIndex=a.remove("spaceGroupIndex").intValue();this.cellRange=a.remove("ML_unitCellRange");this.sgName=a.get("spaceGroup");this.spaceGroupF2C=a.remove("f2c");this.spaceGroupF2CTitle=a.remove("f2cTitle");this.spaceGroupF2CParams=a.remove("f2cParams");this.sgTitle=a.remove("spaceGroupTitle");this.strSUPERCELL=a.remove("supercell");
if(null==this.sgName||""===this.sgName)this.sgName="spacegroup unspecified";this.intlTableNo=a.get("intlTableNo");this.intlTableIndex=a.get("intlTableIndex");this.intlTableTransform=a.get("intlTableTransform");this.intlTableJmolID=a.remove("intlTableJmolID");var b=a.get("latticeType");this.latticeType=null==b?"P":b.charAt(0);this.symmetryOperations=a.remove("symmetryOps");this.isMultiCell=(this.coordinatesAreFractional=a.containsKey("coordinatesAreFractional")?a.get("coordinatesAreFractional").booleanValue():
!1)&&null!=this.symmetryOperations;null==c&&(c=a.get("unitCellParams"));c=JU.SimpleUnitCell.isValid(c)?c:null;null==c&&(this.coordinatesAreFractional=!1,this.cellRange=this.symmetryOperations=null,this.infoStr="",a.remove("unitCellParams"));b=a.containsKey("symmetryCount")?a.get("symmetryCount").intValue():0;this.setInfo(b);return c},"java.util.Map,~A");d(b,"setInfo",function(a){var c="Spacegroup: "+this.sgName;if(null!=this.symmetryOperations){for(var b="",d="\nNumber of symmetry operations: "+(0==
a?1:a)+"\nSymmetry Operations:",m=0;m<a;m++){var f=this.symmetryOperations[m],d=d+("\n"+f.fixMagneticXYZ(f,f.xyz,!0));f.isCenteringOp&&(b+=" ("+JU.PT.rep(JU.PT.replaceAllCharacters(f.xyz,"xyz","0"),"0+","")+")")}0<b.length&&(c+="\nCentering: "+b);c=c+d+"\n"}this.infoStr=c},"~N");d(b,"getAdditionalOperations",function(){null==this.additionalOperations&&null!=this.symmetryOperations&&(this.additionalOperations=JS.SymmetryOperation.getAdditionalOperations(this.symmetryOperations));return this.additionalOperations});
d(b,"getDerivedSpaceGroup",function(){null==this.sgDerived&&(this.sgDerived=JS.SpaceGroup.getSpaceGroupFromIndex(this.spaceGroupIndex));return this.sgDerived});d(b,"setIsCurrentCell",function(a){return this.isCurrentCell!=a&&!0==(this.isCurrentCell=a)},"~B");d(b,"getSpaceGroupTitle",function(){return this.isCurrentCell&&null!=this.spaceGroupF2CTitle?this.spaceGroupF2CTitle:this.sgName.startsWith("cell=")?this.sgName:this.sgTitle});d(b,"getDisplayName",function(a){if(null==this.displayName){var c=
a.isPolymer(),b=a.isSlab();a=c?"polymer":b?"slab":this.getSpaceGroupTitle();if(null==a)return null;a.startsWith("cell=!")&&(a="cell=inverse["+a.substring(6)+"]");a=JU.PT.rep(a,";0,0,0","");if(0>a.indexOf("#")){var d=this.intlTableTransform,m=this.intlTableIndex;!b&&(!c&&null!=m)&&(null!=d&&(c=a.indexOf(d),0<=c&&(a=JU.PT.rep(a,"("+d+")","")),0>m.indexOf(d)&&(c=m.indexOf("."),0<c&&(m=m.substring(0,c)),m+=":"+d)),a=(a.startsWith("0")?"":a.equals("unspecified!")?"#":a+" #")+m)}0<=a.indexOf("-- [--]")&&
(a="");this.displayName=a}return this.displayName},"JS.Symmetry")});X("JS");fa(["JU.P3","$.V3"],"JS.SymmetryDesc","java.util.Hashtable JU.A4 $.BS $.Lst $.M3 $.M4 $.Measure $.P4 $.PT $.Quat $.SB JS.T JS.SpaceGroup $.Symmetry $.SymmetryOperation JU.Escape $.Logger".split(" "),function(){var b=ba(function(){this.drawID=this.modelSet=null;M(this,arguments)},JS,"SymmetryDesc",null);d(b,"set",function(a){this.modelSet=a;return this},"JM.ModelSet");b.getType=d(b,"getType",function(a){var c;if(null==a)return 1073742001;
if(a.equalsIgnoreCase("matrix"))return 12;if(a.equalsIgnoreCase("description"))return 1825200146;if(a.equalsIgnoreCase("axispoint"))return 134217751;if(a.equalsIgnoreCase("time"))return 268441089;if(a.equalsIgnoreCase("info"))return 1275068418;if(a.equalsIgnoreCase("element"))return 1086326789;if(a.equalsIgnoreCase("invariant"))return 36868;c=JS.T.getTokFromName(a);if(0!=c)return c;c=JS.SymmetryDesc.getKeyType(a);return 0>c?c:1073742327},"~S");b.getKeyType=d(b,"getKeyType",function(a){"type".equals(a)&&
(a="_type");for(var c=0;c<JS.SymmetryDesc.keys.length;c++)if(a.equalsIgnoreCase(JS.SymmetryDesc.keys[c]))return-1-c;return 0},"~S");b.nullReturn=d(b,"nullReturn",function(a){switch(a){case 135176:return";draw ID sym* delete;draw ID sg* delete;";case 1073741961:case 1825200146:case 1073741974:case 1145047049:case 1145047053:case 11:case 1073742078:return"";case 1153433601:return new JU.BS;default:return null}},"~N");b.getInfo=d(b,"getInfo",function(a,c){if(0==a.length)return"";if(0>c&&-c<=JS.SymmetryDesc.keys.length&&
-c<=a.length)return a[-1-c];switch(c){case 1073742327:case 1073741982:return a;case 1275068418:for(var b=new java.util.Hashtable,d=0,m=a.length;d<m;d++){var f=3==d?"draw":7==d?"axispoint":JS.SymmetryDesc.keys[d];null!=a[d]&&b.put(f,a[d])}return b;case 1073741961:return a[0]+"  \t"+a[2];case 1145047049:return a[0];case 1145047053:return a[19];case 1073742078:return a[1];default:case 1825200146:return a[2];case 134217764:if(!JU.Logger.debugging)return a[3];case 135176:return a[3]+"\nprint "+JU.PT.esc(a[0]+
" "+a[2]);case 1145047050:return a[4];case 1073742178:return a[5];case 12289:return a[6];case 134217751:return a[7];case 1073741854:return a[8];case 134217729:return a[9];case 12:return a[10];case 1814695966:return a[11];case 4160:return a[12];case 268441089:return a[13];case 134217750:return a[14];case 1140850696:return a[15];case 1073741974:return a[16];case 1086326789:return P(-1,[a[6],a[7],a[8],a[14],a[5]]);case 36868:return null!=a[6]?a[6]:null!=a[8]?P(-1,[a[7],a[8],a[5]]):null!=a[5]?"none":
null!=a[14]?a[14]:"identity"}},"~A,~N");b.getInfoBS=d(b,"getInfoBS",function(a){var c=new JU.BS;if(0>a&&-a<=JS.SymmetryDesc.keys.length)return c.set(-1-a),c;switch(a){case 0:case 1153433601:case 1073742001:case 1073742327:case 1073741982:case 1275068418:c.setBits(0,JS.SymmetryDesc.keys.length);break;case 1073741961:c.set(0);c.set(2);break;case 1145047049:c.set(0);break;case 1145047053:c.set(19);break;case 1073742078:c.set(1);break;default:case 1825200146:c.set(2);break;case 135176:c.set(0);c.set(2);
c.set(3);break;case 1145047050:c.set(4);break;case 1073742178:c.set(5);break;case 12289:c.set(6);break;case 134217751:c.set(7);break;case 1073741854:c.set(8);break;case 134217729:c.set(9);break;case 12:c.set(10);break;case 1814695966:c.set(11);break;case 4160:c.set(12);break;case 268441089:c.set(13);break;case 134217750:c.set(14);break;case 1140850696:c.set(15);break;case 1073741974:c.set(16);break;case 1086326789:case 36868:c.set(5),c.set(6),c.set(7),c.set(8),c.set(14),c.set(22)}return c},"~N");
d(b,"createInfoArray",function(a,c,b,d,m,f,h,j,l,k,n){a.isFinalized||a.doFinalize();var p=1==l.cardinality()&&l.get(10),r=-1==a.timeReversal;0==f&&(f=1);JS.SymmetryDesc.vtrans.set(0,0,0);var q=null,s=null==b||Float.isNaN(b.x)?c.getCartesianOffset():b;if(null!=d){JS.SymmetryDesc.pta01.setT(s);JS.SymmetryDesc.pta02.setT(d);c.toFractional(JS.SymmetryDesc.pta01,!1);c.toFractional(JS.SymmetryDesc.pta02,!1);a.rotTrans(JS.SymmetryDesc.pta01);JS.SymmetryDesc.ptemp.setT(JS.SymmetryDesc.pta01);c.unitize(JS.SymmetryDesc.pta01);
JS.SymmetryDesc.vtrans.setT(JS.SymmetryDesc.pta02);c.unitize(JS.SymmetryDesc.pta02);if(1.96E-6<=JS.SymmetryDesc.pta01.distanceSquared(JS.SymmetryDesc.pta02))return null;JS.SymmetryDesc.vtrans.sub(JS.SymmetryDesc.ptemp)}var t=JU.M4.newM4(a);t.add(JS.SymmetryDesc.vtrans);l.get(10)&&(null!=d&&s.equals(d))&&(t.m00=Math.round(t.m00),t.m01=Math.round(t.m01),t.m02=Math.round(t.m02),t.m03=Math.round(t.m03),t.m10=Math.round(t.m10),t.m11=Math.round(t.m11),t.m12=Math.round(t.m12),t.m13=Math.round(t.m13),t.m20=
Math.round(t.m20),t.m21=Math.round(t.m21),t.m22=Math.round(t.m22),t.m23=Math.round(t.m23));var C=0!=a.timeReversal;if(p&&!C)return a=JS.SymmetryDesc.getKeyType("matrix"),c=Array(-a),c[-1-a]=t,c;p=new JU.V3;JS.SymmetryDesc.pta01.set(1,0,0);JS.SymmetryDesc.pta02.set(0,1,0);var v=JU.P3.new3(0,0,1);JS.SymmetryDesc.pta01.add(s);JS.SymmetryDesc.pta02.add(s);v.add(s);var u=JS.SymmetryDesc.rotTransCart(a,c,s,JS.SymmetryDesc.vtrans),Q=JS.SymmetryDesc.rotTransCart(a,c,JS.SymmetryDesc.pta01,JS.SymmetryDesc.vtrans),
P=JS.SymmetryDesc.rotTransCart(a,c,JS.SymmetryDesc.pta02,JS.SymmetryDesc.vtrans),y=JS.SymmetryDesc.rotTransCart(a,c,v,JS.SymmetryDesc.vtrans),z=JU.V3.newVsub(Q,u),G=JU.V3.newVsub(P,u),L=JU.V3.newVsub(y,u);JS.SymmetryOperation.approx6Pt(JS.SymmetryDesc.vtrans);var x=new JU.V3;x.cross(z,G);var B=0>x.dot(L);B&&(Q.sub2(u,z),P.sub2(u,G),y.sub2(u,L));var D=JU.Quat.getQuaternionFrame(u,Q,P).div(JU.Quat.getQuaternionFrame(s,JS.SymmetryDesc.pta01,JS.SymmetryDesc.pta02)),D=JU.Quat.new4(D.q1,D.q2,D.q3,D.q0),
E=JU.Measure.computeHelicalAxis(s,u,D),D=JU.P3.newP(E[0]),O=JU.P3.newP(E[1]),H=w(Math.abs(JU.PT.approx(E[3].x,1))),M=JS.SymmetryOperation.approx(E[3].y);B&&(Q.add2(u,z),P.add2(u,G),y.add2(u,L));E=JU.V3.newVsub(u,s);0.1>E.length()&&(E=null);var ja=null,N=null,V=null,$=0,ca=0,ba=0==H,ga=!ba,ha=!1,R=!1,aa=!ga&&!B;if(ga||B)E=null;if(B&&ba)N=JU.P3.newP(s),N.add(u),N.scale(0.5),ja=u,ha=!0;else if(B){var I=0==M?new JU.V3:O,K=0;switch(H){case 60:K=0.6666667;break;case 120:K=2;break;case 90:K=1;break;case 180:V=
JU.P3.newP(s);V.add(I);D.scaleAdd2(0.5,I,s);0.1<V.distance(u)?(E=JU.V3.newVsub(u,V),p.setT(E),c.toFractional(p,!0)):E=null;x.setT(O);x.normalize();$=-x.x*D.x-x.y*D.y-x.z*D.z;q=JU.P4.new4(x.x,x.y,x.z,$);ca=0.01>Math.abs($)&&0.4<x.x*x.y?1.3:1.05;B=ga=!1;R=!0;break;default:B=!1}0!=K&&(x.sub2(s,D),x.add(u),x.sub(D),x.sub(I),x.scale(K),D.add(x),N=new JU.P3,N.scaleAdd2(0.5,I,D),ja=new JU.P3,ja.scaleAdd2(-2,N,u),ja.scale(-1))}else null!=E&&(JS.SymmetryDesc.ptemp.setT(E),c.toFractional(JS.SymmetryDesc.ptemp,
!1),p.setT(JS.SymmetryDesc.ptemp),c.toCartesian(JS.SymmetryDesc.ptemp,!1),E.setT(JS.SymmetryDesc.ptemp));var ka=H;JS.SymmetryDesc.approx0(O);if(ga){var T=new JU.P3;x.setT(O);K=H;B?(T.setT(ja),K=ja):0==M?(K=u,T.setT(D)):(K=u,T.scaleAdd2(0.5,x,D));JS.SymmetryDesc.ptemp.add2(D,x);K=Math.round(JU.Measure.computeTorsion(s,D,JS.SymmetryDesc.ptemp,K,!0));0!=JS.SymmetryOperation.approx(K)&&(H=K,0>H&&(H=360+H))}var $=K=null,X=String.fromCharCode(0),W=a.isIrrelevant,ea=a.getOpOrder();a.isIrrelevant=(new Boolean(a.isIrrelevant|
W)).valueOf();var Y=a.getOpIsCCW(),la=0,ia=0;if(l.get(2)||l.get(15))K=$="identity",ha?(JS.SymmetryDesc.ptemp.setT(N),c.toFractional(JS.SymmetryDesc.ptemp,!1),K="Ci: "+JS.SymmetryDesc.strCoord(JS.SymmetryDesc.ptemp,a.isBio),$="inversion center"):ga?(K="",null!=Y&&(K=Y===Boolean.TRUE?"(+)":"(-)",la=Y===Boolean.TRUE?1:-1),ia=S(360/ka),B?K=ia+"-bar"+K+" axis":0!=M?(JS.SymmetryDesc.ptemp.setT(O),c.toFractional(JS.SymmetryDesc.ptemp,!1),K=ia+K+" ("+JS.SymmetryDesc.strCoord(JS.SymmetryDesc.ptemp,a.isBio)+
") screw axis"):(K=ia+K+" axis",0==ea%2&&(la*=S(ea/2))),$=K):null!=E?(W=" "+JS.SymmetryDesc.strCoord(p,a.isBio),ba?($=K="translation",K+=":"+W):R&&(k&&(JS.SymmetryDesc.fixGlideTrans(p),E.setT(p),c.toCartesian(E,!0)),W=" "+JS.SymmetryDesc.strCoord(p,a.isBio),X=JS.SymmetryOperation.getGlideFromTrans(p,O),$=K=X+"-glide plane",K+="|translation:"+W)):R&&($=K="mirror plane"),B&&!ha&&(JS.SymmetryDesc.ptemp.setT(N),c.toFractional(JS.SymmetryDesc.ptemp,!1),K+="|at "+JS.SymmetryDesc.strCoord(JS.SymmetryDesc.ptemp,
a.isBio)),r&&(K+="|time-reversed",$+=" (time-reversed)");var fa=!0,W=ga&&!B&&0!=M;W||(la=0,fa=JS.SymmetryDesc.checkHandedness(c,O),fa||(H=-H,0>H&&(H=360+H),O.scale(-1)));var Z=!1,F=null;if(null!=m&&l.get(3))if(0==a.getOpType()||n&&a.isIrrelevant)JU.Logger.debugging&&System.out.println("!!SD irrelevent "+a.getOpTitle()+a.getOpPoint()),F="";else{var ma=null;this.drawID='\ndraw ID "'+m;F=new JU.SB;F.append(this.getDrawID("*")).append(" delete");k||(this.drawLine(F,"frame1X",0.15,s,JS.SymmetryDesc.pta01,
"red"),this.drawLine(F,"frame1Y",0.15,s,JS.SymmetryDesc.pta02,"green"),this.drawLine(F,"frame1Z",0.15,s,v,"blue"));var da=null,oa=0,v=0.2>s.distance(u),na=k?"<hover>"+m+": "+a.xyz+"|"+K+"</hover>":null;if(ga){m=2==ia?"red":3==ia?"[xA00040]":4==ia?"[x800080]":"[x4000A0]";var ka=H,qa=1;x.setT(O);ca="";k&&(D.setT(a.getOpPoint()),c.toCartesian(D,!1));T=new JU.P3;0!=M&&!B?(ma="screw",m=Y===Boolean.TRUE?"orange":Y===Boolean.FALSE?"blue":4==ea?"lightgray":"grey",k||(this.drawLine(F,"rotLine1",0.1,s,D,"red"),
JS.SymmetryDesc.ptemp.add2(D,x),this.drawLine(F,"rotLine2",0.1,u,JS.SymmetryDesc.ptemp,"red"),T.scaleAdd2(0.5,x,D))):(T.setT(D),fa||!v&&!k&&D.sub2(D,x),B?(ma="bar",k?(x.normalize(),Y===Boolean.TRUE&&x.scale(-1)):0==M?(T.setT(N),x.scale(3*f),v?(JS.SymmetryDesc.ptemp.scaleAdd2(0.25,x,D),D.scaleAdd2(-0.2,x,D),T.scaleAdd2(0.31,x,T),m="cyan"):(JS.SymmetryDesc.ptemp.scaleAdd2(-1,x,D),this.drawLine(F,"rotLine1",0.1,s,N,"red"),this.drawLine(F,"rotLine2",0.1,ja,N,"red"))):v||(qa=s.distance(T),this.drawLine(F,
"rotLine1",0.1,s,T,"red"),this.drawLine(F,"rotLine2",0.1,ja,T,"red"))):(ma="rot",x.scale(3*f),!v&&!k&&(this.drawLine(F,"rotLine1",0.1,s,T,"red"),this.drawLine(F,"rotLine2",0.1,u,T,"red")),T.setT(D),0==M&&v&&T.scaleAdd2(0.25,x,T)));k||(180<ka&&(ka=180-ka),JS.SymmetryDesc.ptemp.add2(T,x),F.append(this.getDrawID("rotRotArrow")).append(" arrow width 0.1 scale "+JU.PT.escF(qa)+" arc ").append(JU.Escape.eP(T)).append(JU.Escape.eP(JS.SymmetryDesc.ptemp)),JS.SymmetryDesc.ptemp.setT(s),0.1>JS.SymmetryDesc.ptemp.distance(u)&&
JS.SymmetryDesc.ptemp.set(Math.random(),Math.random(),Math.random()),F.append(JU.Escape.eP(JS.SymmetryDesc.ptemp)),JS.SymmetryDesc.ptemp.set(0,ka-5*Math.signum(ka),0),F.append(JU.Escape.eP(JS.SymmetryDesc.ptemp)).append(" color red"));ka=0;!a.opIsLong&&(n&&0<M&&!B)&&(Z=(ka=a.getOpTrans().length())>(2==ea?0.71:3==ea?0.578:0.51));Z&&JU.Logger.debugging&&System.out.println("SD ignoring "+a.getOpTrans().length()+" "+a.getOpTitle()+a.xyz);f=null;if(0==M&&!B){JS.SymmetryDesc.ptemp.scaleAdd2(0.5,x,D);D.scaleAdd2(k?
-0.5:-0.45,x,D);if(n&&null!=(f=a.getOpPoint2()))T.setT(f),c.toCartesian(T,!1),T.scaleAdd2(-0.5,x,T);k&&this.scaleByOrder(x,ea,Y)}else n&&0!=M&&!B&&0.4<(I=a.getOpTrans().length())?Y!==Boolean.TRUE&&null!=Y&&0.5==I&&(Z=!0):k&&B&&(this.scaleByOrder(x,ea,Y),ca="80");0<M&&!B&&(ca=""+(90-w(90*(x.length()/M))));if(!Z){if(0!=la){switch(ea){case 4:0.49<ka&&(la=-2);break;case 6:0.49<ka?la=-3:0.33<ka&&(la*=2)}m=0>la?"blue":"orange"}I=ma+"_"+ia+"rotvector1";this.drawOrderVector(F,I,"vector","0.1"+ca,D,ia,la,
B&&n,Y===Boolean.TRUE,x,r?"gray":m,na,n);null!=f&&this.drawOrderVector(F,I+"2","vector","0.1"+ca,T,ea,la,B,Y===Boolean.TRUE,x,r?"gray":m,na,n)}}else if(R){JS.SymmetryDesc.ptemp.sub2(V,s);!k&&0.2<s.distance(V)&&this.drawVector(F,"planeVector","vector","0.05",s,JS.SymmetryDesc.ptemp,r?"gray":"cyan",null);if(null==E)m="magenta";else{ma="glide";switch(X.charCodeAt(0)){case 97:m="[x4080ff]";break;case 98:m="blue";break;case 99:m="cyan";break;case 110:m="orange";break;case 100:m="grey";break;default:m=
"lightgreen"}k||(this.drawFrameLine("X",V,z,0.15,JS.SymmetryDesc.ptemp,F,ma,"red"),this.drawFrameLine("Y",V,G,0.15,JS.SymmetryDesc.ptemp,F,ma,"green"),this.drawFrameLine("Z",V,L,0.15,JS.SymmetryDesc.ptemp,F,ma,"blue"))}I=c.getCanonicalCopy(ca,!0);I=this.modelSet.vwr.getTriangulator().intersectPlane(q,I,3);if(null!=I){M=k?a.iCoincident:0;da=new JU.P3;Y=f=0;for(la=I.size();f<la;f++)ia=I.get(f),F.append(this.getDrawID((null==E?"mirror_":X+"_g")+"planep"+f)).append(JU.Escape.eP(ia[0])).append(JU.Escape.eP(ia[1])),
3==ia.length?((0==M||0==Y%2!=(1==M))&&F.append(JU.Escape.eP(ia[2])),Y++):(da.add(ia[0]),da.add(ia[1]),oa+=2),F.append(" color translucent ").append(m),null!=na&&F.append(" ").append(JU.PT.esc(na))}if(null==I||0==I.size())n?Z=!0:(JS.SymmetryDesc.ptemp.add2(D,O),F.append(this.getDrawID("planeCircle")).append(" scale 2.0 circle ").append(JU.Escape.eP(D)).append(JU.Escape.eP(JS.SymmetryDesc.ptemp)).append(" color translucent ").append(m).append(" mesh fill"),null!=na&&F.append(" ").append(JU.PT.esc(na)))}B&&
(ma="inv",ha?(F.append(this.getDrawID("inv_point")).append(" diameter 0.4 ").append(JU.Escape.eP(N)),null!=na&&F.append(" ").append(JU.PT.esc(na)),JS.SymmetryDesc.ptemp.sub2(ja,s),k||this.drawVector(F,"Arrow","vector","0.05",s,JS.SymmetryDesc.ptemp,r?"gray":"cyan",null)):(4==ea&&(F.append(this.getDrawID("RotPoint")).append(" diameter 0.3 color red").append(JU.Escape.eP(N)),null!=na&&F.append(" ").append(JU.PT.esc(na))),k||(F.append(" color cyan"),v||(JS.SymmetryDesc.ptemp.sub2(u,ja),this.drawVector(F,
"Arrow","vector","0.05",ja,JS.SymmetryDesc.ptemp,r?"gray":"cyan",null)),1073742066!=h&&(x.setT(z),x.scale(-1),this.drawFrameLine("X",ja,x,0.15,JS.SymmetryDesc.ptemp,F,ma,"red"),x.setT(G),x.scale(-1),this.drawFrameLine("Y",ja,x,0.15,JS.SymmetryDesc.ptemp,F,ma,"green"),x.setT(L),x.scale(-1),this.drawFrameLine("Z",ja,x,0.15,JS.SymmetryDesc.ptemp,F,ma,"blue")))));null!=E&&(R&&k?null!=da&&(V=da,V.scale(1/oa),V.scaleAdd2(-0.5,E,V)):null==V&&(V=k?s:JU.P3.newP(s)),null!=V&&!Z&&(n="\x00"==X,(x=k&&!n&&!aa)?
(JS.SymmetryDesc.ptemp.scaleAdd2(0.5,E,V),JS.SymmetryDesc.vtrans.setT(E),JS.SymmetryDesc.vtrans.scale(0.5)):(JS.SymmetryDesc.ptemp.setT(V),JS.SymmetryDesc.vtrans.setT(E)),m=x?"green":r&&!B&&!R&&!ga?"darkGray":"gold",this.drawVector(F,(n?"centering_":X+"_g")+"trans_vector","vector",x||aa?"0.1":"0.05",JS.SymmetryDesc.ptemp,JS.SymmetryDesc.vtrans,m,na),x&&(JS.SymmetryDesc.vtrans.scale(-1),this.drawVector(F,X+"_gtrans_vector2","vector","0.1",JS.SymmetryDesc.ptemp,JS.SymmetryDesc.vtrans,m,na))));k||(JS.SymmetryDesc.ptemp2.setT(u),
JS.SymmetryDesc.ptemp.sub2(Q,u),JS.SymmetryDesc.ptemp.scaleAdd2(0.9,JS.SymmetryDesc.ptemp,JS.SymmetryDesc.ptemp2),this.drawLine(F,"frame2X",0.2,JS.SymmetryDesc.ptemp2,JS.SymmetryDesc.ptemp,"red"),JS.SymmetryDesc.ptemp.sub2(P,u),JS.SymmetryDesc.ptemp.scaleAdd2(0.9,JS.SymmetryDesc.ptemp,JS.SymmetryDesc.ptemp2),this.drawLine(F,"frame2Y",0.2,JS.SymmetryDesc.ptemp2,JS.SymmetryDesc.ptemp,"green"),JS.SymmetryDesc.ptemp.sub2(y,u),JS.SymmetryDesc.ptemp.scaleAdd2(0.9,JS.SymmetryDesc.ptemp,JS.SymmetryDesc.ptemp2),
this.drawLine(F,"frame2Z",0.2,JS.SymmetryDesc.ptemp2,JS.SymmetryDesc.ptemp,"purple"),F.append("\nsym_point = "+JU.Escape.eP(s)),F.append("\nvar p0 = "+JU.Escape.eP(JS.SymmetryDesc.ptemp2)),U(s,"JM.Atom")?(F.append("\nvar set2 = within(0.2,p0);if(!set2){set2 = within(0.2,p0.uxyz.xyz)}"),F.append("\n set2 &= {_"+s.getElementSymbol()+"}")):F.append("\nvar set2 = p0.uxyz"),F.append("\nsym_target = set2;if (set2) {"),!v&&(1073742066!=h&&null==d&&!j)&&(F.append(this.getDrawID("offsetFrameX")).append(" diameter 0.20 @{set2.xyz} @{set2.xyz + ").append(JU.Escape.eP(z)).append("*0.9} color red"),
F.append(this.getDrawID("offsetFrameY")).append(" diameter 0.20 @{set2.xyz} @{set2.xyz + ").append(JU.Escape.eP(G)).append("*0.9} color green"),F.append(this.getDrawID("offsetFrameZ")).append(" diameter 0.20 @{set2.xyz} @{set2.xyz + ").append(JU.Escape.eP(L)).append("*0.9} color purple")),F.append("\n}\n"));F=F.toString();JU.Logger.debugging&&JU.Logger.info(F)}null==E&&(p=null);W&&(E=JU.V3.newV(O),JS.SymmetryDesc.ptemp.setT(E),c.toFractional(JS.SymmetryDesc.ptemp,!1),p=JU.V3.newV(JS.SymmetryDesc.ptemp));
R&&(H=0);B?ha&&(p=E=O=D=null):ba&&(O=D=null);null!=O&&O.normalize();h=null;if(l.get(0)||l.get(17))h=a.isBio?t.toString():0<a.modDim?a.xyzOriginal:JS.SymmetryOperation.getXYZFromMatrix(t,!1,!1,!1),C&&(h=a.fixMagneticXYZ(t,h,!0));j=Array(20);for(f=l.nextSetBit(0);0<=f;f=l.nextSetBit(f+1))switch(f){case 0:j[f]=h;break;case 19:null!=b&&(null==d&&!a.isBio&&0==a.modDim)&&(JS.SymmetryDesc.pta02.setT(b),c.toFractional(JS.SymmetryDesc.pta02,!0),t.rotTrans(JS.SymmetryDesc.pta02),JS.SymmetryDesc.ptemp.setT(JS.SymmetryDesc.pta02),
c.unitize(JS.SymmetryDesc.pta02),JS.SymmetryDesc.vtrans.sub2(JS.SymmetryDesc.pta02,JS.SymmetryDesc.ptemp),t=JU.M4.newM4(a),t.add(JS.SymmetryDesc.vtrans),k=JS.SymmetryOperation.getXYZFromMatrix(t,!1,!1,!1),C&&(k=a.fixMagneticXYZ(t,k,!0)),j[f]=k);break;case 1:j[f]=a.xyzOriginal;break;case 2:j[f]=K;break;case 3:j[f]=F;break;case 4:j[f]=JS.SymmetryDesc.approx0(p);break;case 5:j[f]=JS.SymmetryDesc.approx0(E);break;case 6:j[f]=JS.SymmetryDesc.approx0(N);break;case 7:j[f]=JS.SymmetryDesc.approx0(null!=D&&
l.get(22)?s:D);break;case 8:j[f]=null==q?JS.SymmetryDesc.approx0(O):null;break;case 9:j[f]=0!=H?Integer.$valueOf(H):null;break;case 10:j[f]=t;break;case 11:j[f]=0<JS.SymmetryDesc.vtrans.lengthSquared()?JS.SymmetryDesc.vtrans:null;break;case 12:j[f]=a.getCentering();break;case 13:j[f]=Integer.$valueOf(a.timeReversal);break;case 14:null!=q&&l.get(22)&&(I=JU.Measure.distanceToPlane(q,s),q.w-=I);j[f]=q;break;case 15:j[f]=$;break;case 16:j[f]=Integer.$valueOf(a.number);break;case 17:k=null;!a.isBio&&!h.equals(a.xyzOriginal)&&
0<a.number&&(r=JS.SymmetryOperation.getMatrixFromXYZ(a.xyzOriginal,null,!1),r.sub(t),k=new JU.P3,r.getTranslation(k));j[f]=(0>a.number?0:a.number)+(null==k?" [0 0 0]":" ["+w(-k.x)+" "+w(-k.y)+" "+w(-k.z)+"]");break;case 18:j[f]=a.xyzCanonical}return j},"JS.SymmetryOperation,J.api.SymmetryInterface,JU.P3,JU.P3,~S,~N,~N,~B,JU.BS,~B,~B");b.fixGlideTrans=d(b,"fixGlideTrans",function(a){a.x=JS.SymmetryDesc.fixGlideX(a.x);a.y=JS.SymmetryDesc.fixGlideX(a.y);a.z=JS.SymmetryDesc.fixGlideX(a.z)},"JU.V3");b.fixGlideX=
d(b,"fixGlideX",function(a){switch(Math.round(48.001*a)){case 36:return-0.25;case -36:return 0.25;default:return a}},"~N");d(b,"scaleByOrder",function(a,c,b){a.scale(1+0.3/c+(null==b?0:b===Boolean.TRUE?0.02:-0.02))},"JU.V3,~N,Boolean");b.checkHandedness=d(b,"checkHandedness",function(a,c){var b,d,m;JS.SymmetryDesc.ptemp.set(1,0,0);a.toCartesian(JS.SymmetryDesc.ptemp,!1);b=JS.SymmetryDesc.approx0d(JS.SymmetryDesc.ptemp.dot(c));JS.SymmetryDesc.ptemp.set(0,1,0);a.toCartesian(JS.SymmetryDesc.ptemp,!1);
d=JS.SymmetryDesc.approx0d(JS.SymmetryDesc.ptemp.dot(c));JS.SymmetryDesc.ptemp.set(0,0,1);a.toCartesian(JS.SymmetryDesc.ptemp,!1);m=JS.SymmetryDesc.approx0d(JS.SymmetryDesc.ptemp.dot(c));return 0==b?0==d?0<m:0<d:0==m?0<b:0==d?0<m:0<b*d*m},"J.api.SymmetryInterface,JU.P3");d(b,"drawLine",function(a,c,b,d,m,f){a.append(this.getDrawID(c)).append(" diameter ").appendD(b).append(JU.Escape.eP(d)).append(JU.Escape.eP(m)).append(" color ").append(f)},"JU.SB,~S,~N,JU.P3,JU.P3,~S");d(b,"drawFrameLine",function(a,
c,b,d,m,f,h,j){m.setT(c);m.add(b);this.drawLine(f,h+"Pt"+a,d,c,m,"translucent "+j)},"~S,JU.P3,JU.V3,~N,JU.P3,JU.SB,~S,~S");d(b,"drawVector",function(a,c,b,d,m,f,h,j){b.equals("vline")&&(JS.SymmetryDesc.ptemp2.add2(m,f),b="",f=JS.SymmetryDesc.ptemp2);a.append(this.getDrawID(c)).append(" diameter ").append(d+" ").append(b).append(JU.Escape.eP(m)).append(JU.Escape.eP(f)).append(" color ").append(h);null!=j&&a.append(' "'+j+'"')},"JU.SB,~S,~S,~S,JU.T3,JU.T3,~S,~S");d(b,"drawOrderVector",function(a,c,
b,d,m,f,h,j,l,k,n,p,r){this.drawVector(a,c,b,d,m,k,n,p);if(!(2==f||j&&!l)){b=JS.SymmetryDesc.getPolygon(f,!j?0:l?1:-1,j,m,k);d=b[0];a.append(this.getDrawID(c+"_key")).append(" POLYGON ").appendI(d.size());l=0;for(p=d.size();l<p;l++)a.appendO(d.get(l));a.append(" color ").append(n);if(0!=h&&r){b=JS.SymmetryDesc.getPolygon(f,h,j,m,k);a.append(this.getDrawID(c+"_key2"));d=b[0];a.append(" POLYGON ").appendI(d.size());l=0;for(p=d.size();l<p;l++)a.appendO(d.get(l));d=b[1];a.appendI(d.size());l=0;for(p=
d.size();l<p;l++)a.appendO(JU.PT.toJSON(null,d.get(l)));a.append(" color ").append(n)}}},"JU.SB,~S,~S,~S,JU.P3,~N,~N,~B,~B,JU.V3,~S,~S,~B");b.getPolygon=d(b,"getPolygon",function(a,c,b,d,m){var f=b?0.6:0.4,h=new JU.Lst,j=new JU.Lst,l=JU.V3.newV(m);l.scale(0);l.add(d);var k=JU.V3.new3(0,0,1),n=new JU.V3;d=new JU.M3;n.cross(k,m);0.01>n.length()?d.m00=d.m11=d.m22=1:(n.normalize(),m=k.angle(m),d.setAA(JU.A4.newVA(n,m)));m=6.283185307179586/a*(0>c?-1:1);for(var n=new JU.V3,p=null,r=k=0,q=0,s=0==c?a:a+
1;q<s;q++){var t=new JU.P3;t.x=Math.cos(m*q)*f;t.y=Math.sin(m*q)*f;d.rotate(t);t.add(l);q<a&&h.addLast(t);if(!b&&0!=c&&0==q%c&&null!=p){n.sub2(t,p);var p=q<a?r++:0,w=JU.P3.newP(t);w.scaleAdd2(1,t,w);w.scaleAdd2(-1,l,w);h.addLast(w);j.addLast(H(-1,[k,r++,p,0]));k=p}else k=r++;p=t}return P(-1,[h,j])},"~N,~N,~B,JU.P3,JU.V3");b.rotTransCart=d(b,"rotTransCart",function(a,c,b,d){b=JU.P3.newP(b);c.toFractional(b,!1);a.rotTrans(b);b.add(d);c.toCartesian(b,!1);return b},"JS.SymmetryOperation,J.api.SymmetryInterface,JU.P3,JU.V3");
b.strCoord=d(b,"strCoord",function(a,c){JS.SymmetryDesc.approx0(a);return c?"("+a.x+" "+a.y+" "+a.z+")":JS.SymmetryOperation.fcoord(a," ")},"JU.T3,~B");b.approx0=d(b,"approx0",function(a){null!=a&&(a.x=JS.SymmetryDesc.approx0d(a.x),a.y=JS.SymmetryDesc.approx0d(a.y),a.z=JS.SymmetryDesc.approx0d(a.z));return a},"JU.T3");b.approx0d=d(b,"approx0d",function(a){return 1E-4>Math.abs(a)?0:a},"~N");d(b,"getSymmetryInfo",function(a,c,b,d,m,f,h,j,l,k,n,p,r,q){var s=0,t=JS.SymmetryDesc.nullReturn(k);switch(k){case 1073741994:return""+
b.getLatticeType();case 1073742001:s=1825200146;break;case 135176:s=135176;break;case 1275068418:switch(s=JS.SymmetryDesc.getType(l),s){case 1153433601:case 1073741961:case 1073742001:case 134217751:case 1086326789:case 36868:k=s;break;default:s=JS.SymmetryDesc.getKeyType(l)}}var w=JS.SymmetryDesc.getInfoBS(s),v=-2==p,u=m,C=1073742066==r&&(1153433601==k||134217751==k)?j:null;null!=C&&(j=null);var H=u=null,y=null;if(null==j){if(null==d){y=v?b.getAdditionalOperations():b.getSymmetryOperations();if(null==
y||Math.abs(m)>y.length||0==m)return t;u=Math.abs(m)-1;d=null==f?y[u].xyz:y[u].getxyzTrans(f);H=y[u].xyzOriginal}else u=m=0;var z=new JS.Symmetry;z.setSpaceGroup(!1);var G=null!=b&&b.isBio();j=G?z.addBioMoleculeOperation(b.getSpaceGroup().finalOperations[u],0>m):z.addSpaceGroupOperation((0>m?"!":"=")+d,Math.abs(m));if(0>j)return t;var L=z.getSpaceGroupOperation(j);q&&(L.iCoincident=y[u].iCoincident);v&&(L.isIrrelevant=y[u].isIrrelevant);null!=H&&(L.xyzOriginal=H);L.number=m;G||L.getCentering();null==
h&&0<=c&&(h=this.modelSet.at[c]);if(134217751==k||1153433601==k){if(G||null==h)return t;z.setUnitCell(b);JS.SymmetryDesc.ptemp.setT(h);b.toFractional(JS.SymmetryDesc.ptemp,!1);if(Float.isNaN(JS.SymmetryDesc.ptemp.x))return t;s=new JU.P3;z.newSpaceGroupPoint(JS.SymmetryDesc.ptemp,j,null,0,0,0,s);1073742066==r&&(b.unitize(s),s.add(C));z.toCartesian(s,!1);return 1153433601==k?this.getAtom(b,a,c,s):s}u=this.createInfoArray(L,b,h,null,null==l?"sym":l,n,r,null!=f,w,q,v);1275068418==k&&null!=l&&(s=JS.SymmetryDesc.getKeyType(l))}else{v=
"info";C=!1;switch(k){case 1275068418:s=JS.SymmetryDesc.getKeyType(l);l=v=null;0==p&&(p=-1);break;case 1073742001:l=v=null;0==p&&(p=-1);C=!0;w.set(21);w.set(0);w.set(19);break;case 135176:null==l&&(l=q?"sg":"sym");v="all";C=!0;break;case 1153433601:l=v=null;default:0==p&&(p=1)}r=this.getSymopInfoForPoints(b,a,m,f,h,j,l,v,n,p,r,w);if(C)return r;if("string"==typeof r)return t;u=r;if(1153433601==k)return!U(h,"JM.Atom")&&!U(j,"JM.Atom")&&(c=-1),null==u?t:this.getAtom(b,a,c,u[7])}if(null==u)return t;a=
0<u.length&&U(u[0],Array);if(0>p&&0>=m&&null==d&&(1275068418==k||a)){1275068418==k&&(0<u.length&&!U(u[0],Array))&&(u=P(-1,[u]));a=new JU.Lst;for(j=0;j<u.length;j++)a.addLast(JS.SymmetryDesc.getInfo(u[j],0>s?s:k));return a}if(0>s&&(0<=p||0<m||null!=d))k=s;0<p&&a&&(u=u[0]);135176==k&&(q&&-2==p)&&(k=134217764);return JS.SymmetryDesc.getInfo(u,k)},"~N,~N,J.api.SymmetryInterface,~S,~N,JU.P3,JU.P3,JU.P3,~S,~N,~N,~N,~N,~B");d(b,"getAtom",function(a,c,b,d){var m=null;0<=b&&this.modelSet.getAtomBitsMDa(1094715402,
Integer.$valueOf(this.modelSet.at[b].getElementNumber()),m=new JU.BS);b=new JU.BS;this.modelSet.getAtomsWithin(0.02,d,b,c);null!=m&&b.and(m);b.isEmpty()&&(d=JU.P3.newP(d),a.toUnitCell(d,null),a.toCartesian(d,!1),this.modelSet.getAtomsWithin(0.02,d,b,c),null!=m&&b.and(m));return b},"J.api.SymmetryInterface,~N,~N,JU.T3");d(b,"getSymopInfoForPoints",function(a,c,b,d,m,f,h,j,l,k,n,p){d=p.get(21)||p.get(3)&&3==p.cardinality();p.clear(21);var r=d?"":null;f=this.getSpaceGroupInfo(a,c,null,b,m,f,h,l,k,!1,
!0,n,null,p);if(null==f)return r;a=f.get("operations");if(null==a)return r;c=d?new JU.SB:null;b--;m=!d&&0>b;f=f.get("symmetryInfo");k="label".equals(j);for(l=j=0;l<a.length;l++)if(!(null==a[l]||0<=b&&b!=l))if(d){if(null!=h)return a[l][3]+"\nprint "+JU.PT.esc(f);0<c.length()&&c.appendC("\n");k||(0>b&&c.appendI(l+1).appendC("\t"),c.append(a[l][0]).appendC("\t"));c.append(a[l][2])}else{if(!m)return a[l];a[j++]=a[l]}if(!d){b=Array(j);for(l=0;l<j;l++)b[l]=a[l];return b}return 0==c.length()?null!=h?'draw ID "'+
h+'*" delete':r:c.toString()},"J.api.SymmetryInterface,~N,~N,JU.P3,JU.P3,JU.P3,~S,~S,~N,~N,~N,JU.BS");d(b,"getDrawID",function(a){return this.drawID+a+'" '},"~S");d(b,"getSymopInfo",function(a,c,b,d,m,f,h,j,l,k,n,p){0==j&&(j=JS.SymmetryDesc.getType(h));var r=1153433601==j?new JU.BS:"",q=0<=a?this.modelSet.at[a].mi:this.modelSet.vwr.am.cmi;if(0>q)return r;var s=this.modelSet.am[q].biosymmetry;if(null==s&&null==(s=this.modelSet.getUnitCell(q)))s=(new JS.Symmetry).setUnitCellFromParams(null,!1,NaN);
if(135176!=j||2147483647!=b&&null==p)return this.getSymmetryInfo(q,a,s,c,b,d,m,f,h,j,l,k,n,!1);if(null==s)return r;j="";b=null==c&&(0>k&&null==p)&&-2==k?s.getAdditionalOperations():s.getSymmetryOperations();if(null!=b)if(null==h&&(h="sg"),r=b.length,null!=m&&null==f||null!=p){null==p&&(p=s.getInvariantSymops(m,null));for(var r=p.length,t=0;t<r;t++)0<k&&k!=t+1||(b=p[t],j+=this.getSymmetryInfo(q,a,s,c,b,d,m,f,h+b,135176,l,k,n,null==m))}else for(b=1;b<=r;b++)j+=this.getSymmetryInfo(q,a,s,c,b,d,m,f,h+
b,135176,l,k,n,!0);return j},"~N,~S,~N,JU.P3,JU.P3,JU.P3,~S,~N,~N,~N,~N,~A");d(b,"getSpaceGroupInfo",function(a,c,b,d,m,f,h,j,l,k,n,p,r,q){null==q&&(q=new JU.BS,q.setBits(0,JS.SymmetryDesc.keys.length),q.clear(19));var s=1==q.cardinality()&&q.get(10),t=null,w=!s&&null==m&&null==h&&0>=l&&q.cardinality()>=JS.SymmetryDesc.keys.length,v=!1,u=null,C=null!=b&&0<b.length,H=C&&0<=b.indexOf("[--]");if(n||!C){var y=w&&0==d;if(s)r=a;else{0>c&&(c=U(m,"JM.Atom")?m.mi:this.modelSet.vwr.am.cmi);if(0>c)u="no single current model";
else if(null==r&&!(v=null!=(r=this.modelSet.am[c].biosymmetry))&&null==(r=this.modelSet.getUnitCell(c)))u="not applicable";null!=u?(t=new java.util.Hashtable,t.put("spaceGroupInfo",""),t.put("spaceGroupNote",u),t.put("symmetryInfo","")):w&&(t=this.modelSet.getInfo(c,"spaceGroupInfo"));if(null!=t)return t;b=r.getSpaceGroupName()}var t=new java.util.Hashtable,u=r.getSymmetryOperations(),z=v?r.spaceGroup:null,w=H?"":null,G=0;if(null!=u){s||(v?a.setSpaceGroupTo(JS.SpaceGroup.getNull(!1,!1,!1)):a.setSpaceGroup(!1));
0!=u[0].timeReversal&&(a.getSpaceGroupOperation(0).timeReversal=1);for(var L=Array(u.length),x="",B=null==h||null==m||null==f&&0>l?0:1,D=0;B<u.length&&D!=l;B++){var E=u[B],O=E.xyzOriginal,M;if(s)M=B;else{M=!(0==B&&0<=E.xyz.indexOf("x4"))&&null!=a.getSpaceGroupOperation(B)?B:v?a.addBioMoleculeOperation(z.finalOperations[B],!1):a.addSpaceGroupOperation("="+E.xyz,B+1);if(0>M)continue;E=a.getSpaceGroupOperation(B);if(null==E)continue;E.xyzOriginal=O}null!=w&&(w+=";"+E.xyz);E=0<d&&d-1!=M?null:this.createInfoArray(E,
r,m,f,h,j,p,!1,q,!1,!1);if(null!=E&&(D++,!(0<l&&D!=l)&&(L[B]=E,s||(x+="\n"+(B+1)+(null!=h&&1==D?"*":"")+"\t"+E[q.get(19)?19:0]+"\t  "+E[2]),G++,0<d)))break}t.put("operations",L);s||t.put("symmetryInfo",0==x.length?"":x.substring(1))}if(s)return t;u=0==G?"\n no symmetry operations":0>=l&&0>=d?"\n"+G+" symmetry operation"+(1==G?":\n":"s:\n"):"";null!=w&&(b=w.substring(w.indexOf(";")+1));y&&this.modelSet.setInfo(c,"spaceGroupInfo",t)}else t=new java.util.Hashtable;t.put("spaceGroupName",b);t.put("spaceGroupNote",
null==u?"":u);if(v)a=b;else if(C&&!H&&a.setSpaceGroupName(b),a=a.getSpaceGroupInfoObj(b,null==r?null:r.getUnitCellParams(),k,!n),null==a||a.equals("?"))a="?",t.put("spaceGroupNote","could not identify space group from name: "+b+'\nformat: show spacegroup "2" or "P 2c" or "C m m m" or "x, y, z;-x ,-y, -z"');t.put("spaceGroupInfo",a);return t},"J.api.SymmetryInterface,~N,~S,~N,JU.P3,JU.P3,~S,~N,~N,~B,~B,~N,J.api.SymmetryInterface,JU.BS");d(b,"getTransform",function(a,c,b,d,m){null==JS.SymmetryDesc.pta01&&
(JS.SymmetryDesc.pta01=new JU.P3,JS.SymmetryDesc.pta02=new JU.P3,JS.SymmetryDesc.ptemp=new JU.P3,JS.SymmetryDesc.vtrans=new JU.V3);JS.SymmetryDesc.pta02.setT(d);JS.SymmetryDesc.vtrans.setT(JS.SymmetryDesc.pta02);a.unitize(JS.SymmetryDesc.pta02);d=3.4028235E38;for(var f=-1,h=0,j=c.length;h<j;h++){var l=c[h];JS.SymmetryDesc.pta01.setT(b);l.rotTrans(JS.SymmetryDesc.pta01);JS.SymmetryDesc.ptemp.setT(JS.SymmetryDesc.pta01);a.unitize(JS.SymmetryDesc.pta01);var k=JS.SymmetryDesc.pta01.distanceSquared(JS.SymmetryDesc.pta02);
if(1.96E-6>k){JS.SymmetryDesc.vtrans.sub(JS.SymmetryDesc.ptemp);JS.SymmetryOperation.normalize12ths(JS.SymmetryDesc.vtrans);l=JU.M4.newM4(l);l.add(JS.SymmetryDesc.vtrans);JS.SymmetryDesc.pta01.setT(b);l.rotTrans(JS.SymmetryDesc.pta01);a.unitize(JS.SymmetryDesc.pta01);k=JS.SymmetryDesc.pta01.distanceSquared(JS.SymmetryDesc.pta02);if(1.96E-6<=k)continue;return l}k<d&&(d=k,f=h)}m&&(l=c[f],JS.SymmetryDesc.pta01.setT(b),l.rotTrans(JS.SymmetryDesc.pta01),a.unitize(JS.SymmetryDesc.pta01));return null},"JS.UnitCell,~A,JU.P3,JU.P3,~B");
b.keys=P(-1,["xyz","xyzOriginal","label",null,"fractionalTranslation","cartesianTranslation","inversionCenter",null,"axisVector","rotationAngle","matrix","unitTranslation","centeringVector","timeReversal","plane","_type","id","cif2","xyzCanonical","xyzNormalized"]);b.ptemp=new JU.P3;b.ptemp2=new JU.P3;b.pta01=new JU.P3;b.pta02=new JU.P3;b.vtrans=new JU.V3});X("JS");fa(["JU.SimpleUnitCell","JU.P3","JV.JC"],"JS.UnitCell","java.util.Hashtable JU.AU $.Lst $.M3 $.M4 $.P4 $.PT $.Quat $.V3 J.api.Interface JS.Symmetry JU.BoxInfo $.Escape".split(" "),
function(){var b=ba(function(){this.moreInfo=null;this.name="";this.fractionalOffset=this.vertices=null;this.allFractionalRelative=!1;this.f2c=this.unitCellMultiplied=this.unitCellMultiplier=this.cartesianOffset=null;M(this,arguments)},JS,"UnitCell",JU.SimpleUnitCell,Cloneable);oa(b,function(){this.cartesianOffset=new JU.P3});b.fromOABC=d(b,"fromOABC",function(a,c){var b=new JS.UnitCell;3==a.length&&(a=P(-1,[new JU.P3,a[0],a[1],a[2]]));var d=C(-1,[-1,0,0,0,0,0,a[1].x,a[1].y,a[1].z,a[2].x,a[2].y,a[2].z,
a[3].x,a[3].y,a[3].z]);b.init(d);b.allFractionalRelative=c;b.initUnitcellVertices();b.setCartesianOffset(a[0]);return b},"~A,~B");b.fromParams=d(b,"fromParams",function(a,c,b){var d=new JS.UnitCell;d.init(a);d.initUnitcellVertices();d.allFractionalRelative=c;d.setPrecision(b);26<a.length&&(a[26]=b);return d},"~A,~B,~N");b.cloneUnitCell=d(b,"cloneUnitCell",function(a){var c=null;try{c=a.clone()}catch(b){if(!da(b,"CloneNotSupportedException"))throw b;}return c},"JS.UnitCell");d(b,"checkDistance",function(a,
c,b,d,m,f,h,j){a=JU.P3.newP(a);this.toCartesian(a,!0);for(var l=-m;l<=m;l++)for(var k=-f;k<=f;k++)for(var n=-h;n<=h;n++){j.set(c.x+l,c.y+k,c.z+n);this.toCartesian(j,!0);var p=a.distance(j);if(0<d?Math.abs(p-b)<=d:p<=b&&0.1<p)return j.set(l,k,n),!0}return!1},"JU.P3,JU.P3,~N,~N,~N,~N,~N,JU.P3");d(b,"checkPeriodic",function(a){switch(this.dimension){case 3:if(a.z<-this.slop||a.z>1-this.slop)return!1;case 2:if(a.y<-this.slop||a.y>1-this.slop)return!1;case 1:if(a.x<-this.slop||a.x>1-this.slop)return!1}return!0},
"JU.P3");d(b,"dumpInfo",function(a,c){var b=c?this.getUnitCellMultiplied():this;return b!==this?b.dumpInfo(a,!1):"a="+this.a+", b="+this.b+", c="+this.c+", alpha="+this.alpha+", beta="+this.beta+", gamma="+this.gamma+"\noabc="+JU.Escape.eAP(this.getUnitCellVectors())+"\nvolume="+this.volume+(a?"\nfractional to cartesian: "+this.matrixFractionalToCartesian+"\ncartesian to fractional: "+this.matrixCartesianToFractional:"")},"~B,~B");d(b,"fix000",function(a){return 0.001>Math.abs(a)?0:a},"~N");d(b,"fixFloor",
function(a){return 1==a?0:a},"~N");d(b,"getCanonicalCopy",function(a,c){var b=this.getScaledCell(c);return JU.BoxInfo.getCanonicalCopy(b,a)},"~N,~B");d(b,"getCanonicalCopyTrimmed",function(a,c){var b=this.getScaledCellMult(a,!0);return JU.BoxInfo.getCanonicalCopy(b,c)},"JU.P3,~N");d(b,"getCartesianOffset",function(){return this.cartesianOffset});d(b,"getCellWeight",function(a){var b=1;if(a.x<=this.slop||a.x>=1-this.slop)b/=2;if(a.y<=this.slop||a.y>=1-this.slop)b/=2;if(a.z<=this.slop||a.z>=1-this.slop)b/=
2;return b},"JU.P3");d(b,"getConventionalUnitCell",function(a,b){var d=this.getUnitCellVectors();(!a.equals("P")||null!=b)&&this.toFromPrimitive(!1,a.charAt(0),d,b);return d},"~S,JU.M3");d(b,"getEquivPoints",function(a,b,d,g,m,f,h){var j=0<=b.indexOf("fromfractional"),l=0<=b.indexOf("tofractional");b=0<=b.indexOf("packed");null==g&&(g=new JU.Lst);a=JU.P3.newP(a);j||this.toFractional(a,!0);for(var j=g.size(),k=0,n=d.length;k<n;k++){var p=JU.P3.newP(a);d[k].rotTrans(p);p.x=this.fixFloor(p.x-Math.floor(p.x));
p.y=this.fixFloor(p.y-Math.floor(p.y));p.z=this.fixFloor(p.z-Math.floor(p.z));g.addLast(p);j++}if(b)for(k=f;k<j;k++)a.setT(g.get(k)),this.unitizeRnd(a),0==a.x&&(g.addLast(JU.P3.new3(0,a.y,a.z)),g.addLast(JU.P3.new3(1,a.y,a.z)),0==a.y&&(g.addLast(JU.P3.new3(1,1,a.z)),g.addLast(JU.P3.new3(0,0,a.z)),0==a.z&&(g.addLast(JU.P3.new3(1,1,1)),g.addLast(JU.P3.new3(0,0,0))))),0==a.y&&(g.addLast(JU.P3.new3(a.x,0,a.z)),g.addLast(JU.P3.new3(a.x,1,a.z)),0==a.z&&(g.addLast(JU.P3.new3(a.x,0,0)),g.addLast(JU.P3.new3(a.x,
1,1)))),0==a.z&&(g.addLast(JU.P3.new3(a.x,a.y,0)),g.addLast(JU.P3.new3(a.x,a.y,1)),0==a.x&&(g.addLast(JU.P3.new3(0,a.y,0)),g.addLast(JU.P3.new3(1,a.y,1))));JS.UnitCell.removeDuplicates(g,m,h,-1);if(!l)for(k=g.size();--k>=f;)this.toCartesian(g.get(k),!0);return g},"JU.P3,~S,~A,JU.Lst,~N,~N,~N");d(b,"getFractionalOffset",function(){return this.fractionalOffset});d(b,"getInfo",function(){var a=this.getUnitCellMultiplied();if(a!==this)return a.getInfo();a=new java.util.Hashtable;a.put("params",this.unitCellParams);
a.put("oabc",this.getUnitCellVectors());a.put("volume",Double.$valueOf(this.volume));a.put("matFtoC",this.matrixFractionalToCartesian);a.put("matCtoF",this.matrixCartesianToFractional);return a});d(b,"getQuaternionRotation",function(a){var b=JU.V3.newVsub(this.vertices[4],this.vertices[0]),d=JU.V3.newVsub(this.vertices[2],this.vertices[0]),g=JU.V3.newVsub(this.vertices[1],this.vertices[0]),m=new JU.P3,f=new JU.P3,h="-"==a.charAt(0)?-1:1;0>h&&(a=a.substring(1));var j=a;a=JU.PT.rep(JU.PT.rep(JU.PT.rep(JU.PT.rep(JU.PT.rep(JU.PT.rep(a,
"ab","A"),"bc","B"),"ca","C"),"ba","D"),"cb","E"),"ac","F");var l=(j=!j.equals(a))?1:0;2==a.length&&(l=a.charAt(1).charCodeAt(0)-48,a=a.substring(0,1));var k=0==l%2;switch("abcABCDEF".indexOf(a)){case 7:h=-h;case 4:b.cross(g,d),l=(5-l)%4+1;default:a=b;b=g;break;case 8:h=-h;case 5:h=-h,d.cross(g,b),l=(2+l)%4+1;case 1:a=d;d=g;h=-h;break;case 3:h=-h;case 6:g.cross(b,d),k&&(l=6-l);case 2:a=g,!j&&0<l&&(l=5-l)}0<l&&0<h!=k&&(b=d,a.scale(-1));switch(l){case 2:a.scale(-1);b.scale(-1);break;case 3:b.scale(-1);
break;case 4:a.scale(-1)}m.cross(a,b);f.cross(m,a);return JU.Quat.getQuaternionFrame(null,f,m).inv()},"~S");d(b,"getScaledCell",function(a){return this.getScaledCellMult(null,a)},"~B");d(b,"getScaledCellMult",function(a,b){var d=Array(8),g=null,m=null,f=null!=a;f||(a=this.unitCellMultiplier);b&&(null!=a&&0==a.z)&&(g=new JU.P3,m=new JU.P3,JU.SimpleUnitCell.ijkToPoint3f(w(a.x),g,0,0),JU.SimpleUnitCell.ijkToPoint3f(w(a.y),m,0,0),m.sub(g));for(var h=f||null==a||0==a.z?1:Math.abs(a.z),j=0;8>j;j++){var l=
d[j]=JU.P3.newP(JU.BoxInfo.unitCubePoints[j]);null!=g?d[j].add3(g.x+m.x*l.x,g.y+m.y*l.y,g.z+m.z*l.z):f&&l.scaleT(a);d[j].scale(h);this.matrixFractionalToCartesian.rotTrans(l);b||l.sub(this.cartesianOffset)}return d},"JU.T3,~B");d(b,"getState",function(){var a="";null!=this.fractionalOffset&&0!=this.fractionalOffset.lengthSquared()&&(a+="  unitcell offset "+JU.Escape.eP(this.fractionalOffset)+";\n");null!=this.unitCellMultiplier&&(a+="  unitcell range "+JU.SimpleUnitCell.escapeMultiplier(this.unitCellMultiplier)+
";\n");return a});d(b,"getTensor",function(a,b){var d=J.api.Interface.getUtil("Tensor",a,"file");if(0==b[0]&&0==b[1]&&0==b[2]){var g=b[7],m=C(-1,[g,g,g]);return d.setFromEigenVectors(JS.UnitCell.unitVectors,m,"iso","Uiso="+g,null)}d.parBorU=b;var g=ua(6,0),f=w(b[6]);if(12==f)g[0]=19.739208802178716*b[0],g[1]=19.739208802178716*b[1],g[2]=19.739208802178716*b[2],g[3]=39.47841760435743*b[3],g[4]=39.47841760435743*b[4],g[5]=39.47841760435743*b[5],b[7]=(b[0]+b[1]+b[3])/3;else{var m=4==f||5==f||8==f||9==
f,h=2-f%2,j=8==f||9==f||10==f?19.739208802178716:4==f||5==f?0.25:2==f||3==f?Math.log(2):1,f=b[0]*j*(m?this.a_*this.a_:1),l=b[1]*j*(m?this.b_*this.b_:1),k=b[2]*j*(m?this.c_*this.c_:1),n=b[3]*j*(m?this.a_*this.b_:1)*h,p=b[4]*j*(m?this.a_*this.c_:1)*h,m=b[5]*j*(m?this.b_*this.c_:1)*h;b[7]=Math.pow(f/19.739208802178716/this.a_/this.a_*l/19.739208802178716/this.b_/this.b_*k/19.739208802178716/this.c_/this.c_,0.3333);g[0]=this.a*this.a*f+this.b*this.b*this.cosGamma*this.cosGamma*l+this.c*this.c*this.cosBeta*
this.cosBeta*k+this.a*this.b*this.cosGamma*n+this.b*this.c*this.cosGamma*this.cosBeta*m+this.a*this.c*this.cosBeta*p;g[1]=this.b*this.b*this.sinGamma*this.sinGamma*l+this.c*this.c*this.cA_*this.cA_*k+this.b*this.c*this.cA_*this.sinGamma*m;g[2]=this.c*this.c*this.cB_*this.cB_*k;g[3]=2*this.b*this.b*this.cosGamma*this.sinGamma*l+2*this.c*this.c*this.cA_*this.cosBeta*k+this.a*this.b*this.sinGamma*n+this.b*this.c*(this.cA_*this.cosGamma+this.sinGamma*this.cosBeta)*m+this.a*this.c*this.cA_*p;g[4]=2*this.c*
this.c*this.cB_*this.cosBeta*k+this.b*this.c*this.cosGamma*m+this.a*this.c*this.cB_*p;g[5]=2*this.c*this.c*this.cA_*this.cB_*k+this.b*this.c*this.cB_*this.sinGamma*m}return d.setFromThermalEquation(g,JU.Escape.eAF(b))},"JV.Viewer,~A");d(b,"getUnitCellMultiplied",function(){if(null==this.unitCellMultiplier||0<this.unitCellMultiplier.z&&this.unitCellMultiplier.z==w(this.unitCellMultiplier.z))return this;if(null==this.unitCellMultiplied){var a=JU.BoxInfo.toOABC(this.getScaledCell(!0),null);this.unitCellMultiplied=
JS.UnitCell.fromOABC(a,!1)}return this.unitCellMultiplied});d(b,"getUnitCellMultiplier",function(){return this.unitCellMultiplier});d(b,"isStandard",function(){return null==this.unitCellMultiplier||this.unitCellMultiplier.x==this.unitCellMultiplier.y});d(b,"getUnitCellVectors",function(){var a=this.matrixFractionalToCartesian;return P(-1,[JU.P3.newP(this.cartesianOffset),JU.P3.new3(this.fix000(a.m00),this.fix000(a.m10),this.fix000(a.m20)),JU.P3.new3(this.fix000(a.m01),this.fix000(a.m11),this.fix000(a.m21)),
JU.P3.new3(this.fix000(a.m02),this.fix000(a.m12),this.fix000(a.m22))])});b.toTrm=d(b,"toTrm",function(a,b){null==b&&(b=new JU.M4);JS.UnitCell.getMatrixAndUnitCell(null,a,b);return b},"~S,JU.M4");b.getMatrixAndUnitCell=d(b,"getMatrixAndUnitCell",function(a,b,d){null==b&&(b="a,b,c");var g,m=Array(4),f=m[0]=JU.P3.new3(0,0,0);m[1]=JU.P3.new3(1,0,0);m[2]=JU.P3.new3(0,1,0);m[3]=JU.P3.new3(0,0,1);var h=new JU.M3;if(JU.AU.isAD(b))return JU.SimpleUnitCell.setAbcFromParams(b,m);if("string"==typeof b){var j,
l=null;if(0==b.indexOf("a="))return JU.SimpleUnitCell.setAbc(b,null,m);if(0<b.indexOf(">")){if(null!=a||null==d)return null;a=b.$plit(">");d.setIdentity();f=new JU.M4;for(g=a.length;0<=--g;)JS.UnitCell.getMatrixAndUnitCell(null,a[g],f),d.mul2(f,d);return m}g=Array(1);var k=b.indexOf(";");0<=k?(j=b.substring(k+1).trim(),b=b.substring(0,k),g[0]=b,l=JS.UnitCell.fixABC(g),b!==g[0]&&(b=g[0])):b.equals("a,b,c")?j=null:(g[0]=b,j=JS.UnitCell.fixABC(g),b=g[0]);for(b+=";0,0,0";b.startsWith("!!");)b=b.substring(2);
(k=b.startsWith("!"))&&(b=b.substring(1));b.startsWith("r;")&&(b="2/3a+1/3b+1/3c,-1/3a+1/3b+1/3c,-1/3a-2/3b+1/3c"+b.substring(1));var n=new JS.Symmetry;n.setSpaceGroup(!1);g=n.addSpaceGroupOperation("="+b,0);if(0>g)return null;g=n.getSpaceGroupOperation(g);g.doFinalize();n=new JU.P3;JS.UnitCell.addTrans(j,n);JS.UnitCell.addTrans(l,n);g.setTranslation(n);0<=b.indexOf("c")&&g.transpose33();k&&g.invert();null!=d&&d.setM4(g);if(null==a)return m}else{if(null!=d||null==a)return null;if(U(b,"JU.M3"))g=JU.M4.newMV(b,
new JU.P3);else if(U(b,"JU.M4"))g=b;else{g=b[0];g.getRotationScale(h);g.rotTrans(f);a.toCartesian(f,!1);for(g=1;4>g;g++)h.rotate(m[g]),a.toCartesian(m[g],!0);return m}}g.getRotationScale(h);g.getTranslation(f);a.toCartesian(f,!1);for(g=1;4>g;g++)h.rotate(m[g]),a.toCartesian(m[g],!0);return m},"JU.SimpleUnitCell,~O,JU.M4");b.addTrans=d(b,"addTrans",function(a,b){if(null!=a){var d=JU.PT.split(a,","),g=C(3,0);if(3==d.length)for(var m=0;3>m;m++){var f=d[m],h=f.indexOf("/");g[m]=0<=h?JU.PT.parseFloat(f.substring(0,
h))/JU.PT.parseFloat(f.substring(h+1)):JU.PT.parseFloat(f)}b.add3(g[0],g[1],g[2])}},"~S,JU.P3");b.fixABC=d(b,"fixABC",function(a){var b=JU.PT.split(a[0],",");if(3!=b.length)return null;for(var d="",g="",m=!1,f=0;3>f;f++){var h=b[f],j,l=0;for(j=h.length;0<=--j;){var k=h.charAt(j);switch(k.charCodeAt(0)){default:"a"<=k&&(j=0);break;case 43:l=1;case 45:j=-j}}j=-1-j;0==j?(d+=",0",g+=","+h):(m=!0,d+=","+h.substring(j+l),g+=","+h.substring(0,j))}a[0]=g.substring(1);return m?d.substring(1):null},"~A");d(b,
"getVertices",function(){return this.vertices});d(b,"hasOffset",function(){return null!=this.fractionalOffset&&0!=this.fractionalOffset.lengthSquared()});d(b,"initOrientation",function(a){if(null!=a){var b=new JU.M4;b.setToM3(a);this.matrixFractionalToCartesian.mul2(b,this.matrixFractionalToCartesian);this.matrixCartesianToFractional.setM4(this.matrixFractionalToCartesian).invert();this.initUnitcellVertices()}},"JU.M3");d(b,"initUnitcellVertices",function(){if(null!=this.matrixFractionalToCartesian){this.matrixCtoFNoOffset=
JU.M4.newM4(this.matrixCartesianToFractional);this.matrixFtoCNoOffset=JU.M4.newM4(this.matrixFractionalToCartesian);this.vertices=Array(8);for(var a=8;0<=--a;)this.vertices[a]=this.matrixFractionalToCartesian.rotTrans2(JU.BoxInfo.unitCubePoints[a],new JU.P3)}});d(b,"isSameAs",function(a){if(null==a)return!1;for(var b=this.getF2C(),d=0;3>d;d++)for(var g=0;4>g;g++)if(!JU.SimpleUnitCell.approx0(b[d][g]-a[d][g]))return!1;return!0},"~A");d(b,"getF2C",function(){if(null==this.f2c){this.f2c=C(3,4,0);for(var a=
0;3>a;a++)this.matrixFractionalToCartesian.getRow(a,this.f2c[a])}return this.f2c});d(b,"isWithinUnitCell",function(a,b,d,g){switch(this.dimension){case 3:if(g.z<d-1-this.slop||g.z>d+this.slop)return!1;case 2:if(g.y<b-1-this.slop||g.y>b+this.slop)return!1;case 1:if(g.x<a-1-this.slop||g.x>a+this.slop)return!1}return!0},"~N,~N,~N,JU.P3");d(b,"setCartesianOffset",function(a){this.cartesianOffset.setT(a);this.matrixFractionalToCartesian.m03=this.cartesianOffset.x;this.matrixFractionalToCartesian.m13=this.cartesianOffset.y;
this.matrixFractionalToCartesian.m23=this.cartesianOffset.z;a=this.hasOffset();this.fractionalOffset=JU.P3.newP(this.cartesianOffset);this.matrixCartesianToFractional.rotate(this.fractionalOffset);this.matrixCartesianToFractional.m03=-this.fractionalOffset.x;this.matrixCartesianToFractional.m13=-this.fractionalOffset.y;this.matrixCartesianToFractional.m23=-this.fractionalOffset.z;this.allFractionalRelative&&(this.matrixCtoFNoOffset.setM4(this.matrixCartesianToFractional),this.matrixFtoCNoOffset.setM4(this.matrixFractionalToCartesian));
!a&&0==this.fractionalOffset.lengthSquared()&&(this.fractionalOffset=null);this.f2c=null},"JU.T3");d(b,"setOffset",function(a){if(null!=a){this.unitCellMultiplied=null;var b=U(a,"JU.T4")?a:null,d=null==b?1.4E-45:b.w,g=999999<d;if(null!=b?0>=d||g:100<=a.x||100<=a.y)if(this.unitCellMultiplier=0==a.z&&a.x==a.y&&!g?null:g?JU.P4.newPt(b):JU.P3.newP(a),this.unitCellMultiplied=null,null==b||0==b.w||g)return;if(this.hasOffset()||0<a.lengthSquared())this.fractionalOffset=JU.P3.newP(a);this.matrixCartesianToFractional.m03=
-a.x;this.matrixCartesianToFractional.m13=-a.y;this.matrixCartesianToFractional.m23=-a.z;this.cartesianOffset.setT(a);this.matrixFractionalToCartesian.rotate(this.cartesianOffset);this.matrixFractionalToCartesian.m03=this.cartesianOffset.x;this.matrixFractionalToCartesian.m13=this.cartesianOffset.y;this.matrixFractionalToCartesian.m23=this.cartesianOffset.z;this.allFractionalRelative&&(this.matrixCtoFNoOffset.setM4(this.matrixCartesianToFractional),this.matrixFtoCNoOffset.setM4(this.matrixFractionalToCartesian));
this.f2c=null}},"JU.T3");d(b,"toFromPrimitive",function(a,b,d,g){var m=d.length-3,f=null;if("r"==b||null==g){switch(b.charCodeAt(0)){default:return!1;case 114:return JU.SimpleUnitCell.getReciprocal(d,d,1),!0;case 80:a=!0;f=JU.M3.newA9(C(-1,[1,0,0,0,1,0,0,0,1]));break;case 65:f=JU.M3.newA9(C(-1,[1,0,0,0,0.5,0.5,0,-0.5,0.5]));break;case 66:f=JU.M3.newA9(C(-1,[0.5,0,0.5,0,1,0,-0.5,0,0.5]));break;case 67:f=JU.M3.newA9(C(-1,[0.5,0.5,0,-0.5,0.5,0,0,0,1]));break;case 82:f=JU.M3.newA9(C(-1,[0.6666667,-0.33333334,
-0.33333334,0.33333334,0.33333334,-0.6666667,0.33333334,0.33333334,0.33333334]));break;case 73:f=JU.M3.newA9(C(-1,[-0.5,0.5,0.5,0.5,-0.5,0.5,0.5,0.5,-0.5]));break;case 70:f=JU.M3.newA9(C(-1,[0,0.5,0.5,0.5,0,0.5,0.5,0.5,0]))}a||f.invert()}else f=JU.M3.newM3(g),a&&f.invert();for(a=d.length;--a>=m;)b=d[a],this.toFractional(b,!0),f.rotate(b),this.toCartesian(b,!0);return!0},"~B,~S,~A,JU.M3");d(b,"toUnitCell",function(a,b){null!=this.matrixCartesianToFractional&&(null==b?(this.matrixCartesianToFractional.rotTrans(a),
this.unitize(a),this.matrixFractionalToCartesian.rotTrans(a)):(this.matrixCtoFNoOffset.rotTrans(a),this.unitize(a),a.add(b),this.matrixFtoCNoOffset.rotTrans(a)))},"JU.T3,JU.T3");d(b,"toUnitCellRnd",function(a,b){null!=this.matrixCartesianToFractional&&(null==b?(this.matrixCartesianToFractional.rotTrans(a),this.unitizeRnd(a),this.matrixFractionalToCartesian.rotTrans(a)):(this.matrixCtoFNoOffset.rotTrans(a),this.unitizeRnd(a),a.add(b),this.matrixFtoCNoOffset.rotTrans(a)))},"JU.T3,JU.T3");d(b,"unitize",
function(a){this.unitizeDim(this.dimension,a)},"JU.T3");d(b,"unitizeRnd",function(a){JU.SimpleUnitCell.unitizeDimRnd(this.dimension,a,this.slop)},"JU.T3");b.createCompatibleUnitCell=d(b,"createCompatibleUnitCell",function(a,b,d,g){null==d&&(d=b);var m=b[0],f=b[1],h=b[2],j=b[3],l=b[4],k=b[5],n=null==a||null==a.itaNumber?0:JU.PT.parseInt(a.itaNumber),p=0!=n&&JS.UnitCell.isHexagonalSG(n,null),r=p&&JS.UnitCell.isHexagonalSG(-1,b),q=0!=n&&"r"==a.axisChoice,s=q&&JU.SimpleUnitCell.isRhombohedral(b);if(p&&
r||q&&s)g=!0;if(n>(g?2:0)){var t=JU.SimpleUnitCell.approx0(m-f),t=JU.SimpleUnitCell.approx0(f-h),t=JU.SimpleUnitCell.approx0(h-m),w=JU.SimpleUnitCell.approx0(j-l),v=JU.SimpleUnitCell.approx0(l-k),u=JU.SimpleUnitCell.approx0(k-j);g||(m>f&&(w=m,m=f,f=w),(t=JU.SimpleUnitCell.approx0(f-h))&&(h=1.5*f),(t=JU.SimpleUnitCell.approx0(m-f))&&(f=1.2*m),(t=JU.SimpleUnitCell.approx0(h-m))&&(h=1.1*m),JU.SimpleUnitCell.approx0(j-90)&&(j=80),JU.SimpleUnitCell.approx0(l-90)&&(l=100),JU.SimpleUnitCell.approx0(k-90)&&
(k=110),j>l&&(w=j,j=l,l=w),w=JU.SimpleUnitCell.approx0(j-l),v=JU.SimpleUnitCell.approx0(l-k),u=JU.SimpleUnitCell.approx0(k-j),w&&(l=1.2*j),v&&(k=1.3*l),u&&(k=1.4*j));if(p){if(!(q?s:r))"r"==a.axisChoice?(h=f=m,!g&&(85<j&&95>j)&&(j=80),k=l=j):(f=m,j=l=90,k=120)}else if(195<=n)h=f=m,j=l=k=90;else if(75<=n)f=m,t&&!g&&(h=1.5*m),j=l=k=90;else if(16<=n)j=l=k=90;else if(3<=n)switch(a.uniqueAxis.charCodeAt(0)){case 97:l=k=90;break;default:case 98:j=k=90;break;case 99:j=l=90}}a=!(m==b[0]&&f==b[1]&&h==b[2]&&
j==b[3]&&l==b[4]&&k==b[5]);d[0]=m;d[1]=f;d[2]=h;d[3]=j;d[4]=l;d[5]=k;return a},"JS.SpaceGroup,~A,~A,~B");b.isHexagonalSG=d(b,"isHexagonalSG",function(a,b){return 1>a?JU.SimpleUnitCell.isHexagonal(b):143<=a&&194>=a},"~N,~A");b.isMonoclinicSG=d(b,"isMonoclinicSG",function(a){return 3<=a&&15>=a},"~N");b.isTetragonalSG=d(b,"isTetragonalSG",function(a){return 75<=a&&142>=a},"~N");b.isPolarSG=d(b,"isPolarSG",function(a){return 1==a||3<=a&&5>=a||6<=a&&9>=a||25<=a&&46>=a||75<=a&&80>=a||99<=a&&110>=a||143<=
a&&146>=a||156<=a&&161>=a||168<=a&&173>=a||183<=a&&186>=a},"~N");b.removeDuplicates=d(b,"removeDuplicates",function(a,b,d,g){for(0>g&&(g=a.size());b<g;b++)for(var m=a.get(b),f=Math.max(b+1,d);f<g;f++)1.96E-6>a.get(f).distanceSquared(m)&&(a.removeItemAt(f),g--,f--)},"JU.Lst,~N,~N,~N");b.unitVectors=P(-1,[JV.JC.axisX,JV.JC.axisY,JV.JC.axisZ])})})(Clazz,Clazz.getClassName,Clazz.newLongArray,Clazz.doubleToByte,Clazz.doubleToInt,Clazz.doubleToLong,Clazz.declarePackage,Clazz.instanceOf,Clazz.load,Clazz.instantialize,
Clazz.decorateAsClass,Clazz.floatToInt,Clazz.floatToLong,Clazz.makeConstructor,Clazz.defineEnumConstant,Clazz.exceptionOf,Clazz.newIntArray,Clazz.newFloatArray,Clazz.declareType,Clazz.prepareFields,Clazz.superConstructor,Clazz.newByteArray,Clazz.declareInterface,Clazz.newShortArray,Clazz.innerTypeInstance,Clazz.isClassDefined,Clazz.prepareCallback,Clazz.newArray,Clazz.castNullAs,Clazz.floatToShort,Clazz.superCall,Clazz.decorateAsType,Clazz.newBooleanArray,Clazz.newCharArray,Clazz.implementOf,Clazz.newDoubleArray,
Clazz.overrideConstructor,Clazz.clone,Clazz.doubleToShort,Clazz.getInheritedLevel,Clazz.getParamsType,Clazz.isAF,Clazz.isAB,Clazz.isAI,Clazz.isAS,Clazz.isASS,Clazz.isAP,Clazz.isAFloat,Clazz.isAII,Clazz.isAFF,Clazz.isAFFF,Clazz.tryToSearchAndExecute,Clazz.getStackTrace,Clazz.inheritArgs,Clazz.alert,Clazz.defineMethod,Clazz.overrideMethod,Clazz.declareAnonymous,Clazz.cloneFinals);
