-
Notifications
You must be signed in to change notification settings - Fork 26
/
polyhedronisme.min.js
94 lines (90 loc) · 131 KB
/
polyhedronisme.min.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
const{random,round,floor,sqrt,sin,cos,tan,asin,acos,atan,abs,pow,log,PI,LN10}=Math,log10=e=>log(e)/LN10,sigfigs=function(e,n){const s=e/pow(10,floor(log10(e))),a=round(s*pow(10,n-1));return`${a}`};var clone=function(e){if(null==e||"object"!=typeof e)return e;const n=new e.constructor;for(let s in e)n[s]=clone(e[s]);return n};const randomchoice=function(e){const s=floor(random()*e.length);return e[s]},mult=(e,n)=>[e*n[0],e*n[1],e*n[2]],_mult=(e,n)=>[e[0]*n[0],e[1]*n[1],e[2]*n[2]],add=(e,n)=>[e[0]+n[0],e[1]+n[1],e[2]+n[2]],sub=(e,n)=>[e[0]-n[0],e[1]-n[1],e[2]-n[2]],dot=(e,n)=>e[0]*n[0]+e[1]*n[1]+e[2]*n[2],cross=(e,n)=>[e[1]*n[2]-e[2]*n[1],e[2]*n[0]-e[0]*n[2],e[0]*n[1]-e[1]*n[0]],mag=e=>sqrt(dot(e,e)),mag2=e=>dot(e,e),unit=e=>mult(1/sqrt(mag2(e)),e),midpoint=(e,n)=>mult(1/2,add(e,n)),tween=(e,n,s)=>[(1-s)*e[0]+s*n[0],(1-s)*e[1]+s*n[1],(1-s)*e[2]+s*n[2]],oneThird=(e,n)=>tween(e,n,1/3),reciprocal=e=>mult(1/mag2(e),e),tangentPoint=function(e,n){const s=sub(n,e);return sub(e,mult(dot(s,e)/mag2(s),s))},edgeDist=(e,n)=>sqrt(mag2(tangentPoint(e,n))),linePointDist2=function(e,n,s){let a;const i=sub(n,e),c=sub(e,s),f=sub(n,s),d=mag2(i),l=-dot(c,i)/d;return a=0>=l?mag2(c):1<=l?mag2(f):mag2(cross(i,c))/d,a},orthogonal=function(e,n,s){const a=sub(n,e),i=sub(s,n);return cross(a,i)},intersect=function(e,n,s){for(let a of e)for(let e of n)if(a===e)for(let e of s)if(a===e)return a;return null},calcCentroid=function(e){let n=[0,0,0];for(let s of e)n=add(n,s);return mult(1/e.length,n)},normal=function(e){let n=[0,0,0],[s,a]=e.slice(-2);for(let i of e)n=add(n,orthogonal(s,a,i)),[s,a]=[a,i];return unit(n)},planararea=function(e){let n=0,s=[0,0,0],[a,i]=e.slice(-2);for(let n of e)s=add(s,cross(a,i)),[a,i]=[i,n];return n=abs(dot(normal(e),s)/2),n},faceSignature=function(e,n){let s;const a=[];let[i,c]=e.slice(-2);for(let s of e)a.push(mag(cross(sub(i,c),sub(s,c)))),[i,c]=[c,s];a.sort((e,n)=>e-n);let f="";for(s of a)f+=sigfigs(s,n);for(s of a.reverse())f+=sigfigs(s,n);return f},project2dface=function(e){let s=clone(e);const a=e[0];s=_.map(s,e=>e-a);const i=normal(e),n=unit(calcCentroid(e)),c=cross(i,n);return s.map(e=>[dot(i,e),dot(c,e)])},copyVecArray=function(e){const n=Array(e.length);for(let s=0,a=e.length;s<a;s++)n[s]=e[s].slice(0);return n},mv3=(e,n)=>[e[0][0]*n[0]+e[0][1]*n[1]+e[0][2]*n[2],e[1][0]*n[0]+e[1][1]*n[1]+e[1][2]*n[2],e[2][0]*n[0]+e[2][1]*n[1]+e[2][2]*n[2]],mm3=(e,n)=>[[e[0][0]*n[0][0]+e[0][1]*n[1][0]+e[0][2]*n[2][0],e[0][0]*n[0][1]+e[0][1]*n[1][1]+e[0][2]*n[2][1],e[0][0]*n[0][2]+e[0][1]*n[1][2]+e[0][2]*n[2][2]],[e[1][0]*n[0][0]+e[1][1]*n[1][0]+e[1][2]*n[2][0],e[1][0]*n[0][1]+e[1][1]*n[1][1]+e[1][2]*n[2][1],e[1][0]*n[0][2]+e[1][1]*n[1][2]+e[1][2]*n[2][2]],[e[2][0]*n[0][0]+e[2][1]*n[1][0]+e[2][2]*n[2][0],e[2][0]*n[0][1]+e[2][1]*n[1][1]+e[2][2]*n[2][1],e[2][0]*n[0][2]+e[2][1]*n[1][2]+e[2][2]*n[2][2]]],eye3=[[1,0,0],[0,1,0],[0,0,1]],rotm=function(e,n,s){const a=[[cos(e),-1*sin(e),0],[sin(e),cos(e),0],[0,0,1]],i=[[cos(n),0,-1*sin(n)],[0,1,0],[sin(n),0,cos(n)]],c=[[1,0,0],[0,cos(s),-1*sin(s)],[0,sin(s),cos(s)]];return mm3(c,mm3(i,a))},vec_rotm=function(e,n,s,a){let i;e/=2;const c=sin(e),f=cos(e),d=c*c,t=mag([n,s,a]);if(0===t&&([n,s,a]=[0,0,1]),1!==t&&([n,s,a]=unit([n,s,a])),1===n&&0===s&&0===a)i=[[1,0,0],[0,1-2*d,2*c*f],[0,-2*c*f,1-2*d]];else if(0===n&&1===s&&0===a)i=[[1-2*d,0,-2*c*f],[0,1,0],[2*c*f,0,1-2*d]];else if(0===n&&0===s&&1===a)i=[[1-2*d,2*c*f,0],[-2*c*f,1-2*d,0],[0,0,1]];else{const e=n*n,t=s*s,l=a*a;i=[[1-2*(t+l)*d,2*(n*s*d+a*c*f),2*(n*a*d-s*c*f)],[2*(s*n*d-a*c*f),1-2*(l+e)*d,2*(s*a*d+n*c*f)],[2*(a*n*d+s*c*f),2*(a*s*d-n*c*f),1-2*(e+t)*d]]}return i},perspT=function(e,n,s,a,i){const c=(n*a-s)/(1-a),f=i*a/(1-a);return[f*e[0]/(e[2]+c),f*e[1]/(e[2]+c)]},invperspT=function(e,n,a,i,c,f,d,t){const l=(c*d-f)/(1-d),r=t*d/(1-d),s=e-a,u=n-i,v=r*r,m=l*l,g=s*s,o=u*u,J=(2*r*s*l+sqrt(4*v*g*m+4*g*(v+g+o)*(1-m)))/(2*(v+g+o)),p=r*u*l/(v+g+o)+u*sqrt(4*v*m+4*(v+g+o)*(1-m))/(2*(v+g+o)),h=sqrt(1-J*J-p*p);return[J,p,h]},getVec2VecRotM=function(e,n){const s=cross(e,n),a=acos(dot(e,n));return vec_rotm(-1*a,s[0],s[1],s[2])};function __range__(e,n,s){let a=[],c=e<n,f=s?c?n+1:n-1:n;for(let d=e;c?d<f:d>f;c?d++:d--)a.push(d);return a}const faceToEdges=function(e){const n=[];let[s]=e.slice(-1);for(let a of e)n.push([s,a]),s=a;return n},vertColors=function(e){const n=[];for(let s=0;s<e.faces.length;s++){const a=e.faces[s];for(let i of a)n[i]=e.face_classes[s]}return n},rwb_palette=["#ff7777","#dddddd","#889999","#fff0e5","#aa3333","#ff0000","#ffffff","#aaaaaa"];let PALETTE=rwb_palette;const palette=function(e){const n=e%PALETTE.length;return hextofloats(PALETTE[n])};function hsl2rgb(e,n,s){let a,i,c;if(0==n)a=i=c=s;else{const f=function(e,n,s){return 0>s&&(s+=1),1<s&&(s-=1),s<1/6?e+6*(n-e)*s:s<1/2?n:s<2/3?e+6*((n-e)*(2/3-s)):e};let d=.5>s?s*(1+n):s+n-s*n,t=2*s-d;a=f(t,d,e+1/3),i=f(t,d,e),c=f(t,d,e-1/3)}return[a,i,c]}const hextofloats=function(e){let n;return"#"===e[0]&&(e=e.slice(1)),n=3===e.length?e.split("").map(e=>parseInt(e+e,16)/255):e.match(/.{2}/g).map(e=>parseInt(e,16)/255),n},floatstohex=function(e){let n=(+parseInt(255*e[0],10)).toString(16),s=(+parseInt(255*e[1],10)).toString(16),a=(+parseInt(255*e[2],10)).toString(16);return"#"+n+s+a},rndcolors=function(){let e=[];for(let n=0;100>n;n++){let n=random(),a=.5*random()+.3,s=.5*random()+.45,i=hsl2rgb(n,a,s);e.push(floatstohex(i))}return e},paintPolyhedron=function(e){e.face_classes=[];const n={},s=function(e,n){if(e in n)return n[e];else{const s=_.toArray(n).length;return n[e]=s,s}};for(var a of e.faces){var i,c;"area"===COLOR_METHOD?(c=a.map(n=>e.vertices[n]),i=s(sigfigs(planararea(c),COLOR_SENSITIVITY),n)):"signature"===COLOR_METHOD?(c=a.map(n=>e.vertices[n]),i=s(faceSignature(c,COLOR_SENSITIVITY),n)):i=a.length-3,e.face_classes.push(i)}return console.log(_.toArray(n).length+" face classes"),e},sortfaces=function(e){const n=e.centers(),s=e.normals(),a=[0,0,(persp_z_max*persp_ratio-persp_z_min)/(1-persp_ratio)],i=_.zip(n,s,__range__(0,e.faces.length,!1)).sort((e,n)=>e[0][2]-n[0][2]).map(e=>e[2]);e.faces=i.map(n=>e.faces[n]),e.face_classes=i.map(n=>e.face_classes[n])};class polyhedron{constructor(e,n,s){this.faces=n||[],this.vertices=e||[],this.name=s||"null polyhedron"}edges(){let n,s,i;const c={},f=this.faces.map(faceToEdges);for(let e of f)for(n of e)n[0]<n[1]?[s,i]=n:[i,s]=n,c[`${s}~${i}`]=n;return _.values(c)}centers(){const e=[];for(let n of this.faces){let s=[0,0,0];for(let e of n)s=add(s,this.vertices[e]);e.push(mult(1/n.length,s))}return e}normals(){const e=[];for(let n of this.faces)e.push(normal(n.map(e=>this.vertices[e])));return e}data(){const e=this.faces.length+this.vertices.length-2;return`${this.faces.length} faces, ${e} edges, ${this.vertices.length} vertices`}moreData(){return`min edge length ${this.minEdgeLength().toPrecision(2)}<br>`+`min face radius ${this.minFaceRadius().toPrecision(2)}`}minEdgeLength(){let n=Number.MAX_VALUE;for(let s of this.edges()){const e=mag2(sub(this.vertices[s[0]],this.vertices[s[1]]));e<n&&(n=e)}return sqrt(n)}minFaceRadius(){let n=Number.MAX_VALUE;const s=this.faces.length,a=this.centers();for(let i=0;i<s;i++){const s=a[i];for(let a of faceToEdges(this.faces[i])){const e=linePointDist2(this.vertices[a[0]],this.vertices[a[1]],s);e<n&&(n=e)}}return sqrt(n)}toOBJ(){let e,n,s="#Produced by polyH\xE9dronisme http://levskaya.github.com/polyhedronisme\n";s+=`group ${this.name}\n`,s+="#vertices\n";for(n of this.vertices)s+=`v ${n[0]} ${n[1]} ${n[2]}\n`;s+="#normal vector defs \n";for(e of this.faces){const n=normal(e.map(e=>this.vertices[e]));s+=`vn ${n[0]} ${n[1]} ${n[2]}\n`}s+="#face defs \n";for(let a=0;a<this.faces.length;a++){e=this.faces[a],s+="f ";for(n of e)s+=`${n+1}//${a+1} `;s+="\n"}return s}toX3D(){let e;const n=.03;let s=`\
<?xml version="1.0" encoding ="UTF-8"?>
<X3D profile="Interchange" version="3.0">
<head>
<component name="Rendering" level="3"/>
<meta name="generator" content="Polyhedronisme"/>
<meta name="version" content="0.1.0"/>
</head>
<Scene>
<Shape>
<IndexedFaceSet normalPerVertex="false" coordIndex="\
`;for(let n of this.faces){for(e of n)s+=`${e} `;s+="-1\n"}s+="\">\n",s+="<Color color=\"";for(let e of vertColors(this)){const n=palette(e);s+=`${n[0]} ${n[1]} ${n[2]} `}s+="\"/>",s+="<Coordinate point=\"";for(e of this.vertices)s+=`${e[0]*n} ${e[1]*n} ${e[2]*n} `;return s+="\"/>\n",s+=`\
</IndexedFaceSet>
</Shape>
</Scene>
</X3D>`,s}toVRML(){let e;const n=.03;let s=`\
#VRML V2.0 utf8
#Generated by Polyhedronisme
NavigationInfo {
type [ "EXAMINE", "ANY" ]
}
Transform {
scale 1 1 1
translation 0 0 0
children
[
Shape
{
geometry IndexedFaceSet
{
creaseAngle .5
solid FALSE
coord Coordinate
{
point
[\
`;for(e of this.vertices)s+=`${e[0]*n} ${e[1]*n} ${e[2]*n},`;s=s.slice(0,-1),s+=`\
]
}
color Color
{
color
[\
`;for(let e of this.face_classes){const n=palette(e);s+=`${n[0]} ${n[1]} ${n[2]} ,`}s=s.slice(0,-1),s+=`\
]
}
colorPerVertex FALSE
coordIndex
[\
`;for(let n of this.faces){for(e of n)s+=`${e}, `;s+="-1,"}return s=s.slice(0,-1),s+=`\
]
}
appearance Appearance
{
material Material
{
ambientIntensity 0.2
diffuseColor 0.9 0.9 0.9
specularColor .1 .1 .1
shininess .5
}
}
}
]
}\
`,s}}const tetrahedron=function(){const e=new polyhedron;return e.name="T",e.faces=[[0,1,2],[0,2,3],[0,3,1],[1,3,2]],e.vertices=[[1,1,1],[1,-1,-1],[-1,1,-1],[-1,-1,1]],e},octahedron=function(){const e=new polyhedron;return e.name="O",e.faces=[[0,1,2],[0,2,3],[0,3,4],[0,4,1],[1,4,5],[1,5,2],[2,5,3],[3,5,4]],e.vertices=[[0,0,1.414],[1.414,0,0],[0,1.414,0],[-1.414,0,0],[0,-1.414,0],[0,0,-1.414]],e},cube=function(){const e=new polyhedron;return e.name="C",e.faces=[[3,0,1,2],[3,4,5,0],[0,5,6,1],[1,6,7,2],[2,7,4,3],[5,4,7,6]],e.vertices=[[.707,.707,.707],[-.707,.707,.707],[-.707,-.707,.707],[.707,-.707,.707],[.707,-.707,-.707],[.707,.707,-.707],[-.707,.707,-.707],[-.707,-.707,-.707]],e},icosahedron=function(){const e=new polyhedron;return e.name="I",e.faces=[[0,1,2],[0,2,3],[0,3,4],[0,4,5],[0,5,1],[1,5,7],[1,7,6],[1,6,2],[2,6,8],[2,8,3],[3,8,9],[3,9,4],[4,9,10],[4,10,5],[5,10,7],[6,7,11],[6,11,8],[7,10,11],[8,11,9],[9,11,10]],e.vertices=[[0,0,1.176],[1.051,0,.526],[.324,1,.525],[-.851,.618,.526],[-.851,-.618,.526],[.325,-1,.526],[.851,.618,-.526],[.851,-.618,-.526],[-.325,1,-.526],[-1.051,0,-.526],[-.325,-1,-.526],[0,0,-1.176]],e},dodecahedron=function(){const e=new polyhedron;return e.name="D",e.faces=[[0,1,4,7,2],[0,2,6,9,3],[0,3,8,5,1],[1,5,11,10,4],[2,7,13,12,6],[3,9,15,14,8],[4,10,16,13,7],[5,8,14,17,11],[6,12,18,15,9],[10,11,17,19,16],[12,13,16,19,18],[14,15,18,19,17]],e.vertices=[[0,0,1.07047],[.713644,0,.797878],[-.356822,.618,.797878],[-.356822,-.618,.797878],[.797878,.618034,.356822],[.797878,-.618,.356822],[-.934172,.381966,.356822],[.136294,1,.356822],[.136294,-1,.356822],[-.934172,-.381966,.356822],[.934172,.381966,-.356822],[.934172,-.381966,-.356822],[-.797878,.618,-.356822],[-.136294,1,-.356822],[-.136294,-1,-.356822],[-.797878,-.618034,-.356822],[.356822,.618,-.797878],[.356822,-.618,-.797878],[-.713644,0,-.797878],[0,0,-1.07047]],e},prism=function(e){var n=Math.sin;let s;const a=2*PI/e,c=n(a/2);let f=new polyhedron;for(f.name=`P${e}`,s=0;s<e;s++)f.vertices.push([-cos(s*a),-sin(s*a),-c]);for(s=0;s<e;s++)f.vertices.push([-cos(s*a),-sin(s*a),c]);for(f.faces.push(__range__(e-1,0,!0)),f.faces.push(__range__(e,2*e,!1)),s=0;s<e;s++)f.faces.push([s,(s+1)%e,(s+1)%e+e,s+e]);return f=adjustXYZ(f,1),f},antiprism=function(e){let n;const s=2*PI/e;let a=sqrt(1-4/(4+2*cos(s/2)-2*cos(s))),c=sqrt(1-a*a);const d=sqrt(a*a+pow(c*cos(s/2),2));c=-c/d,a=-a/d;let f=new polyhedron;for(f.name=`A${e}`,n=0;n<e;n++)f.vertices.push([c*cos(n*s),c*sin(n*s),a]);for(n=0;n<e;n++)f.vertices.push([c*cos((n+.5)*s),c*sin((n+.5)*s),-a]);for(f.faces.push(__range__(e-1,0,!0)),f.faces.push(__range__(e,2*e-1,!0)),n=0;n<=e-1;n++)f.faces.push([n,(n+1)%e,n+e]),f.faces.push([n,n+e,(e+n-1)%e+e]);return f=adjustXYZ(f,1),f},pyramid=function(e){let n;const s=2*PI/e;let a=new polyhedron;for(a.name=`Y${e}`,n=0;n<e;n++)a.vertices.push([-cos(n*s),-sin(n*s),-.2]);for(a.vertices.push([0,0,1]),a.faces.push(__range__(e-1,0,!0)),n=0;n<e;n++)a.faces.push([n,(n+1)%e,e]);return a=canonicalXYZ(a,3),a},cupola=function(e,s,a){let c;void 0===e&&(e=3),void 0===s&&(s=0);let f=new polyhedron;if(f.name=`U${e}`,2>e)return f;let d=1/2/sin(PI/2/e),t=1/2/sin(PI/e);for(void 0===a&&(a=d-t,2<=e&&5>=e&&(a=1*sqrt(1-1/4/sin(PI/e)/sin(PI/e)))),c=0;c<3*e;c++)f.vertices.push([0,0,0]);for(c=0;c<e;c++)f.vertices[2*c]=[d*cos(PI*(2*c)/e+PI/2/e+s),d*sin(PI*(2*c)/e+PI/2/e+s),0],f.vertices[2*c+1]=[d*cos(PI*(2*c+1)/e+PI/2/e-s),d*sin(PI*(2*c+1)/e+PI/2/e-s),0],f.vertices[2*e+c]=[t*cos(2*PI*c/e),t*sin(2*PI*c/e),a];for(f.faces.push(__range__(2*e-1,0,!0)),f.faces.push(__range__(2*e,3*e-1,!0)),c=0;c<e;c++)f.faces.push([(2*c+1)%(2*e),(2*c+2)%(2*e),2*e+(c+1)%e]),f.faces.push([2*c,(2*c+1)%(2*e),2*e+(c+1)%e,2*e+c]);return f},anticupola=function(e,s,a){let c;void 0===e&&(e=3),void 0===s&&(s=0);let f=new polyhedron;if(f.name=`U${e}`,3>e)return f;let d=1/2/sin(PI/2/e),t=1/2/sin(PI/e);for(void 0===a&&(a=d-t),c=0;c<3*e;c++)f.vertices.push([0,0,0]);for(c=0;c<e;c++)f.vertices[2*c]=[d*cos(PI*(2*c)/e+s),d*sin(PI*(2*c)/e+s),0],f.vertices[2*c+1]=[d*cos(PI*(2*c+1)/e-s),d*sin(PI*(2*c+1)/e-s),0],f.vertices[2*e+c]=[t*cos(2*PI*c/e),t*sin(2*PI*c/e),a];for(f.faces.push(__range__(2*e-1,0,!0)),f.faces.push(__range__(2*e,3*e-1,!0)),c=0;c<e;c++)f.faces.push([2*c%(2*e),(2*c+1)%(2*e),2*e+c%e]),f.faces.push([2*e+(c+1)%e,(2*c+1)%(2*e),(2*c+2)%(2*e)]),f.faces.push([2*e+(c+1)%e,2*e+c%e,(2*c+1)%(2*e)]);return f};johnson_polyhedra={J1:function(){const e=new polyhedron;return e.name="J1",e.faces=[[1,4,2],[0,1,2],[3,0,2],[4,3,2],[4,1,0,3]],e.vertices=[[-.729665,.670121,.319155],[-.655235,-.29213,-.754096],[-.093922,-.607123,.537818],[.702196,.595691,.485187],[.776626,-.36656,-.588064]],e},J2:function(){const e=new polyhedron;return e.name="J2",e.faces=[[3,0,2],[5,3,2],[4,5,2],[1,4,2],[0,1,2],[0,3,5,4,1]],e.vertices=[[-.868849,-.100041,.61257],[-.329458,.976099,.28078],[-.26629,-.013796,-.477654],[-.13392,-1.034115,.229829],[.738834,.707117,-.307018],[.859683,-.535264,-.338508]],e},J3:function(){const e=new polyhedron;return e.name="J3",e.faces=[[2,6,4],[6,5,8],[4,7,3],[2,0,1],[6,2,1,5],[4,6,8,7],[2,4,3,0],[0,3,7,8,5,1]],e.vertices=[[-.909743,.523083,.242386],[-.747863,.22787,-.740794],[-.678803,-.467344,.028562],[-.11453,.564337,.910169],[.11641,-.426091,.696344],[.209231,-.02609,-1.056192],[.278291,-.721304,-.286836],[.842564,.310377,.594771],[1.004444,.015163,-.38841]],e},J4:function(){const e=new polyhedron;return e.name="J4",e.faces=[[3,1,5],[7,9,11],[6,10,8],[2,4,0],[2,3,7,6],[3,2,0,1],[7,3,5,9],[6,7,11,10],[2,6,8,4],[4,8,10,11,9,5,1,0]],e.vertices=[[-.600135,.398265,-.852158],[-.585543,-.441941,-.840701],[-.584691,.40999,-.011971],[-.570099,-.430216,-514e-6],[-.18266,1.005432,-.447988],[-.147431,-1.023005,-.420329],[.0203,.428447,.571068],[.034892,-.411759,.582525],[.422331,1.023889,.135052],[.457559,-1.004548,.162711],[.860442,.442825,.555424],[.875034,-.397381,.566881]],e},J5:function(){const e=new polyhedron;return e.name="J5",e.faces=[[4,1,5],[8,9,12],[10,14,13],[7,11,6],[3,2,0],[4,3,0,1],[8,4,5,9],[10,8,12,14],[7,10,13,11],[3,7,6,2],[3,4,8,10,7],[2,6,11,13,14,12,9,5,1,0]],e.vertices=[[-.973114,.120196,-.57615],[-.844191,-.563656,-.512814],[-.711039,.75783,-.46202],[-.594483,.244733,-.002202],[-.46556,-.439119,.061133],[-.373515,-1.032518,-.296206],[-.15807,1.105692,-.21402],[-.041514,.592595,.245798],[.167087,-.513901,.348277],[.259132,-1.1073,-.009062],[.429162,.123733,.462406],[.474577,1.03091,.073124],[.812101,-.759438,.238938],[.945253,.562048,.289732],[1.074175,-.121804,.353067]],e},J6:function(){const e=new polyhedron;return e.name="J6",e.faces=[[11,16,12],[16,17,19],[12,15,9],[15,18,14],[9,5,4],[5,8,3],[4,1,6],[1,0,2],[6,10,11],[10,7,13],[11,12,9,4,6],[11,10,13,17,16],[12,16,19,18,15],[9,15,14,8,5],[4,5,3,0,1],[6,1,2,7,10],[2,0,3,8,14,18,19,17,13,7]],e.vertices=[[-.905691,-.396105,-.539844],[-.883472,-.258791,.103519],[-.719735,-.859265,-.110695],[-.703659,.13708,-.868724],[-.667708,.359259,.17226],[-.556577,.60392,-.428619],[-.481752,-.103901,.60141],[-.21682,-1.075487,.254804],[-.190808,.536633,-.971712],[-.154857,.758811,.069272],[-.069738,-.608646,.694909],[.146026,.009404,.76365],[.348059,.542589,.434771],[.410958,-.962182,.417045],[.436971,.649937,-.809472],[.45919,.787251,-.166109],[.760072,.037844,.52827],[.923809,-.562629,.314056],[.939886,.433715,-.443973],[1.125842,-.029444,-.014823]],e},J7:function(){const e=new polyhedron;return e.name="J7",e.faces=[[0,2,4],[5,3,1],[5,1,6],[5,6,3],[3,2,0,1],[1,0,4,6],[6,4,2,3]],e.vertices=[[-.793941,-.708614,.016702],[-.451882,.284418,.56528],[-.252303,-.348111,-.97361],[.089756,.64492,-.425033],[.340161,-.993103,-.175472],[.385988,1.120562,.619029],[.68222,-72e-6,.373105]],e},J8:function(){const e=new polyhedron;return e.name="J8",e.faces=[[8,7,5],[8,5,4],[8,4,6],[8,6,7],[1,3,2,0],[7,3,1,5],[5,1,0,4],[4,0,2,6],[6,2,3,7]],e.vertices=[[-.849167,-.427323,.457421],[-.849167,.619869,.087182],[-.478929,-.776386,-.529881],[-.478929,.270805,-.900119],[.198024,-.30391,.806484],[.198024,.743282,.436246],[.568263,-.652974,-.180817],[.568263,.394218,-.551056],[1.12362,.13242,.37454]],e},J9:function(){const e=new polyhedron;return e.name="J9",e.faces=[[6,1,5],[6,5,10],[6,10,9],[6,9,4],[6,4,1],[1,0,3,5],[5,3,8,10],[10,8,7,9],[9,7,2,4],[4,2,0,1],[8,3,0,2,7]],e.vertices=[[-.980309,-.33878,.175213],[-.719686,.629425,.02221],[-.520232,-.599402,-.690328],[-.299303,-.403757,.924054],[-.25961,.368802,-.84333],[-.03868,.564448,.771051],[.243026,.902834,-.142672],[.445117,-.825453,-.47642],[.581659,-.704537,.521323],[.705739,.142752,-.629422],[.842281,.263667,.36832]],e},J10:function(){const e=new polyhedron;return e.name="J10",e.faces=[[4,7,8],[8,7,6],[8,6,3],[3,6,1],[3,1,0],[0,1,2],[0,2,4],[4,2,7],[4,8,5],[8,3,5],[3,0,5],[0,4,5],[1,6,7,2]],e.vertices=[[-.776892,.173498,.416855],[-.68155,.270757,-.747914],[-.646922,-.78715,-.243069],[.020463,.897066,-.047806],[.069435,-.599041,.666153],[.15263,.505992,1.049841],[.480709,.236129,-.900199],[.515337,-.821778,-.395353],[.866791,.124527,.201492]],e},J11:function(){const e=new polyhedron;return e.name="J11",e.faces=[[6,2,8],[8,2,4],[8,4,9],[9,4,3],[9,3,7],[7,3,1],[7,1,5],[5,1,0],[5,0,6],[6,0,2],[6,8,10],[8,9,10],[9,7,10],[7,5,10],[5,6,10],[1,3,4,2,0]],e.vertices=[[-.722759,-.425905,.628394],[-.669286,.622275,.513309],[-.502035,-.868253,-.304556],[-.415513,.827739,-.490768],[-.312146,-.093458,-.996236],[.134982,.097675,.952322],[.238349,-.823522,.446854],[.324871,.872469,.260642],[.492123,-.618058,-.557222],[.545596,.430122,-.672308],[.88582,-.021082,.21957]],e},J12:function(){const e=new polyhedron;return e.name="J12",e.faces=[[1,3,0],[3,4,0],[3,1,4],[0,2,1],[0,4,2],[2,4,1]],e.vertices=[[-.610389,.243975,.531213],[-.187812,-.48795,-.664016],[-.187812,.9759,-.664016],[.187812,-.9759,.664016],[.798201,.243975,.132803]],e},J13:function(){const e=new polyhedron;return e.name="J13",e.faces=[[3,2,0],[2,1,0],[2,5,1],[0,4,3],[0,1,4],[4,1,5],[2,3,6],[3,4,6],[5,2,6],[4,5,6]],e.vertices=[[-1.028778,.392027,-.048786],[-.640503,-.646161,.621837],[-.125162,-.395663,-.540059],[.004683,.888447,-.651988],[.125161,.395663,.540059],[.632925,-.791376,.433102],[1.031672,.157063,-.354165]],e},J14:function(){const e=new polyhedron;return e.name="J14",e.faces=[[4,7,6],[5,3,1],[2,4,6],[3,0,1],[7,2,6],[0,5,1],[7,4,3,5],[4,2,0,3],[2,7,5,0]],e.vertices=[[-.677756,.338878,.309352],[-.446131,1.338394,0],[-.338878,-.677755,.309352],[-.169439,.508317,-.618703],[.169439,-.508317,-.618703],[.338878,.677756,.309352],[.446131,-1.338394,0],[.677755,-.338878,.309352]],e},J15:function(){const e=new polyhedron;return e.name="J15",e.faces=[[8,9,7],[6,5,2],[3,8,7],[5,0,2],[4,3,7],[0,1,2],[9,4,7],[1,6,2],[9,8,5,6],[8,3,0,5],[3,4,1,0],[4,9,6,1]],e.vertices=[[-.669867,.334933,-.529576],[-.669867,.334933,.529577],[-.4043,1.212901,0],[-.334933,-.669867,-.529576],[-.334933,-.669867,.529577],[.334933,.669867,-.529576],[.334933,.669867,.529577],[.4043,-1.212901,0],[.669867,-.334933,-.529576],[.669867,-.334933,.529577]],e},J16:function(){const e=new polyhedron;return e.name="J16",e.faces=[[11,10,8],[7,9,3],[6,11,8],[9,5,3],[2,6,8],[5,0,3],[4,2,8],[0,1,3],[10,4,8],[1,7,3],[10,11,9,7],[11,6,5,9],[6,2,0,5],[2,4,1,0],[4,10,7,1]],e.vertices=[[-.931836,.219976,-.264632],[-.636706,.318353,.692816],[-.613483,-.735083,-.264632],[-.326545,.979634,0],[-.318353,-.636706,.692816],[-.159176,.477529,-.856368],[.159176,-.477529,-.856368],[.318353,.636706,.692816],[.326545,-.979634,0],[.613482,.735082,-.264632],[.636706,-.318353,.692816],[.931835,-.219977,-.264632]],e},J17:function(){const e=new polyhedron;return e.name="J17",e.faces=[[6,8,9],[9,8,7],[9,7,3],[3,7,1],[3,1,0],[0,1,2],[0,2,6],[6,2,8],[6,9,4],[9,3,4],[3,0,4],[0,6,4],[7,8,5],[1,7,5],[2,1,5],[8,2,5]],e.vertices=[[-.777261,.485581,.103065],[-.675344,-.565479,-.273294],[-.379795,-.315718,.778861],[-.221894,.282623,-.849372],[-.034619,1.231562,-.282624],[.034619,-1.231562,.282624],[.196076,.635838,.638599],[.405612,-.602744,-.568088],[.701162,-.352983,.484067],[.751443,.43288,-.313837]],e},J18:function(){const e=new polyhedron;return e.name="J18",e.faces=[[4,9,2],[9,12,11],[2,6,0],[4,1,8],[0,3,5,1],[1,5,10,8],[8,10,14,12],[12,14,13,11],[11,13,7,6],[6,7,3,0],[9,4,8,12],[2,9,11,6],[4,2,0,1],[14,10,5,3,7,13]],e.vertices=[[-.836652,.050764,.288421],[-.686658,.016522,-.560338],[-.587106,-.771319,.365687],[-.571616,.871513,.302147],[-.437112,-.805561,-.483073],[-.421621,.837272,-.546612],[-.212729,-.16003,.84551],[.052308,.660719,.859236],[.08726,-.228514,-.852008],[.186811,-1.016355,.074016],[.352296,.592236,-.838282],[.561189,-.405066,.55384],[.711183,-.439308,-.294919],[.826226,.415684,.567566],[.97622,.381442,-.281193]],e},J19:function(){const e=new polyhedron;return e.name="J19",e.faces=[[10,15,16],[7,13,8],[1,2,0],[5,3,12],[2,6,4,0],[0,4,9,3],[3,9,14,12],[12,14,18,15],[15,18,19,16],[16,19,17,13],[13,17,11,8],[8,11,6,2],[5,10,7,1],[10,5,12,15],[7,10,16,13],[1,7,8,2],[5,1,0,3],[18,14,9,4,6,11,17,19]],e.vertices=[[-.889715,.115789,-.35951],[-.792371,-.231368,.270291],[-.791598,.494102,.251959],[-.522446,-.406626,-.70424],[-.521352,.619343,-.730164],[-.425102,-.753782,-.074439],[-.423235,.997655,-.118694],[-.286344,-.218767,.790309],[-.28557,.506702,.771978],[-.154083,.096928,-1.074893],[.080926,-.741182,.44558],[.082793,1.010256,.401324],[.095069,-.767118,-.580291],[.331944,.146209,.895926],[.463432,-.263565,-.950945],[.601096,-.754518,-.060273],[.699213,-.376205,.551197],[.700307,.649763,.525272],[.969459,-.250964,-.430927],[1.067576,.127349,.180543]],e},J20:function(){const e=new polyhedron;return e.name="J20",e.faces=[[15,18,21],[12,20,16],[6,10,2],[3,0,1],[9,7,13],[2,8,4,0],[0,4,5,1],[1,5,11,7],[7,11,17,13],[13,17,22,18],[18,22,24,21],[21,24,23,20],[20,23,19,16],[16,19,14,10],[10,14,8,2],[15,9,13,18],[12,15,21,20],[6,12,16,10],[3,6,2,0],[9,3,1,7],[9,15,12,6,3],[22,17,11,5,4,8,14,19,23,24]],e.vertices=[[-.93465,.300459,-.271185],[-.838689,-.260219,-.516017],[-.711319,.717591,.128359],[-.710334,-.156922,.080946],[-.599799,.556003,-.725148],[-.503838,-.004675,-.969981],[-.487004,.26021,.48049],[-.460089,-.750282,-.512622],[-.376468,.973135,-.325605],[-.331735,-.646985,.084342],[-.254001,.831847,.530001],[-.125239,-.494738,-.966586],[.029622,.027949,.730817],[.056536,-.982543,-.262295],[.08085,1.087391,.076037],[.125583,-.532729,.485984],[.262625,.599586,.780328],[.391387,-.726999,-.716259],[.513854,-.868287,.139347],[.597475,.85513,.326364],[.641224,.109523,.783723],[.737185,-.451155,.538891],[.848705,-.612742,-.314616],[.976075,.365067,.32976],[1.072036,-.19561,.084927]],e},J21:function(){const e=new polyhedron;return e.name="J21",e.faces=[[8,19,15],[19,20,25],[15,21,13],[21,26,23],[13,10,3],[10,18,11],[3,0,1],[0,4,2],[1,5,8],[5,6,14],[11,16,9,4],[4,9,7,2],[2,7,12,6],[6,12,17,14],[14,17,24,20],[20,24,28,25],[25,28,29,26],[26,29,27,23],[23,27,22,18],[18,22,16,11],[8,15,13,3,1],[8,5,14,20,19],[15,19,25,26,21],[13,21,23,18,10],[3,10,11,4,0],[1,0,2,6,5],[24,17,12,7,9,16,22,27,29,28]],e.vertices=[[-.913903,.139054,-.10769],[-.801323,.048332,.456301],[-.780136,-.347362,-.398372],[-.694081,.568652,.218063],[-.672895,.172957,-.63661],[-.597978,-.494154,.514184],[-.584884,-.738707,-.014032],[-.468218,-.603725,-.817867],[-.378156,-.064556,.839937],[-.360976,-.083405,-1.056105],[-.317215,.86806,-.109531],[-.304122,.623508,-.637747],[-.272966,-.995069,-.433527],[-.204636,.777338,.45446],[-.161718,-.851595,.369604],[-.009384,.385994,.8388],[.007796,.367145,-1.057242],[.1502,-1.107957,-.049891],[.185324,.832194,-.40135],[.193961,-.156492,.896684],[.327727,-.642909,.606002],[.367482,.685403,.511206],[.497242,.575832,-.820845],[.60849,.719306,-.017714],[.639645,-.899271,.186507],[.6965,-.192358,.604864],[.803742,.327961,.366626],[.920408,.462943,-.437208],[1.008418,-.44872,.185369],[1.11566,.071599,-.052869]],e},J22:function(){const e=new polyhedron;return e.name="J22",e.faces=[[0,1,2],[2,1,5],[2,5,8],[8,5,11],[8,11,13],[13,11,14],[3,9,7],[9,8,13],[7,12,6],[3,0,2],[13,14,12],[12,14,10],[12,10,6],[6,10,4],[6,4,0],[0,4,1],[9,3,2,8],[7,9,13,12],[3,7,6,0],[11,5,1,4,10,14]],e.vertices=[[-.846878,.066004,.311423],[-.766106,.678635,-.329908],[-.708152,-.186985,-.531132],[-.64897,-.782761,.128183],[-.452751,.845109,.48694],[-.21247,.406919,-.972407],[-.165405,.101357,.883692],[.032503,-.747408,.700451],[.112048,-.404621,-.801418],[.17123,-1.000397,-.142104],[.41424,.739868,.66129],[.654521,.301678,-.798058],[.654794,-.116279,.613406],[.793521,-.369268,-.229149],[.967876,.468152,.018791]],e},J23:function(){const e=new polyhedron;return e.name="J23",e.faces=[[1,0,2],[2,0,4],[2,4,8],[8,4,10],[8,10,14],[14,10,16],[14,16,18],[18,16,19],[13,14,18],[12,17,11],[6,5,1],[7,2,8],[18,19,17],[19,15,17],[17,15,11],[11,15,9],[11,9,5],[5,9,3],[5,3,1],[1,3,0],[7,13,12,6],[13,7,8,14],[12,13,18,17],[6,12,11,5],[7,6,1,2],[10,4,0,3,9,15,19,16]],e.vertices=[[-.96917,.321358,-.364138],[-.902194,.146986,.353054],[-.885918,-.386527,-.161101],[-.700663,.819184,.114745],[-.670588,-.166619,-.835289],[-.389781,.533335,.723761],[-.377102,-.207546,.737557],[-.360826,-.741059,.223402],[-.350486,-.754679,-.51752],[-.022354,1.035239,.320838],[.020179,-.358897,-1.022714],[.351157,.546203,.733864],[.363836,-.194678,.74766],[.380112,-.728191,.233505],[.390452,-.741811,-.507416],[.668412,.842961,.133414],[.698487,-.142842,-.816621],[.886588,.178052,.377446],[.902865,-.355461,-.136709],[.966994,.354984,-.337737]],e},J24:function(){const e=new polyhedron;return e.name="J24",e.faces=[[1,3,5],[5,3,8],[5,8,12],[12,8,14],[12,14,18],[18,14,20],[18,20,22],[22,20,24],[22,24,23],[23,24,21],[15,18,22],[17,23,19],[11,13,7],[6,2,1],[9,5,12],[23,21,19],[19,21,16],[19,16,13],[13,16,10],[13,10,7],[7,10,4],[7,4,2],[2,4,0],[2,0,1],[1,0,3],[15,9,12,18],[17,15,22,23],[11,17,19,13],[6,11,7,2],[9,6,1,5],[9,15,17,11,6],[20,14,8,3,0,4,10,16,21,24]],e.vertices=[[-1.007937,.263193,-.317378],[-.995648,-.249677,.04509],[-.928425,.319026,.303212],[-.878881,-.297121,-.570283],[-.751014,.784617,-.079308],[-.682946,-.746755,-.177844],[-.534412,-.144902,.458433],[-.506952,.74213,.497926],[-.413141,-.682306,-.741423],[-.221709,-.64198,.235499],[-.206248,1.067984,.052991],[-.112939,.278202,.653148],[-.109759,-.982341,-.280438],[.107781,.858022,.55486],[.211385,-.745233,-.765428],[.393024,-.526088,.292433],[.418278,1.005057,.028986],[.460247,.042616,.550554],[.504974,-.866449,-.223504],[.680968,.622436,.452266],[.756151,-.461866,-.633128],[.884017,.619872,-.142153],[.926446,-.443346,-.028789],[.99367,.125358,.229332],[1.013073,.059558,-.395059]],e},J25:function(){const e=new polyhedron;return e.name="J25",e.faces=[[2,9,11],[11,9,16],[11,16,19],[19,16,23],[19,23,25],[25,23,28],[25,28,27],[27,28,29],[27,29,26],[26,29,24],[15,22,18],[22,25,27],[18,21,13],[21,26,20],[13,7,6],[7,12,3],[6,1,8],[1,0,2],[8,14,15],[14,11,19],[26,24,20],[20,24,17],[20,17,12],[12,17,10],[12,10,3],[3,10,5],[3,5,0],[0,5,4],[0,4,2],[2,4,9],[15,18,13,6,8],[15,14,19,25,22],[18,22,27,26,21],[13,21,20,12,7],[6,7,3,0,1],[8,1,2,11,14],[28,23,16,9,4,5,10,17,24,29]],e.vertices=[[-.897802,-.193467,-.273331],[-.877838,-.070089,.304735],[-.73072,-.609618,.112262],[-.716275,.285603,-.568831],[-.703732,-.716856,-.46873],[-.696138,-.246211,-.826802],[-.683973,.485232,.366499],[-.584121,.705062,-.173395],[-.51689,.069081,.752092],[-.378328,-1.037777,-.09336],[-.358446,.194389,-1.030805],[-.278847,-.803894,.440665],[-.255475,.644603,-.661367],[-.223173,.844232,.273963],[-.146694,-.384435,.836102],[.047172,.170886,.897866],[.15578,-1.086392,.15593],[.180355,.436649,-1.002815],[.228699,.649956,.602366],[.285215,-.70209,.586439],[.308587,.746408,-.515593],[.328551,.869786,.062473],[.598896,.196439,.686376],[.694582,-.844133,.183918],[.714463,.388033,-.753526],[.746014,-.343089,.493903],[.760459,.552132,-.18719],[.927542,.135981,.198403],[1.032273,-.403533,-.020084],[1.039867,.067112,-.378156]],e},J26:function(){const e=new polyhedron;return e.name="J26",e.faces=[[1,0,4],[3,2,5],[3,0,6],[1,2,7],[3,5,4,0],[1,4,5,2],[1,7,6,0],[3,6,7,2]],e.vertices=[[-.57735,.57735,0],[.57735,.57735,0],[.57735,-.57735,0],[-.57735,-.57735,0],[0,.57735,1],[0,-.57735,1],[-.57735,0,-1],[.57735,0,-1]],e},J27:function(){const e=new polyhedron;return e.name="J27",e.faces=[[2,5,8],[5,4,10],[8,11,7],[2,1,0],[6,3,9],[3,0,1],[9,7,11],[6,10,4],[5,2,0,4],[8,5,10,11],[2,8,7,1],[3,6,4,0],[9,3,1,7],[6,9,11,10]],e.vertices=[[-.96936,.238651,.058198],[-.683128,-.715413,.146701],[-.623092,-.255511,-.739236],[-.478567,-.06233,.875836],[-.286232,.954064,-.088503],[.060036,.459902,-.885938],[.204561,.653083,.729135],[.286232,-.954064,.088503],[.346268,-.494162,-.797435],[.490793,-.300981,.817638],[.683128,.715413,-.146701],[.96936,-.238651,-.058198]],e},J28:function(){const e=new polyhedron;return e.name="J28",e.faces=[[3,0,2],[9,8,14],[11,15,13],[5,7,1],[6,1,7],[12,13,15],[10,14,8],[4,2,0],[5,3,9,11],[3,5,1,0],[9,3,2,8],[11,9,14,15],[5,11,13,7],[4,6,12,10],[6,4,0,1],[12,6,7,13],[10,12,15,14],[4,10,8,2]],e.vertices=[[-1.055402,.383836,-11e-5],[-1.017695,-.474869,238e-6],[-.474869,1.017695,-394e-6],[-.448233,.410252,-.607929],[-.448179,.410746,.607634],[-.410526,-.448453,-.607581],[-.410472,-.447959,.607981],[-.383836,-1.055402,446e-6],[.383836,1.055402,-447e-6],[.410472,.447959,-.607982],[.410526,.448453,.60758],[.448179,-.410746,-.607635],[.448233,-.410252,.607928],[.474869,-1.017695,392e-6],[1.017695,.474869,-239e-6],[1.055402,-.383836,109e-6]],e},J29:function(){const e=new polyhedron;return e.name="J29",e.faces=[[4,0,1],[10,6,13],[12,15,14],[7,8,2],[3,0,2],[9,8,14],[11,15,13],[5,6,1],[7,4,10,12],[4,7,2,0],[10,4,1,6],[12,10,13,15],[7,12,14,8],[5,3,9,11],[3,5,1,0],[9,3,2,8],[11,9,14,15],[5,11,13,6]],e.vertices=[[-1.105,-.077473,-.184867],[-.863019,.717824,.033637],[-.699688,-.827387,-.295079],[-.617244,-.39909,.445571],[-.487757,.321617,-.630438],[-.375262,.396206,.664075],[-.115492,1.092629,.232437],[-.082444,-.428297,-.740649],[.115493,-1.092629,-.232437],[.197937,-.664332,.508212],[.25977,.696423,-.431638],[.439918,.130964,.726716],[.665082,-.053491,-.541849],[.699688,.827387,.295079],[.863019,-.717824,-.033637],[1.105,.077473,.184867]],e},J30:function(){const e=new polyhedron;return e.name="J30",e.faces=[[4,0,1],[10,5,11],[16,17,19],[13,18,14],[7,8,2],[6,2,8],[12,14,18],[15,19,17],[9,11,5],[3,1,0],[4,7,2,0],[10,4,1,5],[16,10,11,17],[13,16,19,18],[7,13,14,8],[6,3,0,2],[12,6,8,14],[15,12,18,19],[9,15,17,11],[3,9,5,1],[7,4,10,16,13],[3,6,12,15,9]],e.vertices=[[-1.197125,-.118752,-.001762],[-1.038244,.607337,-.020132],[-.898745,-.799482,.017282],[-.619431,.145275,.38469],[-.61625,.124807,-.396793],[-.482789,1.101444,-.030813],[-.321051,-.535454,.403734],[-.317871,-.555923,-.37775],[-.257075,-1.174837,.029724],[-.063976,.639383,.37401],[-.060795,.618915,-.407474],[.257076,1.174837,-.029725],[.418813,-.462061,.404823],[.421993,-.48253,-.376661],[.482789,-1.101444,.030813],[.577694,.264028,.386452],[.580875,.24356,-.395032],[.898745,.799482,-.017282],[1.038244,-.607337,.020132],[1.197125,.118752,.001761]],e},J31:function(){const e=new polyhedron;return e.name="J31",e.faces=[[4,0,1],[8,3,10],[14,17,19],[13,18,16],[7,9,2],[5,0,2],[11,9,16],[15,18,19],[12,17,10],[6,3,1],[4,7,2,0],[8,4,1,3],[14,8,10,17],[13,14,19,18],[7,13,16,9],[5,6,1,0],[11,5,2,9],[15,11,16,18],[12,15,19,17],[6,12,10,3],[7,4,8,14,13],[6,5,11,15,12]],e.vertices=[[-1.14213,-.353364,-.133745],[-1.138435,.385484,-.050817],[-.70957,-.957238,-.165587],[-.699897,.97709,.051522],[-.598391,.052172,-.43817],[-.543739,-.405536,.304426],[-.540044,.333311,.387353],[-.165831,-.551702,-.470012],[-.159853,.643778,-.335832],[-.005978,-1.19548,-.13418],[.005978,1.195481,.134181],[.159852,-.643778,.335832],[.165831,.551702,.470012],[.540044,-.333311,-.387353],[.543739,.405536,-.304425],[.598391,-.052172,.43817],[.699896,-.97709,-.051521],[.70957,.957238,.165587],[1.138435,-.385484,.050817],[1.142129,.353364,.133745]],e},J32:function(){const e=new polyhedron;return e.name="J32",e.faces=[[3,0,2],[9,7,16],[15,21,23],[12,19,14],[5,6,1],[18,24,22],[24,19,23],[22,20,17],[20,21,16],[17,8,10],[8,7,2],[10,4,11],[4,0,1],[11,13,18],[13,6,14],[3,5,1,0],[9,3,2,7],[15,9,16,21],[12,15,23,19],[5,12,14,6],[5,3,9,15,12],[18,22,17,10,11],[18,13,14,19,24],[22,24,23,21,20],[17,20,16,7,8],[10,8,2,0,4],[11,4,1,6,13]],e.vertices=[[-1.086754,.270723,-.02221],[-.951485,.016307,.590957],[-.844123,.345447,-.65034],[-.727726,-.227595,-.308179],[-.678317,.606577,.401324],[-.592457,-.482012,.304989],[-.489983,-.320625,.954953],[-.316268,.211936,-1.053507],[-.285732,.727482,-.61501],[-.199871,-.361106,-.711346],[-.183258,.888869,.034954],[-.047989,.634452,.648121],[.019,-.772761,.28078],[.068408,.06141,.990283],[.121473,-.611374,.930744],[.261631,-.698037,-.34735],[.295188,-.078813,-1.077716],[.344597,.755358,-.368213],[.563468,.343703,.623912],[.649328,-.744886,.527576],[.703625,.25704,-.654181],[.75669,-.415745,-.71372],[.806099,.418427,-.004217],[.891959,-.670162,-.100552],[.922496,-.154616,.337944]],e},J33:function(){const e=new polyhedron;return e.name="J33",e.faces=[[5,6,11],[9,15,19],[8,17,13],[3,7,4],[0,1,2],[20,21,24],[21,13,17],[24,23,22],[23,19,15],[22,14,18],[14,11,6],[18,10,16],[10,2,1],[16,12,20],[12,4,7],[5,0,2,6],[9,5,11,15],[8,9,19,17],[3,8,13,7],[0,3,4,1],[0,5,9,8,3],[20,24,22,18,16],[20,12,7,13,21],[24,21,17,19,23],[22,23,15,11,14],[18,14,6,2,10],[16,10,1,4,12]],e.vertices=[[-.799512,.192706,.001565],[-.776446,.593934,.546986],[-.713384,.860598,-.072621],[-.640335,-.34095,.387405],[-.617268,.060277,.932827],[-.538299,.090521,-.615141],[-.452171,.758412,-.689327],[-.296652,-.536533,.937522],[-.280744,-.772953,.009162],[-.217683,-.506289,-.610445],[-.200278,.902051,.367837],[-.09258,.326409,-1.06757],[.057277,.038576,.99214],[.062939,-.968537,.559279],[.222374,.736712,-.630014],[.228036,-.270402,-1.062874],[.314991,.558821,.642957],[.324152,-1.070722,-.057426],[.378052,.825485,.023349],[.387214,-.804058,-.677033],[.635607,-.037989,.647653],[.639107,-.66042,.38013],[.737643,.393482,-.354893],[.741142,-.228948,-.622416],[.89682,-.140175,.030947]],e},J34:function(){const e=new polyhedron;return e.name="J34",e.faces=[[15,7,14],[7,3,1],[14,12,21],[12,5,11],[21,25,27],[25,20,26],[27,29,23],[29,28,24],[23,17,15],[17,18,8],[4,10,13],[10,8,18],[13,22,16],[22,24,28],[16,19,9],[19,26,20],[9,6,2],[6,11,5],[2,0,4],[0,1,3],[15,14,21,27,23],[15,17,8,3,7],[14,7,1,5,12],[21,12,11,20,25],[27,25,26,28,29],[23,29,24,18,17],[4,13,16,9,2],[4,0,3,8,10],[13,10,18,24,22],[16,22,28,26,19],[9,19,20,11,6],[2,6,5,1,0]],e.vertices=[[-.976027,.021192,.216616],[-.8986,-.336852,-.281155],[-.800821,.595002,.068255],[-.778424,-.560713,.282236],[-.680644,.371141,.631647],[-.675542,.015675,-.737155],[-.615111,.591592,-.521207],[-.523949,-.823998,-.215648],[-.360916,-.5704,.737823],[-.319728,.941541,-.106177],[-.300485,.005517,.953771],[-.19445,.362214,-.911587],[-.163033,-.253598,-.953472],[-.125279,.579327,.80541],[-.069344,-.772544,-.631163],[.050833,-.996405,-.067772],[.097779,.931854,.34941],[.151593,-.839673,.521506],[.194449,-.362214,.911587],[.283489,.928444,-.240052],[.360916,.5704,-.737823],[.411749,-.426005,-.805595],[.477939,.56623,.671534],[.606198,-.788219,.105992],[.675542,-.015675,.737155],[.735567,.083254,-.672317],[.778423,.560713,-.282236],[.829257,-.435692,-.350008],[.8986,.336852,.281155],[.930017,-.27896,.23927]],e},J35:function(){const e=new polyhedron;return e.name="J35",e.faces=[[9,16,12],[16,13,17],[12,15,7],[9,3,6],[8,1,5],[1,2,0],[5,4,11],[8,14,10],[16,9,6,13],[12,16,17,15],[9,12,7,3],[1,8,10,2],[5,1,0,4],[8,5,11,14],[7,4,0,3],[3,0,2,6],[6,2,10,13],[13,10,14,17],[17,14,11,15],[15,11,4,7]],e.vertices=[[-.903332,-.063468,.034076],[-.833437,.28305,.763458],[-.589483,.680853,.100738],[-.561749,-.142046,-.696749],[-.484641,-.705032,.29875],[-.414746,-.358514,1.028133],[-.2479,.602275,-.630087],[-.143058,-.78361,-.432074],[-.100897,.385807,1.094795],[.065949,.076155,-1.160799],[.143058,.78361,.432075],[.2479,-.602274,.630087],[.484641,-.565409,-.896124],[.484641,.705032,-.29875],[.561749,.142046,.696749],[.589483,-.680852,-.100737],[.79849,.178912,-.829462],[.903332,.063468,-.034075]],e},J36:function(){const e=new polyhedron;return e.name="J36",e.faces=[[3,11,9],[11,10,16],[9,13,5],[3,0,2],[14,8,6],[8,12,4],[6,1,7],[14,15,17],[11,3,2,10],[9,11,16,13],[3,9,5,0],[8,14,17,12],[6,8,4,1],[14,6,7,15],[5,7,1,0],[0,1,4,2],[2,4,12,10],[10,12,17,16],[16,17,15,13],[13,15,7,5]],e.vertices=[[-.82124,-.196132,-.329082],[-.725355,-.267867,.472553],[-.627806,.589563,-.281911],[-.577286,.20167,-.991803],[-.531921,.517828,.519724],[-.241376,-.749828,-.447988],[-.196012,-.43367,1.063538],[-.145492,-.821562,.353647],[-.002578,.352025,1.11071],[.002578,-.352025,-1.110709],[.145492,.821563,-.353646],[.196012,.43367,-1.063538],[.241376,.749828,.447989],[.531921,-.517828,-.519723],[.577285,-.20167,.991804],[.627806,-.589563,.281912],[.725355,.267867,-.472551],[.82124,.196133,.329083]],e},J37:function(){const e=new polyhedron;return e.name="J37",e.faces=[[2,3,0],[4,5,1],[10,7,6],[11,9,8],[15,13,12],[19,17,14],[18,21,16],[22,23,20],[3,4,1,0],[6,7,3,2],[7,8,4,3],[8,9,5,4],[10,11,8,7],[14,17,15,12],[15,18,16,13],[17,20,18,15],[19,22,20,17],[20,23,21,18],[22,19,2,0],[19,14,6,2],[14,12,10,6],[12,13,11,10],[11,13,16,9],[9,16,21,5],[5,21,23,1],[1,23,22,0]],e.vertices=[[-.862856,.357407,-.357407],[-.862856,-.357407,-.357407],[-.357407,.862856,-.357407],[-.357407,.357407,-.862856],[-.357407,-.357407,-.862856],[-.357407,-.862856,-.357407],[.357407,.862856,-.357407],[.357407,.357407,-.862856],[.357407,-.357407,-.862856],[.357407,-.862856,-.357407],[.862856,.357407,-.357407],[.862856,-.357407,-.357407],[.862856,.357407,.357407],[.862856,-.357407,.357407],[.357407,.862856,.357407],[.505449,0,.862856],[.357407,-.862856,.357407],[-0,.505449,.862856],[-0,-.505449,.862856],[-.357407,.862856,.357407],[-.505449,0,.862856],[-.357407,-.862856,.357407],[-.862856,.357407,.357407],[-.862856,-.357407,.357407]],e},J38:function(){const e=new polyhedron;return e.name="J38",e.faces=[[17,10,19],[24,26,29],[23,28,22],[15,14,7],[12,2,5],[4,1,0],[8,3,11],[16,20,25],[18,27,21],[9,13,6],[17,12,5,10],[24,17,19,26],[23,24,29,28],[15,23,22,14],[12,15,7,2],[4,9,6,1],[8,4,0,3],[16,8,11,20],[18,16,25,27],[9,18,21,13],[22,20,11,14],[14,11,3,7],[7,3,0,2],[2,0,1,5],[5,1,6,10],[10,6,13,19],[19,13,21,26],[26,21,27,29],[29,27,25,28],[28,25,20,22],[12,17,24,23,15],[9,4,8,16,18]],e.vertices=[[-1.047541,-.14473,-.164687],[-.97266,.443085,.054945],[-.794156,.029302,-.716846],[-.77069,-.7105,-.215961],[-.748241,-.047945,.383423],[-.719275,.617116,-.497215],[-.574648,.82842,.359043],[-.517304,-.536469,-.76812],[-.471389,-.613715,.332149],[-.350229,.33739,.687521],[-.321263,1.002451,-.193117],[-.247853,-1.03812,-.079291],[-.228431,.309073,-.749313],[-.005532,.864089,.631452],[.005532,-.864089,-.631452],[.048421,-.256696,-.800587],[.097726,-.578045,.604557],[.169581,.694408,-.445215],[.172608,.009769,.824189],[.247853,1.03812,.079291],[.321263,-1.002451,.193117],[.517305,.536469,.76812],[.574648,-.82842,-.359043],[.617537,-.221027,-.528178],[.692418,.366788,-.308546],[.719275,-.617116,.497214],[.77069,.7105,.215961],[.794156,-.029301,.716846],[.97266,-.443085,-.054945],[1.047542,.14473,.164687]],e},J39:function(){const e=new polyhedron;return e.name="J39",e.faces=[[11,4,13],[19,21,26],[20,28,24],[12,15,7],[6,2,0],[9,5,1],[10,3,8],[18,16,25],[23,29,27],[17,22,14],[11,6,0,4],[19,11,13,21],[20,19,26,28],[12,20,24,15],[6,12,7,2],[9,17,14,5],[10,9,1,3],[18,10,8,16],[23,18,25,29],[17,23,27,22],[24,25,16,15],[15,16,8,7],[7,8,3,2],[2,3,1,0],[0,1,5,4],[4,5,14,13],[13,14,22,21],[21,22,27,26],[26,27,29,28],[28,29,25,24],[6,11,19,20,12],[17,9,10,18,23]],e.vertices=[[-1.006864,.217224,-.290603],[-.990318,.219795,.341133],[-.944481,-.411647,-.289678],[-.927935,-.409077,.342059],[-.687819,.762632,-.301179],[-.671273,.765203,.330558],[-.551737,-.055664,-.63377],[-.524499,-.883775,-.298756],[-.507953,-.881203,.33298],[-.446854,.274173,.659035],[-.384471,-.354698,.65996],[-.232692,.489744,-.644346],[-.131755,-.527791,-.642848],[-.10921,1.01625,-.317365],[-.092665,1.018821,.314371],[.092664,-1.018821,-.314371],[.10921,-1.01625,.317365],[.131755,.527791,.642848],[.232692,-.489745,.644346],[.384471,.354698,-.65996],[.446854,-.274173,-.659035],[.507953,.881203,-.33298],[.524499,.883774,.298756],[.551737,.055664,.63377],[.671273,-.765203,-.330558],[.687819,-.762632,.301179],[.927935,.409076,-.342059],[.944481,.411647,.289678],[.990318,-.219795,-.341133],[1.006864,-.217224,.290603]],e},J40:function(){const e=new polyhedron;return e.name="J40",e.faces=[[6,1,8],[14,16,24],[18,27,26],[11,19,9],[4,2,0],[20,10,17],[10,5,3],[17,15,25],[15,7,13],[25,30,32],[30,23,31],[32,34,28],[34,33,29],[28,21,20],[21,22,12],[6,4,0,1],[14,6,8,16],[18,14,24,27],[11,18,26,19],[4,11,9,2],[26,31,23,19],[19,23,13,9],[9,13,7,2],[2,7,3,0],[0,3,5,1],[1,5,12,8],[8,12,22,16],[16,22,29,24],[24,29,33,27],[27,33,31,26],[4,6,14,18,11],[20,17,25,32,28],[20,21,12,5,10],[17,10,3,7,15],[25,15,13,23,30],[32,30,31,33,34],[28,34,29,22,21]],e.vertices=[[-1.05518,-.061289,-.047893],[-.934164,.280612,.409939],[-.859454,-.241561,-.56784],[-.777777,-.505581,.210572],[-.776073,.311702,-.400212],[-.656761,-.163679,.668404],[-.655057,.653604,.05762],[-.582051,-.685853,-.309375],[-.542629,.653549,.63078],[-.421745,-.191346,-.9513],[-.400139,-.685942,.618017],[-.338365,.361918,-.783672],[-.265226,.209257,.889245],[-.144342,-.635637,-.692835],[-.142556,.915126,-.042884],[-.083446,-.977628,-.223275],[-.030129,.915071,.530275],[.028982,-.977682,.349884],[.05317,.734854,-.562831],[.090755,.070177,-1.051805],[.149998,-.635781,.807716],[.233378,-.082518,.975345],[.247274,.47078,.788741],[.368158,-.374115,-.793339],[.40758,.965287,.146815],[.46669,-.927467,-.033576],[.48229,.443114,-.830964],[.603306,.785015,-.373132],[.662498,-.374258,.707212],[.684983,.520995,.405281],[.745797,-.554475,-.385895],[.759693,-.001178,-.572498],[.858225,-.55453,.187265],[.880709,.340724,-.114666],[.941605,-.001267,.354893]],e},J41:function(){const e=new polyhedron;return e.name="J41",e.faces=[[9,3,10],[18,21,27],[20,30,25],[12,17,8],[5,1,0],[15,7,16],[7,2,4],[16,19,26],[19,11,22],[26,33,31],[33,29,34],[31,28,23],[28,32,24],[23,13,15],[13,14,6],[9,5,0,3],[18,9,10,21],[20,18,27,30],[12,20,25,17],[5,12,8,1],[25,29,22,17],[17,22,11,8],[8,11,4,1],[1,4,2,0],[0,2,6,3],[3,6,14,10],[10,14,24,21],[21,24,32,27],[27,32,34,30],[30,34,29,25],[5,9,18,20,12],[15,16,26,31,23],[15,13,6,2,7],[16,7,4,11,19],[26,19,22,29,33],[31,33,34,32,28],[23,28,24,14,13]],e.vertices=[[-1.045033,.161365,.036367],[-.919366,.043922,-.521815],[-.855707,-.369212,.190625],[-.830432,.382234,.532668],[-.73004,-.486655,-.367556],[-.711442,.52894,-.271461],[-.641106,-.148342,.686927],[-.544409,-.844483,.055116],[-.501432,.074765,-.928671],[-.496841,.749809,.224841],[-.357534,.622166,.777518],[-.312106,-.455811,-.774412],[-.293508,.559783,-.678317],[-.197177,-.487108,.858148],[-.168208,.09159,.931777],[-.137415,-.917347,.467667],[-.011748,-1.03479,-.090514],[.049132,.242114,-1.028796],[.053724,.917158,.124716],[.131823,-.794577,-.603191],[.17939,.799715,-.433466],[.193031,.789515,.677394],[.238459,-.288463,-.874537],[.335483,-.677415,.712518],[.382357,.258938,.831652],[.522031,.482046,-.783946],[.538816,-.867441,-.190639],[.610965,.820358,.270538],[.693655,-.216333,.696143],[.711357,-.048531,-.629687],[.736632,.702915,-.287644],[.753417,-.646572,.305662],[.800291,.289782,.424796],[.896988,-.406359,-.207015],[.925958,.172339,-.133386]],e},J42:function(){const e=new polyhedron;return e.name="J42",e.faces=[[0,3,4],[3,7,11],[4,12,8],[12,18,22],[8,15,6],[15,25,23],[6,10,2],[10,19,13],[2,1,0],[1,9,5],[30,24,34],[24,14,17],[34,32,38],[32,21,28],[38,37,39],[37,31,33],[39,35,36],[35,29,26],[36,27,30],[27,20,16],[23,31,28,19],[19,28,21,13],[13,21,17,9],[9,17,14,5],[5,14,16,7],[7,16,20,11],[11,20,26,18],[18,26,29,22],[22,29,33,25],[25,33,31,23],[0,4,8,6,2],[0,1,5,7,3],[4,3,11,18,12],[8,12,22,25,15],[6,15,23,19,10],[2,10,13,9,1],[30,34,38,39,36],[30,27,16,14,24],[34,24,17,21,32],[38,32,28,31,37],[39,37,33,29,35],[36,35,26,20,27]],e.vertices=[[-1.094229,.091579,-.183298],[-.983491,-.29488,.177777],[-.97462,-.408146,-.350504],[-.882171,.554599,-.002654],[-.873301,.441333,-.530935],[-.702994,-.070704,.581578],[-.679771,-.367238,-.801479],[-.640375,.454303,.470066],[-.617152,.157769,-.912991],[-.583386,-.570429,.414373],[-.569033,-.753697,-.440404],[-.419447,.804058,.122429],[-.405095,.620789,-.732347],[-.327237,-.853993,.032316],[-.251159,-.061675,.877809],[-.211565,-.187782,-1.002892],[-.18854,.463332,.766296],[-.131551,-.5614,.710603],[-.124598,.844965,-.328546],[-.032387,-.813085,-.41866],[.032387,.813086,.418659],[.124598,-.844964,.328546],[.131551,.561401,-.710603],[.18854,-.463331,-.766296],[.237051,-.270491,.977985],[.251159,.061676,-.877809],[.327237,.853994,-.032316],[.33837,.578988,.797554],[.419448,-.804057,-.122429],[.583386,.570429,-.414373],[.601401,.125461,.928384],[.640375,-.454302,-.470066],[.651509,-.729308,.359803],[.702994,.070705,-.581579],[.721009,-.374264,.761179],[.815447,.645178,.06786],[.822328,.475215,.580748],[1.008977,-.163393,-.202684],[1.015858,-.333356,.310203],[1.078477,.191651,.198691]],e},J43:function(){const e=new polyhedron;return e.name="J43",e.faces=[[0,2,1],[2,7,10],[1,8,5],[8,13,19],[5,14,6],[14,22,24],[6,11,3],[11,21,16],[3,4,0],[4,12,9],[33,25,34],[25,15,17],[34,31,38],[31,20,26],[38,37,39],[37,29,32],[39,35,36],[35,30,27],[36,28,33],[28,23,18],[24,32,29,21],[21,29,26,16],[16,26,20,12],[12,20,17,9],[9,17,15,7],[7,15,18,10],[10,18,23,13],[13,23,27,19],[19,27,30,22],[22,30,32,24],[0,1,5,6,3],[0,4,9,7,2],[1,2,10,13,8],[5,8,19,22,14],[6,14,24,21,11],[3,11,16,12,4],[33,34,38,39,36],[33,28,18,15,25],[34,25,17,20,31],[38,31,26,29,37],[39,37,32,30,35],[36,35,27,23,28]],e.vertices=[[-1.099924,-.170755,-.018241],[-1.015744,.184543,-.41657],[-.979069,.342745,.098809],[-.891012,-.645186,-.17075],[-.854337,-.486985,.344629],[-.754806,-.070303,-.81526],[-.677717,-.583103,-.663335],[-.65879,.343875,.53402],[-.633951,.443197,-.698209],[-.581702,-.168926,.685945],[-.57461,.699173,.135692],[-.43213,-.899333,-.300465],[-.37279,-.643357,.533436],[-.361315,.761256,-.356893],[-.295924,-.324449,-.944974],[-.185624,.480819,.756166],[-.111851,-.898203,.134746],[-.108536,-.031982,.908091],[-.101444,.836117,.357838],[-.100377,.50641,-.755583],[.100376,-.506413,.755582],[.101443,-.83612,-.357838],[.108535,.031979,-.908092],[.111851,.8982,-.134747],[.185623,-.480822,-.756167],[.295923,.324447,.944974],[.361314,-.761258,.356892],[.372789,.643354,-.533437],[.43213,.899331,.300464],[.574609,-.699176,-.135692],[.581701,.168923,-.685946],[.63395,-.443199,.698208],[.658789,-.343878,-.534021],[.677716,.583101,.663334],[.754804,.0703,.815259],[.854336,.486982,-.344629],[.891011,.645184,.17075],[.979068,-.342747,-.09881],[1.015743,-.184545,.416569],[1.099923,.170753,.018241]],e},J44:function(){const e=new polyhedron;return e.name="J44",e.faces=[[11,14,6],[14,17,12],[6,4,0],[11,5,13],[9,10,3],[10,16,8],[3,2,1],[9,7,15],[4,1,0],[0,1,2],[0,2,5],[5,2,8],[5,8,13],[13,8,16],[13,16,17],[17,16,15],[17,15,12],[12,15,7],[12,7,4],[4,7,1],[14,11,13,17],[6,14,12,4],[11,6,0,5],[10,9,15,16],[3,10,8,2],[9,3,1,7]],e.vertices=[[-.789003,.385273,-.254111],[-.772339,-.452189,-.185879],[-.761383,.026005,.505125],[-.611639,-.798949,.562592],[-.381598,-.074991,-.82722],[-.362623,.753266,.369634],[-.289802,.760316,-.816621],[-.055737,-.771195,-.487529],[-.033826,.185193,.894479],[.104963,-1.117956,.260942],[.115918,-.639761,.951946],[.136578,1.128308,-.192876],[.452187,-.167262,-.776585],[.471162,.660994,.420269],[.543983,.668044,-.765985],[.67182,-.612007,-.098176],[.682775,-.133813,.592828],[.878567,.200731,-.15284]],e},J45:function(){const e=new polyhedron;return e.name="J45",e.faces=[[13,16,20],[9,18,12],[2,4,0],[5,1,8],[14,15,7],[10,3,6],[17,11,19],[21,23,22],[12,11,4],[4,11,6],[4,6,0],[0,6,3],[0,3,1],[1,3,7],[1,7,8],[8,7,15],[8,15,16],[16,15,22],[16,22,20],[20,22,23],[20,23,18],[18,23,19],[18,19,12],[12,19,11],[5,13,9,2],[13,5,8,16],[9,13,20,18],[2,9,12,4],[5,2,0,1],[21,14,10,17],[14,21,22,15],[10,14,7,3],[17,10,6,11],[21,17,19,23]],e.vertices=[[-.984615,-.215433,.042813],[-.835086,.417027,.382665],[-.776626,.078669,-.596021],[-.681291,-.220722,.710519],[-.642753,-.628915,-.457214],[-.627097,.71113,-.256169],[-.577202,-.786781,.255979],[-.300907,.381853,.883943],[-.281757,.897979,.36326],[-.143631,.126378,-.963315],[-.068623,-.621064,.757726],[-.049613,-.984736,-.213412],[-.009758,-.581206,-.824509],[.005899,.758839,-.623463],[.311761,-.018489,.931151],[.341127,.667962,.674663],[.351238,.945688,-.004035],[.458966,-.819019,.288335],[.54357,-.100253,-.843914],[.592421,-.698626,-.422693],[.6931,.532207,-.504062],[.83935,-.216444,.461759],[.868716,.470008,.205272],[.972805,-.096052,-.249268]],e},J46:function(){const e=new polyhedron;return e.name="J46",e.faces=[[9,11,18],[16,23,25],[10,19,12],[3,6,1],[2,0,4],[17,13,7],[15,5,8],[21,14,22],[26,28,29],[24,27,20],[19,22,12],[12,22,14],[12,14,6],[6,14,8],[6,8,1],[1,8,5],[1,5,0],[0,5,7],[0,7,4],[4,7,13],[4,13,11],[11,13,20],[11,20,18],[18,20,27],[18,27,23],[23,27,29],[23,29,25],[25,29,28],[25,28,19],[19,28,22],[9,2,4,11],[16,9,18,23],[10,16,25,19],[3,10,12,6],[2,3,1,0],[17,24,20,13],[15,17,7,5],[21,15,8,14],[26,21,22,28],[24,26,29,27],[2,9,16,10,3],[24,17,15,21,26]],e.vertices=[[-.962816,.187793,.445444],[-.942301,-.435696,.287991],[-.736715,.34226,-.136766],[-.7162,-.281228,-.294218],[-.680334,.758077,.35095],[-.653736,-.229833,.824928],[-.626624,-.874236,-.061265],[-.516012,.397771,.858028],[-.47699,-.788175,.558536],[-.259134,.641512,-.447112],[-.22594,-.367313,-.701875],[-.202753,1.057329,.040605],[-.136364,-.960322,-.468922],[-.116423,.854913,.645191],[-.053283,-1.063987,.160603],[-.029965,-.362198,.739264],[.056543,.202971,-.796368],[.107759,.265405,.772363],[.287508,.971244,-.367052],[.341218,-.66107,-.779268],[.392401,.966981,.267715],[.393741,-.638011,.341331],[.455541,-.951919,-.216873],[.603185,.532703,-.716309],[.616584,.377473,.394887],[.6237,-.090786,-.873761],[.79333,-.180868,.128495],[.816108,.691169,-.130218],[.85513,-.494777,-.42971],[.992854,.132827,-.396611]],e},J47:function(){const e=new polyhedron;return e.name="J47",e.faces=[[8,12,18],[13,21,20],[7,16,11],[2,4,0],[3,1,5],[30,19,24],[19,15,10],[24,17,27],[17,6,9],[27,25,32],[25,14,22],[32,33,34],[33,26,29],[34,31,30],[31,28,23],[16,22,11],[11,22,14],[11,14,4],[4,14,9],[4,9,0],[0,9,6],[0,6,1],[1,6,10],[1,10,5],[5,10,15],[5,15,12],[12,15,23],[12,23,18],[18,23,28],[18,28,21],[21,28,29],[21,29,20],[20,29,26],[20,26,16],[16,26,22],[8,3,5,12],[13,8,18,21],[7,13,20,16],[2,7,11,4],[3,2,0,1],[3,8,13,7,2],[30,24,27,32,34],[30,31,23,15,19],[24,19,10,6,17],[27,17,9,14,25],[32,25,22,26,33],[34,33,29,28,31]],e.vertices=[[-.908535,-.523787,-.144699],[-.894854,-.367641,.429886],[-.853258,.048135,-.301436],[-.839577,.20428,.273149],[-.708763,-.381742,-.687498],[-.672946,.027052,.816785],[-.520247,-.782937,.225153],[-.51634,.434114,-.605119],[-.494204,.686763,.324579],[-.422413,-.79035,-.362291],[-.396391,-.493344,.730635],[-.371845,.004237,-.991181],[-.327573,.509534,.868216],[-.294432,.828807,-.218221],[-.140258,-.512752,-.807313],[-.098153,-.032185,.961078],[-.026471,.486719,-.939751],[-.010949,-1.005224,.010862],[.009345,.895513,.564533],[.189455,-.536653,.828749],[.195436,.881412,-.552852],[.209117,1.037558,.021734],[.218444,-.056175,-.93993],[.260549,.424392,.828462],[.427671,-.853012,.383905],[.445587,-.556061,-.709199],[.516681,.404984,-.709486],[.525505,-.860425,-.203539],[.542703,.70199,.38344],[.640537,.694577,-.204005],[.725908,-.391854,.614349],[.769847,.202104,.614171],[.884207,-.403849,-.336156],[.928145,.190109,-.336334],[1.008063,-.114255,.169326]],e},J48:function(){const e=new polyhedron;return e.name="J48",e.faces=[[0,5,1],[5,10,11],[1,7,3],[7,13,15],[3,9,4],[9,17,19],[4,8,2],[8,18,16],[2,6,0],[6,14,12],[35,31,37],[31,21,23],[37,33,39],[33,25,27],[39,34,38],[34,29,28],[38,32,36],[32,26,24],[36,30,35],[30,22,20],[17,28,19],[19,28,29],[19,29,18],[18,29,27],[18,27,16],[16,27,25],[16,25,14],[14,25,23],[14,23,12],[12,23,21],[12,21,10],[10,21,20],[10,20,11],[11,20,22],[11,22,13],[13,22,24],[13,24,15],[15,24,26],[15,26,17],[17,26,28],[0,1,3,4,2],[0,6,12,10,5],[1,5,11,13,7],[3,7,15,17,9],[4,9,19,18,8],[2,8,16,14,6],[35,37,39,38,36],[35,30,20,21,31],[37,31,23,25,33],[39,33,27,29,34],[38,34,28,26,32],[36,32,24,22,30]],e.vertices=[[-1.023844,.34935,.211966],[-1.02284,.245289,-.329944],[-.984402,-.132386,.478181],[-.982778,-.300762,-.398647],[-.959023,-.534178,.100801],[-.762835,.690856,-.134076],[-.724398,.313181,.674049],[-.72177,.040743,-.74469],[-.659577,-.570348,.562884],[-.657953,-.738723,-.313945],[-.302078,.865747,.11414],[-.301074,.761686,-.427769],[-.278322,.632332,.613589],[-.275694,.359894,-.805149],[-.238881,.150594,.879804],[-.235633,-.186157,-.873853],[-.198819,-.395456,.8111],[-.196192,-.667893,-.607638],[-.173439,-.797247,.43372],[-.172436,-.901309,-.10819],[.169627,.892069,-.170988],[.181588,.824063,.376487],[.183498,.626126,-.654287],[.214813,.448086,.77902],[.217902,.127816,-.888807],[.25661,-.092255,.882858],[.259699,-.412524,-.784969],[.291015,-.590564,.648338],[.292924,-.788502,-.382436],[.304885,-.856507,.165038],[.65102,.715912,-.375257],[.670374,.605876,.510575],[.706688,-.090371,-.754719],[.738003,-.268411,.678589],[.760446,-.698716,-.103406],[.960498,.539035,.045972],[.974369,.273093,-.437327],[.993723,.163058,.448505],[1.016166,-.267247,-.333489],[1.028128,-.335253,.213985]],e},J49:function(){const e=new polyhedron;return e.name="J49",e.faces=[[6,3,2],[3,0,2],[0,3,4],[2,5,6],[1,0,4],[6,4,3],[2,0,1,5],[5,1,4,6]],e.vertices=[[-.87547,-.255205,-.086794],[-.276612,-.313401,1.029989],[-.236035,.801921,-.374595],[-.051128,-.255205,-1.050994],[.218493,-.889481,.014004],[.362823,.743725,.742188],[.857929,.167645,-.273797]],e},J50:function(){const e=new polyhedron;return e.name="J50",e.faces=[[3,0,1],[1,0,2],[1,2,5],[4,0,3],[2,6,5],[4,3,7],[4,7,6],[6,7,5],[7,3,5],[1,5,3],[0,4,6,2]],e.vertices=[[-.878027,-.44614,.176652],[-.85656,.548188,-.533],[-.47761,.616903,.626496],[-.069889,-.364329,-.736024],[.239836,-.921955,.306031],[.330528,.698715,-.286179],[.640253,.141088,.755876],[1.071468,-.272471,-.309853]],e},J51:function(){const e=new polyhedron;return e.name="J51",e.faces=[[1,5,0],[8,4,5],[4,0,5],[4,3,0],[8,3,4],[5,6,8],[8,6,7],[8,7,3],[3,7,2],[7,6,2],[3,2,0],[0,2,1],[2,6,1],[1,6,5]],e.vertices=[[-.837735,-.140456,-.298855],[-.67808,.951266,.116678],[-.424767,.019903,.793738],[-.041529,-.887587,.145967],[-.017092,-.613922,-1.000561],[.031619,.531638,-.726088],[.444587,.691997,.366504],[.695172,-.337344,.883883],[.827825,-.215493,-.281266]],e},J52:function(){const e=new polyhedron;return e.name="J52",e.faces=[[3,8,4],[3,9,8],[4,8,10],[10,8,9],[1,0,5,6],[3,1,6,9],[2,4,10,7],[0,2,7,5],[0,1,3,4,2],[7,10,9,6,5]],e.vertices=[[-.81481,.221521,-.662951],[-.660297,-.683519,-.326712],[-.53073,.852939,.027439],[-.280723,-.611446,.571485],[-.200646,.338137,.790362],[.085423,.233517,-1.044348],[.239936,-.671523,-.708109],[.369503,.864935,-.353959],[.473247,-.295241,1.107742],[.619511,-.59945,.190087],[.699587,.350133,.408964]],e},J53:function(){const e=new polyhedron;return e.name="J53",e.faces=[[2,3,0],[2,9,3],[0,3,7],[7,3,9],[1,6,4],[1,8,6],[4,6,10],[10,6,8],[5,4,10,11],[2,5,11,9],[1,0,7,8],[4,5,2,0,1],[8,7,9,11,10]],e.vertices=[[-.736376,.261231,-.409511],[-.572247,-.640818,-.200191],[-.430826,.786388,.30833],[-.352398,1.103933,-.573408],[-.16526,-.673158,.647018],[-.077857,.208904,.961301],[.083202,-1.290119,-.017868],[.11049,.32145,-.814035],[.274618,-.5806,-.604714],[.416039,.846607,-.096194],[.681606,-.61294,.242494],[.769009,.269122,.556777]],e},J54:function(){const e=new polyhedron;return e.name="J54",e.faces=[[5,10,9],[5,8,10],[9,10,12],[12,10,8],[1,0,2,4],[5,1,4,8],[7,9,12,11],[3,7,11,6],[0,3,6,2],[0,1,5,9,7,3],[11,12,8,4,2,6]],e.vertices=[[-.973522,.38842,-.100967],[-.837708,-.464036,-.18462],[-.457167,.537479,-.781617],[-.449574,.863826,.400622],[-.321353,-.314977,-.865269],[-.177946,-.841086,.233318],[.066781,1.012885,-.280028],[.210188,.486776,.818559],[.338409,-.692027,-.447332],[.346002,-.365679,.734907],[.666998,-1.030797,.280259],[.726543,.635835,.13791],[.862357,-.216621,.054258]],e},J55:function(){const e=new polyhedron;return e.name="J55",e.faces=[[12,13,11],[12,10,13],[11,13,8],[8,13,10],[3,0,5],[3,1,0],[5,0,2],[2,0,1],[9,5,2,7],[12,9,7,10],[6,11,8,4],[3,6,4,1],[5,9,12,11,6,3],[4,8,10,7,2,1]],e.vertices=[[-1.129559,.266324,.624401],[-.925111,.008507,-.145991],[-.655368,-.416841,.523404],[-.5883,.71007,.164074],[-.438148,.074567,-.824427],[-.318557,.284721,.83347],[-.101337,.77613,-.514362],[.101337,-.77613,.514363],[.318557,-.284721,-.833468],[.438148,-.074567,.824429],[.5883,-.710069,-.164073],[.655368,.416842,-.523403],[.925111,-.008507,.145993],[1.129559,-.266324,-.624399]],e},J56:function(){const e=new polyhedron;return e.name="J56",e.faces=[[3,0,1],[3,4,0],[1,0,2],[2,0,4],[5,7,10],[5,6,7],[10,7,11],[11,7,6],[8,12,13,9],[3,8,9,4],[5,1,2,6],[12,10,11,13],[12,8,3,1,5,10],[6,2,4,9,13,11]],e.vertices=[[-1.111755,.435562,-.458586],[-.808867,.159752,.27642],[-.700013,-.297342,-.421621],[-.454926,.822531,-.102389],[-.346072,.365437,-.80043],[-.331474,-.383478,.706586],[-.22262,-.840572,.008545],[.189019,-1.044602,.713507],[.376408,.942079,-.051032],[.485263,.484985,-.749073],[.49986,-.26393,.757943],[.608714,-.721024,.059902],[.853802,.398849,.379134],[.962656,-.058246,-.318907]],e},J57:function(){const e=new polyhedron;return e.name="J57",e.faces=[[9,14,11],[9,12,14],[11,14,13],[13,14,12],[8,6,2],[8,10,6],[2,6,5],[5,6,10],[0,1,4],[0,3,1],[4,1,7],[7,1,3],[9,4,7,12],[8,11,13,10],[0,2,5,3],[0,4,9,11,8,2],[10,13,12,7,3,5]],e.vertices=[[-.902174,-.044182,-.142406],[-.852256,-.16038,-.950443],[-.65694,.352221,.529639],[-.484062,.483825,-.606421],[-.454289,-.660407,-.440037],[-.238829,.880229,.065624],[-.184058,.919718,.880707],[-.036177,-.1324,-.904053],[.036178,.1324,.904052],[.238829,-.880229,-.065625],[.454289,.660407,.440037],[.484063,-.483825,.60642],[.656941,-.352221,-.52964],[.902174,.044182,.142405],[1.036314,-.759338,.069736]],e},J58:function(){const e=new polyhedron;return e.name="J58",e.faces=[[2,0,5],[2,5,8],[2,1,0],[2,7,1],[7,2,8],[18,20,16,11,12],[6,4,11,16,13],[1,7,12,11,4],[8,15,18,12,7],[17,19,20,18,15],[14,13,16,20,19],[19,17,10,9,14],[15,8,5,10,17],[4,6,3,0,1],[13,14,9,3,6],[3,9,10,5,0]],e.vertices=[[-.906673,.136106,.246909],[-.827056,.097501,-.456089],[-.822039,.728118,-.133084],[-.682157,-.474972,.526574],[-.553334,-.537436,-.610901],[-.48677,.654002,.486704],[-.463781,-.891244,-.003583],[-.357947,.591537,-.650771],[-.147639,.935474,-.068093],[-.123496,-.334743,.939211],[-.00274,.363001,.91457],[.084945,-.435813,-.901263],[.2057,.261931,-.925903],[.229843,-1.008285,.0814],[.440151,-.664349,.664079],[.545986,.818432,.01689],[.568974,-.726814,-.473396],[.635538,.464625,.624209],[.764361,.40216,-.513266],[.90926,-.170313,.469397],[.988877,-.208918,-.233601]],e},J59:function(){const e=new polyhedron;return e.name="J59",e.faces=[[0,7,3],[0,3,1],[0,5,7],[0,2,5],[2,0,1],[21,18,14],[21,14,16],[21,20,18],[21,19,20],[19,21,16],[6,8,14,18,12],[17,11,12,18,20],[5,2,6,12,11],[1,4,8,6,2],[10,16,14,8,4],[4,1,3,9,10],[11,17,13,7,5],[20,19,15,13,17],[16,10,9,15,19],[15,9,3,7,13]],e.vertices=[[-.987924,-.168105,-.565605],[-.950092,-.216897,.133657],[-.877263,.407337,-.179083],[-.637339,-.699196,-.269274],[-.609869,-.193139,.747222],[-.519498,.310837,-.775297],[-.492028,.816894,.241199],[-.371218,-.373038,-.831038],[-.32677,.445779,.813687],[-.103824,-.973514,.095267],[-.086847,-.660753,.723496],[.086847,.660753,-.723496],[.103824,.973513,-.095267],[.32677,-.44578,-.813687],[.371218,.373038,.831038],[.492028,-.816894,-.241199],[.519498,-.310837,.775297],[.609869,.193139,-.747222],[.637339,.699195,.269274],[.877262,-.407338,.179083],[.950092,.216897,-.133657],[.987924,.168105,.565605]],e},J60:function(){const e=new polyhedron;return e.name="J60",e.faces=[[7,13,15],[7,15,9],[7,4,13],[7,2,4],[2,7,9],[5,1,8],[5,8,14],[5,3,1],[5,11,3],[11,5,14],[0,6,10,8,1],[19,14,8,10,17],[4,2,0,1,3],[9,12,6,0,2],[18,17,10,6,12],[12,9,15,20,18],[3,11,16,13,4],[14,19,21,16,11],[17,18,20,21,19],[21,20,15,13,16]],e.vertices=[[-.858966,-.256781,-.362035],[-.807204,-.391109,.326114],[-.719263,.425042,-.461407],[-.63551,.207695,.652043],[-.58116,.712103,.165328],[-.46306,-.410585,.938862],[-.364654,-.630479,-.694119],[-.311484,.996138,-.418515],[-.280902,-.847826,.419331],[-.13861,.472734,-.854906],[-.007391,-.995764,-.211209],[-.003096,.121058,.946694],[.08055,-.179614,-.99873],[.084846,.937209,.159173],[.216065,-.531289,.80287],[.358357,.789271,-.471366],[.442109,.571923,.642084],[.658614,-.770659,-.217364],[.712965,-.26625,-.704079],[.796718,-.483597,.409371],[.884659,.332554,-.37815],[.936421,.198226,.31]],e},J61:function(){const e=new polyhedron;return e.name="J61",e.faces=[[6,3,1],[6,1,8],[6,11,3],[6,14,11],[14,6,8],[19,22,21],[19,21,15],[19,16,22],[19,13,16],[13,19,15],[4,0,2],[4,2,9],[4,7,0],[4,12,7],[12,4,9],[20,17,18,21,22],[9,15,21,18,12],[11,14,20,22,16],[8,10,17,20,14],[7,12,18,17,10],[10,8,1,0,7],[16,13,5,3,11],[15,9,2,5,13],[2,0,1,3,5]],e.vertices=[[-.875027,-.215344,-.354115],[-.822602,-.401147,.315989],[-.733096,.465836,-.400606],[-.648272,.1652,.683645],[-.625957,.049095,-.949385],[-.592955,.701024,.240765],[-.479753,-.469083,.919437],[-.387571,-.561993,-.712628],[-.302747,-.862629,.371622],[-.157924,.540178,-.787852],[-.033883,-.962037,-.264098],[-.020675,.053739,.966503],[.055623,-.095055,-.980693],[.068831,.920721,.249908],[.192872,-.581494,.773662],[.337694,.821313,-.385812],[.422519,.520677,.698439],[.627903,-.74234,-.254955],[.683221,-.206515,-.697835],[.756251,.83314,.171845],[.768045,-.507151,.386416],[.85755,.359831,-.330178],[.909975,.174028,.339925]],e},J62:function(){const e=new polyhedron;return e.name="J62",e.faces=[[6,3,0],[0,3,1],[1,5,2],[1,2,0],[2,4,0],[4,8,6],[4,6,0],[9,7,8],[7,6,8],[7,3,6],[1,3,7,9,5],[2,5,9,8,4]],e.vertices=[[-.821855,.223834,-.340481],[-.71039,-.701977,.157898],[-.692806,.20039,.708676],[-.215696,-.533443,-.761235],[-.187244,.926618,.129942],[-.006891,-.571377,.936336],[.107626,.473083,-.778513],[.793541,-.298683,-.550854],[.811125,.603684,-76e-6],[.92259,-.322128,.498303]],e},J63:function(){const e=new polyhedron;return e.name="J63",e.faces=[[0,4,6],[4,8,6],[6,2,0],[0,1,4],[5,7,3],[6,8,7,5,2],[0,2,5,3,1],[7,8,4,1,3]],e.vertices=[[-.799898,.494585,-.153719],[-.680241,-.086273,.717027],[-.306176,.002547,-.943688],[-.112567,-.9373,.465209],[-.077419,.764103,.564122],[.118618,-.882406,-.56117],[.153766,.818996,-.462256],[.841097,-.612888,.156672],[.86282,.438637,.217804]],e},J64:function(){const e=new polyhedron;return e.name="J64",e.faces=[[6,5,8],[5,4,8],[8,7,6],[6,2,5],[9,1,0],[9,0,3],[9,3,1],[8,4,1,3,7],[6,7,3,0,2],[1,4,5,2,0]],e.vertices=[[-.777985,-.188235,-.285228],[-.489362,-.260552,.643961],[-.32442,.578558,-.683014],[-.099589,-.843165,-.034687],[.142581,.461547,.820446],[.24452,.980145,33e-5],[.634293,.397531,-.678318],[.773247,-.481142,-.27763],[.922916,.325215,.250871],[-1.026197,-.969903,.24327]],e},J65:function(){const e=new polyhedron;return e.name="J65",e.faces=[[12,7,11],[10,13,11],[14,13,9],[9,3,6],[0,1,5],[4,2,7],[6,4,8],[14,8,12],[12,8,4,7],[13,14,12,11],[14,9,6,8],[11,7,2,0,5,10],[13,10,5,1,3,9],[3,1,0,2,4,6]],e.vertices=[[-.91403,.409064,-.602734],[-.830829,.815648,.102539],[-.699591,-.379344,-.648261],[-.533188,.433825,.762285],[-.401951,-.761167,.011485],[-.338469,.986004,-.528495],[-.318749,-.354582,.716757],[.090409,-.59081,-.619549],[.251663,-.893891,.485632],[.256812,.222359,.790997],[.451531,.774538,-.499782],[.66597,-.013869,-.545309],[.744023,-.723534,-.145401],[.749172,.392715,.159963],[.827225,-.31695,.559871]],e},J66:function(){const e=new polyhedron;return e.name="J66",e.faces=[[24,16,17],[26,19,21],[27,23,22],[25,20,18],[21,15,23],[5,7,11],[17,13,19],[1,3,9],[18,12,16],[2,0,8],[22,14,20],[6,4,10],[25,24,26,27],[24,25,18,16],[26,24,17,19],[27,26,21,23],[25,27,22,20],[23,15,11,7,6,10,14,22],[20,14,10,4,2,8,12,18],[16,12,8,0,1,9,13,17],[19,13,9,3,5,11,15,21],[4,6,7,5,3,1,0,2]],e.vertices=[[-.935384,.507278,-.272116],[-.915801,.536228,.283002],[-.882043,.099694,-.646826],[-.834764,.169584,.693348],[-.787023,-.447768,-.621628],[-.739744,-.377878,.718546],[-.705986,-.814411,-.211282],[-.686402,-.785462,.343836],[-.561956,.553237,-.681771],[-.514677,.623127,.658404],[-.332557,-.768453,-.620937],[-.285278,-.698562,.719237],[-.014265,.647182,-.705992],[.033015,.717073,.634183],[.215134,-.674508,-.645158],[.262413,-.604617,.695016],[.386859,.734081,-.330591],[.406443,.763031,.224528],[.440201,.326497,-.705301],[.48748,.396388,.634874],[.535221,-.220964,-.680103],[.5825,-.151074,.660072],[.616258,-.587608,-.269757],[.635842,-.558659,.285361],[.831438,.541255,-.057559],[.884779,.13367,-.432269],[.912475,.174611,.352787],[.965816,-.232973,-.021924]],e},J67:function(){const e=new polyhedron;return e.name="J67",e.faces=[[22,25,17],[15,10,7],[19,13,20],[28,29,31],[9,14,6],[3,0,2],[12,11,18],[16,24,21],[7,4,13],[0,6,1],[17,8,10],[11,2,5],[31,30,25],[24,18,27],[20,26,29],[14,21,23],[28,22,15,19],[22,28,31,25],[15,22,17,10],[19,15,7,13],[28,19,20,29],[16,9,3,12],[9,16,21,14],[3,9,6,0],[12,3,2,11],[16,12,18,24],[13,4,1,6,14,23,26,20],[29,26,23,21,24,27,30,31],[25,30,27,18,11,5,8,17],[10,8,5,2,0,1,4,7]],e.vertices=[[-.85468,-.304544,.321795],[-.813538,.214997,.467663],[-.753988,-.584165,-.130495],[-.662946,-.809677,.352981],[-.654663,.670118,.221662],[-.570447,-.460068,-.624262],[-.567052,-.168344,.759532],[-.471123,.794216,-.272106],[-.411573,-.004947,-.870263],[-.375319,-.673477,.790718],[-.370431,.514594,-.724396],[-.323962,-.84341,-.332393],[-.23292,-1.068921,.151083],[-.183495,.930415,.165631],[-.059594,-.25535,.926295],[-.054707,.932721,-.588818],[.054707,-.932721,.588819],[.059595,.25535,-.926294],[.183496,-.930415,-.16563],[.23292,1.068921,-.151082],[.323962,.84341,.332394],[.370432,-.514594,.724397],[.37532,.673477,-.790717],[.411574,.004947,.870264],[.471123,-.794216,.272106],[.567053,.168344,-.759531],[.570448,.460068,.624263],[.654664,-.670118,-.221661],[.662947,.809677,-.35298],[.753989,.584165,.130496],[.813538,-.214997,-.467662],[.85468,.304544,-.321795]],e},J68:function(){const e=new polyhedron;return e.name="J68",e.faces=[[34,30,24],[45,51,41],[36,26,31],[53,49,44],[16,9,19],[27,20,21],[1,3,5],[4,2,0],[11,17,7],[12,22,13],[62,56,58],[59,57,63],[43,40,50],[39,32,38],[23,28,33],[10,6,15],[25,35,29],[8,14,18],[48,52,42],[47,46,37],[54,48,46],[55,47,49],[61,53,59],[62,64,63],[60,58,52],[54,60,52,48],[55,54,46,47],[61,55,49,53],[64,61,59,63],[60,64,62,58],[60,54,55,61,64],[31,26,19,9,5,3,7,17,24,30],[59,53,44,36,31,30,34,41,51,57],[37,27,21,16,19,26,36,44,49,47],[8,4,0,1,5,9,16,21,20,14],[10,12,13,11,7,3,1,0,2,6],[39,45,41,34,24,17,11,13,22,32],[50,40,33,28,29,35,42,52,58,56],[45,39,38,43,50,56,62,63,57,51],[12,10,15,23,33,40,43,38,32,22],[4,8,18,25,29,28,23,15,6,2],[27,37,46,48,42,35,25,18,14,20]],e.vertices=[[-1.053731,-.062801,.140871],[-1.047729,-.006643,-.190675],[-.967657,.064553,.440012],[-.951944,.211579,-.427988],[-.942283,-.266176,.38445],[-.92657,-.11915,-.483549],[-.822385,.326776,.592485],[-.802963,.50851,-.480421],[-.755954,-.539085,.447023],[-.736532,-.35735,-.625883],[-.673403,.623707,.540051],[-.65769,.770733,-.327948],[-.577618,.841928,.302738],[-.571617,.898087,-.028808],[-.565916,-.777285,.304689],[-.561955,.420332,.78363],[-.550203,-.630259,-.56331],[-.536531,.658225,-.620822],[-.479842,-.64993,.603829],[-.454419,-.412037,-.800623],[-.444757,-.889793,.011815],[-.438755,-.833633,-.319731],[-.311187,.991643,.162337],[-.285843,.309485,.940436],[-.254418,.603538,-.795562],[-.219412,-.556374,.794974],[-.187987,-.262321,-.941024],[-.162643,-.944479,-.162925],[-.099515,.036577,1.003008],[-.07414,-.294152,.947447],[-.06438,.365339,-.937896],[-.039006,.034609,-.993458],[.024123,1.015665,.172476],[.049467,.333508,.950575],[.080892,.627561,-.785423],[.115898,-.532352,.805113],[.147323,-.238299,-.930885],[.172667,-.920457,-.152786],[.300235,.90482,.329282],[.306237,.960979,-.002264],[.315898,.483223,.810173],[.341322,.721117,-.594278],[.398011,-.587039,.630373],[.411683,.701445,.572861],[.423435,-.349145,-.774079],[.427396,.848471,-.295138],[.433096,-.826901,.038358],[.439098,-.770742,-.293188],[.51917,-.699547,.337499],[.534883,-.55252,-.5305],[.598012,.428536,.635433],[.617434,.610271,-.437472],[.664443,-.437324,.489972],[.683864,-.255589,-.582934],[.721659,-.657508,.072275],[.727661,-.601349,-.259271],[.78805,.190336,.493099],[.803762,.337363,-.3749],[.813424,-.140393,.437538],[.829136,.006634,-.430461],[.866931,-.395285,.224748],[.876642,-.304418,-.311705],[.909209,.077829,.200225],[.91521,.133987,-.131321],[.962716,-.177064,-.012565]],e},J69:function(){const e=new polyhedron;return e.name="J69",e.faces=[[4,8,12],[3,0,1],[18,28,15],[9,21,16],[49,45,37],[52,62,55],[56,43,50],[64,63,67],[29,23,34],[36,27,31],[13,19,26],[5,2,6],[20,32,24],[7,17,14],[51,54,41],[60,53,48],[65,57,61],[69,66,68],[40,35,46],[33,38,42],[30,40,38],[22,33,21],[10,9,5],[13,11,6],[25,26,35],[58,56,63],[59,64,60],[47,48,36],[29,39,31],[44,34,43],[30,25,35,40],[22,30,38,33],[10,22,21,9],[11,10,5,6],[25,11,13,26],[58,44,43,56],[59,58,63,64],[47,59,60,48],[39,47,36,31],[44,39,29,34],[25,30,22,10,11],[44,58,59,47,39],[15,28,37,45,50,43,34,23,12,8],[5,9,16,18,15,8,4,1,0,2],[42,52,55,49,37,28,18,16,21,33],[69,67,63,56,50,45,49,55,62,66],[67,69,68,65,61,54,51,53,60,64],[7,3,1,4,12,23,29,31,27,17],[24,32,41,54,61,57,46,35,26,19],[3,7,14,20,24,19,13,6,2,0],[36,48,53,51,41,32,20,14,17,27],[52,42,38,40,46,57,65,68,66,62]],e.vertices=[[-.988041,.082361,-.032394],[-.940439,.10562,.297446],[-.93903,-.112232,-.299475],[-.911497,.377114,.10495],[-.814408,-.051339,.564056],[-.812127,-.403831,-.401783],[-.783185,-.132338,-.594279],[-.738637,.65944,.060095],[-.658086,-.328563,.665601],[-.655805,-.681055,-.300238],[-.621075,-.575598,-.615315],[-.592133,-.304105,-.807812],[-.581542,-.03381,.802944],[-.580033,.029724,-.8042],[-.535485,.821501,-.149826],[-.531183,-.620162,.563294],[-.529773,-.838014,-.033627],[-.487884,.844761,.180013],[-.482172,-.814755,.296212],[-.407173,.31205,-.849055],[-.37964,.801396,-.44463],[-.373928,-.858119,-.328432],[-.339198,-.752663,-.643508],[-.33079,.15151,.922864],[-.330629,.606803,-.711711],[-.292369,-.313377,-.954974],[-.28027,.020452,-.951362],[-.255019,.862289,.418901],[-.249306,-.797226,.5351],[-.157929,.433837,.878008],[-.136047,-.590601,-.85343],[-.128987,.70533,.685512],[-.079877,.792123,-.591793],[-.074164,-.867392,-.475594],[-.001607,.156613,.979553],[.001607,-.156613,-.979556],[.074164,.867391,.475591],[.079877,-.792124,.59179],[.128987,-.70533,-.685515],[.136047,.590601,.853427],[.157929,-.433837,-.878011],[.249306,.797226,-.535103],[.255019,-.862289,-.418905],[.280269,-.020452,.95136],[.292369,.313377,.954971],[.330629,-.606803,.711709],[.33079,-.151511,-.922866],[.339198,.752662,.643506],[.373928,.858119,.328428],[.37964,-.801396,.444627],[.407172,-.312051,.849052],[.482172,.814754,-.296215],[.487884,-.844761,-.180016],[.529773,.838013,.033625],[.531183,.620161,-.563297],[.535485,-.821502,.149823],[.580033,-.029724,.804197],[.581542,.03381,-.802948],[.592133,.304105,.807809],[.621074,.575598,.615313],[.655804,.681055,.300235],[.658086,.328562,-.665604],[.738637,-.65944,-.060097],[.783184,.132337,.594276],[.812126,.40383,.40178],[.814408,.051338,-.564059],[.911497,-.377114,-.104953],[.939029,.112232,.299472],[.940439,-.10562,-.297449],[.988041,-.082361,.032391]],e},J70:function(){const e=new polyhedron;return e.name="J70",e.faces=[[41,46,53],[26,22,34],[33,44,40],[14,18,21],[48,58,49],[31,38,43],[68,69,65],[59,63,66],[64,62,67],[57,52,61],[3,9,2],[11,15,7],[24,23,16],[32,39,28],[37,30,27],[60,51,56],[29,19,25],[50,45,36],[10,6,12],[17,13,20],[4,10,13],[8,17,18],[5,14,11],[3,1,7],[0,2,6],[47,37,51],[55,60,63],[54,59,50],[29,42,36],[35,25,30],[4,0,6,10],[8,4,13,17],[5,8,18,14],[1,5,11,7],[0,1,3,2],[47,35,30,37],[55,47,51,60],[54,55,63,59],[42,54,50,36],[35,42,29,25],[0,4,8,5,1],[35,47,55,54,42],[40,44,49,58,65,69,67,62,53,46],[11,14,21,33,40,46,41,34,22,15],[20,31,43,48,49,44,33,21,18,17],[50,59,66,68,65,58,48,43,38,45],[56,57,61,64,67,69,68,66,63,60],[32,26,34,41,53,62,64,61,52,39],[16,23,27,30,25,19,12,6,2,9],[26,32,28,24,16,9,3,7,15,22],[57,56,51,37,27,23,24,28,39,52],[31,20,13,10,12,19,29,36,45,38]],e.vertices=[[-.989194,-.091477,-.102373],[-.986156,-.109996,.232129],[-.908902,.23333,-.08512],[-.905864,.214811,.249382],[-.892465,-.388533,-.22339],[-.887549,-.418497,.317846],[-.850998,.061184,-.366646],[-.843044,.012701,.509091],[-.829645,-.590642,.03632],[-.810408,.497156,.096369],[-.754269,-.235871,-.487662],[-.744438,-.2958,.594808],[-.658813,.046474,-.640675],[-.655662,-.544372,-.401946],[-.647709,-.592856,.473792],[-.645943,-.031974,.776297],[-.593136,.75189,.108498],[-.592842,-.746482,-.142236],[-.589804,-.765001,.192266],[-.405755,.194817,-.802538],[-.400657,-.761193,-.416265],[-.392703,-.809676,.459472],[-.389847,.09785,.948936],[-.340078,.900233,-.053365],[-.33704,.881715,.281137],[-.188483,.449551,-.790409],[-.172576,.352585,.961066],[-.147893,.885523,-.327394],[-.139939,.83704,.548343],[-.091754,.152496,-.911425],[-.089989,.713378,-.60892],[-.086657,-.803514,-.525152],[-.07712,.63493,.808053],[-.076826,-.863443,.557318],[-.073969,.044084,1.046782],[.126005,.562254,-.815685],[.163251,-.064325,-.925745],[.166107,.843202,-.436281],[.166401,-.655171,-.687015],[.175938,.783273,.64619],[.179271,-.733618,.729957],[.181036,-.172737,1.032463],[.222734,.265199,-.936702],[.229221,-.857281,-.427306],[.237175,-.905764,.448431],[.261857,-.372826,-.840028],[.277765,-.469792,.911446],[.382101,.692078,-.643046],[.426322,-.901955,-.1601],[.42936,-.920474,.174402],[.479129,-.118091,-.827899],[.481985,.789435,-.338434],[.489939,.740952,.537303],[.495036,-.215058,.923576],[.538612,.211432,-.838855],[.637106,.475258,-.657366],[.679086,.74476,-.071228],[.682124,.726241,.263273],[.682418,-.772131,.012539],[.735225,.011733,-.65526],[.73699,.572615,-.352754],[.744944,.524132,.522983],[.748094,-.066715,.761713],[.833719,.275559,-.473771],[.84355,.21563,.6087],[.899689,-.517397,.024669],[.932326,-.032942,-.388054],[.940279,-.081425,.487683],[.995146,-.235051,-.128344],[.998184,-.253571,.206158]],e},J71:function(){const e=new polyhedron;return e.name="J71",e.faces=[[70,73,74],[54,53,63],[60,64,68],[43,39,51],[49,56,59],[28,27,37],[52,62,58],[30,35,41],[65,71,67],[50,55,46],[3,0,1],[20,19,10],[8,6,2],[25,29,17],[22,15,11],[45,34,40],[26,14,16],[48,47,38],[12,4,9],[32,23,36],[13,12,23],[21,32,35],[18,30,20],[3,7,10],[5,1,4],[31,22,34],[42,45,53],[44,54,48],[26,33,38],[24,16,15],[66,39,29],[57,25,28],[61,37,49],[69,59,64],[72,60,51],[13,5,4,12],[21,13,23,32],[18,21,35,30],[7,18,20,10],[5,7,3,1],[31,24,15,22],[42,31,34,45],[44,42,53,54],[33,44,48,38],[24,33,26,16],[66,72,51,39],[66,29,25,57],[57,28,37,61],[61,49,59,69],[69,64,60,72],[5,13,21,18,7],[24,31,42,44,33],[72,66,57,61,69],[68,64,59,56,58,62,67,71,74,73],[40,43,51,60,68,73,70,63,53,45],[54,63,70,74,71,65,55,50,47,48],[20,30,41,52,58,56,49,37,27,19],[36,46,55,65,67,62,52,41,35,32],[2,6,11,15,16,14,9,4,1,0],[28,25,17,8,2,0,3,10,19,27],[43,40,34,22,11,6,8,17,29,39],[46,36,23,12,9,14,26,38,47,50]],e.vertices=[[-.942902,.07027,-.149675],[-.907058,.322313,.065363],[-.897048,-.257164,-.191336],[-.851819,.371393,-.259585],[-.803207,.402693,.37164],[-.802539,.632087,.129919],[-.787011,-.534922,-.043707],[-.7473,.681167,-.195029],[-.731772,-.485841,-.368655],[-.671018,.280706,.65217],[-.658589,.531186,-.479085],[-.654821,-.656908,.236823],[-.579935,.581829,.542259],[-.579266,.811224,.300537],[-.560981,.002949,.799799],[-.550971,-.576528,.5431],[-.515127,-.324486,.758138],[-.510203,-.528414,-.613902],[-.489887,.890637,-.225239],[-.437021,.488613,-.724333],[-.401177,.740656,-.509295],[-.386037,.971017,.081037],[-.385694,-.805205,.365781],[-.322522,.791299,.512049],[-.317618,-.591958,.780503],[-.316974,-.368621,-.833402],[-.291854,-.145349,.928756],[-.271745,.259936,-.901652],[-.225891,-.067498,-.943313],[-.206937,-.646378,-.685774],[-.177904,.919793,-.338677],[-.152342,-.820635,.603184],[-.129293,.951092,.292549],[-.094345,-.412822,.951122],[-.082428,-.92317,.29391],[-.074054,1.000172,-.032399],[.002897,.829106,.573078],[.031522,.141972,-.973523],[.033565,-.107542,.989786],[.06219,-.794676,-.556816],[.13914,-.965743,.048662],[.147515,.9576,-.277647],[.173077,-.782829,.664213],[.19438,-.916662,-.276286],[.208921,-.530786,.87925],[.242991,-.885363,.354939],[.272024,.680808,.702036],[.290978,.101928,.959576],[.336832,-.225507,.917915],[.356941,.179778,-.912493],[.382061,.403051,.849665],[.387609,-.75687,-.495786],[.450781,.839635,-.349518],[.466264,-.706226,.525558],[.502108,-.454184,.740596],[.57529,.562844,.630165],[.580214,.358915,-.741875],[-.018946,-.326587,-.976456],[.616058,.610958,-.526838],[.626068,.031481,-.783536],[.645022,-.5474,-.525996],[.238466,-.117117,-1.006666],[.719908,.691337,-.22056],[.723676,-.496756,.495348],[.736105,-.246276,-.635907],[.796859,.520271,.384917],[.091091,-.604344,-.828827],[.852098,.569351,.059969],[.868294,-.368263,-.355377],[.507593,-.265415,-.877708],[.916906,-.336964,.275848],[.962135,.291594,.207599],[.41651,-.566538,-.767798],[.972145,-.287883,-.0491],[1.007989,-.035841,.165937]],e},J72:function(){const e=new polyhedron;return e.name="J72",e.faces=[[48,45,55],[35,42,47],[23,18,31],[20,30,34],[49,57,51],[59,54,53],[56,50,58],[46,41,52],[39,40,28],[37,25,22],[43,44,32],[38,24,26],[29,19,17],[9,1,7],[11,13,3],[14,12,4],[36,21,33],[15,16,27],[5,0,6],[2,10,8],[36,33,45,48],[45,47,56,55],[47,42,50,56],[23,31,42,35],[18,20,34,31],[34,30,41,46],[48,55,57,49],[57,59,53,51],[53,54,44,43],[58,52,54,59],[50,46,52,58],[41,30,24,38],[49,51,40,39],[40,37,22,28],[22,25,13,11],[43,32,25,37],[44,38,26,32],[26,24,12,14],[39,28,19,29],[19,9,7,17],[7,1,0,5],[11,3,1,9],[13,14,4,3],[4,12,10,2],[29,17,21,36],[21,15,27,33],[27,16,23,35],[5,6,16,15],[0,2,8,6],[8,10,20,18],[33,27,35,47,45],[31,34,46,50,42],[55,56,58,59,57],[52,41,38,44,54],[51,53,43,37,40],[32,26,14,13,25],[28,22,11,9,19],[3,4,2,0,1],[17,7,5,15,21],[6,8,18,23,16],[36,48,49,39,29],[10,12,24,30,20]],e.vertices=[[-.976612,.213547,-.025026],[-.942883,-.134569,-.304734],[-.917763,.061996,.392261],[-.863187,-.501268,-.060316],[-.847662,-.379783,.37045],[-.806942,.483006,-.339927],[-.791417,.60449,.090839],[-.773213,.13489,-.619635],[-.732567,.452939,.508126],[-.703113,-.306889,-.641445],[-.652871,.086241,.752543],[-.623417,-.673588,-.397028],[-.582771,-.355538,.730732],[-.564567,-.825138,.020258],[-.549042,-.703654,.451025],[-.47356,.76745,-.432161],[-.458035,.888934,-.001394],[-.418985,.204186,-.884738],[-.362814,.643719,.673789],[-.348885,-.237593,-.906548],[-.283118,.277021,.918206],[-.23379,.595129,-.768872],[-.219935,-.830923,-.511073],[-.193143,.913179,.358888],[-.169693,-.437793,.882916],[-.161085,-.982474,-.093786],[-.135964,-.785909,.603208],[-.103807,.95823,-.266497],[-.050264,-.561464,-.825973],[-.015503,.04685,-.998782],[.015502,-.04685,.998781],[.075132,.737294,.671381],[.103807,-.958229,.266497],[.135964,.78591,-.603209],[.154828,.370596,.915798],[.161084,.982475,.093785],[.169693,.437794,-.882917],[.193143,-.913178,-.358889],[.233789,-.595129,.768871],[.283118,-.277021,-.918207],[.362813,-.643719,-.67379],[.418985,-.204186,.884737],[.42936,.80659,.406278],[.458035,-.888933,.001394],[.47356,-.767449,.43216],[.549042,.703655,-.451025],[.558311,.21326,.801754],[.564567,.825139,-.020259],[.582771,.355539,-.730733],[.652871,-.08624,-.752544],[.727981,.48272,.486853],[.732567,-.452939,-.508127],[.773213,-.13489,.619634],[.791417,-.60449,-.09084],[.806942,-.483006,.339926],[.847662,.379784,-.370451],[.863187,.501268,.060316],[.917763,-.061995,-.392261],[.942883,.13457,.304733],[.976612,-.213546,.025025]],e},J73:function(){const e=new polyhedron;return e.name="J73",e.faces=[[36,33,44],[19,28,32],[9,10,22],[20,34,29],[47,53,55],[57,58,59],[43,41,51],[42,45,52],[49,50,37],[40,27,31],[56,54,48],[46,35,38],[39,30,25],[17,7,14],[18,16,8],[26,23,15],[24,13,21],[5,3,11],[1,2,0],[6,12,4],[24,21,33,36],[33,32,43,44],[32,28,41,43],[9,22,28,19],[10,20,29,22],[29,34,45,42],[36,44,53,47],[53,57,59,55],[59,58,54,56],[51,52,58,57],[41,42,52,51],[45,34,35,46],[47,55,49,39],[50,40,31,37],[31,27,16,18],[56,48,40,50],[54,46,38,48],[38,35,23,26],[49,37,30,39],[30,17,14,25],[7,8,2,1],[18,8,7,17],[27,26,15,16],[15,23,12,6],[25,14,13,24],[13,5,11,21],[11,3,9,19],[1,0,3,5],[2,6,4,0],[4,12,20,10],[21,11,19,32,33],[22,29,42,41,28],[44,43,51,57,53],[52,45,46,54,58],[55,59,56,50,49],[48,38,26,27,40],[37,31,18,17,30],[16,15,6,2,8],[14,7,1,5,13],[0,4,10,9,3],[24,36,47,39,25],[12,23,35,34,20]],e.vertices=[[-.984691,.125192,.121281],[-.957572,-.075612,-.278094],[-.942455,-.319982,.096891],[-.856557,.512005,-.064506],[-.832097,.116607,.542233],[-.829438,.3112,-.463882],[-.789861,-.328568,.517842],[-.761099,-.409107,-.503346],[-.745982,-.653477,-.128361],[-.624772,.742482,.241623],[-.609655,.498112,.616608],[-.606996,.692705,-.389506],[-.558076,-.098091,.823971],[-.553774,.216768,-.803956],[-.511538,-.228406,-.828346],[-.49908,-.667369,.552753],[-.471962,-.868174,.153378],[-.40552,-.630422,-.661906],[-.390403,-.874792,-.286921],[-.375211,.923183,-.083378],[-.335634,.283415,.898346],[-.331332,.598273,-.729581],[-.287416,.79711,.531045],[-.267295,-.436892,.858882],[-.134858,.264778,-.954832],[-.092623,-.180396,-.979223],[-.070822,-.770387,.63363],[-.043703,-.971192,.234255],[-.037854,.977811,.206045],[-.013394,.582413,.812784],[.013396,-.582411,-.812783],[.037856,-.977809,-.206044],[.043705,.971193,-.234254],[.070824,.770388,-.63363],[.092624,.180397,.979223],[.13486,-.264777,.954833],[.267297,.436893,-.858881],[.287417,-.797109,-.531044],[.331333,-.598272,.729581],[.335635,-.283414,-.898346],[.375212,-.923181,.083378],[.390404,.874793,.286922],[.405521,.630423,.661907],[.471963,.868175,-.153377],[.499082,.66737,-.552753],[.511539,.228408,.828347],[.553775,-.216766,.803957],[.558078,.098092,-.823971],[.606997,-.692704,.389507],[.609656,-.498111,-.616607],[.624773,-.74248,-.241622],[.745984,.653478,.128361],[.761101,.409108,.503346],[.789863,.328569,-.517842],[.82944,-.311199,.463882],[.832099,-.116605,-.542232],[.856558,-.512003,.064507],[.942457,.319983,-.09689],[.957574,.075614,.278095],[.984692,-.125191,-.121281]],e},J74:function(){const e=new polyhedron;return e.name="J74",e.faces=[[31,25,37],[13,23,24],[7,10,17],[20,32,29],[48,54,56],[58,57,59],[36,35,47],[41,44,52],[43,50,39],[49,42,38],[55,53,46],[51,40,45],[27,26,15],[18,12,8],[30,34,22],[33,28,21],[19,9,14],[3,1,5],[2,4,0],[11,16,6],[19,14,25,31],[25,24,36,37],[24,23,35,36],[7,17,23,13],[10,20,29,17],[29,32,44,41],[31,37,48,43],[54,58,59,56],[59,57,53,55],[47,52,58,54],[35,41,52,47],[44,32,40,51],[48,56,50,43],[50,49,38,39],[42,46,34,30],[55,46,42,49],[57,51,45,53],[45,40,28,33],[39,38,26,27],[26,18,8,15],[8,12,4,2],[30,22,12,18],[34,33,21,22],[21,28,16,11],[27,15,9,19],[9,3,5,14],[5,1,7,13],[2,0,1,3],[4,11,6,0],[6,16,20,10],[14,5,13,24,25],[17,29,41,35,23],[37,36,47,54,48],[52,44,51,57,58],[56,59,55,49,50],[53,45,33,34,46],[38,42,30,18,26],[22,21,11,4,12],[15,8,2,3,9],[0,6,10,7,1],[19,31,43,39,27],[16,28,40,32,20]],e.vertices=[[-.966046,-.051368,.253213],[-.95229,.30466,-.018105],[-.940892,-.323,-.101952],[-.927135,.033028,-.37327],[-.826492,-.473879,.30389],[-.790478,.458215,-.40643],[-.767188,.060532,.63856],[-.744929,.636598,.199559],[-.701332,-.650609,-.291274],[-.679074,-.074543,-.730275],[-.63053,.485719,.6054],[-.627634,-.361979,.689237],[-.586933,-.801488,.114568],[-.583117,.790154,-.188766],[-.542416,.350644,-.763435],[-.53952,-.497054,-.679599],[-.420274,-.03004,.9069],[-.397364,.817911,.416083],[-.338872,-.909059,-.242438],[-.302857,.023036,-.952757],[-.283617,.395147,.87374],[-.265174,-.620429,.738072],[-.240019,-.892061,.382907],[-.235552,.971466,.027758],[-.206901,.887732,-.411248],[-.181746,.6161,-.766413],[-.17706,-.755504,-.630763],[-.163303,-.399475,-.902081],[-.057814,-.288491,.955736],[-.05045,.727338,.684423],[.008042,-.999632,.025902],[.057813,.288491,-.955736],[.163303,.399477,.902082],[.181745,-.616099,.766414],[.2069,-.887731,.411249],[.211368,.975796,.0561],[.240019,.892062,-.382907],[.265173,.62043,-.738072],[.26986,-.751174,-.602422],[.283616,-.395146,-.873739],[.302857,-.023034,.952758],[.325767,.824917,.461941],[.384259,-.902053,-.19658],[.420273,.030041,-.9069],[.539519,.497055,.6796],[.542416,-.350643,.763436],[.583117,-.790152,.188767],[.586933,.801489,-.114567],[.627634,.36198,-.689236],[.658347,-.625824,-.418238],[.672103,-.269795,-.689555],[.679073,.074544,.730276],[.701332,.65061,.291275],[.790477,-.458214,.40643],[.826492,.473881,-.303889],[.857205,-.513923,-.03289],[.879463,.062143,-.471892],[.927134,-.033027,.37327],[.940891,.323002,.101953],[.993863,-.088736,-.06605]],e},J75:function(){const e=new polyhedron;return e.name="J75",e.faces=[[30,24,37],[14,28,26],[11,13,22],[25,38,31],[48,56,55],[59,57,58],[39,41,50],[43,49,54],[40,46,34],[45,36,32],[53,52,44],[51,42,47],[21,19,10],[27,15,16],[33,35,23],[29,20,17],[18,8,12],[1,3,7],[5,4,0],[6,9,2],[18,12,24,30],[24,26,39,37],[26,28,41,39],[11,22,28,14],[13,25,31,22],[31,38,49,43],[30,37,48,40],[56,59,58,55],[58,57,52,53],[50,54,59,56],[41,43,54,50],[49,38,42,51],[48,55,46,40],[46,45,32,34],[36,44,33,27],[53,44,36,45],[57,51,47,52],[47,42,29,35],[34,32,19,21],[19,16,5,10],[16,15,4,5],[33,23,15,27],[35,29,17,23],[17,20,9,6],[21,10,8,18],[8,1,7,12],[7,3,11,14],[0,2,3,1],[4,6,2,0],[9,20,25,13],[12,7,14,26,24],[22,31,43,41,28],[37,39,50,56,48],[54,49,51,57,59],[55,58,53,45,46],[52,47,35,33,44],[32,36,27,16,19],[23,17,6,4,15],[10,5,0,1,8],[2,9,13,11,3],[18,30,40,34,21],[20,29,42,38,25]],e.vertices=[[-.980376,-.197048,-.005857],[-.946332,.150802,-.285858],[-.935804,.079716,.34339],[-.901759,.427566,.063389],[-.812124,-.53251,.23851],[-.8048,-.555655,-.20867],[-.767552,-.255746,.587757],[-.759203,.553784,-.341957],[-.749715,.007177,-.661721],[-.688108,.168923,.705672],[-.662244,-.429437,-.614016],[-.633023,.731755,.252621],[-.562586,.41016,-.71782],[-.500979,.571905,.649573],[-.490467,.857973,-.152725],[-.483464,-.835984,.259599],[-.47614,-.859129,-.18758],[-.411344,-.388171,.824694],[-.387011,.051553,-.920632],[-.333584,-.732911,-.592926],[-.331901,.036498,.942608],[-.299539,-.385062,-.872928],[-.245677,.868112,.431306],[-.235768,-.746778,.621881],[-.172335,.625585,-.760884],[-.144772,.43948,.88651],[-.127762,.902348,-.411637],[-.119933,-.991554,.049356],[-.103121,.994331,.02596],[-.003241,-.266976,.963698],[.003241,.266978,-.963697],[.11053,.735688,.668243],[.110728,-.787329,-.606508],[.127763,-.902347,.411638],[.144773,-.439479,-.886509],[.172335,-.625583,.760885],[.242772,-.947178,-.209555],[.271977,.571167,-.774465],[.29954,.385063,.872928],[.31655,.847931,-.425218],[.331901,-.036497,-.942608],[.341191,.939913,.012379],[.387011,-.051552,.920633],[.473235,.780063,.409331],[.490467,-.857972,.152726],[.528066,-.712229,-.462467],[.562111,-.364379,-.742468],[.562587,-.410159,.717821],[.600637,.267692,-.753376],[.662244,.429438,.614017],[.672757,.715506,-.188282],[.749716,-.007176,.661722],[.759203,-.553783,.341958],[.775762,-.623022,-.100185],[.804801,.555656,.208671],[.830847,-.06019,-.553237],[.848333,.356899,-.391094],[.946332,-.1508,.285859],[.96289,-.22004,-.156284],[.980377,.197049,.005858]],e},J76:function(){const e=new polyhedron;return e.name="J76",e.faces=[[26,17,18],[6,1,9],[3,5,0],[8,10,2],[35,28,37],[23,24,34],[11,4,15],[7,13,16],[44,46,52],[49,51,54],[40,32,42],[27,25,36],[53,48,45],[39,30,38],[29,21,19],[31,20,17,26],[17,6,9,18],[9,1,4,11],[3,0,1,6],[5,8,2,0],[2,10,13,7],[26,18,28,35],[28,23,34,37],[34,24,32,40],[11,15,24,23],[4,7,16,15],[16,13,25,27],[35,37,46,44],[46,49,54,52],[54,51,48,53],[40,42,51,49],[32,27,36,42],[36,25,30,39],[44,52,47,41],[53,45,43,50],[48,39,38,45],[38,30,21,29],[12,14,5,3],[33,29,19,22],[19,21,10,8],[20,12,3,6,17],[0,2,7,4,1],[18,9,11,23,28],[15,16,27,32,24],[37,34,40,49,46],[42,36,39,48,51],[52,54,53,50,47],[45,38,29,33,43],[22,19,8,5,14],[31,26,35,44,41],[21,30,25,13,10],[41,47,50,43,33,22,14,12,20,31]],e.vertices=[[-.975594,-.152802,-.163647],[-.930864,.290583,-.105382],[-.885816,-.354103,.228021],[-.840234,-.110417,-.590106],[-.813441,.363309,.322296],[-.812393,-.508854,-.384052],[-.795504,.332968,-.531841],[-.7856,-.035128,.52835],[-.722614,-.710155,.007616],[-.695288,.651943,-.231511],[-.605191,-.637428,.435294],[-.577865,.724669,.196167],[-.531438,-.243136,-.888462],[-.504975,-.318454,.735624],[-.503596,-.641573,-.682408],[-.488086,.523369,.587835],[-.460245,.124931,.79389],[-.459063,.474276,-.794187],[-.358847,.793251,-.493857],[-.358332,-.967284,-.048676],[-.295861,.118224,-1.014591],[-.240909,-.894558,.379002],[-.222972,-.924899,-.475135],[-.168853,.910925,.19814],[-.079074,.709624,.589809],[-.078756,-.378446,.864946],[-.050051,.660532,-.792214],[-.034026,.064939,.923211],[-.033492,.95331,-.228318],[.067887,-1.027277,.080646],[.084446,-.734498,.644541],[.113151,.30448,-1.012618],[.201551,.426299,.797082],[.203247,-.984891,-.345813],[.257366,.850932,.327462],[.275304,.820591,-.526675],[.330256,-.192191,.866919],[.392727,.893318,-.098997],[.393242,-.867217,.346185],[.493458,-.548243,.646514],[.537991,.567607,.534736],[.53937,.244487,-.883296],[.565833,.169169,.74079],[.61226,-.798636,-.34384],[.639586,.563462,-.582967],[.729683,-.725909,.083838],[.757009,.636188,-.155289],[.819995,-.038838,-.676023],[.829899,-.406935,.384168],[.846787,.434888,.236379],[.847836,-.437276,-.469969],[.874629,.03645,.442434],[.920211,.280136,-.375693],[.965259,-.364549,-.042291],[1.009989,.078836,.015975]],e},J77:function(){const e=new polyhedron;return e.name="J77",e.faces=[[27,16,19],[7,1,9],[5,6,0],[8,10,2],[36,26,38],[11,18,24],[3,4,12],[13,25,20],[44,46,52],[48,49,54],[34,30,40],[31,35,41],[53,47,45],[39,28,37],[29,21,17],[32,22,16,27],[16,7,9,19],[9,1,3,11],[5,0,1,7],[6,8,2,0],[2,10,13,4],[27,19,26,36],[26,24,34,38],[24,18,30,34],[3,12,18,11],[4,13,20,12],[20,25,35,31],[36,38,46,44],[46,48,54,52],[54,49,47,53],[40,41,49,48],[30,31,41,40],[35,25,28,39],[44,52,50,42],[53,45,43,51],[47,39,37,45],[37,28,21,29],[14,15,6,5],[33,29,17,23],[17,21,10,8],[22,14,5,7,16],[0,2,4,3,1],[19,9,11,24,26],[12,20,31,30,18],[38,34,40,48,46],[41,35,39,47,49],[52,54,53,51,50],[45,37,29,33,43],[23,17,8,6,15],[32,27,36,44,42],[21,28,25,13,10],[42,50,51,43,33,23,15,14,22,32]],e.vertices=[[-.965273,-.178368,-.195819],[-.921193,.268836,-.202934],[-.899923,-.317663,.226452],[-.828599,.405929,.214939],[-.815454,.043453,.480314],[-.804857,-.20085,-.615041],[-.791711,-.563327,-.349666],[-.760776,.246354,-.622156],[-.726361,-.702622,.072605],[-.676307,.60747,-.368293],[-.633767,-.565529,.490477],[-.583713,.744563,.049579],[-.582414,.411487,.590902],[-.549298,-.204413,.74434],[-.479947,-.376522,-.871086],[-.466801,-.738998,-.605711],[-.408623,.347071,-.882598],[-.361062,-.964382,.077537],[-.337528,.750121,.425542],[-.324153,.708187,-.628736],[-.316259,.163621,.854928],[-.268468,-.827289,.49541],[-.235061,-.037888,-1.036445],[-.200645,-.986864,-.341685],[-.174334,.930008,.047397],[-.131794,-.242991,.906168],[-.013917,.907526,-.371825],[756e-6,.532515,-.88478],[.041768,-.62795,.752321],[.056442,-1.00296,.239365],[.079975,.711542,.58737],[.093121,.349066,.852745],[.174319,.147557,-1.038628],[.216858,-1.025442,-.179857],[.24317,.89143,.209225],[.277585,-.057546,.903985],[.310993,.731855,-.62787],[.366678,-.803621,.496276],[.403586,.868948,-.209997],[.451147,-.442505,.750138],[.509326,.643564,.473251],[.522471,.281088,.738626],[.591822,.108979,-.8768],[.626237,-.839998,-.182039],[.676292,.470095,-.622937],[.718831,-.702904,.235834],[.768885,.607188,-.205064],[.8033,-.341788,.489696],[.834235,.467893,.217206],[.847381,.105416,.482581],[.857978,-.138887,-.612774],[.871123,-.501364,-.347399],[.942447,.222229,-.358911],[.963717,-.36427,.070474],[1.007798,.082934,.063359]],e},J78:function(){const e=new polyhedron;return e.name="J78",e.faces=[[29,19,26],[10,6,16],[4,1,0],[3,5,2],[40,35,44],[30,32,41],[20,11,22],[7,13,17],[49,51,52],[45,48,53],[36,27,37],[23,25,33],[54,50,47],[39,28,38],[18,15,9],[31,21,19,29],[19,10,16,26],[16,6,11,20],[4,0,6,10],[1,3,2,0],[2,5,13,7],[29,26,35,40],[35,30,41,44],[41,32,36,45],[20,22,32,30],[11,7,17,22],[17,13,23,27],[40,44,51,49],[51,53,54,52],[53,48,50,54],[36,37,48,45],[27,23,33,37],[33,25,28,39],[49,52,46,42],[47,38,34,43],[50,39,38,47],[28,25,15,18],[12,8,1,4],[24,18,9,14],[9,15,5,3],[21,12,4,10,19],[0,2,7,11,6],[26,16,20,30,35],[22,17,27,36,32],[44,41,45,53,51],[37,33,39,50,48],[52,54,47,43,46],[38,28,18,24,34],[14,9,3,1,8],[31,29,40,49,42],[15,25,23,13,5],[42,46,43,34,24,14,8,12,21,31]],e.vertices=[[-.969175,.215371,-.127391],[-.952173,-.166819,-.363246],[-.946899,-.019645,.255045],[-.929897,-.401835,.01919],[-.840084,.222491,-.557822],[-.781766,-.392789,.443408],[-.765536,.610272,-.059785],[-.729493,.230008,.559009],[-.721025,-.390315,-.677262],[-.684982,-.770578,-.058468],[-.636445,.617392,-.490216],[-.617404,.619318,.364433],[-.608936,-.001005,-.871838],[-.56436,-.143136,.747372],[-.555892,-.763458,-.488899],[-.536851,-.761533,.36575],[-.419039,.867044,-.186253],[-.360721,.251764,.814977],[-.305703,-.985028,.051734],[-.279442,.637958,-.76245],[-.270908,.87609,.237966],[-.26244,.255768,-.998305],[-.248632,.641074,.620402],[-.185081,-.357586,.857574],[-.176613,-.977908,-.378698],[-.168079,-.739776,.621718],[-.062036,.887611,-.458486],[.018558,.037315,.925179],[.063069,-.963271,.307702],[.169112,.664116,-.772503],[.177646,.902248,.227913],[.186114,.281925,-1.008358],[.199922,.667232,.610349],[.211888,-.546211,.763647],[.271941,-.951751,-.38875],[.306736,.909368,-.202518],[.365054,.294088,.798712],[.415527,-.151311,.831252],[.420072,-.942705,.035468],[.443036,-.769707,.44963],[.537884,.685872,-.516534],[.556925,.687798,.338115],[.565393,.067476,-.898156],[.618437,-.694978,-.515217],[.686015,.694918,-.092316],[.722058,.314654,.526478],[.730526,-.305668,-.709793],[.766569,-.685932,-.090999],[.77253,-.130744,.559019],[.782799,.317129,-.594192],[.789532,-.512934,.323163],[.93093,.326175,-.169974],[.947932,-.056015,-.405829],[.953206,.091159,.212462],[.970208,-.291031,-.023393]],e},J79:function(){const e=new polyhedron;return e.name="J79",e.faces=[[7,17,16],[30,41,28],[18,25,31],[37,47,42],[4,11,6],[23,27,15],[34,44,40],[50,53,51],[5,12,8],[35,36,24],[45,52,46],[54,48,49],[19,29,20],[39,38,26],[33,43,32],[0,2,7,4],[17,30,28,16],[28,41,44,34],[18,31,30,17],[25,37,42,31],[42,47,53,50],[7,16,11,4],[11,23,15,6],[27,40,45,35],[34,40,27,23],[41,50,51,44],[51,53,54,52],[6,15,12,5],[12,24,19,8],[24,36,29,19],[45,46,36,35],[52,54,49,46],[49,48,38,39],[5,8,3,1],[20,26,14,10],[29,39,26,20],[38,48,43,33],[9,13,25,18],[22,33,32,21],[32,43,47,37],[2,9,18,17,7],[31,42,50,41,30],[16,28,34,23,11],[44,51,52,45,40],[15,27,35,24,12],[46,49,39,29,36],[8,19,20,10,3],[26,38,33,22,14],[21,32,37,25,13],[0,4,6,5,1],[43,48,54,53,47],[1,3,10,14,22,21,13,9,2,0]],e.vertices=[[-1.035663,.17951,.161516],[-1.027893,.048482,-.268318],[-.891113,.078842,.574986],[-.870771,-.264193,-.550334],[-.833419,.579967,.188311],[-.820848,.367959,-.507174],[-.700657,.696435,-.224962],[-.68887,.479299,.601781],[-.663727,.055284,-.78919],[-.649458,-.215069,.814161],[-.624314,-.639084,-.576811],[-.485083,.858791,.134418],[-.461483,.455741,-.762395],[-.403,-.58996,.787683],[-.382659,-.932996,-.337637],[-.341293,.784217,-.480183],[-.340534,.758124,.547888],[-.322222,.432884,.857516],[-.297863,.00374,.988774],[-.289308,-.122159,-.96329],[-.26495,-.551303,-.832032],[-.245879,-.902636,.505667],[-.238109,-1.033664,.075833],[-.125719,.946573,-.120803],[-.087065,.278298,-.936494],[-.051406,-.371151,.962296],[-.023294,-.845214,-.592857],[.107408,.809782,-.479865],[.108167,.783689,.548206],[.110226,-.32589,-.934099],[.126479,.458449,.857834],[.150837,.029306,.989092],[.202822,-.87707,.505985],[.210592,-1.008098,.076151],[.24093,.900157,.134932],[.264529,.497107,-.761881],[.312469,.074567,-.907304],[.323013,-.548594,.788197],[.343354,-.89163,-.337123],[.351882,-.619801,-.694925],[.474057,.763367,-.224131],[.485843,.546231,.602613],[.525256,-.148138,.814992],[.562186,-.789288,.250764],[.618606,.662699,.189339],[.631178,.450691,-.506147],[.679118,.028151,-.651569],[.682377,-.460813,.532976],[.694949,-.672821,-.16251],[.703476,-.400992,-.520312],[.7323,.17134,.576135],[.865063,.287808,.162862],[.872833,.15678,-.266972],[.889422,-.141336,.29412],[.897192,-.272364,-.135714]],e},J80:function(){const e=new polyhedron;return e.name="J80",e.faces=[[12,10,4],[8,6,2],[16,26,14],[31,29,17],[11,3,9],[20,18,32],[23,33,35],[43,41,47],[39,37,45],[46,38,40],[22,19,10,12],[10,8,2,4],[2,6,5,0],[16,14,6,8],[26,31,17,14],[17,29,21,13],[12,4,3,11],[3,1,7,9],[11,9,18,20],[18,23,35,32],[35,33,41,43],[15,24,33,23],[30,27,37,39],[20,32,36,28],[43,47,49,44],[41,39,45,47],[45,37,38,46],[25,34,26,16],[48,46,40,42],[40,38,29,31],[19,25,16,8,10],[14,17,13,5,6],[4,2,0,1,3],[9,7,15,23,18],[24,30,39,41,33],[32,35,43,44,36],[47,45,46,48,49],[42,40,31,26,34],[22,12,11,20,28],[38,37,27,21,29],[24,15,7,1,0,5,13,21,27,30],[28,36,44,49,48,42,34,25,19,22]],e.vertices=[[-.981435,-.157408,-.109585],[-.942153,-.069788,.327838],[-.91551,.22466,-.333721],[-.85195,.366431,.374044],[-.835484,.54841,-.034822],[-.80426,-.38784,-.450273],[-.738335,-.005772,-.67441],[-.701418,-.15845,.694914],[-.648132,.430447,-.628204],[-.611216,.27777,.74112],[-.568107,.754197,-.329305],[-.545291,.659837,.516984],[-.528825,.841816,.108118],[-.478303,-.673069,-.564096],[-.371634,-.05487,-.926756],[-.351184,-.389527,.851433],[-.281432,.381349,-.88055],[-.210926,-.467282,-.858579],[-.205234,.316291,.926196],[-.151948,.905188,-.396922],[-.139309,.698359,.70206],[-.128068,-.904145,-.407577],[-.112666,.992807,.040501],[-.044525,-.09612,.994373],[-.025227,-.674755,.73761],[.025227,.674755,-.73761],[.044525,.096121,-.994373],[.112666,-.992807,-.040501],[.128068,.904146,.407577],[.139309,-.698358,-.70206],[.151948,-.905188,.396922],[.205234,-.316291,-.926196],[.210926,.467282,.858579],[.281432,-.381349,.88055],[.351184,.389527,-.851433],[.371634,.05487,.926756],[.478303,.673069,.564096],[.528825,-.841816,-.108118],[.545291,-.659837,-.516984],[.568107,-.754197,.329305],[.611216,-.277769,-.74112],[.648133,-.430447,.628204],[.701419,.15845,-.694914],[.738335,.005773,.67441],[.80426,.387841,.450273],[.835484,-.54841,.034822],[.85195,-.366431,-.374044],[.91551,-.22466,.333721],[.942153,.069789,-.327838],[.981435,.157408,.109585]],e},J81:function(){const e=new polyhedron;return e.name="J81",e.faces=[[35,29,25],[21,11,15],[24,22,14],[17,12,8],[33,23,27],[13,7,16],[6,3,2],[1,4,0],[42,36,45],[30,19,26],[44,39,29,35],[29,21,15,25],[15,11,3,6],[24,14,11,21],[22,17,8,14],[8,12,4,1],[35,25,23,33],[23,13,16,27],[16,7,10,20],[6,2,7,13],[3,1,0,2],[0,4,9,5],[33,27,36,42],[36,31,40,45],[42,45,49,47],[43,38,46,48],[28,18,19,30],[34,32,22,24],[41,30,26,37],[26,19,12,17],[39,34,24,21,29],[14,8,1,3,11],[25,15,6,13,23],[2,0,5,10,7],[27,16,20,31,36],[45,40,43,48,49],[38,28,30,41,46],[37,26,17,22,32],[44,35,33,42,47],[19,18,9,4,12],[38,43,40,31,20,10,5,9,18,28],[47,49,48,46,41,37,32,34,39,44]],e.vertices=[[-.91554,-.17156,.190699],[-.874123,-.21861,-.254883],[-.873513,.274357,.14752],[-.832096,.227307,-.298062],[-.790984,-.567471,.016881],[-.738991,-.290113,.587244],[-.680957,.599954,-.096163],[-.670991,.431396,.517379],[-.630562,-.413291,-.579305],[-.614436,-.686024,.413427],[-.587852,.082534,.789144],[-.562561,.308217,-.64917],[-.547423,-.762153,-.30754],[-.478435,.756993,.273697],[-.438006,-.087694,-.822987],[-.411421,.680864,-.44727],[-.301886,.63844,.670242],[-.277887,-.681242,-.658648],[-.261761,-.953976,.334084],[-.220345,-1.001026,-.111498],[-.218747,.289578,.942007],[-.16786,.486183,-.771692],[-.085331,-.355646,-.90233],[-.083733,.934958,.151175],[-.043304,.090271,-.945509],[-.042317,.887908,-.294407],[.049191,-.920115,-.462606],[.092815,.816405,.54772],[.184323,-.991618,.379522],[.201245,.693227,-.618829],[.225739,-1.038668,-.06606],[.227337,.251936,.987445],[.360753,-.393288,-.856892],[.362351,.897316,.196613],[.40278,.052629,-.900071],[.403767,.850266,-.24897],[.419893,.577533,.743762],[.443892,-.74215,-.585128],[.553427,-.784574,.532385],[.553919,.425276,-.698172],[.580011,-.016016,.908102],[.62044,-.860702,-.188582],[.689428,.658443,.392655],[.704567,-.411927,.734284],[.756442,.582315,-.328312],[.772567,.309582,.664419],[.822963,-.703664,.181277],[.93299,.463762,.068233],[.974102,-.331017,.383177],[1.016129,.1149,.339998]],e},J82:function(){const e=new polyhedron;return e.name="J82",e.faces=[[25,23,15],[27,16,19],[30,28,20],[21,13,12],[22,11,17],[3,2,8],[9,6,1],[4,5,0],[32,26,37],[42,31,38],[36,33,23,25],[23,19,9,15],[19,16,6,9],[30,20,16,27],[28,21,12,20],[12,13,5,4],[25,15,11,22],[11,3,8,17],[8,2,7,14],[1,0,2,3],[6,4,0,1],[5,13,18,10],[22,17,26,32],[26,24,34,37],[32,37,46,41],[43,44,49,48],[39,29,31,42],[35,40,30,27],[47,42,38,45],[38,31,21,28],[33,35,27,19,23],[20,12,4,6,16],[15,9,1,3,11],[0,5,10,7,2],[17,8,14,24,26],[37,34,43,48,46],[44,39,42,47,49],[45,38,28,30,40],[36,25,22,32,41],[31,29,18,13,21],[44,43,34,24,14,7,10,18,29,39],[41,46,48,49,47,45,40,35,33,36]],e.vertices=[[-.915244,-.149547,.004878],[-.857812,.261033,-.170045],[-.853796,.017864,.418001],[-.796364,.428444,.243078],[-.772518,-.333547,-.380149],[-.759676,-.571754,.001381],[-.715086,.077033,-.555071],[-.660252,-.300878,.669827],[-.638771,.334916,.65404],[-.609317,.503159,-.456572],[-.602083,-.665282,.412342],[-.509893,.774035,.211875],[-.463372,-.606112,-.56073],[-.45053,-.844319,-.1792],[-.445227,.016174,.905866],[-.394292,.820211,-.220533],[-.370445,.05822,-.84376],[-.3523,.680507,.622836],[-.292937,-.937847,.231761],[-.264676,.484346,-.745261],[-.214877,-.363987,-.847257],[-.105889,-.863132,-.467889],[-.103806,.922633,.336308],[-.049651,.801399,-.509222],[-.039139,.164772,1.0303],[.011796,.968809,-.096099],[.018293,.575352,.855378],[.04447,.211781,-.925842],[.142605,-.621006,-.754417],[.149102,-1.014463,.197061],[.200037,-.210426,-.929339],[.264704,-.968287,-.235347],[.266787,.817478,.56885],[.392388,.724782,-.543923],[.4029,.088156,.9956],[.450558,.360379,-.801408],[.453835,.892193,-.1308],[.460331,.498736,.820677],[.513198,-.726161,-.521875],[.55519,-.865866,.321494],[.606125,-.061828,-.804905],[.611428,.798665,.280161],[.670792,-.819689,-.110913],[.712045,-.18441,.815019],[.770215,-.548813,.557534],[.799669,-.38057,-.553078],[.804972,.479923,.531988],[.957263,-.474098,-.142117],[.96054,.057716,.528491],[1.01871,-.306688,.271006]],e},J83:function(){const e=new polyhedron;return e.name="J83",e.faces=[[25,27,17],[20,11,12],[5,0,6],[26,18,28],[34,19,33],[35,37,27,25],[27,21,13,17],[25,17,11,20],[11,5,6,12],[6,0,2,8],[7,1,0,5],[3,9,10,4],[20,12,18,26],[18,14,22,28],[26,28,38,36],[30,32,42,40],[24,16,19,34],[39,41,31,29],[44,34,33,43],[33,19,15,23],[37,39,29,21,27],[17,13,7,5,11],[1,3,4,2,0],[12,6,8,14,18],[28,22,30,40,38],[32,24,34,44,42],[43,33,23,31,41],[35,25,20,26,36],[19,16,10,9,15],[1,7,13,21,29,31,23,15,9,3],[32,30,22,14,8,2,4,10,16,24],[36,38,40,42,44,43,41,39,37,35]],e.vertices=[[-.932936,.189273,.192295],[-.922398,.241407,-.253129],[-.911995,-.249962,.280987],[-.894943,-.165606,-.439724],[-.888514,-.469289,-.109623],[-.719187,.580372,.243128],[-.712758,.27669,.57323],[-.708649,.632507,-.202295],[-.691817,-.162545,.661922],[-.636773,-.433068,-.690809],[-.630343,-.736751,-.360707],[-.352393,.77395,.41407],[-.345964,.470268,.744172],[-.335341,.858306,-.306641],[-.31208,-.240428,.887678],[-.246498,-.458817,-.910477],[-.236095,-.950186,-.376361],[-.115163,.945723,.074294],[-.098331,.150671,.938511],[.001135,-.778414,-.716137],[.027344,.696067,.639826],[.054934,.832556,-.526309],[.082168,-.453864,.872024],[.12681,-.233018,-1.014822],[.143641,-1.02807,-.150605],[.264573,.867839,.30005],[.274976,.37647,.834165],[.275112,.919973,-.145374],[.295917,-.062764,.922857],[.313104,.565095,-.777393],[.340339,-.721326,.620939],[.340559,.158081,-.963989],[.36382,-.940653,.23033],[.374442,-.552615,-.820483],[.380871,-.856297,-.490381],[.658822,.654404,.284396],[.665251,.350721,.614498],[.66936,.706538,-.161028],[.686192,-.088513,.703189],[.692841,.487211,-.551637],[.713646,-.495527,.516594],[.720295,.080198,-.738233],[.737127,-.714854,.125984],[.741236,-.359037,-.649541],[.747665,-.662719,-.31944]],e},J84:function(){const e=new polyhedron;return e.name="J84",e.faces=[[6,7,3],[3,7,5],[3,5,1],[4,7,6],[7,4,5],[5,4,1],[4,2,1],[1,2,0],[1,0,3],[6,2,4],[2,6,0],[0,6,3]],e.vertices=[[-.768016,.559678,.635844],[-.720709,-.093633,-.405339],[-.6358,-.662351,.681929],[.09848,.800885,-.202562],[.269587,-.77416,-.143135],[.285934,-.010665,-1.107297],[.352377,.066396,.750712],[1.118151,.11385,-.210152]],e},J85:function(){const e=new polyhedron;return e.name="J85",e.faces=[[13,9,14],[9,13,6],[9,6,3],[11,15,12],[15,11,13],[15,13,14],[4,7,1],[7,4,11],[7,11,12],[6,0,3],[0,6,4],[0,4,1],[2,3,0],[3,2,8],[3,8,9],[5,1,7],[1,5,2],[1,2,0],[10,12,15],[12,10,5],[12,5,7],[8,14,9],[14,8,10],[14,10,15],[13,11,4,6],[2,5,10,8]],e.vertices=[[-.984789,.388776,-.318546],[-.905986,-.50645,-.380955],[-.774402,-.096785,.410496],[-.648503,.795226,.411689],[-.32762,.028199,-.818195],[-.278924,-.81528,.187334],[-.177548,.78687,-.356208],[-.134682,-.843968,-.701432],[-.06669,.257644,.840681],[.229454,.996879,.419536],[.428788,-.460851,.617519],[.523163,-.229235,-.671807],[.55373,-.948137,-.129793],[.673235,.529435,-.20982],[.811213,.353538,.662851],[1.079561,-.235865,.03665]],e},J86:function(){const e=new polyhedron;return e.name="J86",e.faces=[[7,3,2],[2,1,6],[2,3,0],[2,0,1],[1,5,6],[6,5,9],[3,4,0],[4,3,8],[9,7,6],[9,8,7],[7,8,3],[6,7,2],[1,0,4,5],[5,4,8,9]],e.vertices=[[-1.10165,-.110367,-.010645],[-.640942,.825699,.365159],[-.414409,.468967,-.660083],[-.324965,-.634882,-.603383],[-.317654,-.702618,.503439],[.143053,.233445,.879242],[.402426,.84303,-.010043],[.585642,-.008843,-.69593],[.603895,-.925247,-.07178],[1.064602,.010817,.304023]],e},J87:function(){const e=new polyhedron;return e.name="J87",e.faces=[[5,0,1],[9,3,8],[8,6,10],[8,3,2],[8,2,6],[6,5,10],[10,5,7],[3,1,2],[1,3,4],[7,9,10],[7,4,9],[9,4,3],[10,9,8],[6,0,5],[6,2,0],[0,2,1],[5,1,4,7]],e.vertices=[[-.858193,-.792464,.432564],[-.785643,.057917,-.211154],[-.533044,.147795,.823687],[-.229952,.904287,.131849],[-.212337,.637025,-.903062],[-.091064,-.748583,-.310653],[.161537,-.658707,.724189],[.482242,-.169476,-1.002562],[.505859,.352206,.676436],[.693906,.639069,-.336051],[.86669,-.369064,-.025245]],e},J88:function(){const e=new polyhedron;return e.name="J88",e.faces=[[6,7,10],[3,7,1],[3,5,7],[10,11,8],[10,9,11],[1,7,6],[6,10,8],[2,4,0],[11,4,8],[11,9,4],[0,3,1],[0,5,3],[8,2,6],[8,4,2],[2,1,6],[2,0,1],[7,5,9,10],[4,9,5,0]],e.vertices=[[-.710639,-.297668,-.15267],[-.651151,-.105949,.829841],[-.621335,.64788,.169179],[-.614162,-1.052419,.500527],[-.166396,.361269,-.677289],[-.002058,-.993534,-.291612],[.165944,.471894,.764865],[.225836,-.507426,.555374],[.279224,1.020494,-.066987],[.542185,-.334598,-.816231],[.770079,.151511,.030755],[.782476,.638548,-.845752]],e},J89:function(){const e=new polyhedron;return e.name="J89",e.faces=[[9,8,13],[1,8,2],[1,7,8],[13,11,10],[13,12,11],[2,8,9],[9,13,10],[12,6,11],[3,7,1],[4,5,0],[11,5,10],[11,6,5],[0,1,2],[0,3,1],[10,4,9],[10,5,4],[4,2,9],[4,0,2],[8,7,12,13],[3,6,12,7],[5,6,3,0]],e.vertices=[[-.83117,.133549,-.011648],[-.700039,-.806136,-.111242],[-.631074,-.403619,.750934],[-.576095,-.225432,-.857931],[-.446282,.532211,.764918],[-.172487,.817558,-.103263],[.082589,.458576,-.949546],[.105206,-.849768,-.620949],[.145599,-.76155,.32811],[.235014,-.09212,1.001899],[.469795,.739577,.597817],[.750772,.700456,-.313032],[.76389,-.165759,-.712564],[.804283,-.077541,.236495]],e},J90:function(){const e=new polyhedron;return e.name="J90",e.faces=[[13,6,7],[9,15,11],[12,13,7],[15,14,11],[12,10,14],[12,7,5],[12,5,10],[10,5,3],[7,6,2],[5,7,2],[2,6,1],[2,1,0],[10,3,8],[10,8,14],[8,11,14],[8,4,11],[11,4,9],[9,1,6],[4,1,9],[0,1,4],[9,6,13,15],[15,13,12,14],[5,2,0,3],[3,0,4,8]],e.vertices=[[-1.052782,.264006,.098264],[-.753999,-.411397,.610751],[-.732127,-.483215,-.285043],[-.599216,.763406,-.495842],[-.413906,.414477,.712494],[-.278562,.016184,-.879148],[-.105415,-.890983,.213994],[.009423,-.81027,-.673913],[.03966,.913876,.118388],[.101994,-.305887,.864167],[.267869,.713733,-.727747],[.47671,.507934,.790906],[.590474,-.124774,-.697516],[.722293,-.806255,-.126296],[.797883,.460322,-.047343],[.929701,-.221158,.523878]],e},J91:function(){const e=new polyhedron;return e.name="J91",e.faces=[[11,13,12],[7,11,4],[10,7,5],[13,10,9],[3,8,6],[4,3,0],[2,1,0],[9,2,6],[13,11,7,10],[6,2,0,3],[12,13,9,6,8],[11,12,8,3,4],[5,7,4,0,1],[10,5,1,2,9]],e.vertices=[[-.932446,-.071511,.062428],[-.890073,.716495,.434115],[-.483326,.038238,.802122],[-.479875,-.798287,-.104525],[-.363346,-.08879,-.598427],[-.294782,1.186233,.002976],[-.030753,-.688537,.635167],[.030753,.688538,-.635171],[.294779,-1.186232,-.002974],[.363347,.088791,.598425],[.479874,.79829,.104525],[.483327,-.038241,-.802125],[.890072,-.716499,-.434115],[.932449,.071511,-.062429]],e},J92:function(){const e=new polyhedron;return e.name="J92",e.faces=[[12,11,4],[11,6,4],[6,11,15],[13,15,17],[5,13,8],[2,5,8],[2,8,9],[7,9,14],[16,14,17],[3,0,7],[3,1,0],[1,3,10],[12,10,16],[6,15,13,5],[2,9,7,0],[12,4,1,10],[11,12,16,17,15],[8,13,17,14,9],[16,10,3,7,14],[1,4,6,5,2,0]],e.vertices=[[-.748928,.557858,-.030371],[-.638635,.125804,-.670329],[-.593696,.259282,.67329],[-.427424,.876636,-.665507],[-.373109,-.604827,-.606627],[-.32817,-.471348,.736992],[-.217876,-.903403,.097033],[-.141658,1.042101,.041134],[-.021021,.094954,1.176701],[.013575,.743525,.744795],[.036802,.343022,-.994341],[.267732,-1.036179,-.498733],[.302328,-.387609,-.93064],[.443205,-.438661,.847867],[.499183,.610749,.149029],[.553499,-.870715,.207908],[.609478,.178694,-.490931],[.76471,-.119883,.212731]],e}};const johnson=function(e){return 0<e&&92>=e?johnson_polyhedra[`J${e}`]():new polyhedron},MAX_FACE_SIDEDNESS=1e3;class polyflag{constructor(){this.flags={},this.vertidxs={},this.vertices={}}newV(e,n){this.vertidxs[e]===void 0&&(this.vertidxs[e]=0,this.vertices[e]=n)}newFlag(e,n,s){this.flags[e]===void 0&&(this.flags[e]={}),this.flags[e][n]=s}topoly(){let e,n;const s=new polyhedron;let a=0;for(e in this.vertidxs)n=this.vertidxs[e],s.vertices[a]=this.vertices[e],this.vertidxs[e]=a,a++;for(e in a=0,this.flags){var c;const i=this.flags[e];for(let e in s.faces[a]=[],i){c=i[e];break}n=c,s.faces[a].push(this.vertidxs[n]),n=this.flags[e][n];for(let i=0;n!==c;)if(s.faces[a].push(this.vertidxs[n]),n=this.flags[e][n],i++,i>MAX_FACE_SIDEDNESS){console.log("Bad flag spec, have a neverending face:",e,this.flags[e]);break}a++}return s.name="unknown polyhedron",s}}const midName=(e,n)=>e<n?e+"_"+n:n+"_"+e,kisN=function(e,s,a){let c;s||(s=0),void 0===a&&(a=.1),console.log(`Taking kis of ${0===s?"":s}-sided faces of ${e.name}...`);const d=new polyflag;for(c=0;c<e.vertices.length;c++){const n=e.vertices[c];d.newV(`v${c}`,n)}const t=e.normals(),l=e.centers();let r=!1;for(c=0;c<e.faces.length;c++){const n=e.faces[c];let i=`v${n[n.length-1]}`;for(let e of n){const f=`v${e}`;if(n.length===s||0===s){r=!0;const e=`apex${c}`,n=`${c}${i}`;d.newV(e,add(l[c],mult(a,t[c]))),d.newFlag(n,i,f),d.newFlag(n,f,e),d.newFlag(n,e,i)}else d.newFlag(`${c}`,i,f);i=f}}r||console.log(`No ${s}-fold components were found.`);const u=d.topoly();return u.name=`k${0===s?"":s}${e.name}`,u},ambo=function(e){console.log(`Taking ambo of ${e.name}...`);const n=new polyflag;for(let s=0;s<e.faces.length;s++){const a=e.faces[s];let[i,c]=a.slice(-2);for(let f of a)i<c&&n.newV(midName(i,c),midpoint(e.vertices[i],e.vertices[c])),n.newFlag(`orig${s}`,midName(i,c),midName(c,f)),n.newFlag(`dual${c}`,midName(c,f),midName(i,c)),[i,c]=[c,f]}const s=n.topoly();return s.name=`a${e.name}`,s},gyro=function(e){let n,s,a;console.log(`Taking gyro of ${e.name}...`);const c=new polyflag;for(s=0;s<e.vertices.length;s++)a=e.vertices[s],c.newV(`v${s}`,unit(a));const d=e.centers();for(s=0;s<e.faces.length;s++)n=e.faces[s],c.newV(`center${s}`,unit(d[s]));for(s=0;s<e.faces.length;s++){n=e.faces[s];let[i,f]=n.slice(-2);for(let d=0;d<n.length;d++){a=n[d];const t=a;c.newV(i+"~"+f,oneThird(e.vertices[i],e.vertices[f]));const l=s+"f"+i;c.newFlag(l,`center${s}`,i+"~"+f),c.newFlag(l,i+"~"+f,f+"~"+i),c.newFlag(l,f+"~"+i,`v${f}`),c.newFlag(l,`v${f}`,f+"~"+t),c.newFlag(l,f+"~"+t,`center${s}`),[i,f]=[f,t]}}const t=c.topoly();return t.name=`g${e.name}`,t},propellor=function(e){let n,s;console.log(`Taking propellor of ${e.name}...`);const a=new polyflag;for(n=0;n<e.vertices.length;n++)s=e.vertices[n],a.newV(`v${n}`,unit(s));for(n=0;n<e.faces.length;n++){const i=e.faces[n];let[c,f]=i.slice(-2);for(s of i){const i=`${s}`;a.newV(c+"~"+f,oneThird(e.vertices[c],e.vertices[f]));const d=`${n}f${f}`;a.newFlag(`v${n}`,c+"~"+f,f+"~"+i),a.newFlag(d,c+"~"+f,f+"~"+c),a.newFlag(d,f+"~"+c,`v${f}`),a.newFlag(d,`v${f}`,f+"~"+i),a.newFlag(d,f+"~"+i,c+"~"+f),[c,f]=[f,i]}}const c=a.topoly();return c.name=`p${e.name}`,c},reflect=function(e){let n;for(console.log(`Taking reflection of ${e.name}...`),n=0;n<=e.vertices.length-1;n++)e.vertices[n]=mult(-1,e.vertices[n]);for(n=0;n<=e.faces.length-1;n++)e.faces[n]=e.faces[n].reverse();return e.name=`r${e.name}`,e},dual=function(e){let n,s,a,c;console.log(`Taking dual of ${e.name}...`);const d=new polyflag,t=[];for(s=0;s<=e.vertices.length-1;s++)t[s]={};for(s=0;s<e.faces.length;s++){n=e.faces[s],a=n[n.length-1];for(c of n)t[a][`v${c}`]=`${s}`,a=c}const l=e.centers();for(s=0;s<=e.faces.length-1;s++)d.newV(`${s}`,l[s]);for(s=0;s<e.faces.length;s++){n=e.faces[s],a=n[n.length-1];for(c of n)d.newFlag(a,t[c][`v${a}`],`${s}`),a=c}const r=d.topoly(),u=[];for(n of r.faces){const s=intersect(e.faces[n[0]],e.faces[n[1]],e.faces[n[2]]);u[s]=n}return r.faces=u,r.name="d"===e.name[0]?e.name.slice(1):`d${e.name}`,r},chamfer=function(e,n){console.log(`Taking chamfer of ${e.name}...`),n||(n=.5);const s=new polyflag,a=e.normals();for(let c=0;c<e.faces.length;c++){const i=e.faces[c];let f=i[i.length-1],d=c+"_"+f;for(let t of i){s.newV(t,mult(1+n,e.vertices[t]));const i=c+"_"+t;s.newV(i,add(e.vertices[t],mult(1.5*n,a[c]))),s.newFlag(`orig${c}`,d,i);const l=f<t?`hex${f}_${t}`:`hex${t}_${f}`;s.newFlag(l,t,i),s.newFlag(l,i,d),s.newFlag(l,d,f),f=t,d=i}}const i=s.topoly();return i.name=`c${e.name}`,i},whirl=function(e,s){let a,c;console.log(`Taking whirl of ${e.name}...`),s||(s=0);const d=new polyflag;for(a=0;a<e.vertices.length;a++)c=e.vertices[a],d.newV(`v${a}`,unit(c));const t=e.centers();for(a=0;a<e.faces.length;a++){const n=e.faces[a];let[s,i]=n.slice(-2);for(let f=0;f<n.length;f++){c=n[f];const l=c,r=oneThird(e.vertices[s],e.vertices[i]);d.newV(s+"~"+i,r);const u=`center${a}~${s}`,v=`center${a}~${i}`;d.newV(u,unit(oneThird(t[a],r)));const m=a+"f"+s;d.newFlag(m,u,s+"~"+i),d.newFlag(m,s+"~"+i,i+"~"+s),d.newFlag(m,i+"~"+s,`v${i}`),d.newFlag(m,`v${i}`,i+"~"+l),d.newFlag(m,i+"~"+l,v),d.newFlag(m,v,u),d.newFlag(`c${a}`,u,v),[s,i]=[i,l]}}const l=d.topoly();return l.name=`w${e.name}`,l},quinto=function(e){console.log(`Taking quinto of ${e.name}...`);const n=new polyflag;for(let s=0;s<e.faces.length;s++){const a=e.faces[s];centroid=calcCentroid(a.map(n=>e.vertices[n]));let[i,c]=a.slice(-2);for(let f of a)midpt=midpoint(e.vertices[i],e.vertices[c]),innerpt=midpoint(midpt,centroid),n.newV(midName(i,c),midpt),n.newV(`inner_${s}_`+midName(i,c),innerpt),n.newV(`${c}`,e.vertices[c]),n.newFlag(`f${s}_${c}`,`inner_${s}_`+midName(i,c),midName(i,c)),n.newFlag(`f${s}_${c}`,midName(i,c),`${c}`),n.newFlag(`f${s}_${c}`,`${c}`,midName(c,f)),n.newFlag(`f${s}_${c}`,midName(c,f),`inner_${s}_`+midName(c,f)),n.newFlag(`f${s}_${c}`,`inner_${s}_`+midName(c,f),`inner_${s}_`+midName(i,c)),n.newFlag(`f_in_${s}`,`inner_${s}_`+midName(i,c),`inner_${s}_`+midName(c,f)),[i,c]=[c,f]}const s=n.topoly();return s.name=`q${e.name}`,s},insetN=function(e,s,a,c){let d,t,l;s||(s=0),void 0===a&&(a=.5),void 0===c&&(c=-.2),console.log(`Taking inset of ${0===s?"":s}-sided faces of ${e.name}...`);const r=new polyflag;for(t=0;t<e.vertices.length;t++){const n=e.vertices[t];r.newV(`v${t}`,n)}const u=e.normals(),m=e.centers();for(t=0;t<e.faces.length;t++)if(d=e.faces[t],d.length===s||0===s)for(l of d)r.newV(`f${t}v${l}`,add(tween(e.vertices[l],m[t],a),mult(c,u[t])));let g=!1;for(t=0;t<e.faces.length;t++){d=e.faces[t];let n=`v${d[d.length-1]}`;for(l of d){const e=`v${l}`;if(d.length===s||0===s){g=!0;const s=t+n;r.newFlag(s,n,e),r.newFlag(s,e,`f${t}${e}`),r.newFlag(s,`f${t}${e}`,`f${t}${n}`),r.newFlag(s,`f${t}${n}`,n),r.newFlag(`ex${t}`,`f${t}${n}`,`f${t}${e}`)}else r.newFlag(t,n,e);n=e}}g||console.log(`No ${s}-fold components were found.`);const o=r.topoly();return o.name=`n${0===s?"":s}${e.name}`,o},extrudeN=function(e,s){const n=insetN(e,s,0,.3);return n.name=`x${0===s?"":s}${e.name}`,n},loft=function(e,s,n){const a=insetN(e,s,n,0);return a.name=`l${0===s?"":s}${e.name}`,a},hollow=function(e,n,s){let a,c,d;void 0===n&&(n=.5),void 0===s&&(s=.2),console.log(`Hollowing ${e.name}...`);const t=dual(e).normals(),l=e.normals(),r=e.centers(),u=new polyflag;for(c=0;c<e.vertices.length;c++){const n=e.vertices[c];u.newV(`v${c}`,n),u.newV(`downv${c}`,add(n,mult(-1*s,t[c])))}for(c=0;c<e.faces.length;c++){a=e.faces[c];for(d of a)u.newV(`fin${c}v${d}`,tween(e.vertices[d],r[c],n)),u.newV(`findown${c}v${d}`,add(tween(e.vertices[d],r[c],n),mult(-1*s,l[c])))}for(c=0;c<e.faces.length;c++){a=e.faces[c];let n=`v${a[a.length-1]}`;for(d of a){const e=`v${d}`;let s=c+n;u.newFlag(s,n,e),u.newFlag(s,e,`fin${c}${e}`),u.newFlag(s,`fin${c}${e}`,`fin${c}${n}`),u.newFlag(s,`fin${c}${n}`,n),s=`sides${c}${n}`,u.newFlag(s,`fin${c}${n}`,`fin${c}${e}`),u.newFlag(s,`fin${c}${e}`,`findown${c}${e}`),u.newFlag(s,`findown${c}${e}`,`findown${c}${n}`),u.newFlag(s,`findown${c}${n}`,`fin${c}${n}`),s=`bottom${c}${n}`,u.newFlag(s,`down${e}`,`down${n}`),u.newFlag(s,`down${n}`,`findown${c}${n}`),u.newFlag(s,`findown${c}${n}`,`findown${c}${e}`),u.newFlag(s,`findown${c}${e}`,`down${e}`),n=e}}const m=u.topoly();return m.name=`H${e.name}`,m},perspectiva1=function(e){let n;console.log(`Taking stella of ${e.name}...`);const s=e.centers(),a=new polyflag;for(n=0;n<e.vertices.length;n++){const s=e.vertices[n];a.newV(`v${n}`,s)}for(n=0;n<e.faces.length;n++){const i=e.faces[n];let c=`v${i[i.length-2]}`,f=`v${i[i.length-1]}`,d=e.vertices[i[i.length-2]],t=e.vertices[i[i.length-1]];for(let l of i){const i=`v${l}`,r=e.vertices[l],u=c+"~"+f,v=f+"~"+c,m=f+"~"+i;a.newV(u,midpoint(midpoint(d,t),s[n])),a.newFlag(`in${n}`,u,m),a.newFlag(`f${n}${f}`,m,u),a.newFlag(`f${n}${f}`,u,f),a.newFlag(`f${n}${f}`,f,m),a.newFlag(`f${u}`,c,v),a.newFlag(`f${u}`,v,u),a.newFlag(`f${u}`,u,c),[c,f]=[f,i],[d,t]=[t,r]}}const c=a.topoly();return c.name=`P${e.name}`,c},trisub=function(e,s){console.log(`Taking trisub of ${e.name}...`),s||(s=2);for(let n=0;n<e.faces.length;n++)if(3!=e.faces[n].length)return e;let a=[],c={},f=0;for(let n=0;n<e.faces.length;n++){const i=e.faces[n];let[d,t,l]=i.slice(-3);v1=e.vertices[d],v2=e.vertices[t],v3=e.vertices[l],v21=sub(v2,v1),v31=sub(v3,v1);for(let e=0;e<=s;e++)for(let i,d=0;d+e<=s;d++)i=add(add(v1,mult(1*e/s,v21)),mult(1*d/s,v31)),c[`v${n}-${e}-${d}`]=f++,a.push(i)}let d=[],t=0,l={};for(const[n,i]of a.entries())if(!(n in l)){l[n]=t,d.push(i);for(let e=n+1;e<a.length;e++)w=a[e],mag(sub(i,w))<1e-8&&(l[e]=t);t++}let r=[];for(fn=0;fn<e.faces.length;fn++){for(let e=0;e<s;e++)for(let n=0;n+e<s;n++)r.push([l[c[`v${fn}-${e}-${n}`]],l[c[`v${fn}-${e+1}-${n}`]],l[c[`v${fn}-${e}-${n+1}`]]]);for(let e=1;e<s;e++)for(let n=0;n+e<s;n++)r.push([l[c[`v${fn}-${e}-${n}`]],l[c[`v${fn}-${e}-${n+1}`]],l[c[`v${fn}-${e-1}-${n+1}`]]])}const u=new polyhedron;return u.name=`u${s}${e.name}`,u.faces=r,u.vertices=d,u},tangentify=function(e,n){const s=copyVecArray(e);for(let a of n){const e=tangentPoint(s[a[0]],s[a[1]]),n=mult(1*.1/2*(1-sqrt(dot(e,e))),e);s[a[0]]=add(s[a[0]],n),s[a[1]]=add(s[a[1]],n)}return s},recenter=function(e,n){const s=n.map(([n,s])=>tangentPoint(e[n],e[s]));let a=[0,0,0];for(let i of s)a=add(a,i);return a=mult(1/n.length,a),_.map(e,e=>sub(e,a))},rescale=function(e){const n=_.max(_.map(e,e=>mag(e))),a=1/n;return _.map(e,e=>[a*e[0],a*e[1],a*e[2]])},planarize=function(e,n){let s;const a=copyVecArray(e);for(var i of n){const f=i.map(n=>e[n]);let d=normal(f);const n=calcCentroid(f);0>dot(d,n)&&(d=mult(-1,d));for(s of i)a[s]=add(a[s],mult(dot(mult(.1,d),sub(n,e[s])),d))}return a},canonicalize=function(e,n){n||(n=1),console.log(`Canonicalizing ${e.name}...`);const s=e.faces,a=e.edges();let i=e.vertices,c=1;for(let f=0;f<=n;f++){const e=copyVecArray(i);if(i=tangentify(i,a),i=recenter(i,a),i=planarize(i,s),c=_.max(_.map(_.zip(i,e),([e,n])=>mag(sub(e,n)))),1e-8>c)break}console.log(`[canonicalization done, last |deltaV|=${c}]`);const f=new polyhedron(i,e.faces,e.name);return console.log("canonicalize",f),f},reciprocalC=function(e){const n=e.centers();for(let s of n)s=mult(1/dot(s,s),s);return n},reciprocalN=function(e){const n=[];for(let s of e.faces){let a=[0,0,0],i=[0,0,0],c=0,[f,d]=s.slice(-2);for(let n of s)a=add(a,e.vertices[n]),i=add(i,orthogonal(e.vertices[f],e.vertices[d],e.vertices[n])),c+=edgeDist(e.vertices[f],e.vertices[d]),[f,d]=[d,n];a=mult(1/s.length,a),i=unit(i),c/=s.length;const t=reciprocal(mult(dot(a,i),i));n.push(mult((1+c)/2,t))}return n},canonicalXYZ=function(e,n){n||(n=1);const s=dual(e);console.log(`Pseudo-canonicalizing ${e.name}...`);for(let a=0,i=n;a<i;a++)s.vertices=reciprocalN(e),e.vertices=reciprocalN(s);return new polyhedron(e.vertices,e.faces,e.name)},adjustXYZ=function(e,n){n||(n=1);const s=dual(e);console.log(`Planarizing ${e.name}...`);for(let a=0,i=n;a<i;a++)s.vertices=reciprocalC(e),e.vertices=reciprocalC(s);return new polyhedron(e.vertices,e.faces,e.name)};function __range__(e,n,s){let a=[],c=e<n,f=s?c?n+1:n-1:n;for(let d=e;c?d<f:d>f;c?d++:d--)a.push(d);return a}const getDiagonals=function(e){let s,a;const i=[],c=[];let f=e.length;const d=(e,n)=>(e||n)&&!(e&&n),t=(e,n,s)=>(n[0]-e[0])*(s[1]-e[1])-(s[0]-e[0])*(n[1]-e[1]),l=(e,n,s)=>0<t(e,n,s),r=(e,n,s)=>0<=t(e,n,s),u=(e,n,s)=>0===t(e,n,s),v=function(e,n,s){return!u(e,n,s)&&(e[0]===n[0]?e[1]<=s[1]&&s[1]<=n[1]||e[1]>=s[1]&&s[1]>=n[1]:e[0]<=s[0]&&s[0]<=n[0]||e[0]>=s[0]&&s[0]>=n[0])},m=function(e,n,s,a){return!(u(e,n,s)||u(e,n,a)||u(s,a,e)||u(s,a,n))&&d(l(e,n,s),l(e,n,a))&&d(l(s,a,e),l(s,a,n))},g=function(n,s){const a=(n+1+f)%f,i=(n-1+f)%f;return r(e[n],e[a],e[i])?l(e[n],e[s],e[i])&&l(e[s],e[n],e[a]):!(r(e[n],e[s],e[a])&&r(e[s],e[n],e[i]))},o=function(n,s){for(let a=0;;){const i=(a+1+f)%f;if(a!==n&&i!==n&&a!==s&&i!==s&&m(e[n],e[s],e[a],e[i]))return!1;if(a=(a+1+f)%f,0===a)break}return!0},J=(e,n)=>g(e,n)&&g(n,e)&&o(e,n);let p=0;for(;a=(p+1+f)%f,s=(p-1+f)%f,c[p]=J(s,a),p=(p+1+f)%f,0!=p;);let h=__range__(0,f-1,!0),F=f,k=999,V=0;for(;0<k&&3<F;){k-=1,a=V;for(let n=999;;){n-=1;let d=!1;if(c[a]){let n=(a+1+f)%f,t=(n+1+f)%f;p=(a-1+f)%f,s=(p-1+f)%f,i.push([h[p],h[n]]),c[p]=J(s,n),c[n]=J(p,t),e=e.slice(0,+a+1||void 0).concat(e.slice(n)),h=h.slice(0,+a+1||void 0).concat(h.slice(n)),s>a&&(s-=1),p>a&&(p-=1),n>a&&(n-=1),t>a&&(t-=1),f--,V=n,F--,d=!0}if(a=(a+1+f)%f,0>=n||!!d||a===V)break}}return i},triEq=function(e,n){return!((e[0]!==n[0]||e[1]!==n[1]||e[2]!==n[2])&&(e[0]!==n[1]||e[1]!==n[2]||e[2]!==n[0])&&(e[0]!==n[2]||e[1]!==n[0]||e[2]!==n[1]))},diagsToTris=function(e,n){let s;const a=[],i=[];for(let[s,c]of __range__(0,e.length-1,!0).map(n=>[n,(n+1)%e.length]))a[s]=[c],i[c]=[s];for(s of n)a[s[0]].push(s[1]),a[s[1]].push(s[0]),i[s[0]].push(s[1]),i[s[1]].push(s[0]);const c=[];for(s of n){var f,t;for(f of a[s[1]])for(t of i[s[0]])f===t&&c.push([s[0],s[1],f]);for(f of a[s[0]])for(t of i[s[1]])f===t&&c.push([s[1],s[0],f])}const l=[c.pop()];for(let s of c){let e=!1;for(let n of l)if(triEq(s,n)){e=!0;break}e||l.push(s)}return l},triangulate=function(e,n){n=n||!1,console.log(`Triangulating faces of ${e.name}...`);const s=new polyhedron;s.vertices=clone(e.vertices),s.face_classes=[];for(let a=0;a<e.faces.length;a++){const i=e.faces[a];if(3<i.length){const c=project2dface(i.map(n=>e.vertices[n])),f=getDiagonals(c),d=diagsToTris(i,f);for(let c=0;c<d.length;c++){const f=d[c];s.faces.push([i[f[0]],i[f[1]],i[f[2]]]),n&&s.face_classes.push(e.face_classes[a])}}else s.faces.push([i[0],i[1],i[2]]),n&&s.face_classes.push(e.face_classes[a])}return s.name=e.name,s},topolog=function(e){let n="";for(let s of e.faces){n+=`${s.length}: `;for(let e of s)n+=`${e}->`;n+="\n"}console.log(n)},testrig=function(){const e=["T","O","C","I","D","P3","P4","A4","A5","Y3","Y4"],n=["k","a","g","p","d","r","e","b","o","m","t","j","s","p","c","w","l","n","x","Z","H"];console.log("===== Test Basic Ops =====");for(let s of n){console.log(`Operator ${s}`);for(let n of e)console.log(s+n+":",newgeneratePoly(s+n))}console.log("===== Done Testing Basic Ops =====")},PEG_parser_spec=`\
/* series of opspecs */
start = opspec+
/* opspec one of:
A - single letter
A3 - single letter and float
B(5,4.3,3) - function call format w. float args
*/
opspec =
let:opcode args:opargs {return {"op":let,"args":args};}
/ let:opcode float:float {return {"op":let,"args":[float]};}
/ let:opcode {return {"op":let,"args":[]};}
/*
parentheses surrounding comma-delimited list of floats i.e.
( 1 , 3.2, 4 ) or (1) or (2,3)
*/
opargs = "("
num:( float:float ","? {return float} )+
")" {return num;}
/* just a letter */
opcode = op:[a-zA-Z] {return op;}
/* standard numerical types */
int = digits:[0-9-]+ { return parseInt(digits.join(""), 10); }
float = digits:[0-9.-]+ { return parseFloat(digits.join(""), 10); }\
`,op_parser=PEG.buildParser(PEG_parser_spec),dispatch=function(e,n){return e.apply(this,n||[])},basemap={T:tetrahedron,O:octahedron,C:cube,I:icosahedron,D:dodecahedron,P:prism,A:antiprism,Y:pyramid,J:johnson,U:cupola,V:anticupola},opmap={d:dual,a:ambo,k:kisN,g:gyro,p:propellor,r:reflect,c:chamfer,w:whirl,n:insetN,x:extrudeN,l:loft,P:perspectiva1,q:quinto,u:trisub,H:hollow,Z:triangulate,C:canonicalize,A:adjustXYZ},specreplacements=[[/e/g,"aa"],[/b/g,"ta"],[/o/g,"jj"],[/m/g,"kj"],[/t(\d*)/g,"dk$1d"],[/j/g,"dad"],[/s/g,"dgd"],[/dd/g,""],[/ad/g,"a"],[/gd/g,"g"],[/aO/g,"aC"],[/aI/g,"aD"],[/gO/g,"gC"],[/gI/g,"gD"]],getOps=function(e){let n=e;for(let[s,a]of specreplacements)n=n.replace(s,a);return console.log(`${e} executed as ${n}`),n},newgeneratePoly=function(e){const n=getOps(e),s=op_parser.parse(n).reverse();let a=s.shift();const i=basemap[a.op],c=a.args;let f=dispatch(i,c);for(a of s){const e=opmap[a.op],n=[f].concat(a.args);f=dispatch(e,n)}return f.vertices=recenter(f.vertices,f.edges()),f.vertices=rescale(f.vertices),f=paintPolyhedron(f),f};let ctx={},globPolys={};const CANVAS_WIDTH=720,CANVAS_HEIGHT=500;let globRotM=clone(eye3),globLastRotM=clone(eye3),perspective_scale=800;const persp_z_max=5,persp_z_min=0,persp_ratio=.8,_2d_x_offset=360,_2d_y_offset=CANVAS_HEIGHT/2,BG_CLEAR=!0,BG_COLOR="rgba(255,255,255,1.0)";let COLOR_METHOD="signature",COLOR_SENSITIVITY=2;const ctx_linewidth=.5;let PaintMode="fillstroke",MOUSEDOWN=!1,LastMouseX=0,LastMouseY=0,LastSphVec=[1,0,0];const DEFAULT_RECIPES=["C2dakD","oC20kkkT","kn4C40A0dA4","opD","lT","lK5oC","knD","dn6x4K5bT","oox4P7","qqJ37","aobD","qaxI"],saveText=function(e,n){const s=new Blob([e],{type:`text/plain;charset=${document.characterSet}`});saveAs(s,n)},parseurl=function(){let n;const s={},i=/\+/g,a=/([^&=]+)=?([^&]*)/g,c=e=>decodeURIComponent(e.replace(i," ")),f=window.location.search.substring(1);for(;n=a.exec(f);)s[c(n[1])]=c(n[2]);return s},setlink=function(){const e=$("#spec").val().split(/\s+/g).slice(0,2);let n=location.protocol+"//"+location.host+location.pathname;n+=`?recipe=${encodeURIComponent(e[0])}`,PALETTE!==rwb_palette&&(n+=`&palette=${encodeURIComponent(PALETTE.reduce((e,n)=>e+" "+n))}`),$("#link").attr("href",n)},init=function(){const e=$("#poly");e.width(CANVAS_WIDTH),e.height(CANVAS_HEIGHT),ctx=e[0].getContext("2d"),ctx.lineWidth=ctx_linewidth,BG_CLEAR?ctx.clearRect(0,0,CANVAS_WIDTH,CANVAS_HEIGHT):(ctx.clearRect(0,0,CANVAS_WIDTH,CANVAS_HEIGHT),ctx.fillStyle=BG_COLOR,ctx.fillRect(0,0,CANVAS_WIDTH,CANVAS_HEIGHT));const n=$("#expandcollapse");n.click(function(){/minus/.test(n.attr("src"))?($("#morestats").hide(),n.attr("src","media/plus.png")):($("#morestats").show(),n.attr("src","media/minus.png"))})},clear=function(){BG_CLEAR?ctx.clearRect(0,0,CANVAS_WIDTH,CANVAS_HEIGHT):(ctx.clearRect(0,0,CANVAS_WIDTH,CANVAS_HEIGHT),ctx.fillStyle=BG_COLOR,ctx.fillRect(0,0,CANVAS_WIDTH,CANVAS_HEIGHT))},drawpoly=function(e,n){let s;n||(n=[3,3,3]);const a=_.map(e.vertices,e=>e);e.vertices=_.map(e.vertices,e=>mv3(globRotM,e)),sortfaces(e);for(let a=0;a<e.faces.length;a++){var i=e.faces[a];ctx.beginPath();const c=i[i.length-1];let[f,d]=perspT(add(n,e.vertices[c]),persp_z_max,persp_z_min,persp_ratio,perspective_scale);ctx.moveTo(f+_2d_x_offset,d+_2d_y_offset);for(s of i)[f,d]=perspT(add(n,e.vertices[s]),persp_z_max,persp_z_min,persp_ratio,perspective_scale),ctx.lineTo(f+_2d_x_offset,d+_2d_y_offset);let t=palette(e.face_classes[a]);const l=i.map(n=>e.vertices[n]),r=dot(normal(l),unit([1,-1,0]));t=mult(.7*(r/2+.5)+.3,t),("fill"==PaintMode||"fillstroke"==PaintMode)&&(ctx.fillStyle=`rgba(${round(255*t[0])}, ${round(255*t[1])}, ${round(255*t[2])}, ${1})`,ctx.fill(),ctx.strokeStyle=`rgba(${round(255*t[0])}, ${round(255*t[1])}, ${round(255*t[2])}, ${1})`,ctx.stroke()),"fillstroke"==PaintMode&&(ctx.fillStyle=`rgba(${round(255*t[0])}, ${round(255*t[1])}, ${round(255*t[2])}, ${1})`,ctx.fill(),ctx.strokeStyle="rgba(0,0,0,0.3)",ctx.stroke()),"stroke"==PaintMode&&(ctx.strokeStyle="rgba(0,0,0,0.8)",ctx.stroke())}e.vertices=a},drawShape=function(){clear(),globPolys.map((e,n)=>drawpoly(e,[0+3*n,0,3]))},updateStats=function(){for(let e=0;e<globPolys.length;e++){const n=globPolys[e];$("#basicstats").html(n.data()),$("#morestats").html(n.moreData())}};$(function(){init();const e=parseurl();"recipe"in e?(specs=[e.recipe],$("#spec").val(specs)):(specs=[randomchoice(DEFAULT_RECIPES)],$("#spec").val(specs),setlink()),"palette"in e&&(PALETTE=e.palette.split(/\s+/g),setlink()),$("#palette").val(PALETTE.reduce((e,n)=>e+" "+n)),globPolys=_.map(specs,e=>newgeneratePoly(e)),updateStats(),drawShape(),$("#spec").change(function(){specs=$("#spec").val().split(/\s+/g).slice(0,2),globPolys=_.map(specs,e=>newgeneratePoly(e)),updateStats(),setlink(),drawShape()}),$("#palette").change(function(){PALETTE=$(this).val().split(/\s+/g),setlink(),drawShape()}),$("#rndcolors").click(function(){let e=rndcolors();PALETTE=e,$("#palette").val(e.join(" ")),setlink(),drawShape()}),$("#poly").mousewheel(function(n,e){n.preventDefault(),perspective_scale*=(10+e)/10,drawShape()}),$("#poly").mousedown(function(n){n.preventDefault(),MOUSEDOWN=!0,LastMouseX=n.clientX-$(this).offset().left,LastMouseY=n.clientY-($(this).offset().top-$(window).scrollTop());const e=invperspT(LastMouseX,LastMouseY,_2d_x_offset,_2d_y_offset,persp_z_max,persp_z_min,persp_ratio,perspective_scale);0==0*(e[0]*e[1]*e[2])&&(LastSphVec=e),globLastRotM=clone(globRotM)}),$("#poly").mouseup(function(n){n.preventDefault(),MOUSEDOWN=!1}),$("#poly").mouseleave(function(n){n.preventDefault(),MOUSEDOWN=!1}),$("#poly").mousemove(function(n){if(n.preventDefault(),MOUSEDOWN){const e=n.clientX-$(this).offset().left,s=n.clientY-($(this).offset().top-$(window).scrollTop()),a=invperspT(e,s,_2d_x_offset,_2d_y_offset,persp_z_max,persp_z_min,persp_ratio,perspective_scale);0==0*(a[0]*a[1]*a[2])&&0==0*(LastSphVec[0]*LastSphVec[1]*LastSphVec[2])&&(globRotM=mm3(getVec2VecRotM(LastSphVec,a),globLastRotM)),drawShape()}}),$("#strokeonly").click(function(){PaintMode="stroke",drawShape()}),$("#fillonly").click(function(){PaintMode="fill",drawShape()}),$("#fillandstroke").click(function(){PaintMode="fillstroke",drawShape()}),$("#siderot").click(function(){globRotM=vec_rotm(PI/2,0,1,0),drawShape()}),$("#toprot").click(function(){globRotM=vec_rotm(PI/2,1,0,0),drawShape()}),$("#frontrot").click(function(){globRotM=rotm(0,0,0),drawShape()}),$("#pngsavebutton").click(function(){const e=$("#poly")[0],n=$("#spec").val().split(/\s+/g)[0],s=`polyhedronisme-${n.replace(/\([^\)]+\)/g,"")}.png`;e.toBlobHD(e=>saveAs(e,s))}),$("#objsavebutton").click(function(){const e=globPolys[0].toOBJ(),n=$("#spec").val().split(/\s+/g)[0],s=`polyhedronisme-${n.replace(/\([^\)]+\)/g,"")}.obj`;saveText(e,s)}),$("#x3dsavebutton").click(function(){const e=triangulate(globPolys[0],!0),n=e.toVRML(),s=$("#spec").val().split(/\s+/g)[0],a=`polyhedronisme-${s.replace(/\([^\)]+\)/g,"")}.wrl`;saveText(n,a)})});