openchemlib
Version:
Manipulate molecules
15 lines (14 loc) • 1.16 MB
JavaScript
var GP=class{copyMolecule(ft){let Mt=ft.getIDCodeAndCoordinates();navigator.clipboard.writeText(`${Mt.idCode} ${Mt.coordinates}`)}pasteMolecule(){return null}};var ou="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",HA=new Uint8Array(256);for(let B=0;B<ou.length;B++)HA[ou.charCodeAt(B)]=B;function Qu(B){let ft=B.length*.75,Mt=B.length,Et,It=0,V1,Ot,L1,R1;B.at(-1)==="="&&(ft--,B.at(-2)==="="&&ft--);let W1=new ArrayBuffer(ft),H1=new Uint8Array(W1);for(Et=0;Et<Mt;Et+=4)V1=HA[B.charCodeAt(Et)],Ot=HA[B.charCodeAt(Et+1)],L1=HA[B.charCodeAt(Et+2)],R1=HA[B.charCodeAt(Et+3)],H1[It++]=V1<<2|Ot>>4,H1[It++]=(Ot&15)<<4|L1>>2,H1[It++]=(L1&3)<<6|R1&63;return W1}function IP(B){return B.toString(16).padStart(2,"0")}var Xe=globalThis.devicePixelRatio||1;var $n=class{constructor(ft){this.ctx=ft,this.ctx.textAlign="left",this.ctx.textBaseline="top",this.currentFontSize=12,this.currentFont="12px sans-serif",this.ctx.font=this.currentFont,this.currentColor="#000000",this.currentLineWidth=1,this.canvasCache=new Map}clearRect(ft,Mt,Et,It){this.ctx.clearRect(ft,Mt,Et,It)}getBackgroundRGB(){return 16777215}getForegroundRGB(){return 0}getSelectionBackgroundRGB(){return 12310268}getLineWidth(){return this.currentLineWidth}setRGB(ft){let Mt=ft>>>16&255,Et=ft>>>8&255,It=ft>>>0&255;this.currentColor=`#${IP(Mt)}${IP(Et)}${IP(It)}`,this.ctx.fillStyle=this.currentColor,this.ctx.strokeStyle=this.currentColor}setFont(ft,Mt,Et){this.currentFontSize=ft,this.currentFont=`${Mt?"bold":""} ${Et?"italic":""} ${ft}px sans-serif`,this.ctx.font=this.currentFont}getFontSize(){return this.currentFontSize}getBounds(ft){let Mt=this.ctx.measureText(ft);return{x:Mt.actualBoundingBoxLeft,y:Mt.actualBoundingBoxAscent,width:Mt.actualBoundingBoxRight,height:Mt.actualBoundingBoxAscent}}drawString(ft,Mt,Et){this.ctx.fillText(Et,ft,Mt)}drawCenteredString(ft,Mt,Et){this.ctx.textAlign="center",this.ctx.textBaseline="middle",this.ctx.fillText(Et,ft,Mt),this.ctx.textAlign="left",this.ctx.textBaseline="top"}setLineWidth(ft){this.currentLineWidth=ft,this.ctx.lineWidth=ft}fillRectangle(ft,Mt,Et,It){this.ctx.fillRect(ft,Mt,Et,It)}fillCircle(ft,Mt,Et){let It=Et/2;this.ctx.beginPath(),this.ctx.arc(ft+It,Mt+It,It,0,2*Math.PI),this.ctx.fill()}drawLine(ft,Mt,Et,It){this.ctx.beginPath(),this.ctx.moveTo(ft,Mt),this.ctx.lineTo(Et,It),this.ctx.stroke()}drawPolygon(ft){this.ctx.beginPath(),this.ctx.moveTo(ft.getX(0),ft.getY(0));for(let Mt=1;Mt<ft.getSize();Mt++)this.ctx.lineTo(ft.getX(Mt),ft.getY(Mt));this.ctx.stroke()}drawRectangle(ft,Mt,Et,It){this.ctx.strokeRect(ft,Mt,Et,It)}fillPolygon(ft){this.ctx.beginPath(),this.ctx.moveTo(ft.getX(0),ft.getY(0));for(let Mt=1;Mt<ft.getSize();Mt++)this.ctx.lineTo(ft.getX(Mt),ft.getY(Mt));this.ctx.fill()}drawImage(ft,Mt,Et,It,V1,Ot,L1,R1,W1){if(arguments.length!==9)throw new Error(`drawImage call with ${arguments.length} arguments unimplemented`);let H1=this.canvasCache.get(ft);if(!H1){H1=document.createElement("canvas");let J1=ft.imageData;H1.width=J1.width,H1.height=J1.height;let w1=H1.getContext("2d");w1.globalAlpha=0,w1.putImageData(J1,0,0),this.canvasCache.set(ft,H1)}this.ctx.drawImage(H1,Mt,Et,It,V1,Ot,L1,R1,W1)}isDarkBackground(){return!1}};var NP=class{constructor(ft,Mt){this.canvasElement=ft,this.changeListener=Mt,this.drawContext=new $n(this.canvasElement.getContext("2d"))}getBackgroundRGB(){return 16777215}getCanvasWidth(){return this.canvasElement.width}getCanvasHeight(){return this.canvasElement.height}getDrawContext(){return this.drawContext}onChange(ft,Mt){this.changeListener?.({what:ft,isUserEvent:Mt})}getClipboardHandler(){return new GP}};var $u=`
/* We can customize editor styles here. */
`,R8;function lu(){if(R8)return R8;let B=new CSSStyleSheet;return B.replaceSync($u),R8=B,B}function C8(B,ft,Mt){let Et=-1;function It(Ot,L1,R1=0){L1.button>0||ft.fireMouseEvent(Ot,L1.button+1,R1,Math.round(L1.offsetX*Xe),Math.round(L1.offsetY*Xe),L1.shiftKey,L1.ctrlKey,L1.altKey,L1.button===2)}B.addEventListener("pointerdown",Ot=>{Et===-1&&(Et=Ot.pointerId,It(Mt.MOUSE_EVENT_PRESSED,Ot))});function V1(Ot){Et===Ot.pointerId&&(Et=-1,It(Mt.MOUSE_EVENT_RELEASED,Ot))}return document.addEventListener("pointerup",V1),B.addEventListener("click",Ot=>{It(Mt.MOUSE_EVENT_CLICKED,Ot,Ot.detail)}),B.addEventListener("pointerenter",Ot=>{It(Mt.MOUSE_EVENT_ENTERED,Ot)}),B.addEventListener("pointerleave",Ot=>{It(Mt.MOUSE_EVENT_EXITED,Ot)}),B.addEventListener("pointermove",Ot=>{Et!==-1?Et===Ot.pointerId&&It(Mt.MOUSE_EVENT_DRAGGED,Ot):It(Mt.MOUSE_EVENT_MOVED,Ot)}),()=>{document.removeEventListener("pointerup",V1)}}function Uu(B,ft,Mt){let Et=typeof navigator<"u"&&navigator.platform==="MacIntel",It=Ot=>Et&&Ot.metaKey||!Et&&Ot.ctrlKey;function V1(Ot,L1){let R1=au(L1,Mt);R1!==null&&ft.fireKeyEvent(Ot,R1,L1.altKey,L1.ctrlKey,L1.shiftKey,It(L1))}return B.addEventListener("keydown",Ot=>{It(Ot)&&Ot.key==="c"||It(Ot)&&Ot.key==="v"||V1(Mt.KEY_EVENT_PRESSED,Ot)}),B.addEventListener("keyup",Ot=>{V1(Mt.KEY_EVENT_RELEASED,Ot)}),()=>{}}function au(B,ft){switch(B.key){case"Control":return ft.KEY_CTRL;case"Alt":return ft.KEY_ALT;case"Shift":return ft.KEY_SHIFT;case"Delete":case"Backspace":return ft.KEY_DELETE;case"F1":return ft.KEY_HELP;case"Escape":return ft.KEY_ESCAPE;case"Enter":return ft.KEY_ENTER;default:return B.key.length===1?B.key.codePointAt(0):null}}var OP=class{constructor(ft){this.canvasElement=ft,this.drawContext=new $n(this.canvasElement.getContext("2d"))}setDimensions(ft,Mt){this.canvasElement.width=ft,this.canvasElement.style.width=`${ft/Xe}px`,this.canvasElement.height=Mt,this.canvasElement.style.height=`${Mt/Xe}px`}getDrawContext(){return this.drawContext}getBackgroundRGB(){return 16777215}getForegroundRGB(){return 0}};var su={"chain.png":"url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAQAAABKfvVzAAAB2UlEQVR4XmNgGJmAkYGJgQULZGXAhCygIGICQg4GdjTIARRDh5xAEQwNKYzXeK4xY1Oez3SNfz8TmoYUxq+6m9bfqLjDI4tmfhzLff9VR17FoWhwZXpkOm2v1C+79+cbD4gga8lneuhrfdv6/+ItSBpSGB+bTDos9IfzP9N/k3cX6+7wwByWz/TWR/E1w/+kO+8j4BpSGL9rz9wh+Efs14TF3heY/tu/vlF2hxtkSxzLY2/FVyz/om69jT0G8kM6QyNDM9MT41nbZX9y/J/ct1/4iU7aIYb/9q8uVx0UbmF64mV7i/1/0s0HSVM5dRgYrjB84/8U+bh80iH+34z/17Xc51ZhUGX8qpkK1GL6+krltyClVyz/c+69C57CwQsK1v+Sl9rdvgr8Z/7P9WvKxNs8fsD44ABqeWLkdYHhv9sL8e+s/xJuv4k4yajEAI6H/+6llxn+g6DUh75gSXhgugEdmXIUJB5150HSFA59oHKIBteGSyBhpv+q9wsVQaZDICdDKuNnneRjCY9exU3l5AUrh2gQelAQ/8Tgve2Tb25NjIgYBkmnMl5Sumi+hQmiGKqhgaGB57Pts4Bfek0sjkjmIxQhs8BpiZFBh0EPCLGlTnQxcGod8gAAp9es6fCW8G8AAAAASUVORK5CYII=)","eraser.png":"url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAQAAABKfvVzAAAC1UlEQVR4XnWU309SYRjHn8OYTTM3zTmjC8NFFBR10dJu27wx11VX/QNdeGebTsvua93mRbUmLhURzYgKRZRJUJLibLPpRDCZC3/b1AMc4Tw97+EAR2e8FzD4fr7v53nPOQDCDkT/s2KAKiwROOXvFP8JLnDDGHhgArzgg28wCQGYgiDMw6E+1pY2rsECLEIIIrAC1O2CV/AWzPAOLGCFQbDDJ/hC+CQktU5bXWJoMGlaVv0iPAy/GeCmeBf0QB/YYECKO6kkzAl6Z/+t+BmsSJotgmmN4lFYZcA4tfdQez+1D8Fnio+S1oHe5TAcFuJHVBNit4nGLYrHGOCBbin+ntodMEzxKMkMWy8LpfgSEUN4niC7TTBtqzYYMCG3Z9xHadgD/bC1hi+U4uw1TkhFsqs3adpngJdGHSAZB8VHYAZ4vdt+RSjED3KcvYWYWMJuFY0E+MjdQe5MZgYE7YhFL8soCJzDU1iKwdcE+HOjBoG/NNJbq5DJI40EPNiIPCLgO/Wzk4lS3D2kPyaTQe5hETZsLDfxRRQLkLuLDjJd7u8wJs/mRs22J7CR4re3Qq3xIpENPUUHG+biuqX2UVsVX41epTp9ZjINm0ttqTIEZECQboK0ztd/Ya951t+nRi2GFYgksxluSlO7BMTYLVblMVcmOOTEZ9N+i4YvkREmAySz2JaNE4CqtM5jvrZHcbbE5lmLU8NrJTEmc3drsT1VlmmXdsCbgTdSu7wKUi2zPqsaq7GWZCjeJBZnwxlAN9dRyecBtsvzH/4+DV+MNdsLT4/GJSU0jHde3T2KtMxYnA8X5tvT5cp2eehDLnVxrPPoLgWpx4Hd+8Lp/Zx7boYoe/g40eDtViIF6Se+xPX8qPl96DqECImrRMOY2fg3e1atwd16UX1cR75wEXr4VmGdxL52atbpX2HnxfTenfiJcelKr9CjvQp/IMWJ57AO62ndOKk7890/iSWBU4XaZc0AAAAASUVORK5CYII=)","fist.png":"url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAQAAABKfvVzAAABj0lEQVR4Xu2S3yuDYRTHz7IZsfdCUrYLG4VCpJV6d0mS/A1zg79ArRArP4q5s4ulVousFCn/gX/g5WK7wkZMzIXMxjZ793XeMdn7vpM/wDn1PD1P53PO95znIfq3rwmYyU5tZPr7PJYoTjGaZ8xB1t+xZQqyP60iAEeWsThFGKpqbiE9CRECrnCHLnTAj17QbLV4E3mFXALbcOAGSXRiClnMgZLkZR/QYg0UEpDBDuxI4IHzT6OADdRiEK2gE12gBWmWE8Yj7weQIGOT650zaoiqAVtjDx2KeEWR8xZ4lUt+jEWkWJxJBYgkWa7NLy5WXWl5FilzhfoKwEAzzkwYI3DhTQUoVYpYR10FYCTPaDbJ2heQUwGfR0kFELmt6Utu9Jmz6dmFpmmR7v141w1XBiCBNFNacyKmCxT59kgHGBIQ4g7UkpRzESuwaCoQ+YZxqwGUGaUwrvvStqazLeRLj/bTZUTQB5rQfg1jjac9e8qAzFgZKbDMALpj1Kz3Z0WKjiGIfex++x6H98PgK4d/APiDpdwStyBoAAAAAElFTkSuQmCC)","hand.png":"url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAQAAABKfvVzAAAB50lEQVR4Xq2TwUsUcRzF3yy52TboHiKVLBCElb1479g5kgKPCkKs4ME6eAiiP0GELileStew6NLJq5Sihw6BG2VlECymB2PVXd10Zl7vN+OuOjNLl35fZhiY+fzee9/vb4D/tAow9fafu90BsqrvnXzNBwSTTBAZ2I3BkSbeYBMzLHNRn9/nEFHCvYZAutDHDfb5wDvanOVnoozBhkBzIUeHOQEHfO8DW0QV0xjC3VjoUh2onAC/ZPAme4giemMQo+BKoaeusCmdSa41MmYL8HxLgUKe27q/UKLzSSxcwUOMwk7VgTKX6sBz7oeA61hJHSUP8ST1raZQA7Z8hb0QkO1WE+d5lZdlx+UbTsjSR95i0bc0E7GUzfIHdziouRqFPzwU5ii4IzOP+SFiqe3i8jyP1A1bgKPyVGa5/M2S7iaDdWZ8KUwNe1Uus923FHx8ujwZPA9YGO48+CK/Ywp4un8N8SIZgG78fCTvFV1n9w+ePe6GFMzMJ7u4zuOInQDYYaKcDB3Ba63FGQWPLk8mt2MAWKv96kk0sKM2TBFfkQ4fvkx6fyHSH9NalwO0PkXPaktirt8rhRpqelblbV6IASzkmivP9NrEdE9AM/FXbCPG4v+6p+3VcZ2ql5zTZSqv+XcQ6+gKgL8a/RiIJPdySgAAAABJRU5ErkJggg==)","handPlus.png":"url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAQAAABKfvVzAAACAUlEQVR4Xq2Tz0sUcRjGn1lytW2wPUQamSAIK3vp7kk6i1LgMUGIFTqUBw9BiPsPhNAlpUtuKhpdOnVUKqlDh6CNsh+CsJQdjC13ddOZeXq+M7uTzu7SpXmZLwvzfr7P8/5Y4D89eZh48s/bhoC04nMXH/EmwThjRAp2c/B6C7vZwhRLXFP6NY4RRVxpCiTzw/zCYR94RpsP+Z4oYbQp0JbP0GFGwB6f+8A2UcF9jOFyQ+hkCJSrwDcZ7GcfUcDFBohRcKXQFyp8lc4s3zYzZgvwfEuBwgK/65xXRccrsXAGE7gBOxECJb4IgQfcjQAX8DJxEN/HVOJTTaEGbPsKvyJAuldNXOZZnpIdl485I0tveIkF31KuzlI6zU3ucFRzNQq/uS/MUeGOzNzm6zpLHa3ryzxQN2wBjsIT4JE6f7Co09RgHRlfAnPjXoXr7PQtmdSsNqn2eDJ4HLAw3rX3QX4nVaC534sA0bYCvdi6Je9lveb+mkLw2+PPiIKZ+WwPN3ioj9MyczQMsMNYKR5ZwfOnCzkVTq7KTpYDgrKCp5XuyGw9AOvViHoSmPhryaS7nCM+IhldvlRy92nYmaBLQWtdXqX1rn5X22OLI16xihhjBjA9q3CQJxoAFjJt5Xv6bBLdKmgmvsIOYrLxv+5uZ+WOtmqJi3pNLGj+54gN9ATAH0reBFwT+FQbAAAAAElFTkSuQmCC)","invisible.png":"url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAQAAABKfvVzAAACjUlEQVR4XnWTS09TURSF178wMUExvhIfiY+0Q6MThwwEHYk6MODAqHHgzD9gHDgWYhQBAUWMqY/SogSkCGJJNAiFUiyV2qqURkFa7cPvnJZiBXMH7Tl3rbXX2ntf5bWgyH+emPI8v8reAn8nj3r0Qr3qU78GNKghDWtEfk3ot2LKKq6AphTUjGYF26ObuqU7alabOvRQj/VEz6APKS23jvI/rY/6AD2ksCH0AG9Sq9r1QJ0W/hyREFbcOqQNcqiL/3FuIpozhJeot6J+H/VHegrci60lSA7t0VVtlRNqTvPAY4bQqxYL70LdxSsvd2l164B2qVHLVN4L0U2VhL4aQl9RveDdS9gl4IcBNWpRUShNUJxUT3OG0E/UTo4u4N0a1U9SHdRu3QOQIOw8N+0Yc/A2ZwgDeHfh3ZgZpbBH+zDTAPy7Jok6qU/K0Jht2k91CL5SVD9aHh1BvYHiCxYe1nV9w9h5bVcdk4DwGn3TmYg1Y9Rb8P2FQYVQbOM+qjPaDDwMguMw3j00Mst0narUDaUgBICPI5VgAhe5rUVguZBhhMaGOEzrrU6pQpfpdoqeB8k2hvoF7UB9mhxmsyD4WYIs0c/ifEKnoVxSEsptQke5rdQ5vGdRt4SYXTEf2lWq1l1s1GojlDiAgpmTLN4KHEKegw+NKvsco8oglApd0XtoOzEzhZmCuq2QJ7RRX3lqmO84xjaxGltUj/dVcJEwhuIqwVRptsZMZwL/wG2FPIHryijVVBnUNdJlS1ZKlmJEzkApr1JDj5KsyeJaQsR+fDlW8G/KCWyl1tgpziEIxczwVcnYcT6p5LpwO7gZ5jzH7mT0hmbW0+IO/UBixXX5L4RZlmpOn8u6vT7Y3P4BKLGmkBK1qvgAAAAASUVORK5CYII=)","lasso.png":"url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAQAAABKfvVzAAADg0lEQVR4Xk2UXWxTZRjHn7XYfWhh4DKlIFLRdlucImbGr2gEwYwsAjGRXXihRlTOFrOoF0RcdWwhEVnQdgOmbgzoliEhAZJlvZwdMQg6No/U2IYOWVrK1q1d19q1Pef8fU7bsy3/nIvznv/ved/n47xEZKDivNpK8RoE6XC4J9gX7A/2hXukwxCwta1UcxhUu4PcLFHnqZnaf+/E0FhTqDpiiaqqjjSFhsbvnZja76kRdarLQRzbTSjAuozgczaHVoJYhShX1krlSmH2bSWaQz5nRsA6MJQDrHMtx0Y3y4QS7Eo0eTpG3K5rP7tdHSNNnl2JNQxtlo+NzrXAmgXEDcnWA/5ihbAtOeyKtKf3wmIvs6+2l8GS3hv51u3aliQUKwf8yVZxA2GNIvSIBCNaJmPt/jrR6KZfyL6omQdQF2tvmTTyPt2iIhDq/f1mth/1LtjCVTa9QAIN8dEl8tK8mgJBj6oF21GvEWb4+wlft08Sds+FHbPmDl2A/mOl2Ran7SQylkV0MIcdu+cI7J3utUb0aL2q1DZSlDiRvObpKdpCZymVf1dqW6/qYY1QsM8SXYULw3jcq8XLWlSghOrJpYUwXxpeDUuUZn6smNWheUx6l7uxGD8HrKXz9A2doQidJnnPoWt6VEQItm4/4aX0LSd2wLCEqMB6+otmqYt8K1LVd3+oTRA6/yXUTXe+mCHsjE048QbWw8R6EHoNAMlGbA+d/PSOAZXKZC9tKbr19m+DFZztc/E/B2/3jp//x5logyC/8oyBd9DBIjeODj4/X8hTcO4PZZ/a6RKpYfBKWb6CuTQ+i41elD5A5cLHga7jPjOvWDIDv6e/EE25WXo49N0mPmF21OR3wm/FTahMf3/dNtLoe4GPa1LeC9y4xGUxacNnvHnykfTG+IWxJzOlyhnPzHH7bUJRvgINiSuu+CE8i2Jw8NwORq/jidRDktMz4COU46twnVyEx+brwxfFQDc+weu4P0drQFHq/Z+uP73UZq7vh8FAV6oeL2OTZl4OFMCUaZw4NXDjyNTBWENylaLDwXFpH+5Tm5mku4sN1XZQFwrkR+OvyjvxpvT5kTuEHcmpDh5i/qIQ/1l5LQd4RifUOS1A1XTnRq76r5dhzRlTPBxx7vlSDstmiA0r8NGXUcLZm6jJARkGZvnJAtqtod4JmhJbT/9tiZ4bS9QsX83dGv8DIrFVpnd+f4UAAAAASUVORK5CYII=)","lassoPlus.png":"url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAQAAABKfvVzAAADiklEQVR4XlVUbWxTVRh+12K3oYWBy9SCSAHbbXGRaGb8SoygmJFFICayH/5AIyrdYhb1BxFXHWswQRa03WVM3RzYjaEhYcZl/Tk6QhB0bN62xjV0yNJStm7tutbetvfex3N7e3XmyUnuOXme9+O8zz1EZKDyIhwVeBE28VisLzIQGYwMxPrEY7Bhh6NCYxgUuou8DLwuUD936G736GRrtC5uSSioi7dGR6fuds8dCtTzOoXlIhbbSyjBhrwt6G6LrgExlKJKfkiskksLuzVoiwbdeRs2gIlUgXWp/eTEdomwGnvSrYGuca/n2g9eT9d4a2BPej0TbZdOTiy1w1oQ8JsyHYdD5TJhZ2bME+/M7YfFWelc56yEJbc//oXXszNDKJcPhzId/CbCetnWxxOMaJ9NdoYaeaOXLpHg8HOCw0lOWrgPjcnO9lkjy9PLyzZCU2jQzOgnpgV7rNaut5GNRsnPEXzcstICQY9awX5i2ggzQoOEzzpnCXuXYq5Fc5cuTH8z5IoCnkRVooM55tq7RGDc+X5rXI+Oq3JDCyVILhTj54bPEYbPKV+CoyAhuaHjqh7WOEUGLIm1uDCGbdOFeEoxK+Hjilvz8Ng6WBK08E31og5tk+IBNg3GFBw+zlfMoHwJjrMUpzMk7Tt6TY/qOMHeGyI8l7vpxi4YtOBq0xvJR4vUQ8FV2bo7XzekCdxfhMZ57tk8YXdyxo1XsBEmhvv93ZoAJBnxcvT0B7cNqJFn++mJspuv/zJSzcb2VOr3kVv9Uz/+6U47BI/vZ+FzlkEHi9QyMfL0cilzwfnf5IPKpFeLzSOXK4s3qDb8YXLiovg2aoT3wj2ngmZ2YskP/Zr7mDepXnow+uVWVmHBatIbsddSJtTkvrpuH28JPsPKNclvhm8Ms2sxaeYz+k8/nNucujD5WL5CPhtYOOW8RSgr3kBz+rIndRRPohwsuJrBOO16NPuA6A4MBQlV+DTWKJVhy3JT7CIf7sX7eAn3qmpNUJZ969vrj7PGNRjwTiTck23C89iqkVcKSmDKt8x8N3Tj+NyRZHNmrazDkSnxIO5RhpmhO/9G0jIoByXSI6kXpN14Vfzo+G3CrsxcFzOx4iJif1YRKwXMozNssZi189xmdutXfoJVJWaZOVJs5v/18H+/rcK7nyQI3/tRrwryTLDIVkGgvRrKm6AhvePMH5bE+cl0/cpT9dX4B08ibwJFFp9KAAAAAElFTkSuQmCC)","pointingHand.png":"url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAADe0lEQVR4Xq2V+yvrYRzHnWwuaaUst9mY21iyHcVySghxJJLLDy7L2Y9S4geHThx+5ISc0vCDf0AS6fj1rPxkRJ2dJjvtjNolt1y+NMY+5/N5yonZbIunvm179nyf1/N+fy5PSMgLo6OjwxAWFgaxsbHQ2NhonJiYELy0Pqj/CgoKPqSmpjoGBgZgfHwciouLna2tre+D2uSlxXK5XJ2UlMTt7e2B2WyGjIwMiImJ+fhmADy9OjMzk7PZbHB0dAT4HXp6en6+GSA5OVktk8k4u90Ox8fHTEF3d/fvNwNIpVKm4AFACgYHB//Mzc0pUZ3o1SBPgEKhgKysLFd5ebkdlekTExMLUKUU56VVVVVhQQM9AdnZ2dDe3g5bW1tQU1MDKSkpNrTtr0qlsvT3939/NSA9PR2mp6fh7u4OhoaGWG2gXdDZ2Qnx8fFWBH3CR4P1IvMFe4feqoqKir7k5OQoSQEF2Wq1siwiwMzMDLjdbhgeHoa8vDw4OztjiiIiIqCyshLq6uoA39mRSCSKZ5DQ0FAxnuQXeutG+Yb8/Hwt1gIDHB4eMsDs7Czc399TsAFPCxzHwe7uLojFYlhdXQWDwQBKpZLDfdTeVMhra2vBaDRCV1cX2zAtLQ0IcHp6yuYWFxeZRfPz89DX18cAVIgYbNje3oaTkxPAJODwsN4BLS0tTPbGxgagTBCJRECFdnt7C+fn53B9fc0UXF1dweXlJbhcLnA4HAxmsVhYvVRUVHA8Hu85IDIyUl5SUgImk4mduKmp6T+ANiXvHz+Ag+ZJEYHpkxTgHt4VCIVCCTY009TUFNzc3MDk5CTlPRwcHLCN/A2CE6C0tNQ7IDw8nI8Z8LWhoeGWFGxubkJvby+THSyAz+d7jUEIpp46ISGB0+l0zHeKh9PpDAhACimd0QUuKirKO4BSC3uOTqPRwMXFBQvig/+BWER9C+8RLjo62jcAPayhvqPX6xmAgkf++hu0huKF2cdhivsGjIyMCAsLC81jY2PMHgIEMgiwvr4OcXFxHNaCbwDZ1NbW9q2srAz29/fZ6QOB0LrR0VHAdPd/ZwgEAhF6uaPVap/EwbMOHpTRPGUbKgfsBv5vPawJXn19/WfsR04qPMoozzg8hlEirK2tMUBzc3Pg93Zubq6uurqa9aCVlZUnz/LyMvu9tLQECwsLgPVD1f/Ds8n9AyubuM4FiwqZAAAAAElFTkSuQmCC)","rect.png":"url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAQAAABKfvVzAAACc0lEQVR4Xo2UT0hUURTGf7uipMy8GbUwigx0WbiwpCgQKmgl1CYj3Plahtg/eguFUIoamNxUCEFCGlIgEhSORmQRNeVMSkhpWcSU1KSOQ9i8vvfmpiMZOB8Xzjv3fPPd8+dertPHQICX/OAVnTRTz1GOaNXL7pQvSdTG9KHwCVJMyzlMFw1UsJFC8lmtVSi7Qr4u7SUVk1KsmCkyZtJETchUmTKh3NSYk6ZBq0a276nSXtRMGc+kfMIkiRY3shQkWiZ9wjjxMN5SEAuPQ5qegBALe07a+eiMCj9lxZ0ZJ+N483A9oQf6qbWED6rITW4IcQGaGJuT/Y0f7rm1cJliS+jnLjNkAviEDXTwVbZ/2gwjobLESKgY6iiwhI5gyw/N/T2zKtljF0CN6p39SAZbCVyhTpwVLKOUM8wGmn4lEy35yGH+Jp1TKF9nrRp3mzbOMcp9m0MhtLPrvwRDr/6/mwda6cZ4ON24Hd5z1RISfGNIAdmDnWabtHtlzxLjtY1pgucM2o8rPOUhj+UZY0qDWGEJad5y0ca8mO90LLyKA+yjkirN6QWeaO0kwjvucZw8m0MwGinLzmelUi1nP3vYQrUCH3GNY5Qp+UpbpelcQjNnWcchVWRQhc2jiPWsYTl7aZRetvTBtP5VaJW7la0c5g4npFbCbk5xSzlNKPGRUKk6vYCwScIH2ax2lagH1VJ6wxdbNVUumKUFhGFNaMxiyEk4v3Jn1VmE4LluBK804W/5zdDA/+OxCtk58dzeNjcS7vYJ/v1bzGMJnm7rPDLmkzlvdph2E5/zRs13M2BS/p3OvhoLkVSBi7jE5zn/VPCy+K/GH86K+gV5WsL6AAAAAElFTkSuQmCC)","rectPlus.png":"url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAQAAABKfvVzAAACi0lEQVR4Xo2UT0hUQRzHP6c2KmrTnYoKjCAP+45FB0uKAqECT0FdMsKbr2OIUdE76EUpamHzUmoEGWmIgUnQn9UOWURp7ksJKSuLeCW1qesStq/fvB11lzr4vgzM/Ob3md+b3/xmuEYfA4Fe8ZMhOmmklmMclVYr/U6xpRg0Pn2I+yRpZsQ4Shd1lLGJCGHWSItIv0xsXTKXEp+0+AqZJqum1KCKqQpliXaqKnVK1Umrkr62VMjcoJpWvkprYAqvyUksRV7TlAYmcOP4S1EyPgEZegMgGfftjP3JHhf9kp5rz9pZ21+U44t6oZ9qA3yUjNygReSKoIEPC2H/oN19pxouUWKAfrqZJRtIAxvp4Jv09d9mGYtZ3lisBGooMkBHMKVd5QsRlSbfcxMl99tFUCX5zg1SwZSHI6qJ4q+wNHWGuSCmzqTXFEYMan7TeYlyBSi2ItymjXOMc9/sIQLt7C4AMiE36ka7K/HDlUXR1uh0qIcH9JCpd+OZ+u3wnisG8PjOCEOydr6S1hxJXhufBnjBsBlc5hkPeRS6bt2zbuUiWK1WJpThLReMz8vFk07GV3OQ/ZRTIXWqN11t7SLBO+5yglVmD0FppA0dZqWkcScH2MtmAVqsJ1zlOJZUbbnJ0kw+0MhZ1lEpGRnGCS2zVGgDa1nOPup5ahYNqnU+QrOYm9nGEe5wUqKVsofT3JRdTspZjMWictIFwBYJfIitcsClFHNYIr3hq7iapAW1VACMSoUmjUZsz/6dX6t2rvgKAN9xEvhRT0/oZaXg/7EYIFcnvvO4zUnEezSg79//LAbw5bYuKqs+q/Nqh2pX7oJ1UP1QAyqt73Tu1ShUShK8not8WbBPBy+LfjX+AjC0Avv8MQHTAAAAAElFTkSuQmCC)","zoom.png":"url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAQAAABKfvVzAAACiUlEQVR4XpVTTUgUYRh+nJWCxUsNevBiYGm7UjAnFyoI9ORKSxt4a71Ei9I10EPg0VO7hOE1ikQSofXiYv6QRX9bkTAjbbM/B2mz8id3Z2f/ZvbtndR0NYn9XuYbPuZ55n3f730efMQCZjCLOX4/xyJe4BXe4C3e4QNi0JDCBu8JRPkURxIMm8BjjOMJJvEUU8jadUn36D79Zs5X8JhSyb6AX/iBzxxfLMIMwx/gIcYwXRMTNa86Mhrp23QXOwx3sW9zNKKOaF5NzAlrnCWBFXAx43jE8PeC0b4U9KstJmh/tJh+dSlotJeEDYZ/Bea5GAtudoZDkm5jcCP1poejd+XhaG+6kc82kvRwiDpLwha+A1RX8K4OaDfCU038UTQGk/GA2qO4lDbFpfbEA4NJ0QA1UThktOeFDBPOLd+/qF9PtOZBDi30LNU91FBfgz+rvmaoIdUVmnZo4CxLQU3cYsLJ7G1HebvqC7nIhHJ6G7y7mmsNKTQtGjbyq5p3Dnzv2au31i24QK35cEhpriQAzbUp92AS1GKqI7odL5F1jM9bzV7KzoyVLvfbDhKAoYZ4wGp/NFKU8Br6scS9VrM7Fw8a56/8A271ovb0pkF9m2UPy2AWGd/k4sYdpal/7+fH4cTxvaPsGo6C3EXysWYWQafIR2cqSnFyV237CM6ADOowyM8Si+xkkCsztB2RIYZCFT2QB1mYVdwSSSza/N85nD1qDl27cyA76EQ1k6bqtESiRagrXFsdyBxQq+ySnfIhtbJ6gHX2bBprQvmAHwKH/GDBmRCDyibP4Od/HLcNZ0KcCSnkmLQsKEd4mmvfgTMhybGCb0zI4RPb1bSbUtnDUvHz4yGJ7BUWx2+5Iu7Rc33AhQAAAABJRU5ErkJggg==)"};var M8=Object.create(null),Lu=3/4,JP=class{constructor(ft){this.HOTSPOT_32=ft.HOTSPOT_32,this.IMAGE_NAME_32=ft.IMAGE_NAME_32,this.cPointerCursor=ft.cPointerCursor,this.cTextCursor=ft.cTextCursor}getCursor(ft){if(M8[ft])return M8[ft];if(this.IMAGE_NAME_32[ft])return this.buildCursor(ft);switch(ft){case this.cPointerCursor:return"default";case this.cTextCursor:return"text";default:throw new Error(`Unknown cursor: ${ft}`)}}buildCursor(ft){let Mt=this.IMAGE_NAME_32[ft],It=`${su[Mt]} ${this.HOTSPOT_32[ft*2]*Lu} ${this.HOTSPOT_32[ft*2+1]*Lu}, default`;return M8[ft]=It,It}};var KP=class{constructor(ft,Mt){this.title=ft,this.rootElement=Mt,this.elements=[],this.dialogElement=null}setLayout(ft,Mt){this.hLayout=yu(ft),this.vLayout=yu(Mt)}add(ft,Mt,Et,It,V1){this.elements.push({component:ft,x:Mt,y:Et,x2:It,y2:V1})}createTextField(ft,Mt){return new H8(ft,Mt)}createLabel(ft){return new V8(ft)}createComboBox(){return new E8}createCheckBox(ft){return new S8(ft)}setEventConsumer(ft){this.consumer=ft}showMessage(ft){window.alert(ft)}showDialog(){let ft=document.createElement("dialog"),Mt=this.rootElement.getBoundingClientRect();Object.assign(ft.style,{position:"absolute",marginBlock:0,left:`${Mt.left}px`,right:`${document.body.parentElement.clientWidth-Mt.right}px`,top:`${this.rootElement.offsetTop+30}px`}),this.dialogElement=ft,this.rootElement.getRootNode().append(ft);let Et=document.createElement("div");Et.style.display="grid",Et.style.gridTemplateColumns=this.hLayout,Et.style.gridTemplateRows=this.vLayout,ft.append(Et);for(let{component:L1,x:R1,y:W1,x2:H1,y2:J1}of this.elements){let w1=document.createElement("div");H1===void 0?(w1.style.gridColumn=`${R1+1} / ${R1+2}`,w1.style.gridRow=`${W1+1} / ${W1+2}`):(w1.style.gridColumn=`${R1+1} / ${H1+2}`,w1.style.gridRow=`${W1+1} / ${J1+2}`),w1.append(L1.getElement()),Et.append(w1)}let It=document.createElement("div");It.style.display="flex",It.style.flexDirection="row-reverse",It.style.gap="15px";let V1=document.createElement("button");V1.textContent="OK",V1.addEventListener("click",()=>{this.consumer.fireOk()}),It.append(V1);let Ot=document.createElement("button");Ot.textContent="Cancel",Ot.addEventListener("click",()=>{this.consumer.fireCancel()}),It.append(Ot),ft.append(It),ft.showModal(),ft.addEventListener("cancel",()=>{this.consumer.fireCancel()})}disposeDialog(){this.dialogElement!==null&&(this.dialogElement.remove(),this.dialogElement=null)}},an=class{setEventHandler(ft){this.eventHandler=ft}fireEvent(ft,Mt){this.eventHandler(ft,Mt)}},V8=class extends an{constructor(ft){super(),this.element=document.createElement("label"),this.setText(ft)}setText(ft){this.element.textContent=ft}getElement(){return this.element}},H8=class extends an{constructor(){super(),this.element=document.createElement("input"),this.element.type="text"}setText(ft){this.element.value=ft}getText(){return this.element.value}getElement(){return this.element}},E8=class extends an{constructor(){super(),this.element=document.createElement("select"),this.element.addEventListener("change",()=>{this.fireEvent(2,this.element.selectedIndex)})}setEnabled(ft){this.element.disabled=!ft}addItem(ft){let Mt=document.createElement("option");Mt.textContent=ft,this.element.append(Mt)}getSelectedIndex(){return this.element.selectedIndex}setSelectedIndex(ft){this.element.selectedIndex=ft}setSelectedItem(ft){let Mt=this.element.options;for(let Et=0;Et<Mt.length;Et++)Mt[Et].textContent===ft&&(this.element.selectedIndex=Et)}getSelectedItem(){return this.element.options[this.element.selectedIndex].textContent}removeAllItems(){this.element.innerHTML=""}getElement(){return this.element}},S8=class extends an{constructor(ft){super();let Mt=document.createElement("label"),Et=document.createElement("input");Et.type="checkbox",Et.addEventListener("change",()=>{this.fireEvent(3,Et.checked?1:0)}),Mt.append(Et),Mt.append(ft),this.element=Mt,this.checkBox=Et}setEnabled(ft){this.checkBox.disabled=!ft}isSelected(){return this.checkBox.checked}setSelected(ft){this.checkBox.checked=ft}getElement(){return this.element}};function yu(B){return B.map(ft=>ft>0?`${ft}px`:"auto").join(" ")}var EA=class{constructor(ft){this.imageData=ft,this.dataView=new DataView(ft.data.buffer)}getWidth(){return this.imageData.width}getHeight(){return this.imageData.height}getRGB(ft,Mt){let Et=this.dataView.getInt32((Mt*this.imageData.width+ft)*4,!1);return(Et&255)<<24|Et>>>8}setRGB(ft,Mt,Et){let It=Et>>>24&255,V1=Et<<8|It;this.dataView.setInt32((Mt*this.imageData.width+ft)*4,V1,!1)}toDataURL(){let ft=document.createElement("canvas"),Mt=ft.getContext("2d");return ft.width=this.imageData.width,ft.height=this.imageData.height,Mt.putImageData(this.imageData,0,0),ft.toDataURL("image/png")}};var YP=class{constructor(ft,Mt,Et){this.canvasElement=ft,this.dialogRoot=Mt,this.JavaEditorArea=Et}register(ft){this.javaUiHelper=ft,this.cursorManager=new JP(this.JavaEditorArea,ft)}grabFocus(){this.canvasElement.focus({preventScroll:!0})}setCursor(ft){this.canvasElement.style.cursor=this.cursorManager.getCursor(ft)}showHelpDialog(){}createImage(ft,Mt){let Et=new ImageData(ft,Mt);return new EA(Et)}createImageFromBase64(ft,Mt,Et){Et=Et.replaceAll(/%\d+%/g,L1=>"A".repeat(Number(L1.slice(1,-1))));let It=Qu(Et),V1=new Uint8ClampedArray(It),Ot=new ImageData(V1,ft,Mt);return new EA(Ot)}createDialog(ft){return new KP(ft,this.dialogRoot)}runLater(ft){typeof requestAnimationFrame=="function"?requestAnimationFrame(ft):typeof setImmediate=="function"?setImmediate(ft):setTimeout(ft,0)}};function Tu(B,ft,Mt,Et,It,V1,Ot,L1){let{readOnly:R1=!1,initialMode:W1="molecule",initialFragment:H1=!1}=ft,J1=document.createElement("div");Object.assign(J1.style,{width:"100%",height:"100%",display:"flex",flexDirection:"row",alignItems:"start",backgroundColor:"white",touchAction:"none",userSelect:"none",webkitUserSelect:"none"});let w1=J1.attachShadow({mode:"open"});w1.adoptedStyleSheets=[lu()];let ve=null;R1||(ve=document.createElement("canvas"),w1.append(ve));let O0=document.createElement("div");Object.assign(O0.style,{width:"100%",height:"100%"}),w1.append(O0);let l0=document.createElement("canvas");l0.tabIndex=0,Object.assign(l0.style,{outline:"none"}),O0.append(l0),B.append(J1);let Ae=new V1(new YP(l0,O0,Et)),Vt=new Et(t2(W1,Et),new NP(l0,Mt),Ae);if(H1)if(W1==="molecule"){let f1=new Ot(0,0);f1.setFragment(!0),Vt.setMolecule(f1)}else{let f1=L1.create();f1.setFragment(!0),Vt.setReaction(f1)}Ae.setEditorArea(Vt);let Me=R1?null:new It(Vt,new OP(ve),Ae);function Pe(f1){l0.style.width=`${f1.width}px`,l0.width=Math.floor(f1.width*Xe),l0.style.height=`${f1.height}px`,l0.height=Math.floor(f1.height*Xe),Vt.repaint()}let SA=O0.getBoundingClientRect();Pe(SA);let F1=new ResizeObserver(([f1])=>{Pe(f1.contentRect)});F1.observe(O0);let d0=null,Fn=null,pt=null;R1||(d0=C8(l0,Vt,Et),Fn=Uu(l0,Vt,Et),pt=C8(ve,Me,Et));function M1(){J1.remove(),F1.disconnect(),d0?.(),Fn?.(),pt?.()}return{editorArea:Vt,toolbar:Me,uiHelper:Ae,destroy:M1}}function t2(B,ft){switch(B){case"molecule":return 0;case"reaction":return ft.MODE_REACTION|ft.MODE_MULTIPLE_FRAGMENTS;default:throw new Error(`Invalid initial mode: ${B}`)}}function hu(B,ft,Mt,Et,It){class V1{#t;#e;#P;#A;#f;#r;constructor(L1,R1={}){let{editorArea:W1,toolbar:H1,uiHelper:J1,destroy:w1}=Tu(L1,R1,ve=>this.#i(ve),B,ft,Mt,Et,It);this.#t=W1,this.#e=H1,this.#P=J1,this.#A=null,this.#f={[B.EDITOR_EVENT_MOLECULE_CHANGED]:"molecule",[B.EDITOR_EVENT_SELECTION_CHANGED]:"selection",[B.EDITOR_EVENT_HIGHLIGHT_ATOM_CHANGED]:"highlight-atom",[B.EDITOR_EVENT_HIGHLIGHT_BOND_CHANGED]:"highlight-bond"},this.#r=w1}getMode(){return this.#n(),this.#t.getMode()&B.MODE_REACTION!==0?"reaction":"molecule"}setMolecule(L1){this.#n(),this.#t.setMolecule(L1)}getMolecule(){return this.#n(),this.#t.getMolecule()}setReaction(L1){this.#n(),this.#t.setReaction(L1)}getReaction(){return this.#n(),this.#t.getReaction()}setOnChangeListener(L1){this.#n(),this.#A=L1}removeOnChangeListener(){this.#n(),this.#A=null}clearAll(){this.#n(),this.#t.clearAll()}destroy(){this.#n(),this.#r(),this.#t=null,this.#e=null,this.#P=null,this.#A=null,this.#r=null}get isDestroyed(){return!this.#t}moleculeChanged(){this.#n(),this.#t.moleculeChanged()}#n(){if(this.isDestroyed)throw new Error("CanvasEditor has been destroyed")}#i(L1){if(!this.#A)return;let{what:R1,isUserEvent:W1}=L1;this.#A({type:this.#f[R1],isUserEvent:W1})}}return V1}function bu(B,ft,Mt,Et){class It extends HTMLElement{static MODE=Object.freeze(Object.create({MOLECULE:"molecule",REACTION:"reaction"}));static observedAttributes=Object.freeze(["idcode","fragment","mode","readonly"]);#t={idcode:"",fragment:!1,mode:It.MODE_MOLECULE,readonly:!1};get idcode(){return this.#t.idcode}set idcode(Ot){this.#t.idcode=String(Ot),this.setAttribute("idcode",this.#t.idcode)}get fragment(){return this.#t.fragment}set fragment(Ot){this.#t.fragment=!!Ot,this.#t.fragment?this.setAttribute("fragment",""):this.removeAttribute("fragment")}get mode(){return this.#t.mode}set mode(Ot){this.#t.mode=String(Ot),this.setAttribute("mode",this.#t.mode)}get readonly(){return this.#t.readonly}set readonly(Ot){this.#t.readonly=!!Ot,this.#t.readonly?this.setAttribute("readonly",""):this.removeAttribute("readonly")}setMolecule(Ot){this.fragment=Ot.isFragment(),this.idcode=`${Ot.getIDCode()} ${Ot.getIDCoordinates()}`,this.#e.setMolecule(Ot)}getMolecule(){return this.#e.getMolecule()}setReaction(Ot){this.fragment=Ot.isFragment(),this.idcode=Et.encode(Ot,{keepAbsoluteCoordinates:!0,mode:Et.INCLUDE_MAPPING|Et.INCLUDE_COORDS|Et.RETAIN_REACTANT_AND_PRODUCT_ORDER})??"",this.#e.setReaction(Ot)}getReaction(){return this.#e.getReaction()}clearAll(){this.#e.clearAll(),this.idcode=""}moleculeChanged(){this.#e.moleculeChanged()}#e;#P(){this.#e||(this.#e=new B(this,{readOnly:this.readonly,initialMode:this.mode}),this.#e.setOnChangeListener(this.#Q),requestIdleCallback(()=>this.#A()))}#A(){switch(this.mode){case It.MODE.MOLECULE:return this.#r();case It.MODE.REACTION:return this.#n();default:throw new Error(`Mode ${this.mode} is not supported`)}}#f(Ot){let L1=Ot.indexOf(" ");if(L1===-1)return ft.fromIDCode(Ot);let R1=Ot.slice(0,L1),W1=Ot.slice(L1+1);return ft.fromIDCode(R1,W1)}#r(){let Ot=this.#f(this.idcode);Ot.setFragment(this.fragment),this.#e.setMolecule(Ot)}#n(){let Ot=Et.decode(this.idcode,{ensureCoordinates:!0})??Mt.create();Ot.setFragment(this.fragment),this.#e.setReaction(Ot)}#i=!1;#o(Ot){this.#i=!0;try{Ot()}finally{this.#i=!1}}#Q=Ot=>{let L1=this.idcode,R1=this.fragment;this.#o(()=>{if(Ot.type==="molecule")switch(this.mode){case It.MODE.MOLECULE:{let H1=this.getMolecule();this.idcode=`${H1.getIDCode()} ${H1.getIDCoordinates()}`,this.fragment=H1.isFragment();break}case It.MODE.REACTION:{let H1=this.getReaction();this.idcode=Et.encode(H1,{keepAbsoluteCoordinates:!0,mode:Et.INCLUDE_MAPPING|Et.INCLUDE_COORDS|Et.RETAIN_REACTANT_AND_PRODUCT_ORDER}),this.fragment=H1.isFragment();break}default:throw new Error(`Unsupported mode ${this.mode}`)}});let W1=new CustomEvent("change",{detail:Ot,bubbles:!0});if(this.dispatchEvent(W1),Ot.mode==="molecule"){if(this.idcode!==L1){let H1=new CustomEvent("idcode-changed",{detail:this.idcode,bubbles:!0});this.dispatchEvent(H1)}if(this.fragment!==R1){let H1=new CustomEvent("fragment-changed",{detail:this.fragment,bubbles:!0});this.dispatchEvent(H1)}}};#D(){this.#e&&(this.#e.destroy(),this.#e=void 0)}#u(){this.#D(),this.#P()}connectedCallback(){this.#t={idcode:this.getAttribute("idcode")||"",fragment:this.hasAttribute("fragment"),mode:this.getAttribute("mode")||It.MODE.MOLECULE,readonly:this.hasAttribute("readonly")},this.#P()}disconnectedCallback(){this.#D()}adoptedCallback(){this.connectedCallback()}attributeChangedCallback(Ot,L1,R1){if(!this.#e||this.#i)return;(()=>{switch(Ot){case"idcode":return this.#t.idcode=String(R1),()=>this.#A();case"fragment":return this.#t.fragment=R1!==null,()=>this.#A();case"mode":return this.#t.mode=String(R1),()=>this.#u();case"readonly":return this.#t.readonly=R1!==null,()=>this.#u();default:throw new Error("unsupported attribute change")}})()()}}return It}function q8(B){let{GenericEditorArea:ft,GenericEditorToolbar:Mt,GenericUIHelper:Et,Molecule:It,Reaction:V1,ReactionEncoder:Ot}=B,L1=hu(ft,Mt,Et,It,V1);function R1(){let W1=customElements.get("openchemlib-editor");if(W1)return W1;let H1=bu(L1,It,V1,Ot);customElements.define("openchemlib-editor",H1);let J1=document.createElement("style");return J1.id="openchemlib-editor-default-style",J1.innerHTML=`
/* dynamicaly added from openchemlib registerCustomElement with low priority */
openchemlib-editor:defined {
display: block;
height: 400px;
width: 600px;
}
`,document.head.prepend(J1),H1}B.CanvasEditor=L1,B.registerCustomElement=R1,delete B.GenericEditorArea,delete B.GenericEditorToolbar,delete B.GenericUIHelper}function cu(B){B.ConformerGenerator.prototype.molecules=function*(){let It;for(;(It=this.getNextConformerAsMolecule())!==null;)yield It};let ft={maxIts:4e3,gradTol:1e-4,funcTol:1e-6},Mt=B.ForceFieldMMFF94.prototype._minimise;delete B.ForceFieldMMFF94.prototype._minimise,B.ForceFieldMMFF94.prototype.minimise=function(It){return It={...ft,...It},Mt.call(this,It.maxIts,It.gradTol,It.funcTol)},B.Molecule.prototype.getOCL=function(){return B}}function mn(){}function e2(B){let ft=B.document,Mt={},Et={userAgent:"webkit"},It=mn;It.__moduleStartupDone=mn;let V1=mn,Ot,L1;var R1="object",W1="anonymous",H1="fnStack",J1=`
`,w1={4:1,9:1,5:1,8:1},ve="Unknown",O0="boolean",l0="number",Ae="string",Vt=2147483647,Me='For input string: "',Pe="null",SA="__noinit__",F1={4:1,5:1,8:1},d0={4:1,19:1,32:1,27:1},Fn=" (copy)",pt={4:1,9:1,15:1,5:1,11:1,8:1,14:1},M1=65536,f1=65535,J0=1e4,tA="fromIndex: ",x8=" > toIndex: ",ZP=", toIndex: ",G8=", length: ",XP="Index: ",WP=", Size: ",dt={13:1,4:1,5:1},fn={4:1},M={7:1,4:1,5:1},We=16777215,K0=65280,Dn=.30000001192092896,Ve=545460846592,Qe=4294967296,He=8589934592,Ee=17179869184,Se=34359738368,qe=68719476736,xe=137438953472,un=274877906944,yt={12:1,4:1,5:1},p1=536870912,_P=2.617993878,$P=3.665191429,I1=6.283185307179586,t1=3.141592653589793,B0=1.5707963267948966,q0=16384,qA=-8355712,_1=4096,eA={l:0,m:0,h:1},nA={l:0,m:0,h:2},AA={l:0,m:0,h:4},Y0=1920,r0=1024,de=234881024,PA=167772160,on=100663296,Qn=201326592,_e=114688,$e=4063232,rA=3801088,pn=3538944,zn=3014656,iA=3145728,j0=2097152,ae=393216,re=917504,ln=1966080,Un=0xf8000000000,xA=0xf0000000000,GA=0xe8000000000,IA=0xd8000000000,NA=0xb8000000000,aP=0xe0000000000,tr=0xc0000000000,fA=8796093022208,Rn=549755813888,OA=1649267441664,JA=3848290697216,DA=8246337208320,er=0xc8000000000,nr=9345848836096,Ar=0x98000000000,Be=29360128,Ge=268435456,o0=8192,b1=2048,uA=-1.5707963267948966,le=130560,oA=6291456,Pr=-2.0943951023931953,T0=1.0471975511965976,Cn=.5235987755982988,l1=786432,Ue=524288,se=262144,x0=-16777216,ie=-65536,KA=-32768,rr='<DrawingObject type="',YA="></DrawingObject>",Kt={4:1,5:1,16:1},n0={4:1,5:1},ir="unsupported atomicNo:",I8=2.8415926535897933,C1={28:1,4:1,9:1,5:1,8:1},Mn={4:1,5:1,11:1,8:1},Z={10:1,4:1,5:1},b0={4:1,9:1,5:1,8:1,31:1},A0=131072,ZA=196608,XA={l:6,m:0,h:4},ke=1048576,Le=3221225472,fr={l:0,m:0,h:3},Vn=8388608,Dr={l:0,m:0,h:120},WA={36:1,43:1,38:1},U0={4:1,9:1,5:1,11:1,8:1},N8={36:1,43:1,95:1,38:1,84:1},_A={4:1,5:1,36:1,43:1,95:1,21:1,38:1,84:1,129:1},s0=17976931348623157e292,ur=-17976931348623157e292,Ie={88:1,73:1,74:1,4:1,9:1,5:1,8:1},m1="??",ye={58:1,4:1,9:1,5:1,8:1},Te=2013265920,k0=32505856,C0=31744,$A=122880,Hn={131:1,4:1,9:1,5:1,11:1,8:1},QA=33554432,M0=67108864,Ne=32768,aA=-131073,tP=-33554433,eP=-33292289,or=-3.141592653589793,$1=4194303,V0=3072,h0={46:1,4:1,5:1},Qr=.7853981633974483,O8=3.061592653589793,H0=1073741824,J8=541165879296,Ht={17:1,4:1,5:1,8:1},nP=281.17,AP=289.19,PP=294.21,rP="0.0000",iP="NOSEARCH_OCL_CUSTOM_LABEL",je="M END",En="ATOMS",P1=-2147483648,lA="$$$$",UA="M V30 ",K8="M V30 COUNTS ",Y8="M V30 MDLV30/STEREL",Z8="M V30 MDLV30/STERAC",lr="M V30 END CTAB",X8=34028234663852886e22,Ur={l:2,m:0,h:4},Z0=4194304,sr={l:4179966,m:4063288,h:7},W8={l:4194302,m:4193343,h:127},K1='" ',Lr='stroke="',fP='stroke-width="',DP='" />',_8='class="event" ',$8='opacity="0" />',X0=16711680,a8="' position:",ti="'. Position:",ei=1099511627776,ni=2199023255552,Ai=4398046511104,yr="', position:",Pi="Assignment of aromatic double bonds failed",sA=2147483646,ri={102:1,4:1},Tr="Members of ESR groups must only be stereo centers with known configuration.",hr="Over- or under-specified stereo feature or more than one racemic type bond",br="Ambiguous configuration at stereo center because of 2 parallel bonds",ii={116:1,89:1,25:1,4:1},uP=1e5,LA=1.399999976158142,Sn=3.1415927410125732,cr=1.5707963705062866,fi=.029999999329447746,Di=6.2831854820251465,ui=1.9106119871139526,oi=2.2639999389648438,wr=2.16759991645813,Qi=2.0662999153137207,li=2.3561999797821045,Ui=2.2844998836517334,si=1.9106120066311025,Li=2.094395160675049,yA=.6000000238418579,oP=1.7999999523162842,gr=.05000000074505806,P0={4:1,9:1,5:1,8:1,37:1},QP=.2617993950843811,qn=2.0943951023931953,TA=1.2000000476837158,vr=1.4299999475479126,lP=1.659999966621399,dr=1.4600000381469727,Br=1.899999976158142,yi=1.8200000524520874,Ti=2.4600000381469727,hi=2.4200000762939453,UP=2.450000047683716,kr=2.440000057220459,bi=2.4000000953674316,jr=2.319999933242798,mr=2.2899999618530273,ci=1.8600000143051147,wi=2.5299999713897705,gi=2.490000009536743,vi=2.4700000286102295,di=2.880000114440918,Bi=2.9200000762939453,ki=2.869999885559082,Fr=2.8299999237060547,ji=2.7899999618530273,mi=2.809999942779541,Fi=2.799999952316284,pi=3.049999952316284,pr=.3199999928474426,zi=1.3300000429153442,hA=.8500000238418579,Ri=1.600000023841858,Ci=1.3899999856948853,zr=1.159999966621399,Mi=1.1100000143051147,Vi=1.0700000524520874,Hi=1.9600000381469727,Ei=1.7100000381469727,Rr=1.3600000143051147,Si=1.340000033378601,qi=1.2200000286102295,xi=1.2400000095367432,sP=1.2100000381469727,Gi=2.0999999046325684,Cr=1.850000023841858,Mr=1.6299999952316284,Ii=1.4700000286102295,Ni=1.2799999713897705,Oi=1.440000057220459,Ji=1.7599999904632568,Ki=1.7300000190734863,Yi=1.7200000286102295,LP=1.6799999475479126,Zi=1.690000057220459,Xi=1.6699999570846558,Vr=1.649999976158142,bA=1.7000000476837158,Wi=1.6200000047683716,_i=1.3700000047683716,$i=1.2899999618530273,ai=1.4500000476837158,t9=1.5700000524520874,Hr=-.5235987755982988,cA=-1.0471975511965976,e9=-.7853981633974483,n9=.017453292519943295,A9=.17453292519943295,wA=1e-4,sn={146:1},Ln=57.29577951308232,P9=.021922173386725217,gA=1e-8,fe=2.5120960256267386,vA=1e-5,yP="MMFF94s+",r9="nonbonded cutoff",i9="dielectric constant",f9="dielectric model",D9="angle bend",u9="bond stretch",o9="electrostatic",Q9="out of plane",l9="stretch bend",U9="torsion angle",s9="van der waals",L9=.07000000000000006,y9=.1200000000000001,T9=-7.840000000000001,TP="OCL_RXN_V1.0:",h9="$RXN V3000",b9="'$MOL' tag not found",c9="'M END' not found",w9="M V30 BEGIN REACTANT",g9=`
Actelion Java MolfileCreator 2.0
0 0 0 0 0 0 0 V3000
`,v9="M V30 BEGIN PRODUCT",d9=2475109711874,B9=2475109711875,k9=2887426572290,j9=2887426572291,m9=2887627898882,F9=2887627898883,p9=2887627997186,z9=3437182386178,R9=3437182386179,C9=3437383712770,M9=3437383811074,V9=3437652148226,H9=3437652377602,E9=4674132967426,S9=4674334294018,q9=4674334392322,x9=4674602729474,G9=4674602958850,I9=5086449827842,N9=5086449827848,O9=5086651154434,J9=5086651252738,K9=5086651252743,Y9=5086919589890,Z9=5086919688194,X9=5636406968322,W9=5636407066626,_9=5636675502082,$9={l:589826,m:590112,h:4},a9={l:589827,m:590112,h:4},tf={l:589826,m:590160,h:4},ef={l:589827,m:590160,h:4},nf={l:688130,m:590160,h:4},Af={l:589826,m:590224,h:4},Pf={l:589827,m:590224,h:4},rf={l:819203,m:590224,h:4},ff={l:589826,m:590368,h:4},Df={l:688130,m:590368,h:4},uf={l:819202,m:590368,h:4},of={l:819208,m:590368,h:4},Qf={l:589826,m:590416,h:4},lf={l:589832,m:590416,h:4},Uf={l:688130,m:590416,h:4},sf={l:819202,m:590416,h:4},Lf={l:589826,m:598304,h:4},yf={l:589827,m:598304,h:4},Tf={l:688130,m:598304,h:4},hf={l:1114114,m:598304,h:4},bf={l:1212418,m:598304,h:4},cf={l:589826,m:598308,h:4},wf={l:589826,m:688416,h:4},gf={l:589826,m:688464,h:4},vf={l:589826,m:688720,h:4},df={l:688130,m:688720,h:4},Bf={l:589826,m:590112,h:288},kf={l:589826,m:590112,h:336},jf={l:589826,m:688416,h:336},mf={l:589826,m:688464,h:336},Ff={l:688130,m:688464,h:336},pf={l:589826,m:590112,h:400},zf={l:589826,m:688416,h:400},Rf={l:589826,m:688464,h:400},Cf={l:688130,m:688464,h:400},Mf={l:589826,m:819488,h:400},Vf={l:589826,m:819536,h:400},Hf={l:589826,m:819600,h:400},Ef={l:688130,m:819600,h:400},Sf={l:819202,m:819600,h:400},qf={l:589831,m:688416,h:592},xf={l:589831,m:688464,h:592},Gf={l:688135,m:688464,h:592},If={l:589831,m:819536,h:592},Nf={l:688135,m:819536,h:592},Of={l:688135,m:819600,h:592},Jf={l:589832,m:1212704,h:592},Kf={l:589832,m:1212752,h:592},Yf={l:688136,m:1212752,h:592},Zf={l:589831,m:688464,h:656},Xf={l:589826,m:590112,h:8480},Wf={l:589826,m:688416,h:8480},_f={l:589826,m:688464,h:8480},$f={l:688130,m:688464,h:8480},af={l:819202,m:819600,h:8480},tD={l:688135,m:1212752,h:8480},eD={l:589832,m:1213008,h:8480},nD={l:688136,m:1213008,h:8480},AD={l:589826,m:590112,h:8484},PD={l:589826,m:590160,h:8484},rD={l:688130,m:598304,h:8484},iD=.6262000203132629,fD=-1.3825000524520874,hP=.33169999718666077,DD=-1.4915000200271606,uD=.3540000021457672,oD=.38179999589920044,QD=-.6019999980926514,lD=.07999999821186066,UD=-.7379999756813049,sD="Atom-types are 64-bit numbers describing atoms and their near surrounding.",Er="Recognized atom types and their contributions are:",LD="Druglikeness predictor not properly initialized.",yD=3.009999990463257,TD=-.17000000178813934,hD=-.1809999942779541,bD=-.2029999941587448,dA=2147483648,Sr=-1e10,bP={200:1,4:1,9:1,5:1,8:1,31:1},cP=-99999,he="any",cD="is not in a ring",qr="Excluded atoms:",wP="exactly 1",gP="exactly 2",xr="less than 3",wD="less than 4",vP="at least 1",Gr="at least 2",Ir="at least 3",gD="at least 4",Nr="1 or 2",vD="less than 2",dD="Allowed atoms:",yn={138:1},BD="Atom Properties",dP=-8346432,kD="/html/editor/editor.html",jD="Structure Editor Help",BP="Dummy look and feel",xn="Substance Graphite",Gn="Radiance Graphite",In="Radiance Night",mD=.6499999761581421,FD=.3499999940395355,Or="editorButtons.png",pD="esrButtons.png",Tn=.800000011920929,Jr=-1774190527,Kr=-1438646166,Nn=-1433403286,kP=-1431655766,jP=-1448432982,me=1073741866,hn=1073741930,Yr="MMFF94",Zr="MMFF94s",zD="/resources/forcefield/mmff94/94s/outofplane.csv",On="undefined",Xr={170:1,4:1,5:1,8:1},RD=.08726646502812703,Wr=.003921568859368563,F0=1048575,W0=17592186044416,bn=1e9,Jn=-17592186044416,c0=5.56,i0=11.12,Fe=13.34,cn=14.44,BA=.3010299956639812,CD="BigInteger divide by zero",r1=4294967295,MD={l:0,m:0,h:524288},mP={33:1,117:1},_r={108:1,112:1},Kn={36:1,43:1,38:1,86:1},FP=16777619,VD={36:1,38:1,86:1},pP="delete",zP=15525485,HD=5960464477539063e-23,$r=16777216,RP={4:1,33:1,56:1,81:1},ar="Invalid UTF8 sequence",t8=.20000000298023224,ED=" distance:",SD="gGP`@dfyjidNcGI[WQCP`<",Yn={48:1},Q={},h={},y1={},Nt={},w={},De={},n={},L={},q={},Yt={},X={},be={},K={},nt={},n1={},e1={},et={},a={},Pt={},E={},Tt={},g1={},k={},_={},R={},Y1={},Ut={},k1={},w0={},Ft={},z={},E1={},D0={},u0={},G0={},gt={},Wt={},W={},$={},s,kA,CP,gu=-1;Q.Xdb=function(){};function vu(D,t){typeof window===R1&&typeof window.$gwt===R1&&(window.$gwt[D]=t)}function du(D,t,e,A){Q.Keb();var P=CP;Ot=t,L1=e,gu=A;function r(){for(var i=0;i<P.length;i++)P[i]()}if(D)try{ZD(r)()}catch(i){D(t,i)}else ZD(r)()}Q.Keb=function(){CP==null&&(CP=[])};function Bu(){Q.Keb();for(var D=CP,t=0;t<arguments.length;t++)D.push(arguments[t])}Q.Ieb=function(){};function Zn(){}function Xn(D){return Array.isArray(D)&&D.wd===Zn?h.Uc(D):D.toString()}function S1(D,t){var e=B;if(D==="")return e;var A=D.split(".");if(!(A[0]in e)&&e.execScript&&e.execScript("var "+A[0]),t){var P=t.prototype.ud;P.e=t}for(var r;A.length&&(r=A.shift());)e=e[r]=e[r]||!A.length&&t||{};return e}Q.Veb=function(t){function e(){}return e.prototype=t||{},new e},Q.Ueb=function(t){return t instanceof Array?t[0]:null};function L0(D,t,e){var A=function(){return D.apply(A,arguments)};return t.apply(A,e),A}function D1(){}function _0(D,t){for(var e in t)t[e].configurable=!0;Object.defineProperties(D,t)}function N(D,t,e){var A=kA,P=A[D],r=Q.Ueb(P);P&&!r?s=P:(s=Q.Peb(t),s.vd=e,!t&&(s.wd=Zn),A[D]=s);for(var i=3;i<arguments.length;++i)arguments[i].prototype=s;r&&(s.ud=r)}Q.Peb=function(t){var e=t&&t.prototype;return!e&&(e=kA[t]),Q.Veb(e)},Q.Oeb=function(){},B.goog=B.goog||{},B.goog.global=B.goog.global||B,kA={},h.Jc=function(t,e){return B1(t)===B1(e)},h.Kc=function(t){return t.ud},h.Lc=function(t){return w.$yb(t)};function qD(){}h.Oc=function(t,e){return pe(t)?h.Bib(t,e):wn(t)?h.qhb(t,e):jA(t)?h.igb(t,e):n8(t)?t.lb(e):e8(t)?h.Jc(t,e):y1.Y3(t,e)},h.Qc=function(t){return pe(t)?h.Fib():wn(t)?h.rhb():jA(t)?h.jgb():n8(t)?t.ud:e8(t)?h.Kc(t):y1.Z3(t)},h.Sc=function(t){return pe(t)?h.Gib(t):wn(t)?h.shb(t):jA(t)?h.kgb(t):n8(t)?t.nb():e8(t)?h.Lc(t):y1.$3(t)},h.Uc=function(t){var e;return h.Mgb(h.Qc(t))+"@"+(e=w.szb(w.rzb(h.Sc(t))),e.toString(16))},N(1,null,{},qD),s.lb=function(t){return h.Jc(this,t)},s.mb=function(){return h.Kc(this)},s.nb=function(){return h.Lc(this)},s.ob=function(){var t;return h.Mgb(h.Qc(this))+"@"+(t=w.szb(w.rzb(h.Sc(this))),t.toString(16))},s.equals=function(D){return this.lb(D)},s.hashCode=function(){return this.nb()},s.toString=function(){return this.ob()},y1.Y3=function(t,e){return y1.c4(t)?y1._3(t,e):B1(t)===B1(e)},y1.Z3=function(t){return t.ud||Array.isArray(t)&&m(Q.qab,1)||Q.qab},y1.$3=function(t){return y1.d4(t)?y1.a4(t):w.$yb(t)},y1._3=function(t,e){return t.equals(e)},y1.a4=function(t){return t.hashCode()},y1.b4=function(){return[]},y1.c4=function(t){return!!t&&!!t.equals},y1.d4=function(t){return!!t&&!!t.hashCode},y1.e4=function(t){return t.toString?t.toString():"[JavaScriptObject]"},Nt.K4=function(){Nt.K4=D1;var t,e;e=!Nt.T4(),t=new Nt.a5,Nt.J4=e?new Nt.U4:t},Nt.L4=function(t){Nt.K4(),Nt.J4.Lc(t)},Nt.M4=function(t){Nt.K4();var e;return e=Nt.J4.Mc(t),Nt.N4(e)},Nt.N4=function(t){var e,A,P,r;for(e="L4",A="WB",r=B.Math.min(t.length,5),P=r-1;P>=0;P--)if(h.Bib(t[P].d,e)||h.Bib(t[P].d,A)){t.length>=P+1&&w.szb(t).splice(0,P+1);break}return t},Nt.O4=function(t){var e=/function(?:\s+([\w$]+))?\s*\(/,A=e.exec(t);return A&&A[1]||W1},Nt.P4=function(t){return Nt.K4(),t&&t[H1]?t[H1]:[]},Nt.Q4=function(t){return Nt.K4(),t.name||(t.name=Nt.O4(t.toString()))},Nt.R4=function(t){return Nt.K4(),parseInt(t)||-1},Nt.S4=function(t){Nt.K4();var e=t.backingJsObject;if(e&&e.stack){var A=e.stack,P=e+J1;return A.substring(0,P.length)==P&&(A=A.substring(P.length)),A.split(J1)}return[]},Nt.T4=function(){return Error.stackTraceLimit>0?(B.Error.stackTraceLimit=Error.stackTraceLimit=64,!0):"stack"in new Error},N(432,1,{}),Nt.U4=function(){},N(304,432,{},Nt.U4),s.Lc=function(t){var e={},A=[];t[H1]=A;for(var P=arguments.callee.caller;P;){var r=Nt.Q4(P);A.push(r);var i=":"+r,f=e[i];if(f){var u,o;for(u=0,o=f.length;u<o;u++)if(f[u]===P)return}(f||(e[i]=[])).push(P),P=P.caller}},s.Mc=function(t){var e,A,P,r;for(P=Nt.P4(t),A=y1.k4(P),r=v(Q.jbb,w1,91,A,0,1),e=0;e<A;e++)r[e]=new h.pib(y1.j4(P,e),null,-1);return r},Nt.X4=function(t,e){var A,P,r,i,f,u,o,l,U;return l="",w.szb(e).length==0?t.Nc(ve,W1,-1,-1):(U=h.Tib(e),h.Bib(w.szb(U).substr(0,3),"at ")&&(U=(w.nzb(3,w.szb(U).length+1),w.szb(U).substr(3))),U=Nt.Y4(U),f=w.szb(U).indexOf("("),f==-1?(f=w.szb(U).indexOf("@"),f==-1?(l=U,U=""):(l=h.Tib((w.nzb(f+1,w.szb(U).length+1),w.szb(U).substr(f+1))),U=h.Tib((w.mzb(0,f,w.szb(U).length),w.szb(U).substr(0,f))))):(A=w.szb(U).indexOf(")",f),l=(w.mzb(f+1,A,w.szb(U).length),w.szb(U).substr(f+1,A-(f+1))),U=h.Tib((w.mzb(0,f,w.szb(U).length),w.szb(U).substr(0,f)))),f=h.Iib(U,Z1(46)),f!=-1&&(U=(w.nzb(f+1,w.szb(U).length+1),w.szb(U).substr(f+1))),(w.szb(U).length==0||h.Bib(U,"Anonymous function"))&&(U=W1),u=h.Lib(l,Z1(58)),r=h.Mib(l,Z1(58),u-1),o=-1,P=-1,i=ve,u!=-1&&r!=-1&&(i=(w.mzb(0,r,w.szb(l).length),w.szb(l).substr(0,r)),o=Nt.R4((w.mzb(r+1,u,w.szb(l).length),w.szb(l).substr(r+1,u-(r+1)))),P=Nt.R4((w.nzb(u+1,w.szb(l).length+1),w.szb(l).substr(u+1)))),t.Nc(i,U,o,P))},Nt.Y4=function(t){return t.replace(/\[.*?\]/g,"")},N(433,432,{}),s.Lc=function(t){},s.Nc=function(t,e,A,P){return new h.pib(e,t+"@"+P,A<0?-1:A)},s.Mc=function(t){var e,A,P,r,i,f;if(r=Nt.S4(t),i=v(Q.jbb,w1,91,0,0,1),e=0,P=y1.k4(r),P==0)return i;for(f=Nt.X4(this,y1.j4(r,0)),h.Bib(f.d,W1)||(i[e++]=f),A=1;A<P;A++)i[e++]=Nt.X4(this,y1.j4(r,A));return i},Nt.a5=function(){},N(305,433,{},Nt.a5),s.Nc=function(t,e,A,P){return new h.pib(e,t,-1)},Q.c5=function(t){return t};function m(D,t){return Q.e5(D,t)}Q.e5=function(t,e){return h.Xgb(t,e)},Q.f5=function(t){return t.__elementTypeCategory$==null?10:t.__elementTypeCategory$},Q.g5=function(t){return t.__elementTypeId$};function s1(D,t,e,A,P,r){return Q.i5(D,t,e,A,P,0,r)}Q.i5=function(t,e,A,P,r,i,f){var u,o,l,U,y;if(U=r[i],l=i==f-1,u=l?P:0,y=Q.k5(u,U),P!=10&&F(m(t,f-i),e[i],A[i],u,y),!l)for(++i,o=0;o<U;++o)Q.m5(y,o,Q.i5(t,e,A,P,r,i,f));return y};function v(D,t,e,A,P,r){var i;return i=Q.k5(P,A),P!=10&&F(m(D,r),t,e,P,i),i}Q.k5=function(t,e){var A=new Array(e),P;switch(t){case 14:case 15:P=0;break;case 16:P=!1;break;default:return A}for(var r=0;r<e;++r)A[r]=P;return A};function e8(D){return Array.isArray(D)&&D.wd===Zn}Q.m5=function(t,e,A){return t[e]=A};function a1(D,t,e){return Q.m5(D,t,e)}Q.o5=function(t,e){t.ud=e},Q.p5=function(t,e){t.__elementTypeCategory$=e},Q.q5=function(t,e){t.__elementTypeId$=e};function F(D,t,e,A,P){return Q.o5(P,D),P.vd=t,P.wd=Zn,Q.q5(P,e),Q.p5(P,A),P}Q.s5=function(t,e){return Q.f5(e)!=10&&F(h.Qc(e),e.vd,Q.g5(e),Q.f5(e),t),Q.c5(t)};function ku(D,t){return pe(D)?!!OD[t]:D.vd?!!D.vd[t]:wn(D)?!!ND[t]:jA(D)?!!ID[t]:!1}function n8(D){return!Array.isArray(D)&&D.wd===Zn}function Zt(D,t){return D!=null&&ku(D,t)}function jA(D){return typeof D===O0}function wn(D){return typeof D===l0}function xD(D){return D!=null&&Q.v6(D)&&D.wd!==Zn}function GD(D,t){return Q.w6(D,t)}function pe(D){return typeof D===Ae}Q.v6=function(t){return typeof t===R1||typeof t=="function"},Q.w6=function(t,e){return t&&e&&t instanceof e};function B1(D){return D??null}function kt(D){return Math.max(Math.min(D,Vt),-2147483648)|0}var ID,ND,OD;Q.Ydb=function(t){return t&&t.__java$exception};function z1(D){var t;return Zt(D,27)?D:(t=Q.Ydb(D),t||(t=new y1.S3(D),Nt.L4(t)),t)}function Qt(D){return D.backingJsObject}function ju(D){var t;return D==null?!1:(t=typeof D,h.Bib(t,O0)||h.Bib(t,l0)||h.Bib(t,Ae)||D.$implements__java_io_Serializable||Array.isArray(D))}function mu(D){var t;return t=typeof D,h.Bib(t,O0)||h.Bib(t,l0)||h.Bib(t,Ae)?!0:D!=null&&D.$implements__java_lang_Comparable}h.egb=function(){h.egb=D1,mA=w.szb(!1),w.szb(!0)},h.fgb=function(t){return w.tzb((w.gzb(t),t))},h.ggb=function(t,e){return pu(w.tzb((w.gzb(t),t)),w.tzb((w.gzb(e),e)))},h.hgb=function(t,e){return h.ggb(t,e)},h.igb=function(t,e){return w.gzb(t),B1(t)===B1(e)},h.jgb=function(){return Q.Tab},h.kgb=function(t){return w.tzb((w.gzb(t),t))?1231:1237};function Fu(D){return h.egb(),h.Bib(O0,typeof D)}function pu(D,t){return h.egb(),D==t?0:D?1:-1}h.ngb=function(t,e){return h.egb(),pe(t)?h.uib(t,e):wn(t)?h.ohb(t,e):jA(t)?h.hgb(t,e):t.Rb(e)},ID={4:1,299:1,33:1};var mA;function zu(D){return h.Bib(typeof D,Ae)?!0:D!=null&&D.$implements__java_lang_CharSequence}h.Kgb=function(t){t.i=Mu++},h.Lgb=function(t){t.n==null&&h._gb(t)},h.Mgb=function(t){return h.Lgb(t),t.n},h.Ngb=function(t){return(t.f&4)!=0},h.Ogb=function(t){return(t.f&1)!=0},h.Pgb=function(){h.Kgb(this),this.n=null,this.j=null,this.g=null,this.d=null,this.b=null,this.k=null,this.a=null},h.Rgb=function(t){var e;return e=new h.Pgb,e.n="Class$"+(t?"S"+t:""+e.i),e.b=e.n,e.j=e.n,e};function O(D){var t;return t=h.Rgb(D),h.dhb(D,t),t}function Oe(D,t){var e;return e=h.Rgb(D),h.dhb(D,e),e.f=t?8:0,e}function Ru(){var D;return D=h.Rgb(null),D.f=2,D}function tn(D){var t;return t=h.Rgb(D),t.k=D,t.f=1,t}h.Xgb=function(t,e){var A=t.a=t.a||[];return A[e]||(A[e]=t.Tc(e))};function Cu(D){if(D.Yc())return null;var t=D.k;return kA[t]}h._gb=function(t){if(t.Xc()){var e=t.c;e.Yc()?t.n="["+e.k:e.Xc()?t.n="["+e.Vc():t.n="[L"+e.Vc()+";",t.b=e.Uc()+"[]",t.j=e.Wc()+"[]";return}var A=t.g,P=t.d;P=P.split("/"),t.n=h.chb(".",[A,h.chb("$",P)]),t.b=h.chb(".",[A,h.chb(".",P)]),t.j=P[P.length-1]},h.chb=function(t,e){for(var A=0;!e[A]||e[A]=="";)A++;for(var P=e[A++];A<e.length;A++)!e[A